Drawing Workbench/de: Difference between revisions
No edit summary |
No edit summary |
||
Line 23: | Line 23: | ||
Erstellen Sie ein kleines Beispiel-Teil |
Erstellen Sie ein kleines Beispiel-Teil |
||
Part.show(Part.makeBox(100,100,100).cut(Part.makeCylinder(80,100)).cut(Part.makeBox(90,40,100)).cut(Part.makeBox(20,85,100))) |
Part.show(Part.makeBox(100,100,100).cut(Part.makeCylinder(80,100)).cut(Part.makeBox(90,40,100)).cut(Part.makeBox(20,85,100))) |
||
<!-- |
|||
Direkte Projektion. Das G0 bedeutet harte Kante, |
Direkte Projektion. Das G0 bedeutet harte Kante, der G1 ist dauernde Tangente. |
||
Shape = App.ActiveDocument.Shape.Shape |
Shape = App.ActiveDocument.Shape.Shape |
||
[visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(Shape) |
[visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(Shape) |
||
print "visible edges:", len(visibleG0.Edges) |
print "visible edges:", len(visibleG0.Edges) |
||
print "hidden edges:", len(hiddenG0.Edges) |
print "hidden edges:", len(hiddenG0.Edges) |
||
Alles wird auf der Z-Ebene projiziert: |
|||
Everything was projected on the Z-plane: |
|||
print "Bnd Box shape: X=",Shape.BoundBox.XLength," Y=",Shape.BoundBox.YLength," Z=",Shape.BoundBox.ZLength |
print "Bnd Box shape: X=",Shape.BoundBox.XLength," Y=",Shape.BoundBox.YLength," Z=",Shape.BoundBox.ZLength |
||
print "Bnd Box project: X=",visibleG0.BoundBox.XLength," Y=",visibleG0.BoundBox.YLength," Z=",visibleG0.BoundBox.ZLength |
print "Bnd Box project: X=",visibleG0.BoundBox.XLength," Y=",visibleG0.BoundBox.YLength," Z=",visibleG0.BoundBox.ZLength |
||
Anderer Projektions-Vektor |
|||
Different projection vector |
|||
[visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(Shape,App.Vector(1,1,1)) |
[visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(Shape,App.Vector(1,1,1)) |
||
Projekt zu SVG |
|||
resultSVG = Drawing.projectToSVG(Shape,App.Vector(1,1,1)) |
resultSVG = Drawing.projectToSVG(Shape,App.Vector(1,1,1)) |
||
print resultSVG |
print resultSVG |
||
=== |
=== Der parametrische Weg === |
||
<!-- |
<!-- |
||
Create the body |
Create the body |
Revision as of 16:10, 13 June 2011
Das Zeichnungsmodul erlaubt Ihnen, Ihre 3D-Arbeit zu Papier zu bringen. Das bedeutet, gewählte Ansichten von Ihren Modellen in einem 2D-Fenster anzeigen und dieses Fenster in eine Zeichnung einzufügen, zum Beispiel in ein Blatt mit einer Umrandung, einen Titel und Ihrem Logo und druckt schließlich das Blatt. Das Zeichnungsmodul wird zurzeit noch bearbeitet und ist mehr oder weniger eine Technologievorschau!
GUI Werkzeuge
In diesem Bild sehen Sie die wichtigsten Konzepte des Zeichnungs-Modul. Das Dokument enthält einen Gestalt-Gegenstand (Schenkel), den wir zu einer Zeichnung herausziehen wollen. Deshalb wird eine "Seite" erstellt. Eine Seite wird durch eine Schablone, in diesem Fall die "A3_Landscape" Schablone realisiert. Die Vorlage ist ein SVG-Dokument, das Ihre üblichen Blatt-Rahmen und Ihr Logo beinhaltet, oder Ihre Präsentations-Standards erfüllt.
In diese Seite können wir eine oder mehrere Ansichten einfügen. Jede Ansicht hat eine Position auf der Seite (Eigenschaften X, Y), einen Skalen-Faktor (Eigene Skalierung) und zusätzliche Eigenschaften. Jedes Mal, wenn sich die Seite oder die Ansicht oder das referenzierte Objekt ändert, wird die Seite regeneriert, und die Seitenanzeige aktualisiert.
Scripting
Im Moment der Endbenutzer(GUI)-Arbeitsablauf sehr beschränkt, somit ist die Scripting-API interessanter. Hier folgen Beispiele darzu, wie man die Scripting-API des Zeichnungsmoduls verwendet.
Einfaches Beispiel
Zuallererst brauchen Sie das Part- und das Zeichnungsmodul:
import FreeCAD, Part, Drawing
Erstellen Sie ein kleines Beispiel-Teil
Part.show(Part.makeBox(100,100,100).cut(Part.makeCylinder(80,100)).cut(Part.makeBox(90,40,100)).cut(Part.makeBox(20,85,100)))
Direkte Projektion. Das G0 bedeutet harte Kante, der G1 ist dauernde Tangente.
Shape = App.ActiveDocument.Shape.Shape [visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(Shape) print "visible edges:", len(visibleG0.Edges) print "hidden edges:", len(hiddenG0.Edges)
Alles wird auf der Z-Ebene projiziert:
print "Bnd Box shape: X=",Shape.BoundBox.XLength," Y=",Shape.BoundBox.YLength," Z=",Shape.BoundBox.ZLength print "Bnd Box project: X=",visibleG0.BoundBox.XLength," Y=",visibleG0.BoundBox.YLength," Z=",visibleG0.BoundBox.ZLength
Anderer Projektions-Vektor
[visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(Shape,App.Vector(1,1,1))
Projekt zu SVG
resultSVG = Drawing.projectToSVG(Shape,App.Vector(1,1,1)) print resultSVG