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
mlampert
Veteran
Posts: 1772
Joined: Fri Sep 16, 2016 9:28 pm

Re: Path Workbench scripten

Post by mlampert »

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 :D
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 »

und geometrie auch, einfach komplett scripten. Eon start wäre eine komplette bspdatei, wobei das heir mit der schrift ganz cool ist.
tcs_ulrich
Posts: 44
Joined: Mon Aug 28, 2017 10:11 am

Re: Path Workbench scripten

Post by tcs_ulrich »

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)
mlampert
Veteran
Posts: 1772
Joined: Fri Sep 16, 2016 9:28 pm

Re: Path Workbench scripten

Post by mlampert »

tcs_ulrich wrote: Tue Jan 15, 2019 11:04 am(kann ja keiner ahnen das der Herr Lampert Deutsch spricht :p)
Aus Zeitgruenden lese ich das Deutsche Forum sehr selten - irgend eine Art von ping hilft ;)
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)
Details?

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.
tcs_ulrich
Posts: 44
Joined: Mon Aug 28, 2017 10:11 am

Re: Path Workbench scripten

Post by tcs_ulrich »

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.
mlampert
Veteran
Posts: 1772
Joined: Fri Sep 16, 2016 9:28 pm

Re: Path Workbench scripten

Post by mlampert »

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.
tcs_ulrich
Posts: 44
Joined: Mon Aug 28, 2017 10:11 am

Re: Path Workbench scripten

Post by tcs_ulrich »

Sry, erst jetzt gelesen...

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

Re: Path Workbench scripten

Post by chrisb »

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.
tcs_ulrich
Posts: 44
Joined: Mon Aug 28, 2017 10:11 am

Re: Path Workbench scripten

Post by tcs_ulrich »

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

Re: Path Workbench scripten

Post by chrisb »

Genauso hatte ich die Situation nach den bisherigen Posts eingeschätzt. :D
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Post Reply