Path Workbench scripten

In diesem Forum Fragen und Diskussionen in Deutsch
Forum rules
Foren-Regeln und hilfreiche Informationen

WICHTIG: Bitte zuerst lesen, bevor Sie posten
tcs_ulrich
Posts: 44
Joined: Mon Aug 28, 2017 10:11 am

Re: Path Workbench scripten

Post by tcs_ulrich »

So gehts:

Code: Select all

doc = App.getDocument("datron")
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()
anzunehmen das alle Faces 'Face'12345 heissen ist zwar etwas unsauber (Wie kommt man an die SubElementNames ran ? Bei der Selection geht das)
aber in meinem Fall wird das so immer funktionieren
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Path Workbench scripten

Post by bernd »

es ist genau wie vermtet eben ein sublinklistproperty, da kann man nicht die faces einfach so hinzufügen. Da muss man das objekt hinzufügen und dann die betreffenden elementnamen ... lade datron.FCStd und führe den code anbei aus ... der fügt alle faces hinzu. datron_faces.FCStd hat übrigends nur einige faces, aber nicht alle faces des ShapStrings

Code: Select all

doc = App.ActiveDocument
doc.Profile_Faces.Base

list_of_all_element_faces = []
for i, face in enumerate(doc.ShapeString.Shape.Faces):
    list_of_all_element_faces.append('Face' + str(i + 1))

#
doc.Profile_Faces.Base = [(doc.ShapeString, tuple(list_of_all_element_faces))]
doc.Profile_Faces.Base
doc.recompute()

#

screen.jpg
screen.jpg (89.48 KiB) Viewed 2175 times
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Path Workbench scripten

Post by bernd »

crosspost :mrgreen:
tcs_ulrich
Posts: 44
Joined: Mon Aug 28, 2017 10:11 am

Re: Path Workbench scripten

Post by tcs_ulrich »

Deine version ist sauberer, ich nehm die :) Super vielen Dank.
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Path Workbench scripten

Post by bernd »

fehlt nur noch jemand, der das im path wiki dokumentiert ... ;)
tcs_ulrich
Posts: 44
Joined: Mon Aug 28, 2017 10:11 am

Re: Path Workbench scripten

Post by tcs_ulrich »

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()
chrisb
Veteran
Posts: 54213
Joined: Tue Mar 17, 2015 9:14 am

Re: Path Workbench scripten

Post by chrisb »

tcs_ulrich wrote: Mon Jan 14, 2019 11:15 am Hier die vollständige Version
Für's Wiki geht dieser Code nicht gut, er hat sowohl zu viel, als auch zu wenig:
Zu viel, weil man ein Job-Objekt ohne ein schon vorhandenes Solid nicht anlegen kann; zu wenig, weil sie das Job-Objekt nicht erzeugt. Ich versuche mal aus Bernds Skript was zu machen.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
chrisb
Veteran
Posts: 54213
Joined: Tue Mar 17, 2015 9:14 am

Re: Path Workbench scripten

Post by chrisb »

Erst mal auf die Schnelle, damit es nicht verloren geht: https://www.freecadweb.org/wiki/Path_sc ... _operation
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Path Workbench scripten

Post by bernd »

chrisb wrote: Mon Jan 14, 2019 1:27 pm Erst mal auf die Schnelle, damit es nicht verloren geht: https://www.freecadweb.org/wiki/Path_sc ... _operation
das ist wohl das wichtigste. In FEM habe ich mir mal die arbeit gemacht eine gesamte analyse (eine sehr einfache natürlich) von null auf zu scripten Das wäre in path sicher auch cool ... FEM_Tutorial_Python
chrisb
Veteran
Posts: 54213
Joined: Tue Mar 17, 2015 9:14 am

Re: Path Workbench scripten

Post by chrisb »

Das wäre in der Tat nicht schlecht, einmal den ganzen Bogen einschließlich Job-Erzeugung, Werkzeugdefinition usw. zu schlagen.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Post Reply