Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Programmierung
  sd-define-available-command mit Variablen Text

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO
Autor Thema:  sd-define-available-command mit Variablen Text (729 mal gelesen)
sas-m2n
Mitglied
Maschinenbautechniker


Sehen Sie sich das Profil von sas-m2n an!   Senden Sie eine Private Message an sas-m2n  Schreiben Sie einen Gästebucheintrag für sas-m2n

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von MiBr an!   Senden Sie eine Private Message an MiBr  Schreiben Sie einen Gästebucheintrag für MiBr

Beiträge: 508
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 19R3 Mechanical Pro

erstellt am: 12. Apr. 2021 13:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sas-m2n 10 Unities + Antwort hilfreich

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
Ehrenmitglied V.I.P. h.c.
Tastenhauer


Sehen Sie sich das Profil von der_Wolfgang an!   Senden Sie eine Private Message an der_Wolfgang  Schreiben Sie einen Gästebucheintrag für der_Wolfgang

Beiträge: 2017
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build19044.2364
● Drafting V17~V20.5.1
● Modeling V17~V20.5.1

erstellt am: 12. Apr. 2021 18:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sas-m2n 10 Unities + Antwort hilfreich

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 ESRJava 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


Sehen Sie sich das Profil von sas-m2n an!   Senden Sie eine Private Message an sas-m2n  Schreiben Sie einen Gästebucheintrag für sas-m2n

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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
Ehrenmitglied V.I.P. h.c.
Tastenhauer


Sehen Sie sich das Profil von der_Wolfgang an!   Senden Sie eine Private Message an der_Wolfgang  Schreiben Sie einen Gästebucheintrag für der_Wolfgang

Beiträge: 2017
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build19044.2364
● Drafting V17~V20.5.1
● Modeling V17~V20.5.1

erstellt am: 14. Apr. 2021 22:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sas-m2n 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von sas-m2n:
Hallo Wolfgang, Hallo Michael,
Was ich wollte war ein Button wie .....
Mit Eurer Hilfe hast es dann auch geklappt.

Hey.. na  SO ein Feedback zum Ende hin kommt immer gut an.  Egal welche Methode nun für Dich 'der Bringer' war...  zum Schluss hat es (mit gemeinsamer Hilfe) geklappt  und dann kam auch noch ein nettes "Danke"  zurück. Das ist einfach schön.  PUNKT

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MiBr
Mitglied
Konstrukteur


Sehen Sie sich das Profil von MiBr an!   Senden Sie eine Private Message an MiBr  Schreiben Sie einen Gästebucheintrag für MiBr

Beiträge: 508
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 19R3 Mechanical Pro

erstellt am: 15. Apr. 2021 10:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sas-m2n 10 Unities + Antwort hilfreich

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz