OpenSCAD Module/de



Der OpenSCAD Arbeitsbereich ist in einem sehr frühen Entwicklungsstadium.

Er enthält einen importer der es erlaubt, die .csg Ausgabe von OpenSCAD in FreeCAD zu importieren.

This workbench contains functions to modify the CSG feature tree and repair models.



OpenSCAD Programmiersprache und Datei-Format
Die Programmiersprache OpenSCAD 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 wid jegliches parametrisches Verhalten verloren gehen - alle Variablennamen werden verworfen, Schleifen aufgelöst und mathematische Ausdrücke errechnet.

The OpenSCAD language allows the use of variables and loops. It allows you to specify sub-modules to reuse geometry and code. This high degree of flexibility makes parsing very complex. Currently the OpenSCAD Workbench cannot handle the OpenSCAD language natively. Instead, if OpenSCAD is installed, it can be used to convert the input to the CSG format, which is a subset of the OpenSCAD language, and can be used as the input to OpenSCAD for further processing. During conversion all parametric behavior is lost, meaning that all variable names are discarded, loops expanded, and mathematical expressions evaluated.

GUI Commands

 * [[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: Replace an object in the Feature Tree. Please select old, new and parent object
 * [[Image:OpenSCAD_RemoveSubtree.png|32px]] Remove Subtree: Removes the selected objects and all children that are not referenced from other objects.
 * [[Image:OpenSCAD_RefineShapeFeature.png|32px]] Refine Shape Feature: Create Refine Shape Feature.
 * [[Image:OpenSCAD_IncreaseTolerance.png|32px]] Increase Tolerance Feature: Increases tolerance of edges/faces/vertex of selected object(s).
 * [[Image:OpenSCAD_Edgestofaces.png|32px]] Convert Edges To Faces: Convert edges to faces. Useful to prepare imported DXF geometry for extrusion.
 * [[Image:OpenSCAD_ExpandPlacements.png|32px]] Expand Placements: Expand all placements downwards the FeatureTree.
 * [[Image:OpenSCAD_ExplodeGroup.png|32px]] Explode Group: Explodes fused part primitives.
 * [[Image:OpenSCAD_AddOpenSCADElement.png|32px]] Add OpenSCAD Element: Add an OpenSCAD element by entering OpenSCAD code into the task panel.
 * [[Image:OpenSCAD_MeshBoolean.png|32px]] Mesh Boolean: Creates new mesh object by boolean operation from shapes.
 * [[Image:OpenSCAD_Hull.png|32px]] Hull: Apllies a hull to selected shapes.
 * [[Image:OpenSCAD_Minkowski.png|32px]] Minkowski: Applies a minkowski sum to selected shapes.

Einstellungen

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


 * [[Image:OpenSCAD_ColorCodeShape.png|32px]] Color Code Shape: Change the color of selected or all shapes based on their validity.
 * [[Image:OpenSCAD_ReplaceObject.png|32px]] Replace Object: Replace an object in the feature tree.
 * [[Image:OpenSCAD_RemoveSubtree.png|32px]] Remove Subtree: Removes the selected objects and all children that are not referenced from other objects.
 * [[Image:OpenSCAD_RefineShapeFeature.png|32px]] Refine Shape Feature: Create Refine Shape Feature.
 * [[Image:OpenSCAD_IncreaseTolerance.png|32px]] Increase Tolerance Feature: Increases tolerance of edges/faces/vertex of selected object(s).
 * [[Image:OpenSCAD_Edgestofaces.png|32px]] Convert Edges To Faces: Convert edges to faces. Useful to prepare imported DXF geometry for extrusion.
 * [[Image:OpenSCAD_ExpandPlacements.png|32px]] Expand Placements: Expand all placements downwards the FeatureTree.
 * [[Image:OpenSCAD_ExplodeGroup.png|32px]] Explode Group: Explodes fused part primitives.
 * [[Image:OpenSCAD_AddOpenSCADElement.png|32px]] Add OpenSCAD Element: Add an OpenSCAD element by entering OpenSCAD code into the task panel.
 * [[Image:OpenSCAD_MeshBoolean.png|32px]] Mesh Boolean: Creates new mesh object by boolean operation from shapes.
 * [[Image:OpenSCAD_Hull.png|32px]] Hull: Apllies a hull to selected shapes.
 * [[Image:OpenSCAD_Minkowski.png|32px]] Minkowski: Applies a minkowski sum to selected shapes.

Preferences

 * [[Image:Std_DlgParameter.png|32px]] Preferences: preferences available for the OpenSCAD tools.

Beschränkungen
OpenSCAD erstellt CSG (constructive solid geometry) genauso wie es Netz-Körper importiert und 2D Geometrie extrudiert (von 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
When DXF importiert wird, sollte die "Draft-Präzision" auf einen sehr sensiblen Wert eingestellt werden, um so die Erkennung von von verbundenen Ecken zu erleichtern.

Wenn FreeCAD beim Import von von CSG abstürzt, wird dringend empfohlen, "Modell automatisch nach Boolscher Operation überprüfen" im Menü "Bearbeiten → Einstellungen → Part Design → Allgemein" zu aktivieren.

Tutorials

 * Import OpenSCAD code

Links

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