Path Workbench scripten
Re: Path Workbench scripten
Der Vollstaendigkeit halber: Alle Operationen (naja, das Proxy aller Operationen) in Path sind abgeleitt von PathOp.ObjectOp - und das hat eine Funktion addBase(...). Leider hat die keinen docstring - alle anderen API Functionen haben einen (my bad).
Um Path zu scripten ist es wahrscheinlich nicht schlecht sich PathJob.py, PathOp.py und PathAreaOp.py (Basisklasse aller Operationen die Path.Area verwenden) anzuschauen. Dank dieses Framework haben alle Operationen das selbe Interface. Das Selbe gilt auch fuer die UI und die zustaendigen Klassen sind in Path....Gui.py.
Ein ganz einfaches Beispiel (von Null) ist in test02 von PathTest/TestPathDressupDogbone.py - ironischerweise verwendet es auch nicht das API ....
Da tut man sich die Arbeit an ein API zur Verfuegung zu stellen und dann schreibt doch jeder wieder alles vom Anfang. Aber nachdem ich das ja auch selbst geschrieben habe sollen wir dieses mal Milde walten lassen
Um Path zu scripten ist es wahrscheinlich nicht schlecht sich PathJob.py, PathOp.py und PathAreaOp.py (Basisklasse aller Operationen die Path.Area verwenden) anzuschauen. Dank dieses Framework haben alle Operationen das selbe Interface. Das Selbe gilt auch fuer die UI und die zustaendigen Klassen sind in Path....Gui.py.
Ein ganz einfaches Beispiel (von Null) ist in test02 von PathTest/TestPathDressupDogbone.py - ironischerweise verwendet es auch nicht das API ....
Da tut man sich die Arbeit an ein API zur Verfuegung zu stellen und dann schreibt doch jeder wieder alles vom Anfang. Aber nachdem ich das ja auch selbst geschrieben habe sollen wir dieses mal Milde walten lassen
Re: Path Workbench scripten
und geometrie auch, einfach komplett scripten. Eon start wäre eine komplette bspdatei, wobei das heir mit der schrift ganz cool ist.
-
- Posts: 44
- Joined: Mon Aug 28, 2017 10:11 am
Re: Path Workbench scripten
Ich hab sliptronic und mlampert das Problem beim erstellen des Jobs gestern mal per PN beschrieben. Mal sehn ob da ein Lösungsansatz kommt. (kann ja keiner ahnen das der Herr Lampert Deutsch spricht :p)
Beim erstellen der Einzeljobs kommt auch nicht ganz das selbe wie in der Gui raus, die kann man hinterher nicht bearbeiten funktionieren aber meisst. (Ich hab bei einem Schriftzug 3 "o" drin bei 2en ist die Pocket korrekt gefräst beim dritten wird sie nicht generiert aber eins nach dem anderen)
Beim erstellen der Einzeljobs kommt auch nicht ganz das selbe wie in der Gui raus, die kann man hinterher nicht bearbeiten funktionieren aber meisst. (Ich hab bei einem Schriftzug 3 "o" drin bei 2en ist die Pocket korrekt gefräst beim dritten wird sie nicht generiert aber eins nach dem anderen)
Re: Path Workbench scripten
Aus Zeitgruenden lese ich das Deutsche Forum sehr selten - irgend eine Art von ping hilfttcs_ulrich wrote: ↑Tue Jan 15, 2019 11:04 am(kann ja keiner ahnen das der Herr Lampert Deutsch spricht :p)
Details?Beim erstellen der Einzeljobs kommt auch nicht ganz das selbe wie in der Gui raus, die kann man hinterher nicht bearbeiten funktionieren aber meisst. (Ich hab bei einem Schriftzug 3 "o" drin bei 2en ist die Pocket korrekt gefräst beim dritten wird sie nicht generiert aber eins nach dem anderen)
Da sollte genau das Gleiche rauskommen. Das Einzige was die Gui automatisch macht und man mit dem Script haendisch machen muss ist dass die Shapes berechnet werden. Also wenn man in einem Skript ein Solid (Face ....) macht, und dann geometrische Operationen ausfuehren will dann muss man gelegentlich tessellate() aufrufen damit OCC intern alle Berechnungen durchfuehrt. Wenn man irgendwelche Parameter aendert muss man natuerlich auch recompute() aufrufen um sicher zu gehen dass FC alles neu berechnet was sich geandert hat, und was davon abhaengig ist.
-
- Posts: 44
- Joined: Mon Aug 28, 2017 10:11 am
Re: Path Workbench scripten
Details und Screenshot sind auf seite 2 dieses Threads im obersten Beitrag.
PathJob.Create erzeugt irgendwie ne kaputte Struktur. PathJobGui.Create macht das richtig, aber dann muss man ja die Dialoge wegklicken.
PathJob.Create erzeugt irgendwie ne kaputte Struktur. PathJobGui.Create macht das richtig, aber dann muss man ja die Dialoge wegklicken.
Re: Path Workbench scripten
Alles auf Seite 2 hat nicht funktioniert und ist mittlerweile ueberholt. Wenn Du Dein momentanes Skript und alle notwendigen Dateien raufstellst dann kann ich mir das anschauen.
-
- Posts: 44
- Joined: Mon Aug 28, 2017 10:11 am
Re: Path Workbench scripten
Sry, erst jetzt gelesen...
Die Operationen erzeug ich deshalb pro Buchstaben, weil unsere Mechanik gern wenn nen Fräser abbricht, bei nem vollen Buchstaben neu anfangen mag und nicht mitten in einem Pocket Layer. Nur damit sich niemand wundert.
Code: Select all
import FreeCAD
import FreeCAD, Draft
import Path
from PathScripts import PathJob
from PathScripts import PathProfileFaces
from PathScripts import PathPocket
doc = App.newDocument("engrave")
#variables
p1 = FreeCAD.Vector(0, 0, 0)
t1 = "We 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
JobObj = PathJob.Create("Job", Cut);
i = 0
for face in doc.ShapeString.Shape.Faces:
i=i+1
FontCut = PathProfileFaces.Create('Kontur'+str(i))
FontCut.Proxy.addBase(FontCut,doc.ShapeString,'Face'+str(i))
FontPocket = PathPocket.Create('Schrubb'+str(i))
FontPocket.Proxy.addBase(FontPocket,doc.ShapeString,'Face'+str(i))
doc.recompute()
Re: Path Workbench scripten
Hör' ich da richtig raus, dass FreeCAD bei Euch im professionellen Bereich eingesetzt wird? Das hört man gern.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
-
- Posts: 44
- Joined: Mon Aug 28, 2017 10:11 am
Re: Path Workbench scripten
Jain
Unsere Konstruktion setzt regulär Solidworks ein.
Ich und mein Team setzen für Automation/Prüfmittelbau FreeCad ein weil ich 1. OSS liebe, 2. Wir dann nicht nach Lizenzen betteln müsssen.
Das hier ist jetzt quasi ein Automationsthema und ich nutz hier setmal FreeCad nicht zum händisch zeichnen sondern später in nem Docker Container eingesperrt dem ich nur per Http die Parameter rüberschieb und dafür dann die teile der Fräsprogramme zurückbekomme. So der Plan. Gibt immernoch Plan B und C aber bisher schaut alles ganz gut aus.
Unsere Konstruktion setzt regulär Solidworks ein.
Ich und mein Team setzen für Automation/Prüfmittelbau FreeCad ein weil ich 1. OSS liebe, 2. Wir dann nicht nach Lizenzen betteln müsssen.
Das hier ist jetzt quasi ein Automationsthema und ich nutz hier setmal FreeCad nicht zum händisch zeichnen sondern später in nem Docker Container eingesperrt dem ich nur per Http die Parameter rüberschieb und dafür dann die teile der Fräsprogramme zurückbekomme. So der Plan. Gibt immernoch Plan B und C aber bisher schaut alles ganz gut aus.
Re: Path Workbench scripten
Genauso hatte ich die Situation nach den bisherigen Posts eingeschätzt.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.