Direkt zum Hauptinhalt

3D Bauteilverschachtelung / Plating / Nesting / Bin Packing

Bauteile verschachteln macht Sinn, um beispielsweise mehrere Bauteile auf engeren Raum anzuordnen. Diverse Slicer / 3D Druck Programme haben eine einfache Funktion zum automatischen anordnen. Leider sind diese Anordnungen meistens unschön. Es gibt ein paar wenige kostenfreie Programme, um diesen Job zu übernehmen. Auf dieser Seite finden sich Erläuterungen und nutzbare Programme. Insbesondere für SLA/SLS/DLP/FDM 3D-Drucker kann ein 3D Bin Packing Vorteile bringen. Das 3D Packing ist äußerst rechenintensiv und erfolgt über Anäherungsberechnungen

Unterschiede im Nesting und Beispiele

Grundsätzlich muss beim 3D Nesting unterschieden werden, ob die Teile lediglich in der Ebene kompakt ineinander geschachtelt werden, oder ob sie auch in ihrer Höhenausdehnung bzw. dem ganzen Volumen geschachtelt werden. Das Nesting in der Ebene entspricht in den Wesenszügen der 2D Bauteilverschachtelung / Plating / Nesting / Bin Packing. Auf der Seite ist auch beschrieben, wie sich das Nesting von zweidimensionalen und dreidimensionalen Bauteilen auf einer Schachtelebene unterscheidet. In der Regel besteht der Unterschied im Dateiformat. Letztlich können Nesting-Programme für 3D-Bauteile (z.B. STL, OBJ) auch für zweidimensionale Probleme verwendet werden (nach geeigneten Konvertierungsschritten).

Vollvolumentrisches 3D-Nesting 3D-Nesting in der Ebene

grafik.png

grafik.png

Siehe auch https://de.wikipedia.org/wiki/Rucksackproblem (knapsack problem)

Open Source oder kostenfreie Tools

Ein Beispielvergleich zwischen Plater und PrusaSlicer. Der Versuch 8x Riffy (ein kleiner Schlüsselorganizer, bestehend aus 4 Teilen) zu importieren und vollständig auf das Bett zu verteilen wie folgt:

In PrusaSlicer bleiben 10 Teile übrig In Plater bleibt kein einziges Teil übrig (je nach Plating-Durchlauf max. 1-2 Teile übrig)

grafik.png

grafik.png

pack3d

grafik.png

Benchy nesting cluster (Bildquelle: https://github.com/fogleman/pack3d)

Der Code ist in Go geschrieben (< 1000 Zeilen) und besteht aus zwei Binaries

  • pack3d zum dichten Packen von Objekten mittels sog. "Annealing" (enges Anähern/Glühen)
  • binpack, um möglichst viele Objekte in ein vorgegebenes Volumen (z.B. das Volumen des Druckers) zu packen.

Das Programm schachtelt nicht beliebige Rotationen, sondern "lediglich" in die 6 Grundrotationsrichtungen X+/X-/Y+/Y-/Z+/Z-. Freie Rotationen sind nicht möglich, sodass auch beim Schachteln mit pack3d noch viel Luft zwischen den Modellen bleibt.

Plater

Quelle: https://github.com/Rhoban/Plater

  • erzeugt ein einziges STL als Output
  • kann in PrusaSlicer nachträglich wieder in Einzelteileaufgebrochen werden!

grafik.png

Re-Splitting with PrusaSlicer

Mit Hilfe von PrusaSlicer lasten sich die migrierten Plattenzusammenstellungen wieder in einzelne Teile aufbrechen.

Importieren

grafik.png grafik.png

Splitten

grafik.png

Die Teile können nun einzeln bearbeitet werden. Allerdings ist ein Verschieben nicht möglich. Außerdem ist das Zuweisen teilweise recht aufwendig:

grafik.png

Autodesk Meshmixer

AutoDesk MeshMixer 3.5 läuft auf Windows und auch mit Wine (getestet auf Ubuntu 20 LTS)

Download → http://www.meshmixer.com/download.html

grafik.png

libnest2d

https://github.com/tamasmeszaros/libnest2d

grafik.png

(Bildquelle: https://github.com/tamasmeszaros/libnest2d)

Kommerzielle Software