Fachbereich Informatik

Nut Embedding Project

Besides decorative objects and simple toys, functional 3D printed objects are rarely used standalone but rather in combination with other parts. The main reasons are the use of non-printed parts like electronics, mechatronic components, and material combinations not supported by the printer. Also, objects too large for the build volume of a given machine or objects with unprintable geometries or requirements for complicated support structures can often be assembled from several smaller parts, printed with proper orientation.

The nut embedding project is an ongoing research effort, aiming at fully automatic integration of standard metric nuts and other metallic (magnetic) objects into 3D printed objects. The most common way to connect 3D printed objects is by screwing them together, with the screw secured in one part with a nut. These connections can be used to tighten and release screws multiple times and are also suitable for permanently moving connections.

Our proposed approach is closely linked to our 3D-Electronics research, again based on an augmented version of the slicing tool Slic3r under active development. The nut embedding extension allows to import predefined components, including metric hexagonal and square nuts, selected types of screws, washers, and ball-bearings into the current design. The location and orientation of the components can be arranged interactively, and Slic3r then generates the required cavities in the object model, using the current printer profile to adjust for material shrinkage and printer settings. Data for automatic component placement with OctoPNP are integrated into an the G-Code sent to the printer.

The specific version of Slic3r is still under active development; some versions will not even compile; for a start try this github branch. The original Electronics for Slic3r is published under a GPLv3 licence and also available on Github: https://github.com/platsch/Slic3r/tree/electronics.
A prototype implementation of the concept is described in the BSc thesis of Arne B√ľngener, Integration von mechanischen Objekten in das 3D-Druckverfahren (pdf, German only).

OctoPNP, the control software for interactive part handling is implemented as a plugin for the common 3D-printer host software OctoPrint. OctoPNP is published under a GPLv3 licence and available on Github: https://github.com/platsch/OctoPNP.

We modified a standard Prusa-I3 FFF 3D printer as our first prototype machine for the project, adding a rotatic magnetic gripper for object pick and place, and component tray attached to the printbed, and a camera for easy and precise calibration of the machine.

  • A rotating magnetic gripper, controlled as a second extruder
  • A tray with a grid of boxes to store magnetic components in pre-defined positions
  • A bed camera for easy and precise calibration


Florens Wasserfall, Daniel Ahlers.