Hier die vollständige Version, als Basis braucht man nur noch den Path Job mit der entsprechenden Operation vorbereiten.
Fürs Wiki hätt ich dafür aber auch ganz gern ne Lösung.
Code: Select all
import FreeCAD
import FreeCAD, Draft
import Path
from PathScripts import PathJob
doc = App.ActiveDocument
#variables
p1 = FreeCAD.Vector(0, 0, 0)
t1 = "TCS can engrave now"
#Text erstellen
Text1=Draft.makeShapeString(String=t1,FontFile="C:/TEMP/arial.ttf",Size=50.0,Tracking=0)
Extrusion = doc.addObject('Part::Extrusion', 'Extrude')
Extrusion.Base = Text1
Extrusion.DirMode = "Normal"
Extrusion.DirLink = None
Extrusion.LengthFwd = 12
Extrusion.LengthRev = 0
Extrusion.Solid = False
Extrusion.Reversed = False
Extrusion.Symmetric = False
Extrusion.TaperAngle = 0
Extrusion.TaperAngleRev = 0
#Frontplatte erstellen
Frontplatte = App.ActiveDocument.addObject("Part::Box","Box")
Frontplatte.Height = 3
Frontplatte.Width = 100
Frontplatte.Length = 700
Frontplatte.Placement.Base.y = -40
#abziehen
Cut = doc.addObject("Part::Cut","Cut")
Cut.Base = Frontplatte
Cut.Tool = Extrusion
#erledigt
doc.recompute()
#Path
doc.Job.Base = Cut
i = 0
for face in doc.ShapeString.Shape.Faces:
i=i+1
doc.Profile_Faces.Proxy.addBase(doc.Profile_Faces,doc.ShapeString,'Face'+str(i))
doc.recompute()