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 »

Ich komm einfach nicht vorran.
structure.jpg
structure.jpg (29.15 KiB) Viewed 1860 times
Oben ist das was ich in der Gui zusammenklicke.
Unten ist das gescriptete.

Das Script sieht derzeit so aus:

Code: Select all

glJobObjectName = "MyJobName"
baseObj = Cut
glJobObj = PathJob.Create(glJobObjectName, baseObj)
FontCut = PathScripts.PathProfileFaces.Create('Font')
FontCut.Side = 'Inside'
for face in Text1.Shape.Faces:
  FontCut.Base.append(face)
Warum kommt die Struktur so merkwürdig raus ?
In der GUI ist alles deaktiviert bei dem gescripteten Projekt.

Wenn ich PathJobGui benutze kommt natürlich der Konfigurationsdialog hoch, kann ich den gescriptet bestätigen ?

Wie finde ich herats welches Objekt zu welchem Button in der Gui gehört ?
hjh
Posts: 17
Joined: Tue Jan 01, 2019 12:47 pm

Re: Path Workbench scripten

Post by hjh »

tcs_ulrich wrote: Thu Jan 10, 2019 2:27 pm Wo find ich denn den Doxygen Output ? Oder muss ich den selbst erzeugen ?
Gute Frage
  • https://www.freecadweb.org/
    clicke auf Taste 'Documentation'
    Links in Sektion 'Powerusers documentation'
    Click auf 'Python API' (Application Programmer Interface)
    Click auf Link 'autogenerated information'
    Click auf 'Modules'
    Click auf 'Path'
Resultat: NICHTS

Werde eine Frage dazu im Developer-Forum posten.
Edit: Hier der direkte Link https://forum.freecadweb.org/viewtopic.php?f=10&t=33370
--HJH
chrisb
Veteran
Posts: 54302
Joined: Tue Mar 17, 2015 9:14 am

Re: Path Workbench scripten

Post by chrisb »

Warum fängst Du bei Null an? Kannst Du nicht einen fertigen Job und eine ausreichende Zahl an Zeilen bereitstellen, die Du dann geeignet füllst und platzierst oder ggf. deaktivierst?
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
hjh
Posts: 17
Joined: Tue Jan 01, 2019 12:47 pm

Re: Path Workbench scripten

Post by hjh »

microelly2 wrote: Thu Jan 10, 2019 12:25 pm Die Path WB ist eine Python Bibliothek.
Die ist inline auch ganz gut dokumentiert.
In welchem Unterverzeichnis finde ich diese 'Inline-Dokumentation'?

https://github.com/FreeCAD/FreeCAD/tree ... c/Mod/Path

--HJH
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Path Workbench scripten

Post by microelly2 »

Man knnn sich die Doku direkt aus FreeCAd ansehen:

Menü Help

--> Automatic Python moduls generation

Dann öffnet sich ein Webfenster und da findet man alles, was inline dokumentiert ist.

habe ich jetzt auch das erste mal gesehen, steht nicht viel drin aber das schein ein einfacher weg für eine schnelle dokumentation zu sein.
hjh
Posts: 17
Joined: Tue Jan 01, 2019 12:47 pm

Re: Path Workbench scripten

Post by hjh »

microelly2 wrote: Fri Jan 11, 2019 10:44 am Menü Help
--> Automatic Python moduls generation
Dann öffnet sich ein Webfenster und da findet man alles, was inline dokumentiert ist.
Gut das zu wissen, steht aber doch immerhin einiges drin
Path_Workbench_API_documentation_2019-01-11.png
Path_Workbench_API_documentation_2019-01-11.png (67.02 KiB) Viewed 1830 times
Für mehr Antworten bleibt dann nur der Weg den Python source code zu finden und zu lesen und Fragen im Forum zu stellen betreffend dem Konzept (Modell für Path-WB)

Nur, wo steht der Source code genau
https://github.com/FreeCAD/FreeCAD/tree ... c/Mod/Path
:?:

Post updated.
tcs_ulrich
Posts: 44
Joined: Mon Aug 28, 2017 10:11 am

Re: Path Workbench scripten

Post by tcs_ulrich »

Warum fängst Du bei Null an? Kannst Du nicht einen fertigen Job und eine ausreichende Zahl an Zeilen bereitstellen, die Du dann geeignet füllst und platzierst oder ggf. deaktivierst?
Danke, endlich n frischer Ansatz :)

(In der Zwischenzeit hab ich noch den Weg über Macros probiert, schönerweise funktioniert das scheinbar nur mit Workbenches die Python Kommandos auf irgend ne Art und weise auch registrieren (bei den meissten Workbenches seh ich ja in der Python-Konsole was passietr und kann copy&paste machen) das wird dann als Macro aufgezeichnet. In der Path Workbench gibt es da dann nur nen Fehlerhaften Job Create ...)

Also erstell ich die Objekte in einem fcstd File und lade das vorher, gut. Wie generiere ich dann aber die Pfad Operation ? Wenn ich das manuell mache markiere ich alle Buchstaben per Maus einzeln und erzeuge dann die Pfad Operation darauf.
Ich probier mal rum, der Ansatz klingt vielversprechend.
tcs_ulrich
Posts: 44
Joined: Mon Aug 28, 2017 10:11 am

Re: Path Workbench scripten

Post by tcs_ulrich »

Ok, dann gehen wir von dieser Datei aus:
datron.FCStd
(837.15 KiB) Downloaded 52 times

Code: Select all

for face in doc.Shapestring.Shape.Faces:
  doc.Profile_Faces.Base.append(face)
tut aber trotzdem nix :/
Wie bekomm ich jetzt die Faces des Shapestrings in Profile_Faces ?
chrisb
Veteran
Posts: 54302
Joined: Tue Mar 17, 2015 9:14 am

Re: Path Workbench scripten

Post by chrisb »

Sieht gut aus, was Du da machst. In doc.Profile_Faces.Base stehen ja auch die ausgewählten Elemente drin. Nur wenn man den Wert von Python aus setzt, dann passiert einfach nichts, es bleiben die alten Werte drin. Auch ein recompute() hilft nicht.
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 »

ich habe gar keine Ahnung von der path wb, weiss aber das FreeCADs link list property den append befehl von python nicht untersptützt. Heisst man muss sich mit einer temporären liste behelfen. Mache ich in FEM auch so. Siehe als bsp hier im Source code von FEM: https://github.com/FreeCAD/FreeCAD/blob ... #L281-L284 Bei dem normalen list property weiss ich es jetzt nicht, aber versuchen kann man es ja mal ...

Blöd ist nur, so wie ich das sehe funktioniert das auch nicht ... :( es muss noch ein weiteres problem geben ... evtl ist es ja auch keine liste von objekten ...

file datron laden, code ausführen ...

Code: Select all

doc = App.ActiveDocument
tmp = []
for face in doc.ShapeString.Shape.Faces:
    tmp.append(face)

tmp
doc.Profile_Faces.Base = tmp
doc.recompute()
doc.Profile_Faces.Base
aber evtl. hilft es ja trotzdem weiter ...
Post Reply