TechDraw API/de: Difference between revisions

From FreeCAD Documentation
(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>


Good examples of basic TechDraw scripting can be found in the [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].


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]|Creates wires from edges in input by planar graph traversal. Optionally exclude the OuterWire by setting optional parameter to false.|List of wires sorted by size (descending)}}
{{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|Finds the OuterWire (largest) of a list of edges (that form a planar graph).|Outer wire}}
{{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, scale, direction|Project shape in direction and find outer wire of result.|Outline wire}}
{{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

(November 2018) Diese Information kann unvollständig und veraltet sein. Für die neueste API siehe die autogenerierte API-Dokumentation.

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)
EdgeWalker(listOfEdges, [bool])

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)

findOuterWire(listOfEdges)

Description: Findet den äußeren Draht (OuterWire) (den größten) einer Liste von Kanten (die einen planaren Graphen bilden).

Returns: Outer wire

findShapeOutline(TopoShape, Maßstab, Richtung)

Description: Form in Richtung projizieren und den äußeren Draht des Ergebnisses finden.

Returns: Outline wire

viewPartAsDxf(DrawViewPart)

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()
viewPartAsSvg(DrawViewPart)

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()
writeDXFView(DrawViewPart, FileName)

Description: Save the DrawViewPart in Dxf.

Returns: File

Beispiel:

import TechDraw
TechDraw.writeDXFView(myPart,myFileName)
writeDXFPage(DrawPage, FileName)

Description: Save the DrawPage in Dxf.

Returns: File

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()