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: 43
Joined: Mon Aug 28, 2017 10:11 am

Re: Path Workbench scripten

Postby tcs_ulrich » Mon Jan 14, 2019 10:08 am

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
Posts: 9806
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: Path Workbench scripten

Postby bernd » Mon Jan 14, 2019 10:13 am

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 667 times
User avatar
bernd
Posts: 9806
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: Path Workbench scripten

Postby bernd » Mon Jan 14, 2019 10:16 am

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

Re: Path Workbench scripten

Postby tcs_ulrich » Mon Jan 14, 2019 10:28 am

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

Re: Path Workbench scripten

Postby bernd » Mon Jan 14, 2019 11:11 am

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

Re: Path Workbench scripten

Postby tcs_ulrich » Mon Jan 14, 2019 11:15 am

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
Posts: 24211
Joined: Tue Mar 17, 2015 9:14 am

Re: Path Workbench scripten

Postby chrisb » Mon Jan 14, 2019 12:08 pm

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.
chrisb
Posts: 24211
Joined: Tue Mar 17, 2015 9:14 am

Re: Path Workbench scripten

Postby chrisb » 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
User avatar
bernd
Posts: 9806
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: Path Workbench scripten

Postby bernd » Mon Jan 14, 2019 2:52 pm

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
Posts: 24211
Joined: Tue Mar 17, 2015 9:14 am

Re: Path Workbench scripten

Postby chrisb » Mon Jan 14, 2019 4:36 pm

Das wäre in der Tat nicht schlecht, einmal den ganzen Bogen einschließlich Job-Erzeugung, Werkzeugdefinition usw. zu schlagen.