TechDraw API/de: Difference between revisions
(Updating to match new version of source page) |
No edit summary |
||
(73 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 neueste API siehe die [https://www.freecadweb.org/api autogenerierte API-Dokumentation].}} |
|||
<div class="mw-translate-fuzzy"> |
|||
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. |
|||
{{VeryImportantMessage|(November 2018) Diese Information kann unvollständig und veraltet sein. Für die letzte API siehe die (engl.) [https://www.freecadweb.org/api autogenerierte API-Dokumentation].}} |
|||
Diese Funktionen sind Teil des [[TechDraw Workbench/de|TechDraw-Arbeitsbereich]]s und können in [[macros/de|Makros]] oder mit dem [[Python/de|Python]]-Interpreter verwendet werden, sobald der {{incode|TechDraw}}-Arbeitsbereich importiert wurde. |
|||
</div> |
|||
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]. |
|||
Siehe die [[TechDrawGui API/de|TechDrawGui API]] für weitere Funktionen. |
|||
<div class="mw-translate-fuzzy"> |
|||
Siehe die [[TechDrawGui API/de|TechDrawGui-API]] für weitere Funktionen. |
|||
</div> |
|||
Beispiel: |
Beispiel: |
||
{{Code|code= |
{{Code|code= |
||
import FreeCAD |
import FreeCAD |
||
Line 25: | Line 22: | ||
}} |
}} |
||
{{APIFunction|EdgeWalker|listOfEdges, [bool]| |
{{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| |
{{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, |
{{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 43: | 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 60: | 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 67: | 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 73: | Line 74: | ||
}} |
}} |
||
<span id="DrawViewPart_Cosmetics"></span> |
|||
===DrawViewPart Cosmetics=== |
|||
===DrawViewPart-Hilfselemente=== |
|||
dvp.makeCosmeticVertex(point) |
|||
<span id="CosmeticVertex_(CV)_routines_accessible_from_Python"></span> |
|||
dvp.makeCosmeticLine(start,end,style, weight, pyGreen) |
|||
====Hilfspunkt- (CosmeticVertex, CV) Routinen, auf die mit Python zugegriffen werden kann==== |
|||
dvp = App.ActiveDocument.View #Hilfspunkte gehören zu Ansichten.<br> |
|||
dvp.makeCosmeticCircle(center, radius, style, weight, pyRed) |
|||
Fügt einen Hilfspunkt bei p1 (Ansichtskoordinaten) hinzu. Gibt einen eindeutigen Tag zurück.<br> |
|||
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) |
|||
Gibt einen Hilfspunkt mit eindeutiger ID zurück.<br> |
|||
cv = dvp.getCosmeticVertex(string id) |
|||
Gibt einen Hilfspunkt mit Namen zurück (Vertex6). In Auswahlen verwendet.<br> |
|||
cv = dvp.getCosmeticVertexBySelection(Zeichenfolgennamen) |
|||
Entfernt einen Hilfspunkt aus der Ansicht. Gibt None zurück.<br> |
|||
dvp.removeCosmeticVertex(object cv) |
|||
Entfernt alle Hilfspunkte aus der Ansicht. Gibt None zurück.<br> |
|||
dvp.clearCosmeticVertices() |
|||
KosmetikAnsicht Merkmale<br> |
|||
Tag: eindeutiger Bezeichner. Zeichenfolge.<br> |
|||
Punkt: Standort innerhalb der Ansicht. Vektor.<br> |
|||
<!--T:28--> |
|||
******************************************************************************** |
|||
{{Code|code= |
|||
#!/usr/bin/env python |
|||
# -*- coding: utf-8 -*- |
|||
<!--T:29--> |
|||
# Py CosmeticVertex demo |
|||
import FreeCAD |
|||
import TechDraw |
|||
<!--T:30--> |
|||
v = App.ActiveDocument.View |
|||
p = App.Vector(-3.0, -3.0, 0.0) |
|||
<!--T:31--> |
|||
#make CV |
|||
tag = v.makeCosmeticVertex(p) |
|||
print("t: {}".format(tag)) |
|||
<!--T:32--> |
|||
#retrieve CV |
|||
cv = v.getCosmeticVertex(tag) |
|||
print("cv: {}".format(cv)) |
|||
print("Tag: {}".format(cv.Tag)) |
|||
<!--T:34--> |
|||
cv2 = v.getCosmeticVertexBySelection("Vertex4") |
|||
print("New Point: {}".format(cv2.Point)) |
|||
<!--T:35--> |
|||
#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)) |
|||
}} |
|||
<span id="CosmeticEdge_(CE)_routines_accessible_from_Python"></span> |
|||
====Hilfslinie- (CosmeticEdge, CE) Routinen, auf die mit Python zugegriffen werden kann==== |
|||
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) |
|||
Erzeuge ein CosmeticEdge bei center mit dem Radius radius (Ansicht Koordinaten). Gibt eine Kennung zurück.<br> |
|||
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) |
|||
Gibt eine Hilfslinie mit eindeutiger ID zurück.<br> |
|||
ce = dvp.getCosmeticEdge(id) |
|||
Gibt eine Hilfslinie mit dem Namen ('Edge25') zurück. Wird in Auswahlen verwendet.<br> |
|||
ce = dvp.getCosmeticEdgeBySelection('Edge25') |
|||
Löscht eine Hilfslinie ce aus der Ansicht. Gibt None zurück.<br> |
|||
dvp.removeCosmeticEdge(ce) |
|||
Löscht alle Hilfslinien aus der Ansicht. Gibt None zurück.<br> |
|||
dvp.clearCosmeticEdges() |
|||
CosmeticEdge Attribute<br> |
|||
Tag: eindeutige Kennung. String.<br> |
|||
Format: Darstellung Attribute (Stil, Farbe, Linienbreite, Durchsichtigkeit). Tuple.<br> |
|||
<!--T:47--> |
|||
******************************************************************************** |
|||
{{Code|code= |
|||
#!/usr/bin/env python |
|||
# -*- coding: utf-8 -*- |
|||
<!--T:48--> |
|||
# Py CosmeticEdge demo |
|||
import FreeCAD |
|||
import TechDraw |
|||
<!--T:49--> |
|||
#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) |
|||
<!--T:50--> |
|||
#angles |
|||
arcStart = -45 |
|||
arcEnd = 45 |
|||
<!--T:51--> |
|||
#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) |
|||
<!--T:52--> |
|||
radius = 5.0 |
|||
style = dashed |
|||
weight = weight75 |
|||
<!--T:53--> |
|||
dvp = App.ActiveDocument.View |
|||
<!--T:54--> |
|||
print(dvp) |
|||
<!--T:55--> |
|||
print("making line") |
|||
tag = dvp.makeCosmeticLine(midTop,midBot,style, weight, pyBlue) |
|||
ce = dvp.getCosmeticEdge(tag) |
|||
print("line tag: {}".format(tag)) |
|||
<!--T:56--> |
|||
print("making diagonal") |
|||
dvp.makeCosmeticLine(bottomLeft,topRight,solid, weight, pyGreen) |
|||
<!--T:57--> |
|||
print("making circle") |
|||
tag2 = dvp.makeCosmeticCircle(center, radius, style, weight, pyRed) |
|||
ce2 = dvp.getCosmeticEdge(tag2) |
|||
<!--T:58--> |
|||
print("making circleArc") |
|||
dvp.makeCosmeticCircleArc(arcCenter, radius, arcStart, arcEnd, style, weight, shadow) |
dvp.makeCosmeticCircleArc(arcCenter, radius, arcStart, arcEnd, style, weight, shadow) |
||
<!--T:59--> |
|||
===DrawViewPart Geometry=== |
|||
#replace |
|||
print("making new format") |
|||
oldFormat = ce.Format |
|||
newFormat = (dotted,oldFormat[1], pyRed, True) |
|||
ce.Format = newFormat |
|||
<!--T:61--> |
|||
print("removing CE with tag: {}".format(tag2)) |
|||
dvp.removeCosmeticEdge(tag2) |
|||
<!--T:62--> |
|||
print("finished") |
|||
}} |
|||
<span id="CenterLine_(CL)_routines_accessible_from_Python"></span> |
|||
====Mittellinie- (CenterLine, CL) Routinen, auf die mit Python zugegriffen werden kann==== |
|||
Erstellt eine neue Mittellinie<br> |
|||
tag = dvp.makeCenterLine(subObjs, mode)<br> |
|||
Abrufen einer Mittellinie mit der eindeutigen Kennung tag.<br> |
|||
cl = dvp.getCenterLine(tag) |
|||
Abrufen einer Mittellinie mit ihrem Unterobjekt-Namen. Wird in Auswahlen verwendet.<br> |
|||
cl = dvp.getCenterLine("Edge5") |
|||
Löscht eine Mittellinie cl aus der Ansicht. Gibt None zurück.<br> |
|||
dvp.removeCenterLine(cl) |
|||
CenterLine Attribute<br> |
|||
Tag: eindeutige Kennung. String. ReadOnly.<br> |
|||
Type: 0 - Fläche, 1 - 2 Linie, 2 - 2 Punkt. Integer. ReadOnly.<br> |
|||
Mode: 0 - Vertikal, 1 - Horizontal, 2 - Verbunden. Integer.<br> |
|||
Format: Sichtbarkeits Attribute (Stil, Farbe, Linienbreite, Durchsichtigkeit). Tuple.<br> |
|||
HorizShift: links/rechts Abstand. Float.<br> |
|||
VertShift: hoch/tief Abstand. Float.<br> |
|||
Rotation: Verdrehwinkel in Grad. Float.<br> |
|||
Extension: Zusätzliche Länge die angefügt wird. Float.<br> |
|||
Flip: Vertauschen der Reihenfolge der Punkte bei 2 Punkt Mittellinie. Boolean.<br> |
|||
Edges: Namen der Quelllinien. List of string.<br> |
|||
Faces: Namen der Quellflächen. List of string.<br> |
|||
Points: Namen der Quellpunkte (Vertices). List of string.<br> |
|||
<!--T:70--> |
|||
******************************************************************************** |
|||
{{Code|code= |
|||
#!/usr/bin/env python |
|||
# -*- coding: utf-8 -*- |
|||
<!--T:71--> |
|||
# Py CenterLine demo |
|||
import FreeCAD |
|||
import Part |
|||
import TechDraw |
|||
<!--T:72--> |
|||
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; |
|||
<!--T:73--> |
|||
dvp = App.ActiveDocument.View |
|||
<!--T:74--> |
|||
print("making face CenterLine") |
|||
tag = dvp.makeCenterLine(faceNames,vMode) |
|||
cline = dvp.getCenterLine(tag) |
|||
print("cline tag: {}".format(tag)) |
|||
<!--T:75--> |
|||
#replace |
|||
print("making new format") |
|||
oldFormat = cline.Format |
|||
newFormat = (dotted,oldFormat[1], pyRed, True) |
|||
cline.Format = newFormat |
|||
cline.Extension = 10.0 |
|||
<!--T:77--> |
|||
print("making edgeCenterLine") |
|||
cline2 = dvp.makeCenterLine(edgeNames,hMode) |
|||
<!--T:78--> |
|||
print("making vertexCenterLine") |
|||
cline3 = dvp.makeCenterLine(vertNames,aMode) |
|||
<!--T:79--> |
|||
print("finished") |
|||
}} |
|||
<span id="DrawViewPart_Geometry"></span> |
|||
===DrawViewPart-Geometrie=== |
|||
[topoShapeEdge] = dvp.getVisibleEdges() |
[topoShapeEdge] = dvp.getVisibleEdges() |
||
[topoShapeEdge] = dvp.getHiddenEdges() |
[topoShapeEdge] = dvp.getHiddenEdges() |
||
topoShapeEdge = dvp.getEdgeByIndex(i) <br/> |
|||
topoShapeEdge = dvp.getEdgeBySelection("Edge1") |
|||
topoShapeVertex = dvp.getVertexByIndex(i) <br/> |
|||
{{TechDraw Tools navi/de}} |
|||
topoShapeVertex = dvp.getVertexBySelection("Vertex1") |
|||
Zeichnet die Graphik für diese Ansicht neu.<br> |
|||
[[Category:API/de]] |
|||
dvp.requestPaint() |
|||
[[Category:Poweruser Documentation/de]] |
|||
{{TechDraw Tools navi{{#translation:}}}} |
|||
{{Userdocnavi{{#translation:}}}} |
|||
[[Category:API{{#translation:}}]] |
|||
[[Category:Poweruser Documentation{{#translation:}}]] |
|||
{{clear}} |
{{clear}} |
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()
- Seiten: Neue Standardvorlage, Neue Vorlagenauswahl
- Ansichten: Neue Ansicht, Neue Projektionsgruppe, Neue Schnittansicht, Neue Detailansicht, Neue Notiz, Neue Draft-Ansicht, Neuer Arch Zeichnungsausschnitt, Tabelle
- Ausschnitte: Ausschnittfenster, Ausschnittfenster hinzufügen, Ausschnittfenster entfernen
- Bemaßungen: Längenbemaßung, Horizontale Längenbemaßung, Vertikale Längenbemaßung, Radiusbemaßung, Durchmesserbemaßung, Winkelbemaßung, Winkelbemaßung m. drei Scheitelpunkten, Bemaßungen verlinken
- Ausschmückung: Schraffur, Geometrische Schraffur, Symbol, Bild, Anzeige ein-/ausschalten
- Dienstprogramme: SVG speichern, DXF speichern
- Zusätzliches: Einstellungen, Import-Export Einstellungen; Schraffur, Liniengruppe, Vorlagen
- 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