TechDraw API/de: Difference between revisions
(Created page with "gibt KosmetikKnoten mit Namen zurück (Vertex6). In Auswahlen verwendet.<br> cv = dvp.getCosmeticVertexBySelection(Zeichenfolgennamen)") |
No edit summary |
||
(58 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
{{VeryImportantMessage|(November 2018) Diese Information kann unvollständig und veraltet sein. Für die |
{{VeryImportantMessage|(November 2018) Diese Information kann unvollständig und veraltet sein. Für die neueste API siehe die [https://www.freecadweb.org/api autogenerierte API-Dokumentation].}} |
||
Diese Funktionen sind Teil des [[ |
Diese Funktionen sind Teil des Arbeitsbereichs [[TechDraw_Workbench/de|TechDraw]] und können in [[Macros/de|Makros]] und von der [[Python/de|Python]]-Konsole aus verwendet werden, sobald das {{incode|TechDraw}}-Modul importiert wurde. |
||
Gute Beispiele für grundlegendes TechDraw Skripten findest Du in den [https://github.com/FreeCAD/FreeCAD/tree/master/src/Mod/TechDraw/TDTest unit test scripts]. |
Gute Beispiele für grundlegendes TechDraw Skripten findest Du in den [https://github.com/FreeCAD/FreeCAD/tree/master/src/Mod/TechDraw/TDTest unit test scripts]. |
||
Line 8: | Line 8: | ||
Beispiel: |
Beispiel: |
||
{{Code|code= |
{{Code|code= |
||
import FreeCAD |
import FreeCAD |
||
Line 21: | Line 22: | ||
}} |
}} |
||
{{APIFunction|EdgeWalker|listOfEdges, [bool]|Erzeugt |
{{APIFunction|EdgeWalker|listOfEdges, [bool]|Erzeugt Kantenzüge aus Kanten in der Eingabe durch planare Graphenquerung. Wahlweise den äußeren Draht (OuterWire) ausschließen, indem der optionale Parameter auf false gesetzt wird.|Liste der Kantenzüge sortiert nach Größe (absteigend)}} |
||
{{APIFunction|findOuterWire|listOfEdges|Findet den |
{{APIFunction|findOuterWire|listOfEdges|Findet den äußeren Draht (OuterWire) (den größten) einer Liste von Kanten (die einen planaren Graphen bilden).|Outer wire}} |
||
{{APIFunction|findShapeOutline|TopoShape, Maßstab, Richtung| |
{{APIFunction|findShapeOutline|TopoShape, Maßstab, Richtung|Form in Richtung projizieren und den äußeren Draht des Ergebnisses finden.|Outline wire}} |
||
{{APIFunction|viewPartAsDxf|DrawViewPart|Return the edges of a DrawViewPart in Dxf format.|String}} |
{{APIFunction|viewPartAsDxf|DrawViewPart|Return the edges of a DrawViewPart in Dxf format.|String}} |
||
Beispiel: |
|||
Example: |
|||
{{Code|code= |
{{Code|code= |
||
fileSpecDxf = "fcOut.dxf" |
fileSpecDxf = "fcOut.dxf" |
||
Line 39: | Line 41: | ||
{{APIFunction|viewPartAsSvg|DrawViewPart|Return the edges of a DrawViewPart in Svg format.|String}} |
{{APIFunction|viewPartAsSvg|DrawViewPart|Return the edges of a DrawViewPart in Svg format.|String}} |
||
Beispiel: |
|||
Example: |
|||
{{Code|code= |
{{Code|code= |
||
fileSpecSvg = "fcOut.svg" |
fileSpecSvg = "fcOut.svg" |
||
Line 56: | Line 59: | ||
{{APIFunction|writeDXFView|DrawViewPart, FileName|Save the DrawViewPart in Dxf.|File}} |
{{APIFunction|writeDXFView|DrawViewPart, FileName|Save the DrawViewPart in Dxf.|File}} |
||
Beispiel: |
|||
Example: |
|||
{{Code|code= |
{{Code|code= |
||
import TechDraw |
import TechDraw |
||
Line 63: | Line 67: | ||
{{APIFunction|writeDXFPage|DrawPage, FileName|Save the DrawPage in Dxf.|File}} |
{{APIFunction|writeDXFPage|DrawPage, FileName|Save the DrawPage in Dxf.|File}} |
||
Beispiel: |
|||
Example: |
|||
{{Code|code= |
{{Code|code= |
||
import TechDraw |
import TechDraw |
||
Line 69: | Line 74: | ||
}} |
}} |
||
<span id="DrawViewPart_Cosmetics"></span> |
|||
===ZeichneAnsichtPart Kosmetik=== |
|||
⚫ | |||
<span id="CosmeticVertex_(CV)_routines_accessible_from_Python"></span> |
|||
====CosmeticVertex (CV) Routinen, die von Python aus zugänglich sind==== |
|||
====Hilfspunkt- (CosmeticVertex, CV) Routinen, auf die mit Python zugegriffen werden kann==== |
|||
dvp = App.ActiveDocument.View # |
dvp = App.ActiveDocument.View #Hilfspunkte gehören zu Ansichten.<br> |
||
Fügt einen Hilfspunkt bei p1 (Ansichtskoordinaten) hinzu. Gibt einen eindeutigen Tag zurück.<br> |
|||
tag = dvp.makeCosmeticVertex(vector p1) |
tag = dvp.makeCosmeticVertex(vector p1) |
||
fFügt einen Hilfspunkt bei p1 (3D-Modellkoordinaten) hinzu. Gibt ein eindeutiges Tag zurück.<br> |
|||
tag = dvp.makeCosmeticVertex3d(vector p1) |
tag = dvp.makeCosmeticVertex3d(vector p1) |
||
Gibt einen Hilfspunkt mit eindeutiger ID zurück.<br> |
|||
cv = dvp.getCosmeticVertex(string id) |
cv = dvp.getCosmeticVertex(string id) |
||
Gibt einen Hilfspunkt mit Namen zurück (Vertex6). In Auswahlen verwendet.<br> |
|||
cv = dvp.getCosmeticVertexBySelection(Zeichenfolgennamen) |
cv = dvp.getCosmeticVertexBySelection(Zeichenfolgennamen) |
||
Entfernt einen Hilfspunkt aus der Ansicht. Gibt None zurück.<br> |
|||
remove CosmeticVertex from View. Returns None.<br> |
|||
dvp.removeCosmeticVertex(object cv) |
dvp.removeCosmeticVertex(object cv) |
||
Entfernt alle Hilfspunkte aus der Ansicht. Gibt None zurück.<br> |
|||
dvp.clearCosmeticVertices() |
dvp.clearCosmeticVertices() |
||
KosmetikAnsicht Merkmale<br> |
|||
CosmeticView attributes<br> |
|||
Tag: |
Tag: eindeutiger Bezeichner. Zeichenfolge.<br> |
||
Punkt: Standort innerhalb der Ansicht. Vektor.<br> |
|||
<!--T:28--> |
|||
******************************************************************************** |
******************************************************************************** |
||
{{Code|code= |
{{Code|code= |
||
Line 102: | Line 110: | ||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||
<!--T:29--> |
|||
# Py CosmeticVertex demo |
# Py CosmeticVertex demo |
||
import FreeCAD |
import FreeCAD |
||
import TechDraw |
import TechDraw |
||
<!--T:30--> |
|||
v = App.ActiveDocument.View |
v = App.ActiveDocument.View |
||
p = App.Vector(-3.0, -3.0, 0.0) |
p = App.Vector(-3.0, -3.0, 0.0) |
||
<!--T:31--> |
|||
#make CV |
#make CV |
||
tag = v.makeCosmeticVertex(p) |
tag = v.makeCosmeticVertex(p) |
||
print("t: {}".format(tag)) |
print("t: {}".format(tag)) |
||
<!--T:32--> |
|||
#retrieve CV |
#retrieve CV |
||
cv = v.getCosmeticVertex(tag) |
cv = v.getCosmeticVertex(tag) |
||
Line 119: | Line 131: | ||
<!--T:34--> |
|||
cv2 = v.getCosmeticVertexBySelection("Vertex4") |
cv2 = v.getCosmeticVertexBySelection("Vertex4") |
||
print("New Point: {}".format(cv2.Point)) |
print("New Point: {}".format(cv2.Point)) |
||
<!--T:35--> |
|||
#make CV from 3d |
#make CV from 3d |
||
p3d = App.Vector(2.0, 2.0, 2.0) |
p3d = App.Vector(2.0, 2.0, 2.0) |
||
Line 130: | Line 144: | ||
}} |
}} |
||
<span id="CosmeticEdge_(CE)_routines_accessible_from_Python"></span> |
|||
====CosmeticEdge (CE) routines accessible from Python==== |
|||
====Hilfslinie- (CosmeticEdge, CE) Routinen, auf die mit Python zugegriffen werden kann==== |
|||
dvp = App.ActiveDocument.View # |
dvp = App.ActiveDocument.View #Hilfslinien gehören zu Ansichten.<br> |
||
Erzeuge ein CosmeticEdge von p1 nach p2(Ansicht Koordinaten). Gibt eine Kennung zurück.<br> |
|||
tag = dvp.makeCosmeticLine(p1, p2) |
tag = dvp.makeCosmeticLine(p1, p2) |
||
Erzeuge ein CosmeticEdge bei center mit dem Radius radius (Ansicht Koordinaten). Gibt eine Kennung zurück.<br> |
|||
tag = dvp.makeCosmeticCircle(center, radius) |
tag = dvp.makeCosmeticCircle(center, radius) |
||
Erzeuge ein CosmeticEdge bei center mit dem Radius radius (Ansicht Koordinaten) vom Startwinkel start zum Endwinkel end. Gibt eine Kennung zurück.<br> |
|||
tag = dvp.makeCosmeticCircleArc(center, radius, start, end) |
tag = dvp.makeCosmeticCircleArc(center, radius, start, end) |
||
Gibt eine Hilfslinie mit eindeutiger ID zurück.<br> |
|||
returns CosmeticEdge with unique id.<br> |
|||
ce = dvp.getCosmeticEdge(id) |
ce = dvp.getCosmeticEdge(id) |
||
Gibt eine Hilfslinie mit dem Namen ('Edge25') zurück. Wird in Auswahlen verwendet.<br> |
|||
ce = dvp.getCosmeticEdgeBySelection( |
ce = dvp.getCosmeticEdgeBySelection('Edge25') |
||
Löscht eine Hilfslinie ce aus der Ansicht. Gibt None zurück.<br> |
|||
dvp.removeCosmeticEdge(ce) |
dvp.removeCosmeticEdge(ce) |
||
Löscht alle Hilfslinien aus der Ansicht. Gibt None zurück.<br> |
|||
dvp.clearCosmeticEdges() |
dvp.clearCosmeticEdges() |
||
CosmeticEdge |
CosmeticEdge Attribute<br> |
||
Tag: |
Tag: eindeutige Kennung. String.<br> |
||
Format: |
Format: Darstellung Attribute (Stil, Farbe, Linienbreite, Durchsichtigkeit). Tuple.<br> |
||
<!--T:47--> |
|||
******************************************************************************** |
******************************************************************************** |
||
{{Code|code= |
{{Code|code= |
||
Line 164: | Line 180: | ||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||
<!--T:48--> |
|||
# Py CosmeticEdge demo |
# Py CosmeticEdge demo |
||
import FreeCAD |
import FreeCAD |
||
import TechDraw |
import TechDraw |
||
<!--T:49--> |
|||
#points |
#points |
||
org = App.Vector(0.0, 0.0, 0.0) |
org = App.Vector(0.0, 0.0, 0.0) |
||
Line 179: | Line 197: | ||
bottomLeft = FreeCAD.Vector(-5.0, -5.0, 0.0) |
bottomLeft = FreeCAD.Vector(-5.0, -5.0, 0.0) |
||
<!--T:50--> |
|||
#angles |
#angles |
||
arcStart = -45 |
arcStart = -45 |
||
arcEnd = 45 |
arcEnd = 45 |
||
<!--T:51--> |
|||
#styles |
#styles |
||
solid = 1 |
solid = 1 |
||
Line 197: | Line 217: | ||
shadow = (0.1, 0.1, 0.1, 0.0) |
shadow = (0.1, 0.1, 0.1, 0.0) |
||
<!--T:52--> |
|||
radius = 5.0 |
radius = 5.0 |
||
style = dashed |
style = dashed |
||
weight = weight75 |
weight = weight75 |
||
<!--T:53--> |
|||
dvp = App.ActiveDocument.View |
dvp = App.ActiveDocument.View |
||
<!--T:54--> |
|||
print(dvp) |
print(dvp) |
||
<!--T:55--> |
|||
print("making line") |
print("making line") |
||
tag = dvp.makeCosmeticLine(midTop,midBot,style, weight, pyBlue) |
tag = dvp.makeCosmeticLine(midTop,midBot,style, weight, pyBlue) |
||
Line 210: | Line 234: | ||
print("line tag: {}".format(tag)) |
print("line tag: {}".format(tag)) |
||
<!--T:56--> |
|||
print("making diagonal") |
print("making diagonal") |
||
dvp.makeCosmeticLine(bottomLeft,topRight,solid, weight, pyGreen) |
dvp.makeCosmeticLine(bottomLeft,topRight,solid, weight, pyGreen) |
||
<!--T:57--> |
|||
print("making circle") |
print("making circle") |
||
tag2 = dvp.makeCosmeticCircle(center, radius, style, weight, pyRed) |
tag2 = dvp.makeCosmeticCircle(center, radius, style, weight, pyRed) |
||
ce2 = dvp.getCosmeticEdge(tag2) |
ce2 = dvp.getCosmeticEdge(tag2) |
||
<!--T:58--> |
|||
print("making circleArc") |
print("making circleArc") |
||
dvp.makeCosmeticCircleArc(arcCenter, radius, arcStart, arcEnd, style, weight, shadow) |
dvp.makeCosmeticCircleArc(arcCenter, radius, arcStart, arcEnd, style, weight, shadow) |
||
<!--T:59--> |
|||
#replace |
#replace |
||
print("making new format") |
print("making new format") |
||
Line 226: | Line 254: | ||
ce.Format = newFormat |
ce.Format = newFormat |
||
<!--T:61--> |
|||
print("removing CE with tag: {}".format(tag2)) |
print("removing CE with tag: {}".format(tag2)) |
||
dvp.removeCosmeticEdge(tag2) |
dvp.removeCosmeticEdge(tag2) |
||
<!--T:62--> |
|||
print("finished") |
print("finished") |
||
}} |
}} |
||
<span id="CenterLine_(CL)_routines_accessible_from_Python"></span> |
|||
====CenterLine (CL) routines accessible from Python==== |
|||
====Mittellinie- (CenterLine, CL) Routinen, auf die mit Python zugegriffen werden kann==== |
|||
Erstellt eine neue Mittellinie<br> |
|||
tag = dvp.makeCenterLine(subObjs, mode)<br> |
tag = dvp.makeCenterLine(subObjs, mode)<br> |
||
Abrufen einer Mittellinie mit der eindeutigen Kennung tag.<br> |
|||
retrieve CenterLine with unique tag.<br> |
|||
cl = dvp.getCenterLine(tag) |
cl = dvp.getCenterLine(tag) |
||
Abrufen einer Mittellinie mit ihrem Unterobjekt-Namen. Wird in Auswahlen verwendet.<br> |
|||
retrieve CenterLine by subobject name. Used in selection.<br> |
|||
cl = dvp.getCenterLine("Edge5") |
cl = dvp.getCenterLine("Edge5") |
||
Löscht eine Mittellinie cl aus der Ansicht. Gibt None zurück.<br> |
|||
dvp.removeCenterLine(cl) |
dvp.removeCenterLine(cl) |
||
CenterLine |
CenterLine Attribute<br> |
||
Tag: |
Tag: eindeutige Kennung. String. ReadOnly.<br> |
||
Type: 0 - |
Type: 0 - Fläche, 1 - 2 Linie, 2 - 2 Punkt. Integer. ReadOnly.<br> |
||
Mode: 0 - |
Mode: 0 - Vertikal, 1 - Horizontal, 2 - Verbunden. Integer.<br> |
||
Format: |
Format: Sichtbarkeits Attribute (Stil, Farbe, Linienbreite, Durchsichtigkeit). Tuple.<br> |
||
HorizShift: |
HorizShift: links/rechts Abstand. Float.<br> |
||
VertShift: |
VertShift: hoch/tief Abstand. Float.<br> |
||
Rotation: |
Rotation: Verdrehwinkel in Grad. Float.<br> |
||
Extension: |
Extension: Zusätzliche Länge die angefügt wird. Float.<br> |
||
Flip: |
Flip: Vertauschen der Reihenfolge der Punkte bei 2 Punkt Mittellinie. Boolean.<br> |
||
Edges: |
Edges: Namen der Quelllinien. List of string.<br> |
||
Faces: |
Faces: Namen der Quellflächen. List of string.<br> |
||
Points: |
Points: Namen der Quellpunkte (Vertices). List of string.<br> |
||
<!--T:70--> |
|||
******************************************************************************** |
******************************************************************************** |
||
{{Code|code= |
{{Code|code= |
||
Line 265: | Line 297: | ||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||
<!--T:71--> |
|||
# Py CenterLine demo |
# Py CenterLine demo |
||
import FreeCAD |
import FreeCAD |
||
Line 270: | Line 303: | ||
import TechDraw |
import TechDraw |
||
<!--T:72--> |
|||
start = FreeCAD.Vector (1.0, 5.0, 0.0) # middle, top |
start = FreeCAD.Vector (1.0, 5.0, 0.0) # middle, top |
||
end = FreeCAD.Vector(1.0, -5.0, 0.0) # middle, bottom |
end = FreeCAD.Vector(1.0, -5.0, 0.0) # middle, bottom |
||
Line 296: | Line 330: | ||
flip = False; |
flip = False; |
||
<!--T:73--> |
|||
dvp = App.ActiveDocument.View |
dvp = App.ActiveDocument.View |
||
<!--T:74--> |
|||
print("making face CenterLine") |
print("making face CenterLine") |
||
tag = dvp.makeCenterLine(faceNames,vMode) |
tag = dvp.makeCenterLine(faceNames,vMode) |
||
Line 303: | Line 339: | ||
print("cline tag: {}".format(tag)) |
print("cline tag: {}".format(tag)) |
||
<!--T:75--> |
|||
#replace |
#replace |
||
print("making new format") |
print("making new format") |
||
Line 310: | Line 347: | ||
cline.Extension = 10.0 |
cline.Extension = 10.0 |
||
<!--T:77--> |
|||
print("making edgeCenterLine") |
print("making edgeCenterLine") |
||
cline2 = dvp.makeCenterLine(edgeNames,hMode) |
cline2 = dvp.makeCenterLine(edgeNames,hMode) |
||
<!--T:78--> |
|||
print("making vertexCenterLine") |
print("making vertexCenterLine") |
||
cline3 = dvp.makeCenterLine(vertNames,aMode) |
cline3 = dvp.makeCenterLine(vertNames,aMode) |
||
<!--T:79--> |
|||
print("finished") |
print("finished") |
||
}} |
}} |
||
<span id="DrawViewPart_Geometry"></span> |
|||
⚫ | |||
===DrawViewPart-Geometrie=== |
|||
[topoShapeEdge] = dvp.getVisibleEdges() |
[topoShapeEdge] = dvp.getVisibleEdges() |
||
Line 330: | Line 372: | ||
topoShapeVertex = dvp.getVertexBySelection("Vertex1") |
topoShapeVertex = dvp.getVertexBySelection("Vertex1") |
||
Zeichnet die Graphik für diese Ansicht neu.<br> |
|||
dvp.requestPaint() Redraw the graphic for this View. |
|||
dvp.requestPaint() |
|||
{{TechDraw Tools navi{{#translation:}}}} |
{{TechDraw Tools navi{{#translation:}}}} |
Latest revision as of 17:14, 20 August 2023
Diese Funktionen sind Teil des Arbeitsbereichs TechDraw und können in Makros und von der Python-Konsole aus verwendet werden, sobald das TechDraw
-Modul importiert wurde.
Gute Beispiele für grundlegendes TechDraw Skripten findest Du in den unit test scripts.
Siehe die TechDrawGui API für weitere Funktionen.
Beispiel:
import FreeCAD
import TechDraw
page = FreeCAD.ActiveDocument.addObject('TechDraw::DrawPage', 'Page')
FreeCAD.ActiveDocument.addObject('TechDraw::DrawSVGTemplate', 'Template')
FreeCAD.ActiveDocument.Template.Template = templateFileSpec
FreeCAD.ActiveDocument.Page.Template = FreeCAD.ActiveDocument.Template
page.ViewObject.show()
view = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewPart', 'View')
rc = page.addView(view)
Description: Erzeugt Kantenzüge aus Kanten in der Eingabe durch planare Graphenquerung. Wahlweise den äußeren Draht (OuterWire) ausschließen, indem der optionale Parameter auf false gesetzt wird.
Returns: Liste der Kantenzüge sortiert nach Größe (absteigend)
Description: Findet den äußeren Draht (OuterWire) (den größten) einer Liste von Kanten (die einen planaren Graphen bilden).
Returns: Outer wire
Description: Form in Richtung projizieren und den äußeren Draht des Ergebnisses finden.
Returns: Outline wire
Description: Return the edges of a DrawViewPart in Dxf format.
Returns: String
Beispiel:
fileSpecDxf = "fcOut.dxf"
v = App.ActiveDocument.View
s = TechDraw.viewPartAsDxf(v)
dxfEnd = "0\nEOF\n"
dxfFile = open(fileSpecDxf, "w")
dxfFile.write(s)
dxfFile.write(dxfEnd)
dxfFile.close()
Description: Return the edges of a DrawViewPart in Svg format.
Returns: String
Beispiel:
fileSpecSvg = "fcOut.svg"
v = App.ActiveDocument.View
s = TechDraw.viewPartAsSvg(v)
head = '<svg\n' + \
' xmlns="http://www.w3.org/2000/svg" version="1.1" \n' + \
' xmlns:freecad="http://www.freecadweb.org/wiki/index.php?title=Svg_Namespace">\n'
tail = '\n</svg>'
svgFile = open(fileSpecSvg, "w")
svgFile.write(head)
svgFile.write(s)
svgFile.write(tail)
svgFile.close()
Beispiel:
import TechDraw
TechDraw.writeDXFView(myPart,myFileName)
Beispiel:
import TechDraw
TechDraw.writeDXFPage(myPage,myFileName)
DrawViewPart-Hilfselemente
Hilfspunkt- (CosmeticVertex, CV) Routinen, auf die mit Python zugegriffen werden kann
dvp = App.ActiveDocument.View #Hilfspunkte gehören zu Ansichten.
Fügt einen Hilfspunkt bei p1 (Ansichtskoordinaten) hinzu. Gibt einen eindeutigen Tag zurück.
tag = dvp.makeCosmeticVertex(vector p1)
fFügt einen Hilfspunkt bei p1 (3D-Modellkoordinaten) hinzu. Gibt ein eindeutiges Tag zurück.
tag = dvp.makeCosmeticVertex3d(vector p1)
Gibt einen Hilfspunkt mit eindeutiger ID zurück.
cv = dvp.getCosmeticVertex(string id)
Gibt einen Hilfspunkt mit Namen zurück (Vertex6). In Auswahlen verwendet.
cv = dvp.getCosmeticVertexBySelection(Zeichenfolgennamen)
Entfernt einen Hilfspunkt aus der Ansicht. Gibt None zurück.
dvp.removeCosmeticVertex(object cv)
Entfernt alle Hilfspunkte aus der Ansicht. Gibt None zurück.
dvp.clearCosmeticVertices()
KosmetikAnsicht Merkmale
Tag: eindeutiger Bezeichner. Zeichenfolge.
Punkt: Standort innerhalb der Ansicht. Vektor.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Py CosmeticVertex demo
import FreeCAD
import TechDraw
v = App.ActiveDocument.View
p = App.Vector(-3.0, -3.0, 0.0)
#make CV
tag = v.makeCosmeticVertex(p)
print("t: {}".format(tag))
#retrieve CV
cv = v.getCosmeticVertex(tag)
print("cv: {}".format(cv))
print("Tag: {}".format(cv.Tag))
cv2 = v.getCosmeticVertexBySelection("Vertex4")
print("New Point: {}".format(cv2.Point))
#make CV from 3d
p3d = App.Vector(2.0, 2.0, 2.0)
print("3d point in: {}".format(p3d))
tag3d = v.makeCosmeticVertex3d(p3d)
cv3 = v.getCosmeticVertex(tag3d)
print("3d point out: {}".format(cv3.Point))
Hilfslinie- (CosmeticEdge, CE) Routinen, auf die mit Python zugegriffen werden kann
dvp = App.ActiveDocument.View #Hilfslinien gehören zu Ansichten.
Erzeuge ein CosmeticEdge von p1 nach p2(Ansicht Koordinaten). Gibt eine Kennung zurück.
tag = dvp.makeCosmeticLine(p1, p2)
Erzeuge ein CosmeticEdge bei center mit dem Radius radius (Ansicht Koordinaten). Gibt eine Kennung zurück.
tag = dvp.makeCosmeticCircle(center, radius)
Erzeuge ein CosmeticEdge bei center mit dem Radius radius (Ansicht Koordinaten) vom Startwinkel start zum Endwinkel end. Gibt eine Kennung zurück.
tag = dvp.makeCosmeticCircleArc(center, radius, start, end)
Gibt eine Hilfslinie mit eindeutiger ID zurück.
ce = dvp.getCosmeticEdge(id)
Gibt eine Hilfslinie mit dem Namen ('Edge25') zurück. Wird in Auswahlen verwendet.
ce = dvp.getCosmeticEdgeBySelection('Edge25')
Löscht eine Hilfslinie ce aus der Ansicht. Gibt None zurück.
dvp.removeCosmeticEdge(ce)
Löscht alle Hilfslinien aus der Ansicht. Gibt None zurück.
dvp.clearCosmeticEdges()
CosmeticEdge Attribute
Tag: eindeutige Kennung. String.
Format: Darstellung Attribute (Stil, Farbe, Linienbreite, Durchsichtigkeit). Tuple.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Py CosmeticEdge demo
import FreeCAD
import TechDraw
#points
org = App.Vector(0.0, 0.0, 0.0)
midTop = FreeCAD.Vector (1.0, 5.0, 0.0) # middle, top
midBot = FreeCAD.Vector(2.0, -5.0, 0.0) # middle, bottom
stdZ = FreeCAD.Vector(0.0, 0.0, 1.0)
center = FreeCAD.Vector(0.0, 0.0, 0.0)
arcCenter = FreeCAD.Vector(3.0, 3.0, 0.0)
vPt = FreeCAD.Vector(-3.0, 3.0, 0.0)
topRight = FreeCAD.Vector(5.0, 5.0, 0.0)
bottomLeft = FreeCAD.Vector(-5.0, -5.0, 0.0)
#angles
arcStart = -45
arcEnd = 45
#styles
solid = 1
dashed = 2
dotted = 3
#weights
weight15 = 0.15
weight75 = 0.75
#colors
pyRed = (1.0, 0.0, 0.0, 0.0)
pyBlue = (0.0, 1.0, 0.0, 0.0)
pyGreen = (0.0, 0.0, 1.0, 0.0)
pyBlack = (0.0, 0.0, 0.0, 0.0)
shadow = (0.1, 0.1, 0.1, 0.0)
radius = 5.0
style = dashed
weight = weight75
dvp = App.ActiveDocument.View
print(dvp)
print("making line")
tag = dvp.makeCosmeticLine(midTop,midBot,style, weight, pyBlue)
ce = dvp.getCosmeticEdge(tag)
print("line tag: {}".format(tag))
print("making diagonal")
dvp.makeCosmeticLine(bottomLeft,topRight,solid, weight, pyGreen)
print("making circle")
tag2 = dvp.makeCosmeticCircle(center, radius, style, weight, pyRed)
ce2 = dvp.getCosmeticEdge(tag2)
print("making circleArc")
dvp.makeCosmeticCircleArc(arcCenter, radius, arcStart, arcEnd, style, weight, shadow)
#replace
print("making new format")
oldFormat = ce.Format
newFormat = (dotted,oldFormat[1], pyRed, True)
ce.Format = newFormat
print("removing CE with tag: {}".format(tag2))
dvp.removeCosmeticEdge(tag2)
print("finished")
Mittellinie- (CenterLine, CL) Routinen, auf die mit Python zugegriffen werden kann
Erstellt eine neue Mittellinie
tag = dvp.makeCenterLine(subObjs, mode)
Abrufen einer Mittellinie mit der eindeutigen Kennung tag.
cl = dvp.getCenterLine(tag)
Abrufen einer Mittellinie mit ihrem Unterobjekt-Namen. Wird in Auswahlen verwendet.
cl = dvp.getCenterLine("Edge5")
Löscht eine Mittellinie cl aus der Ansicht. Gibt None zurück.
dvp.removeCenterLine(cl)
CenterLine Attribute
Tag: eindeutige Kennung. String. ReadOnly.
Type: 0 - Fläche, 1 - 2 Linie, 2 - 2 Punkt. Integer. ReadOnly.
Mode: 0 - Vertikal, 1 - Horizontal, 2 - Verbunden. Integer.
Format: Sichtbarkeits Attribute (Stil, Farbe, Linienbreite, Durchsichtigkeit). Tuple.
HorizShift: links/rechts Abstand. Float.
VertShift: hoch/tief Abstand. Float.
Rotation: Verdrehwinkel in Grad. Float.
Extension: Zusätzliche Länge die angefügt wird. Float.
Flip: Vertauschen der Reihenfolge der Punkte bei 2 Punkt Mittellinie. Boolean.
Edges: Namen der Quelllinien. List of string.
Faces: Namen der Quellflächen. List of string.
Points: Namen der Quellpunkte (Vertices). List of string.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Py CenterLine demo
import FreeCAD
import Part
import TechDraw
start = FreeCAD.Vector (1.0, 5.0, 0.0) # middle, top
end = FreeCAD.Vector(1.0, -5.0, 0.0) # middle, bottom
faceNames = ["Face0"]
edgeNames = ["Edge2", "Edge3"]
vertNames = ["Vertex1", "Vertex2"]
vMode = 0 #vertical
hMode = 1 #horizontal
aMode = 2 #aligned
#styles
solid = 1
dashed = 2
dotted = 3
#weights
weight15 = 0.15
weight75 = 0.75
#colors
pyRed = (1.0, 0.0, 0.0, 0.0)
pyBlue = (0.0, 1.0, 0.0, 0.0)
pyBlack = (0.0, 0.0, 0.0, 0.0)
#adjustments
hShift = 1.0
vShift = 1.0
extend = 4.0
rotate = 30.0
flip = False;
dvp = App.ActiveDocument.View
print("making face CenterLine")
tag = dvp.makeCenterLine(faceNames,vMode)
cline = dvp.getCenterLine(tag)
print("cline tag: {}".format(tag))
#replace
print("making new format")
oldFormat = cline.Format
newFormat = (dotted,oldFormat[1], pyRed, True)
cline.Format = newFormat
cline.Extension = 10.0
print("making edgeCenterLine")
cline2 = dvp.makeCenterLine(edgeNames,hMode)
print("making vertexCenterLine")
cline3 = dvp.makeCenterLine(vertNames,aMode)
print("finished")
DrawViewPart-Geometrie
[topoShapeEdge] = dvp.getVisibleEdges()
[topoShapeEdge] = dvp.getHiddenEdges()
topoShapeEdge = dvp.getEdgeByIndex(i)
topoShapeEdge = dvp.getEdgeBySelection("Edge1")
topoShapeVertex = dvp.getVertexByIndex(i)
topoShapeVertex = dvp.getVertexBySelection("Vertex1")
Zeichnet die Graphik für diese Ansicht neu.
dvp.requestPaint()
- Blätter (Seiten): Neues Zeichnungsblatt aus der Standardvorlage erstellen, Neues Zeichnungsblatt aus einer Vorlage erstellen, Seite neu zeichnen, Alle Seiten drucken
- Ansichten: Ansicht einfügen, Aktive (3D-)Ansicht einfügen, Ansichtengruppe einfügen, Schnittansicht einfügen, Komplexe Schnittansicht einfügen, Detailansicht einfügen, Objekt des Arbeitsbereichs Draft einfügen, Objekt des Arbeitsbereichs Arch einfügent, Tabellenansicht einfügen, Ausschnittsgruppe einfügen, Ansicht teilen, Form projizieren
- Stapeln: Ansicht auf die Stapeloberseite bewegen, Ansicht auf die Stapelunterseite bewegen, Ansicht um eine Ebene nach oben bewegen, Ansicht um eine Ebene nach unten bewegen
- Verzierungen: Fläche mit Muster aus einer Bilddatei schraffieren, Fläche mit einer geometrischen Schraffur versehen, SVG-Zeichnungselement einfügen, Bitmap-Grafik einfügen, Ansichtsrahmen ein- oder ausschalten
- Maßeinträge: Längenmaß einfügen, Horizontales Maß einfügen, Vertikales Maß einfügen, Radienmaß einfügen, Durchmessermaß einfügen, Winkelmaß einfügen, Winkelmaß über 3 Punkte einfügen, Maß für die horizontale Ausdehnung einfügen, Maß für die Vertikale Ausdehnung einfügen, Maß mit 3D-Geometrie verknüpfen, Hinweisfeld einfügen, Axonometrisches Längenmaß, Maß zwischen Orientierungspunkten einfügen, Maßreferenzen reparieren
- Anmerkungen: Anmerkung einfügen, Hinweislinie zur Ansicht hinzufügen, Rich-Text-Anmerkung einfügen, Hilfspunkt hinzufügen, Kantenmittelpunkte hinzufügen, Quadrantengrenzpunkte hinzufügen, Mittellinie zu Fläche(n) hinzufügen, Mittellinie zwischen 2 Linien hinzufügen, Mittellinie zwischen 2 Punkte hinzufügen, Hilfslinie durch 2 Punkte hinzufügen, Hilfskreis hinzufügen, Liniendarstellung ändern, Ausgeblendete Kanten ein-/ausblenden, Hinzufügen von Schweißinformationen zur Hinweislinie, Oberflächensymbol erstellen, Wellen- oder Bohrungspassung hinzufügen
- Ergänzungen:
- Merkmale und Änderungen: Linienmerkmale, Zeilenabstand und Längendifferenz auswählen, Linienmerkmale ändern, Linie verlängern, Linie kürzen, Ansicht fixieren/lösen, Schnittansicht ausrichten, Horizontale Kettenmaße anordnen, Vertikale Kettenmaße anordnen, Schräge Kettenmaße anordnen, Horizontale Maße anordnen, Vertikale Maße anordnen, Schräge Maße anordnen, Flächeninhalt der ausgewählten Flächen berechnen, Bogenlänge der ausgewählten Kanten berechnen, Formatierung anpassen
- Mittellinien und Gewinde: Kreismittellinien hinzufügen, Lochkreismittellinien hinzufügen, Hilfslinien für Innengewinde in Seitenansicht hinzufügen, Hilfslinien für Innengewinde in Achsansicht hinzufügen, Hilfslinien für Außengewinde in Seitenansicht hinzufügen, Hilfslinien für Außengewinde in Achsansicht hinzufügen, Hilfsschnittpunkte hinzufügen, Add an offset vertex, Hilfskreis hinzufügen, Hilfsbogen hinzufügen, Hilfskreis über 3 Punkte hinzufügen, Parallele Hilfslinie hinzufügen, Senkrechte Hilfslinie hinzufügen
- Maße: Horizontale Maßkette erstellen, Vertikale Maßkette erstellen, Schräge Maßketten erstellen, Horizontale Koordinatenmaße erstellen, Vertikale Koordinatenmaße erstellen, Schräge Koordinatenmaße erstellen, Horizontales Maß an Fase erstellen, Vertikales Maß an Fase erstellen, Bogenmaß erstellen, '⌀'-Symbol einfügen, '□'-Symbol einfügen, Präfixsymbol entfernen, Dezimalstellenanzahl erhöhen, Dezimalstellenanzahl verringern
- Exportieren: Seite als SVG-Datei exportieren, Seite als DXF-Datei exportieren
- Zusätzliche Funktionen: Liniengruppen, Vorlagen, Schraffieren, Form- und Lagetolerierung, Einstellungen
- Erste Schritte
- Installation: Herunterladen, Windows, Linux, Mac, Zusätzlicher Komponenten, Docker, AppImage, Ubuntu Snap
- Grundlagen: Über FreeCAD, Graphische Oberfläche, Mausbedienung, Auswahlmethoden, Objektname, Programmeinstellungen, Arbeitsbereiche, Dokumentstruktur, Objekteigenschaften, Hilf FreeCAD, Spende
- Hilfe: Tutorien, Video Tutorien
- Arbeitsbereiche: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Start, Surface, TechDraw, Test Framework, Web