| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| |
| Webcast: PTC | Smart Services, ein Webinar am 13.12.2024
|
Autor
|
Thema: sd-define-available-command mit Variablen Text (812 / mal gelesen)
|
sas-m2n Mitglied Maschinenbautechniker
Beiträge: 39 Registriert: 02.03.2011 @Work: HP Z400, NVIDIA Quadro 4000, 12 GB RAM, WIN7 X64 NX6.0.2.8,NX I-deas 6 m2,Teamcenter 2005 SR1/2007, Creo Elements/Direct 19.0 M060 Modelmanager 19 @home: DELL Precision M4500 PE6.0 auf Win10 pro X64 FreeCAD 017 X64 TurboCAD 17 pro
|
erstellt am: 12. Apr. 2021 12:27 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich bräuchte wieder einmal Eure Hilfe. Kann man folgendes realisieren: Ich möchte per Lisp eine Gruppe erstellen, un darin verschiedene Befehle was auch funktioniert. Was nicht funktioniert ist der im Actionbereich Loadbefehl wenn als Benutzer eine Variable eingestellt wird (setf Benutzername (sd-sys-getenv "USERNAME")) so funktioniert es: (sd-define-available-command "ALL" "Gruppe_Test" "Lisp Laden Sharepoint" :commandTitle "Lisp Laden" :image (format nil "~a/3D/Button/SolidDesigner/LispLaden3D_Sharepoint.bmp" Tools_Pad) :action " (load \"C:/Users/Benutzer/Group/SharePoint - Creotools/V19/Lisp/Befehle_Gruppe.lsp\")" :description "Lisp laden" :ui-behavior n-request ) Button wird erstellt so leider nicht: (sd-define-available-command "ALL" "Gruppe_Test" "Lisp Laden Sharepoint" :commandTitle "Lisp Laden" :image (format nil "~a/3D/Button/SolidDesigner/LispLaden3D_Sharepoint.bmp" Tools_Pad) :action " (load \ "(format nil "C:/Users/~a/Group/SharePoint - Creotools/V19/Lisp/Befehle_Gruppe.lsp\"" Benutzername)) " :description "Lisp laden" :ui-behavior n-request ) Gibt es dafür eine Lösung
Im voraus Danke. Viele Grüße
Steffen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MiBr Mitglied Konstrukteur
Beiträge: 575 Registriert: 30.06.2015 HP Z440 Workstation 64GB Modeling 20.1.2.0 (x64) Drafting 20.1.2.0 (64x) klas. UI Modell Manager 20.1.2.0 Ansys Workbeanch 22R2 Mechanicail Pro + FKM Inside
|
erstellt am: 12. Apr. 2021 13:02 <-- editieren / zitieren --> Unities abgeben: Nur für sas-m2n
Hallo, kann es sein, dass dir hinter dem Backslash eine Leerzeichen gerutscht ist? load \" -> load \" da schein mir noch mehr im argen zu sein! Ohne es Versucht zu haben müsste das so gehen: Code: "(load (format nil \"C:/Users/~a/Group/SharePoint - Creotools/V19/Lisp/Befehle_Gruppe.lsp\" Benutzername))"
Die Backslash dienen dazu, dass die Lisp die Hochkoma " innerhalb der " \"xxx\" " erkennt. Hier noch ein LÖink zum Thema: https://ww3.cad.de/foren/ubb/Forum29/HTML/004452.shtml#000007 Gruß Michael [Diese Nachricht wurde von MiBr am 12. Apr. 2021 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
Beiträge: 2219 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.4780 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 12. Apr. 2021 18:28 <-- editieren / zitieren --> Unities abgeben: Nur für sas-m2n
Ich denke dir ist da wirklich nur ein Blank reingerutscht, wie Michael schon richtig erkannte. Allerdings "Funktioniert .. so nicht" ist eine der denkbar schlechtesten (!!) Fehlerbeschreibungen: Was war denn die konkrete Fehlermeldung? Da sich die absolute Pfadangabe während der Laufzeit der Modeling Session genauso wenig ändert wie der BenutzerName, kann man es sich etwas einfacher machen: Code: (let* ((BenutzerName (sd-sys-getenv "USERNAME")) (datei-zu-laden (format nil "C:/Users/~A/Group/SharePoint - Creotools/V19/Lisp/Befehle_Gruppe.lsp" BenutzerName)) ) (sd-define-available-command "ALL" "Gruppe_Test" "Lisp Laden Sharepoint" ... :action "(load \"datei-zu-laden\" :if-does-not-exist nil)" ... ) ) ;; end let
Alternative wäre vielleich auch die Ausführung einer eigenen Funktion einfach. Dann könnte sich die Pfadangabe sogar einfach ändern.
Code: (in-package :sas) (use-package :OLI) ; aber nicht der Dittrich (defun load-my-file-from-SharePoint-Dir () (load (format nil "C:/Users/~A/Group/SharePoint - Creotools/V19/Lisp/Befehle_Gruppe.lsp" (sd-sys-getenv "USERNAME")) :if-does-not-exist nil) ) (sd-define-available-command "ALL" "Gruppe_Test" "Lisp Laden Sharepoint" ... :action "(sas::load-my-file-from-SharePoint-Dir)" ... )
Wenn mann keinen Wert drauf legt das der klick auf dieses Avail-Cmd sauber recorded wird (wenn man mal reorder files nutzt) kann auch einfacher schreiben:
Code: (sd-define-available-command "ALL" "Gruppe_Test" "Lisp Laden Sharepoint" ... :action (load (format nil "C:/Users/~A/Group/SharePoint - Creotools/V19/Lisp/Befehle_Gruppe.lsp" (sd-sys-getenv "USERNAME")) :if-does-not-exist nil) ... )
Denn es, also :action, ist ein STRING oder eine LISP form (was der letzte Fall darstellt) PS: ich habe aber weder das eine, noch das andere getestet, sondern nur trocken runtergeschrieben. Wer selber testet gewinnt auch selber an Erfahrung! ;-)
------------------ ● Firefox ESR ● Java Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● BuFDi ● Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sas-m2n Mitglied Maschinenbautechniker
Beiträge: 39 Registriert: 02.03.2011 @Work: HP Z400, NVIDIA Quadro 4000, 12 GB RAM, WIN7 X64 NX6.0.2.8,NX I-deas 6 m2,Teamcenter 2005 SR1/2007, Creo Elements/Direct 19.0 M060 Modelmanager 19 @home: DELL Precision M4500 PE6.0 auf Win10 pro X64 FreeCAD 017 X64 TurboCAD 17 pro
|
erstellt am: 13. Apr. 2021 13:32 <-- editieren / zitieren --> Unities abgeben:
Hallo Wolfgang, Hallo Michael, die Fehlermeldung war diese hier "Odd number of arguments for keywords". Da meine Kenntnisse in Lisp nur aus "learning by doing" entstehen, werdet ihr die Hände über dem Kopf zusammen schlagen. Was macht der denn da. Kann es eben nicht besser. Deshalb Frage ich ja Euch . Was ich wollte war ein Button wie ich ihn von Hand im Modeling erstellen kann, wo alle Macros geladen werden, mit der kleinen Besonderheit des Benutzer in der Pfadangabe. Mit Eurer Hilfe hast es dann auch geklappt. Dafür ein Dankeschön. Viele Grüße Steffen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
Beiträge: 2219 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.4780 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 14. Apr. 2021 22:16 <-- editieren / zitieren --> Unities abgeben: Nur für sas-m2n
|
MiBr Mitglied Konstrukteur
Beiträge: 575 Registriert: 30.06.2015 HP Z440 Workstation 64GB Modeling 20.1.2.0 (x64) Drafting 20.1.2.0 (64x) klas. UI Modell Manager 20.1.2.0 Ansys Workbeanch 22R2 Mechanicail Pro + FKM Inside
|
erstellt am: 15. Apr. 2021 10:29 <-- editieren / zitieren --> Unities abgeben: Nur für sas-m2n
Hallo, da kann ich Wolfgang nur zustimmen!!! Und die 10 Uniets sieht man auch gern als kleines DankeSCHÖN!!! Ich selber bin ja auch noch ein Anfänger, was Lisp angeht. Habe aber in den letzen 5 Jahren, mit der Hilfe hier im Forum, X-Tool´s geschrieben. Diese möchte am Ende des Tages, bei uns in der Firma keiner mehr missen! Und da Bedanke ich mich hier mal bei allen die mir geholfen haben, DANKE!!! (Denke Das lesen wohl die Richtigen) Und entsprechend versuche ich auch bestens zu helfen und freue mich über jede Fragestellung!! Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |