Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Programmierung
  Aufruf Lisp Funktionen über Befehlszeile

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 Creo
  
SF TECHNICAL , eine App
Autor Thema:  Aufruf Lisp Funktionen über Befehlszeile (1216 / mal gelesen)
SchmitteHarry
Mitglied



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

Beiträge: 29
Registriert: 30.07.2020

PTC Creo Elements Direct V 19
Siemens NX 1953

erstellt am: 10. Aug. 2020 20:49    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

Ich habe da ein Verständnisproblem. In einer selbsgeschriebenen Lisp-Datei sind mehrer Funktion (über defun) enthalten. Die laufen auch wenn die sich untereinander aufrufen. Wenn ich aber eine dieser vorher geladenen Funktionen über die Befehlszeile aufrufen will gibt das System immer eine Fehlermeldung zurück z.B :
"LISP-Fehler: The function <Name der Funktion> is undefined"

Vielleicht kann mir jemand sagen, was ich da falsch mache.

Gruß Hermann

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

Seele
Mitglied
Konstrukteur


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

Beiträge: 391
Registriert: 11.06.2003

erstellt am: 11. Aug. 2020 07:15    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 SchmitteHarry 10 Unities + Antwort hilfreich

Hallo Hermann,

ich denke dass es daran liegt, dass du dem Befehl noch den Paketnamen voranstellen musst, indem du deine Makro´s geladen hast, weil LISP sonst nicht weis in welchen Befehl er ausführen soll.

In welchem Paket dein LISP abgelegt ist, kannst du mir folgendem Befehl ermitteln:

(DISPLAY (package-name (symbol-package 'GesuchterLISPBefehl)))

weist Du dann wo er ist, musst Du den Paketnamen vor deinem LISP-Aufruf reinpacken. War die Rückmeldung z.B. OLI, dann würde dein Aufruf so lauten:

OLI::GesuchterLISPBefehl

dann sollte es funktionieren.

Weiterhin musst du darauf achten, dass Du auch deine Parameter mit übergibst, falls der LISP-Schnipsel welche benötigt.

So ich hoffe ich konnte Dir weiterhelfen, ...

Gruß Wolfgang 

------------------
alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. 

Werden wir es schaffen? Ja wir schaffen das !!! :-)

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

Seele
Mitglied
Konstrukteur


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

Beiträge: 391
Registriert: 11.06.2003

Intel(R) Xeon(R) W-2245 CPU @ 3,90 GHz, 64GB RAM
NVidia Quadro RTX A4000
Win10-64Bit
Elements/Direct v20.7.0.0
PartLibrary, Surfacing, 3D-PDF,
3D-Access, Unigraphics-Schnittstelle

erstellt am: 11. Aug. 2020 07:23    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 SchmitteHarry 10 Unities + Antwort hilfreich

Ergänzung:

wenn es in einem Defun steht, dann wäre der Aufruf in Klammern zu setzen.

(OLI::GesuchterLISPBefehl)

und mit Parametern so:

(OLI::GesuchterLISPBefehl (Parameter1 Parameter2 ...)

Gruß Wolfgang 

------------------
alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. 

Werden wir es schaffen? Ja wir schaffen das !!! :-)

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

SchmitteHarry
Mitglied



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

Beiträge: 29
Registriert: 30.07.2020

PTC Creo Elements Direct V 19
Siemens NX 1953

erstellt am: 11. Aug. 2020 13:31    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,
dein Hinweis hat mir wirklich weitergeholfen. Am Ende war so, dass ich immer nur einen Doppelpunkt zwischen Package und Funktionsnamen, obwohl da ja 2 Doppelpunkte hingehören.

Nochmals Danke und frohes Arbeiten oder urlauben .. 

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: 576
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. Aug. 2020 09:09    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 SchmitteHarry 10 Unities + Antwort hilfreich

Hallo,

das Problem scheint ja gelöst! Ich hatte bei dem Thema gehofft, das für mich ein wenig
Licht im Dunkeln in Bezug auf die Package kommt. Kann jemand meine große Lücken ein wenig
schließen?
Ich benutze zu 99,999% immer den folgenden 2 Zeiler am Anfang der Lisp, ohne groß darüber nachzudenken!
(in-package :custom)
(use-package :oli)
Denke sonst müsste ich vor den meisten Befehlen oli: schreiben, manchmal auch mit zwei ::

Kann man eigene Package erstellen, bzw sollte man? Ihr merkt ich habe keine Ahnung!
Hat da jemand eine einfach flache Erklärung für mich parat?

Gruß Michael


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

Seele
Mitglied
Konstrukteur


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

Beiträge: 391
Registriert: 11.06.2003

erstellt am: 12. Aug. 2020 09: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 Nur für SchmitteHarry 10 Unities + Antwort hilfreich

Hallo Michael, ...

ich kenne mich in LISP zwar auch nicht 100% aus (LISP-Anfänger), aber ich versuche es aus meinem bisherigen Verständnis heraus.

Ich denke diese Packages sind im LISP sowas wie Ordner in denen Befehle/LISP-Makros in einer Gruppe zusammengefasst werden können.
Das erleichtert dann die Aufteilung in Gruppen oder Teilbereiche der Entwicklung.
Im Prinzip kannst Du deine eigenen Lisp´s jeder Package zuordnen auch z.B. OLI
Jedoch gilt es zu beachten, wenn Du nicht weist, welche Variablen innerhalb dieser Gruppe verwendet oder welche Namen schon vergeben wurden, kann es zu unvorhersehbaren Wechselwirkungen kommen. Muss natürlich nicht, kann aber.

Ich habe deshalb alle von mir selbst eingebauten LISP-Makro´s und auch solche die ich vom Forum habe, grundsätzlich in mein eigenes neues Package (in-package :SW) geladen, da dieses noch nicht existierte.
Dadurch wurde es dann auch automatisch neu erzeugt.
Baue ich jetzt Mist mit unsauberen Programmieren, Variablen zuweisen, sollte das bei mir z.B auf diese Gruppe SW:: begrenzt sein, da auch jede Variable die verwendet wird diesem Paket zugewiesen wird.
Teile der Original-Software sollten daher nicht durch meine vielleicht schlechte Variablen-Benennung beeinflusst werden. (Hoffe ich,...) :-)

Gruß Wolfgang 

PS: Vielleicht schribt ja noch jemand, der es besser weis als ich, etwas zu diesem Thema hinzu.

------------------
alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. 

Werden wir es schaffen? Ja wir schaffen das !!! :-)

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: 576
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. Aug. 2020 12: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 SchmitteHarry 10 Unities + Antwort hilfreich

Danke,

für deine Erklärung!!! Dann liege ich ja mit dem (in-package :custom) garnicht daneben!

Gruß Michael

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

lix b
Mitglied
Konstrukteur, CAD-Admin


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

Beiträge: 292
Registriert: 03.10.2014

Creo Elements / Direct Modeling 20.4
Creo Elements / Direct Model Manager 20.4
<P>Notepad++
Win 11

erstellt am: 14. Aug. 2020 12:47    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 SchmitteHarry 10 Unities + Antwort hilfreich

Mahlzeit!

Noch besser wäre es ein komplett eigenens Package zu verwenden, denn auch im Package :custom schwirren viele Sachen von z.B. Support/Dienstleistern rum, deren Wechselwirkungen man vermeiden sollte.

------------------
Viele Grüße
Felix

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: 576
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: 14. Aug. 2020 13:15    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 SchmitteHarry 10 Unities + Antwort hilfreich

Hallo Felix,

danke für den Hinweiß, ich bin gerade dabei mittels:

Code:

display (LIST-ALL-PACKAGES)

und
Code:
(do-symbols (s (find-package "CUSTOM")) (display (format nil "~a" s)))

mir mal anzuschauen was alles in der Custom, oli und ... hängt.

Und wie du sagst schwirren da viele Sachen drin rum! Ich werde das umstellen und so wie Wolfgang
sagt muss ich ja in den Lisp nur (in-package :mybadlisp) schreiben und alles läuft sicherer!!!

Danke für den zusätlichen Hinweiß

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)2024 CAD.de | Impressum | Datenschutz