OpenSCAD Module/de

Einleitung
Der OpenSCAD-Arbeitsbereich ist gedacht, um Interoperabilität mit der Open-Source-Software OpenSCAD zu bieten.

The OpenSCAD Workbench is intended to offer interoperability with the open source software OpenSCAD. This program is not distributed as part of FreeCAD, but should be installed to make full use of this workbench.

Er enthält eine Importfunktion, die es erlaubt, .csg-Dateien aus OpenSCAD in FreeCAD zu öffnen und eine Export-Funktion, um einen CSG-basierten Baum auszugeben. Geometrien, die nicht auf CSG-Operationen basieren, werden als Netz exportiert.

Dieser Arbeitsbereich enthält Funktionen, um den CSG-Eigenschaftsbaum zu ändern und Modelle zu reparieren. Er enthält außerdem allgemein nutzbare Werkzeuge, die keine OpenSCAD-Installation erfordern; sie können in Verbindung mit anderen Arbeitsbereichen verwendet werden.



Dependencies
In FreeCAD 0.19, the Ply (Python-Lex-Yacc) module, which is used to import CSG files, was removed from the FreeCAD source code, as it is a third party library not developed by FreeCAD. As a result, you now need to install Ply before using the OpenSCAD Workbench. When using a pre-packaged, stable version of FreeCAD this dependency should be installed automatically in all platforms; in other cases, for example, when compiling from source, you may have to install it from an online repository.

In Debian/Ubuntu based systems this is done like this.

The general installation in all platforms can be done from the Python package index.

OpenSCAD Programmiersprache und Datei-Format
Die OpenSCAD-Programmiersprache erlaubt die Benutzung von Variablen und Schleifen. Sie erlaubt die Deklarierung von Sub-Modulen, um Geometrie und Code wieder zu verwenden. Dieser hohe Grad an Flexibilität macht parsing (Übersetzen) sehr kompliziert. Im Moment kann der OpenSCAD-Arbeitsbereich in FreeCAD die OpenSCAD-Programmiersprache nicht direkt verarbeiten. Andernfalls, wenn OpenSCAD installiert ist, kann es dazu verwendet werden, die Eingabe in ein Ausgabeformat namens "CSG" zu verwandeln. Dies ist ein Unterbereich der OpenSCAD-Programmiersprache und kann als Eingabe für OpenSCAD zur weiteren Bearbeitung verwendet werden. Während der Umwandlung wird jegliches parametrisches Verhalten verlorengehen - alle Variablennamen werden verworfen, Schleifen aufgelöst und mathematische Ausdrücke errechnet.

Werkzeuge

 * [[Image:OpenSCAD_ColorCodeShape.png|32px]] Color Code Shape: Ändert die Farbe von ausgewählten oder allen Objekten basierend auf ihrer Gültigkeit
 * [[Image:OpenSCAD_ReplaceObject.png|32px]] Replace Object: Ersetzt ein Objekt in der Baumstruktur. Bitte wähle altes, neues und Elternobjekt
 * [[Image:OpenSCAD_RemoveSubtree.png|32px]] Remove Subtree: Entfernt die ausgewählten Objekts und alle Kinder, die nicht von anderen Objekten referenziert werden.
 * [[Image:OpenSCAD_RefineShapeFeature.png|32px]] Refine Shape Feature: Verfeinert Form-Merkmale.
 * [[Image:OpenSCAD_IncreaseTolerance.png|32px]] Increase Tolerance Feature: Erhöht die Toleranz von Kanten/Flächen/Eckpunkten bei ausgewählten Objekten.
 * [[Image:OpenSCAD_Edgestofaces.png|32px]] Convert Edges To Faces: Wandelt Kanten in Flächen um. Nützlich zur Vorbereitung von importierter DXF-Geometrie zur Extrusion.
 * [[Image:OpenSCAD_ExpandPlacements.png|32px]] Expand Placements: Erweitert alle Platzierungen im Feature-Baum abwärts.
 * [[Image:OpenSCAD_ExplodeGroup.png|32px]] Explode Group: Löst eine Bindung oder einen Teilverbund in die einzelnen Teile auf.
 * [[Image:OpenSCAD_AddOpenSCADElement.png|32px]] Add OpenSCAD Element: Fügt durch Eingabe von OpenSCAD-Code in das Aufgaben-Panel ein OpenSCAD-Element hinzu.
 * [[Image:OpenSCAD_MeshBoolean.png|32px]] Mesh Boolean: Erzeugt mit boolescher Opearation aus Formen ein neues Netz-Objekt.
 * [[Image:OpenSCAD_Hull.png|32px]] Hull: Wendet eine Hülle auf selektierte Formen an.
 * [[Image:OpenSCAD_Minkowski.png|32px]] Minkowski: Wendet eine Minkowski-Summe auf selektierte Formen an.

Einstellungen

 * [[Image:Std_DlgParameter.png|32px]] Einstellungen...: Einstellungen in den OpenSCAD Tools.

Beschränkungen
OpenSCAD erstellt CSG (constructive solid geometry) genauso wie es Netz-Körper importiert und 2D-Geometrie extrudiert (aus DXF-Dateien). FreeCAD erlaubt es, CSG auch mit Grundkörpern zu erstellen. Der Geometriekern von FreeCAD (OCCT) arbeitet mit einer Umgrenzungsdarstellung. Deshalb sollte die Umwandlung von CSG nach BREP in der Theorie möglich sein, während die Umwandlung von BREP nach CSG im Allgemeinen nicht funktionieren dürfte.

OpenSCAD nutzt intern Netz-Körper. Manche Operationen, die bei Netz-Körpern nützlich sind, sind bei BREP-Körpern nicht sinnvoll und können daher nicht voll unterstützt werden. Unter diesen sind konvexe Hülle, Minkowski-Summe, glide und subdiv. Im Moment benutzen wir die OpenSCAD-Ausführungsdatei, um Hüllen und Minkowski-Operationen durchzuführen und die Ergebnisse zu importieren. Das bedeutet, das die beteiligte Geometrie trianguliert (temporär in Netz-Körper verwandelt) wird. In OpenSCAD wird nicht-einheitliches Skalieren oft benutzt, das keinerlei Probleme bei der Benutzung mit Netz-Köpern macht. In unserem Geometriekern werden geometrische Grundelemente (Linien, Kreissegmente) in BSplines konvertiert, bevor man solche Operationen durchführt. Diese BSplines sind bekannt dafür, dass Sie später in bool'schen Operationen Fehler verursachen. Eine automatisierte Lösung ist im Moment nicht verfügbar. Bitte posten Sie im Fourm, wenn Sie solche Fehler entdecken. Oft können solche Problem dadurch vermieden werden, dass man kleine Teile des Modelles anders aufbaut. Ein Zylindersegment kann ersetzt werden durch ein extrudiertes Stück einer Ellipse.

Hinweise
Wenn DXF importiert wird, sollte die "Draft-Präzision" auf einen sinnvollen Wert eingestellt werden, um so die Erkennung von verbundenen Kanten zu erleichtern.

Wenn FreeCAD beim Import von CSG abstürzt, wird dringend empfohlen, "Modell automatisch nach Boolescher Operation überprüfen" im Menü zu aktivieren.

Tutorials

 * Import OpenSCAD code

Links

 * Open tickets tagged "Openscad" on the FreeCAD bugtracker
 * Dinge, die mit "Openscad" auf Thingiverse gekennzeichnet sind