TechDraw API/de: Difference between revisions

From FreeCAD Documentation
(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 letzte API siehe die [https://www.freecadweb.org/api autogenerierte API Dokumentation].}}
{{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 [[TechDraw Workbench/de|TechDraw Arbeitsbereich]] und können in [[macros/de|Makros]] und von der [[Python/de|Python]] Konsole aus verwendet werden, sobald das {{incode|TechDraw}} Modul importiert wurde.
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 Drähte aus Kanten in der Eingabe durch planare Graphenquerung. Schließe den ÄußerenDraht optional aus, indem Du den optionalen Parameter auf false setzen. |Liste der Drähte sortiert nach Größe (absteigend)}}
{{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 ÄußerenDraht (größten) einer Liste von Kanten (die einen planaren Graphen bilden).|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, Maßstab, Richtung|Projektform in Richtung und finde den äußeren Draht des Ergebnisses.|Outline Draht}}
{{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===
===DrawViewPart-Hilfselemente===


<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 #CV's belong to views <br>
dvp = App.ActiveDocument.View #Hilfspunkte gehören zu Ansichten.<br>


füge einen KosmetikKnoten bei p1 (Ansichtskoordinaten) hinzu. Gibt einen eindeutigen Tag zurück.<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)


füge einen Kosmetikknoten bei p1 (3D Modellkoordinaten) hinzu. Gibt ein eindeutiges Tag zurück. <br>
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 Kosmetikknoten mit eindeutiger ID zurück.<br>
Gibt einen Hilfspunkt mit eindeutiger ID zurück.<br>
cv = dvp.getCosmeticVertex(string id)
cv = dvp.getCosmeticVertex(string id)


gibt KosmetikKnoten mit Namen zurück (Vertex6). In Auswahlen verwendet.<br>
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)


remove all CosmeticVertices from the View. Returns None.<br>
Entfernt alle Hilfspunkte aus der Ansicht. Gibt None zurück.<br>
dvp.clearCosmeticVertices()
dvp.clearCosmeticVertices()


KosmetikAnsicht Merkmale<br>
CosmeticView attributes<br>
Tag: unique identifier. String.<br>
Tag: eindeutiger Bezeichner. Zeichenfolge.<br>
Point: location within view. Vector.<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 #CE's belong to views<br>
dvp = App.ActiveDocument.View #Hilfslinien gehören zu Ansichten.<br>


Make a CosmeticEdge from p1 to p2(View coordinates). Returns unique tag.<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)


Make a CosmeticEdge at center with radius radius(View coordinates). Returns unique tag.<br>
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)


Make a CosmeticEdge at center with radius radius(View coordinates) from start angle to end angle. Returns unique tag.<br>
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)


returns CosmeticEdge by name (Edge25). Used in selections.<br>
Gibt eine Hilfslinie mit dem Namen ('Edge25') zurück. Wird in Auswahlen verwendet.<br>
ce = dvp.getCosmeticEdgeBySelection(name)
ce = dvp.getCosmeticEdgeBySelection('Edge25')


remove CosmeticEdge ce from View. Returns None.<br>
Löscht eine Hilfslinie ce aus der Ansicht. Gibt None zurück.<br>
dvp.removeCosmeticEdge(ce)
dvp.removeCosmeticEdge(ce)


remove all CosmeticLines from the View. Returns None.<br>
Löscht alle Hilfslinien aus der Ansicht. Gibt None zurück.<br>
dvp.clearCosmeticEdges()
dvp.clearCosmeticEdges()


CosmeticEdge attributes<br>
CosmeticEdge Attribute<br>
Tag: unique identifier. String.<br>
Tag: eindeutige Kennung. String.<br>
Format: appearance attributes (style, color, weight, visible). Tuple.<br>
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====


make a new CenterLine<br>
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")


remove CenterLine cl from View. Returns None.<br>
Löscht eine Mittellinie cl aus der Ansicht. Gibt None zurück.<br>
dvp.removeCenterLine(cl)
dvp.removeCenterLine(cl)


CenterLine Attributes<br>
CenterLine Attribute<br>
Tag: unique identifier. String. ReadOnly.<br>
Tag: eindeutige Kennung. String. ReadOnly.<br>
Type: 0 - face, 1 - 2 line, 2 - 2 point. Integer. ReadOnly.<br>
Type: 0 - Fläche, 1 - 2 Linie, 2 - 2 Punkt. Integer. ReadOnly.<br>
Mode: 0 - vert, 1 - horiz, 2 - aligned. Integer.<br>
Mode: 0 - Vertikal, 1 - Horizontal, 2 - Verbunden. Integer.<br>
Format: appearance attributes (style, color, weight, visible). Tuple.<br>
Format: Sichtbarkeits Attribute (Stil, Farbe, Linienbreite, Durchsichtigkeit). Tuple.<br>
HorizShift: left/right offset. Float.<br>
HorizShift: links/rechts Abstand. Float.<br>
VertShift: up/down offset. Float.<br>
VertShift: hoch/tief Abstand. Float.<br>
Rotation: rotation in degrees. Float.<br>
Rotation: Verdrehwinkel in Grad. Float.<br>
Extension: additional length to be added. Float.<br>
Extension: Zusätzliche Länge die angefügt wird. Float.<br>
Flip: reverse the order of points for 2 point CenterLine. Boolean.<br>
Flip: Vertauschen der Reihenfolge der Punkte bei 2 Punkt Mittellinie. Boolean.<br>
Edges: names of source edges. List of string.<br>
Edges: Namen der Quelllinien. List of string.<br>
Faces: names of source faces. List of string.<br>
Faces: Namen der Quellflächen. List of string.<br>
Points: names of source points (Vertices). List of string.<br>
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 Geometry===
===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

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