| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| |
 | TFH Technical Services B.V. wird Teil der MAIT Gruppe, eine Pressemitteilung
|
Autor
|
Thema: LISP-Fehler: Cannot expand the SETF form (POSITION-IF #'NUMBERP ... (1503 mal gelesen)
|
holt Mitglied Systembetreuer CAD
  
 Beiträge: 720 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 01. Dez. 2008 11:14 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich bekomme beim Laden eines Lisp-Files immer folgende Fehlermeldung:
Code: LISP-Fehler: Cannot expand the SETF form (POSITION-IF #'NUMBERP (SD-INQ-OBJ-BASENAME VIEW) :KEY ...).
Was bedeutet die Meldung? Kann es sein, dass die Funktion position-if im IKIT nicht implementiert ist?
------------------ Gruß aus dem Salzkammergut Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000
|
erstellt am: 01. Dez. 2008 11:18 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
|
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 01. Dez. 2008 11:26 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
|
holt Mitglied Systembetreuer CAD
  
 Beiträge: 720 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 01. Dez. 2008 11:37 <-- editieren / zitieren --> Unities abgeben:         
Ein Fehler? Bei mir doch nicht! Im Ernst: Hier der Code um den es geht:
Code:
(decf (position-if #'numberp "Test123" :key #'(lambda (zchn) (oli:sd-read-from-string (format nil "~a" zchn)))))
Ich möchte damit die Position der ersten Ziffer ermitteln und um 1 erniedrigen.Edit: Das war zu wenig Code, decf verursacht offensichtlich das Problem. ------------------ Gruß aus dem Salzkammergut Thomas [Diese Nachricht wurde von holt am 01. Dez. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
  
 Beiträge: 720 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 01. Dez. 2008 11:47 <-- editieren / zitieren --> Unities abgeben:         
|
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 01. Dez. 2008 14:54 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
Zitat: Original erstellt von holt: Das kann gar nicht funktionieren, da decf den übergebenen Wert verändert und nicht den Rückgabewert.
Weil nämlich decf (wie incf) ein Lisp-Makro ist. Aus der Common-Lisp-Dokumentation: Zitat:
decf place [delta] The delta is ... subtracted from the number in place and the result is stored in place.
Der erste Parameter für decf muss also einen Platz bezeichnen, an dem das berechnete Ergebnis von decf wieder abgespeichert werden kann. In Deinem Fall sinnvoller: 1-. ------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/
[Diese Nachricht wurde von clausb am 01. Dez. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
  
 Beiträge: 720 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 01. Dez. 2008 15:15 <-- editieren / zitieren --> Unities abgeben:         
|
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 01. Dez. 2008 15:53 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
|
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2296 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5737 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
erstellt am: 01. Dez. 2008 19:32 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
Zitat: Original erstellt von holt: Das kann gar nicht funktionieren, da den übergebenen Wert verändert
Code: (trace decf position-if numberp) ;; verdaechtiger code (untrace decf position-if numberp)
liefert häufig erkenntniss WO es rumpeltt . Also ein gezieltes, dann aber intensives trace'n der verwendeten Funktionen..... wobei man LISP Macros in CoCreate Modeling nicht tracen kann. Aber das sieht man (wie im obigen Fall) dann auch sehr schnell im Konsolenfenster. Und 'weh' tut der nicht funktionierende trace auch nicht (Ausserdem baut man das ja auch nur vorübergehend ein). ------------------ ● Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● [Diese Nachricht wurde von der_Wolfgang am 01. Dez. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 01. Dez. 2008 21:32 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
Bzzzt. decf kann man zumindest in der Lisp-Implementierung von CoCreate Modeling nicht mit (trace) verfolgen. Aber zum Glück reicht in diesem Fall zur Klärung ja auch ein flüchtiger Blick in ein beliebiges Common-Lisp-Buch oder in die CL-Spezifikation. Claus ------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/
[Diese Nachricht wurde von clausb am 02. Dez. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |