Frage:
Wie entscheiden Werkzeugwegalgorithmen, in welche Richtung ein Polygon mit geschlossener Schleife gedruckt werden soll?
Thetravellingfool
2019-01-15 04:05:05 UTC
view on stackexchange narkive permalink

Ich verstehe, wie Slicer-Programme Sätze von Polygonen mit geschlossenem Regelkreis erstellen, die Schicht für Schicht gedruckt werden. Für ein gegebenes Polygon mit geschlossener Schleife, das gedruckt werden muss, kennt der Werkzeugweggenerator die Koordinaten und wie diese Koordinaten miteinander verbunden sind, so dass das Durchlaufen eines Satzes von Segmenten in dieser Reihenfolge den Extruderkopf zurück zur ersten Koordinate bringt Um die geschlossene Schleife zu vervollständigen.

Meine Frage lautet: Durch welchen Mechanismus entscheidet der Werkzeugweggenerator, in welche Richtung die geschlossene Schleife durchlaufen werden soll? Da es sich um eine Schleife handelt, könnte diese Schleife sozusagen "im Uhrzeigersinn" oder "gegen den Uhrzeigersinn" gedruckt werden. Alle Details und Links zu weiteren Erklärungen, wie einige der bekanntesten Slicer-Programme dies bestimmen, werden sehr geschätzt.

Zwei antworten:
Thetravellingfool
2019-01-16 01:54:48 UTC
view on stackexchange narkive permalink

Während diese Antwort einen gültigen Versuch unternimmt, die Frage zu beantworten, basiert sie auf persönlichen Erfahrungen.

Ich ging zur Literatur und direkt zum Quellcode in Cura zu Finde die Antwort. In dem wissenschaftlichen Artikel " Identifizieren der Richtungen eines Satzes von 2D-Konturen für die Planung additiver Fertigungsprozesse" haben Volpato et al. beschreiben verschiedene Methoden zum Identifizieren der willkürlichen Richtungen jeder Kontur in jeder Schicht und zusätzlich zum Identifizieren, welche Konturen "intern" und welche "extern" waren. Ich zitiere aus dem Papier:

Die Informationen zur Konturrichtung, die entweder im Uhrzeigersinn (CW - intern) oder gegen den Uhrzeigersinn (CCW - extern) sind, werden für die Pfadplanung für die Materialbearbeitung benötigt.

Anschließend wird erläutert, wie wichtig es ist, zu identifizieren, welche Konturen extern und welche intern sind, damit der Pfadplanungsalgorithmus später bestimmen kann, wo die Füllung platziert werden soll. Die Füllung wird innerhalb externer Konturen und außerhalb interner Konturen platziert.

Wenn angenommen wird, dass die normalen Vektoren in STL-Modellen korrekt sind, besteht eine einfache Möglichkeit, festzustellen, ob eine 2D-Kontur CW oder CCW ist, darin, das Vektorprodukt (Kreuzprodukt) zwischen einem normalen Vektor und zu analysieren Ein Vektor, der aus zwei Eckpunkten der Facette erhalten wird.

Dies setzt voraus, dass der Slicer bereits Schnittpunkte zwischen Schnittebenen und der STL-Datei bestimmt und diese Schnittpunkte in geschlossene Konturen sortiert hat. Diese anfängliche Schnittpunktsammlung und Konturkonstruktion führt zu einer beliebigen Richtung:

Da jedes Liniensegment einer Kontur das erste in der Sequenz sein kann, wenn die Segmente verbunden sind, bestimmt seine Ausrichtung die Richtung der Kontur. Daher werden die gebildeten 2D-Konturen zufällig klassifiziert und eine externe Kontur für Beispielsweise könnte eine CW- oder CCW-Richtung zugewiesen werden. Daher kann dieser Schritt die Richtungen der erzeugten Konturen nicht korrekt identifizieren.

Die Raytracing-Methode, die tatsächlich auf dem Punkt-in-Polygon-Test basiert, bestimmt, welche Konturen in anderen enthalten sind. und die Ausrichtung jeder Kontur wird dann zwischen CCW und CW gewechselt, wobei die äußersten Konturen CCW ausgerichtet sind.

Die Standardrichtung einer geschlossenen Kontur wird also durch ein Schneidprogramm für die additive FDM-Fertigung erzeugt stellt sich als CCW heraus, basierend auf den oben beschriebenen Kreuzprodukten (und basierend auf zusätzlichen Methoden, die in dem Papier beschrieben werden). Natürlich muss die Standard-Direktionalität einer PRINTED-Kontur nicht so sein, sie scheint ein Standard zu sein, der von der AM-Community übernommen wurde. Wenn ein Modell jedoch Konturen innerhalb von Konturen erzeugt, wird die willkürliche Richtwirkung dieser Konturen bestimmt und dann beginnend mit CCW von außen nach innen gewechselt.

Zur Bestätigung laut einem einfachen Kommentar im CURA-Quellcode:

  / *! * Äußere Polygone sollten gegen den Uhrzeigersinn sein, * innere Lochpolygone sollten im Uhrzeigersinn sein. * (Wenn das negative X links und das negative Y nach unten zeigt.) * /  
Würden Sie bitte die Quellcodezeile und die von Ihnen zitierten Seiten hinzufügen? Ansonsten perfekte Antwort
Trish
2019-01-15 04:52:38 UTC
view on stackexchange narkive permalink

Math

In der Mathematik gibt es eine Möglichkeit, einem Pfad zu folgen, und zwar normalerweise gegen den Uhrzeigersinn:

Angenommen, ein Umfangspfad eines Kreises mit $ r = 1 $ span> um $ (2,2) $ span>, dann kann der Pfad als $ f (p) = {{\ cos (p) +2} \ wähle {\ sin (p) +2}} $ span> - wobei $ p $ span> ist der Pfadparameter, in diesem Fall ein Winkel von 0 bis 360 °, und nur durch Erhöhen des Winkels wird die rechte Hand gedreht. Wenn wir denselben Pfad, aber einen anderen Ausgangspunkt hätten, eine Verschiebung um $ \ theta $ span>, würde der Pfad $ lauten f (p) = {{\ cos (p + \ theta) +2} \ wähle {\ sin (p + \ theta) +2}} $ span>. Mathematik ist also normalerweise gegen den Uhrzeigersinn .

Schneidern

Jeder Slicer wendet Mathematik an. Soweit ich das beurteilen kann, generiert jeder Slicer einen Begrenzungspfad, der immer auf die gleiche Weise ausgeführt wird, wenn er mit denselben Einstellungen geschnitten wird. Schauen Sie sich für einen Fall Folgendes an: 5 seconds of print sliced in cura Gegen den Uhrzeigersinn ab einer 7-Uhr-Position in diesem Fall. Andere Slicer oder andere Objekte auf dem Druckbett verwenden jedoch möglicherweise andere Engines, sodass dies nicht der Fall ist. Sie können im Uhrzeigersinn ausgeführt werden, da ein Pfad mit $ p = 0 ° \ bis 360 ° $ span> gelöst und $ p = 360 ° gelöst wird \ to0 ° $ span> führt dazu, dass genau derselbe Druck erzeugt wird, nur entgegengesetzt zur Druckrichtung des Umfangs.

Solange der Umfang eines Objekts als eine geschlossene Schleife gelöst wird, muss der Umfang nur eine vorgeschriebene Richtung haben. Diese Richtung ist im oder gegen den Uhrzeigersinn, je nachdem, wie der Slicer seine Berechnungen genau löst. Da beide Richtungen gleichermaßen gültig sind, ist es eine Entscheidung des Programmierers. Ein Programmierer kann sogar eine Lösung im oder gegen den Uhrzeigersinn vorschreiben, basierend auf einem beliebigen Faktor. Sie können die Layernummer (für wechselnde Richtungen) oder eine Benutzereinstellung oder sogar ein RNG verwenden, wenn sie möchten.

Andererseits kann die Bedienung und das Schreiben des Speichers auch zu Pfad und führen Die Mathematik sieht anders aus. Zwei Beispiele:

  • Lösen Sie den Pfad korrekt gegen den Uhrzeigersinn und legen Sie das Slicing in einen FILO-Speicher. Dies führt zu einer Operation im Uhrzeigersinn ab dem letzten gelösten Punkt.
  • Lösen gegen den Uhrzeigersinn und Speichern in FIFO gegen den Uhrzeigersinn laufen.

Fazit

Slicer für den 3D-Druck haben eine fest codierte Möglichkeit, die Richtung zu wählen, die bei der Erzeugung von G-Code befolgt wird. Alle Perimeter werden ausgehend von einem beliebigen Punkt in diese Richtung gedruckt. Am Ende ist es eine Wahl des Programmierers der Slicing-Engine, die bestimmt, ob der Pfad im mathematischen Sinne "vorwärts" oder "rückwärts" heruntergefahren werden soll.

Nachtrag

Slicer stammen aus der CAM-Programmierung. CAM - Computer Assisted Machining - berücksichtigt beim Lösen des für einen 3D-Drucker nicht relevanten Werkzeugwegs noch eines: die Richtung der Riffelung des Werkzeugs. Tatsächlich bestimmt dieser, in welche Richtung der Pfad einen besseren Schnitt ergibt, und das Ändern der Riffelung sollte die Pfadrichtung vertauschen, um die besten Ergebnisse sicherzustellen.

Die @Thetravellingfool-Pfadtheorie wird häufig in Vorlesungen und Lehrbüchern zur Analyse gelehrt. In meinem Fall war es die Klasse Mathematik für Physiker III. FIFO / FILO sind Datenspeicherinformatik (First In, First / Last Out). Cura kann ich nur genau beobachten.
@Trish, Der Nachtrag ist etwas irreführend. Die geriffelte "Richtung" hat nichts mit dem Weg zu tun. Das ist nur für die Spindel wichtig. Das Ändern des Pfades ist nur erforderlich, wenn Sie im Vergleich zum herkömmlichen Fräsen klettern. Dies bezieht sich auf die Qualität des Schnitts, nicht auf die Schnittfähigkeit.
@user77232 guter Kommentar, behoben.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...