| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: Fehlermeldungen beim Start von SD durch Makros? (1048 mal gelesen)
|
MC Mitglied Dipl.Ing. Maschinenbau, Konstrukteur
Beiträge: 644 Registriert: 20.10.2000 System: HP Z400, 32GB RAM nVidia Quadro 4000 Win10 Enterprise 64bit SOLIDWORKS 2020 Premium SP5.0 Creo Elements/Direct Modeling (x64) 19.0 M030 Modelmanager 19
|
erstellt am: 28. Nov. 2001 07:54 <-- editieren / zitieren --> Unities abgeben:
Hallo Makro-Programmierer, ich erhalte bei Start von SD V.9.01 (HP UX 10.20) seit einiger Zeit immer 2 Fehlermeldungen (Bild siehe Anhang) Ich lade beim Start 4 Makros und weiß nicht, was mir da evtl. Probleme macht. SD läuft aber nach Bestätigung der Fehler problemlos. Im dtterm-Fenster sehe ich dann folgendes Protokoll: sd-defdialog DC4-POSITIONIEREN-DIALOG... Warning: Variable POSITIONING: Object for positioning not :assembly, : part or : part-assembly sd-defdialog ZYLINDERSENKUNG... ;; Warning: Prompt for state PNT_1 of ZYLINDERSENKUNG is not localizable. ;; Warning: Prompt for state BOHR_DM of ZYLINDERSENKUNG is not localizable. ;; Warning: Prompt for state SENK_DM of ZYLINDERSENKUNG is not localizable. ;; Warning: Prompt for state SENK_TF of ZYLINDERSENKUNG is not localizable. sd-defdialog KEGELSENKUNG... ;; Warning: Prompt for state PNT_1 of KEGELSENKUNG is not localizable. ;; Warning: Prompt for state BOHR_DM of KEGELSENKUNG is not localizable. ;; Warning: Prompt for state SENK_DM of KEGELSENKUNG is not localizable. ;; Warning: Prompt for state SENK_TF of KEGELSENKUNG is not localizable. sd-defdialog AE_COAXIAL... ;; Warning: Prompt for state W_DIR_PT of AE_COAXIAL is not localizable. Kann mir evtl. jemand sagen, was da nicht stimmt? Vielen Dank im Voraus, Michael. [Diese Nachricht wurde von MC am 28. November 2001 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
Beiträge: 2143 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook 17 G4, Windows 10 Pro 64
|
erstellt am: 28. Nov. 2001 09:16 <-- editieren / zitieren --> Unities abgeben: Nur für MC
Tja, das sieht so aus, als wäre irgendwo ein Syntax Error versteckt. Das Debuggen mit Lisp ist ja leider nicht so begwem wie im ME10 mit TRACE. Am besten den Fehler eingrenzen, indem man ganze Befehlsblöcke mit #| und |# auskommentiert und die Makros immer noch einmal lädt, bis der Fehler weg ist. Was genau da nicht stimmt, ist schwer zu sagen, das kann auch ein fehlendes Anführungszeichen sein oder ein Tippfehler (bei mir immer wieder ein : statt einem ; bei Kommentaren). Die Warnungen im Terminalfenster kann man ignorieren. 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: 30. Nov. 2001 17:45 <-- editieren / zitieren --> Unities abgeben: Nur für MC
Zitat: Original erstellt von MC: Hallo Makro-Programmierer, ich erhalte bei Start von SD V.9.01 (HP UX 10.20) seit einiger Zeit immer 2 Fehlermeldungen (Bild siehe Anhang) Ich lade beim Start 4 Makros und weiß nicht, was mir da evtl. Probleme macht.
Vorschlaege zur Fehlersuchstrategie:
- Option -v beim Start von SD angeben; dadurch bekommt man in der Konsole jeweils gesagt, welche Datei gerade geladen wird. Damit kann man den Fehler schon mal auf eine Datei eingrenzen.
- Code in fehlerhafter Datei schrittweise eingrenzen, zum Beispiel mal mit (load "foo.lsp" : print t) laden (damit bekommt man ziemlich gute Diagnose ueber alle Toplevelforms in der LISP-Datei)
- LISP-Debugger aktivieren: (setf *enter-break-handler* t). Ab jetzt landet man bei jedem LISP-Fehler im Debugger und kann sich den Stacktrace anschauen.
Claus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MC Mitglied Dipl.Ing. Maschinenbau, Konstrukteur
Beiträge: 644 Registriert: 20.10.2000
|
erstellt am: 03. Dez. 2001 07:54 <-- editieren / zitieren --> Unities abgeben:
Hallo Walter & Claus, danke schonmal für die Tipps. Ich habe mittlerweile herausgefunden, daß der Fehler nicht durch die Makros verursacht wird, da er auch ohne diese zu laden auftaucht. @Claus: - mit der Option "-v" starten funktioniert zwar, aber im Terminalfenster steht leider nicht anderes als zuvor ohne die Option ?!? - wo muß ich das (load "foo.lsp" : print t) denn eingeben? Wenn ich das im SD-Fenster eingebe sagt er "Lisp-Fehler, die Variable load ist nicht gebunden ...." - Wo muß denn das (setf *enter-break-handler* t) stehen? Muß ich das in genau dieser Form in jedes LISP-Makro einfügen? Sorry für die vielen Fragen am Montag-Morgen ;-) Gruß, Michael. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Markus Kuehl Mitglied
Beiträge: 165 Registriert: 22.06.2001
|
erstellt am: 03. Dez. 2001 08:57 <-- editieren / zitieren --> Unities abgeben: Nur für MC
Hallo Michael, Zitat:
Ich habe mittlerweile herausgefunden, daß der Fehler nicht durch die Makros verursacht wird, da er auch ohne diese zu laden auftaucht.@Claus: - mit der Option "-v" starten funktioniert zwar, aber im Terminalfenster steht leider nicht anderes als zuvor ohne die Option ?!? - wo muß ich das (load "foo.lsp" : print t) denn eingeben? Wenn ich das im SD-Fenster eingebe sagt er "Lisp-Fehler, die Variable load ist nicht gebunden ...." - Wo muß denn das (setf *enter-break-handler* t) stehen? Muß ich das in genau dieser Form in jedes LISP-Makro einfügen?
Mit der Option -v (/opt/CoCreate/SolidDesigner/pesd -v) muesste man im Terminal-Window genau sehen, welche Dateien gerade geladen werden: Loading ... und Finished loading ... Damit muesste man den Ursprung des Problems ziemlich gut einschraenken koennen. Wenn man dann im Fehler steht, diesen bitte per OK abklicken und dann in die Eingabezeile vom SolidDesigner folgendes eingeben: (setq si::*enter-break-handler* t) (use-fast-links nil) Danach per (load "...") (einzugeben in der Eingabezeile vom SD) die Datei, die das Problem verursacht erneut versuchen zu laden. Wenn man dann wieder im Fehler steht, den Fehler abklicken mit OK. Danach muesste man im LISP Debugger stehen - zu sehen an dem Prompt "[1]: Enter break command". Jetzt bitte :b in SD's Eingabezeile eingeben. Dann sieht man im Terminal-Window einen Stackbacktrace. Anhand dessen, muesste man erkennen, wo das Problem liegt. Danach kommt man per :q wieder aus dem LISP Debugger heraus. Hoffentlich hilft's. Viele Gruesse, Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MC Mitglied Dipl.Ing. Maschinenbau, Konstrukteur
Beiträge: 644 Registriert: 20.10.2000 System: HP Z400, 32GB RAM nVidia Quadro 4000 Win10 Enterprise 64bit SOLIDWORKS 2020 Premium SP5.0 Creo Elements/Direct Modeling (x64) 19.0 M030 Modelmanager 19
|
erstellt am: 03. Dez. 2001 12:04 <-- editieren / zitieren --> Unities abgeben:
|
rmcc1980 Mitglied Ingenieur
Beiträge: 358 Registriert: 06.06.2003 Drafting 18.1 Modeling 18.1 MM Win7 64
|
erstellt am: 01. Jun. 2004 13:20 <-- editieren / zitieren --> Unities abgeben: Nur für MC
Zitat: Original erstellt von clausb: LISP-Debugger aktivieren: (setf *enter-break-handler* t). Ab jetzt landet man bei jedem LISP-Fehler im Debugger und kann sich den Stacktrace anschauen. Claus
Hallo, leider lande ich nicht im Debugger. Oder trifft das nur auf Fehler beim Laden zu? Wo soll der Debugger erscheinen? Als Anfänger in LISP tue ich mich da sehr schwer. Seit FORTRAN 4 ist mir ein so schlechtes Degugging nicht mehr untergekommen. Mit zerrauften Haaren Bernd 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. Jun. 2004 15:07 <-- editieren / zitieren --> Unities abgeben: Nur für MC
Der integrierte Debugger ist in der Tat etwas einfach gestrickt. Wenn man ihn aber erst einmal kennt, merkt man, dass er doch eine Menge kann. Wenn Du normalerweise auf einen LISP-Fehler laeufst, bekommst Du eine Fehlermeldung in einer Messagebox. Wenn Du den LISP-Debugger vorher aktivierst, wird stattdessen zunaechst der Debugger aktiviert. Einfaches Beispiel:
- OSDM starten
- Konsolenfenster oeffnen (View/Console)
- Nach dem Hochfahren (setf *enter-break-handler* t) eingeben
- In der OSDM-Kommandozeile irgendeinen unsinnigen String eingeben, beispielsweise "gazonkomatic" (ohne die Anfuehrungszeichen)
Jetzt bekommt man zuerst die bekannte LISP-Fehlerbox. Dann geht das System in den Debugmodus. Man erkennt das am Prompt "[1]: Enter break command". Ausserdem steht im Konsolenfenster so etwas wie "Error: LISP error: The variable GAZONKOMATIC is unbound - Signalled by GET-ACTION-PM - Broken at GET-ACTION-PM. Type :H for Help.". Wenn Du jetzt, entsprechend dieser Anleitung, einfach mal ":h" eingibst (ohne die Anfuehrungszeichen), bekommst Du eine Liste aller im Debugger verfuegbaren Kommandos. Beispielsweise kann man sich lokale und globale Variablen ansehen oder aendern, einen Stacktrace ausgeben, weiterspringen etc etc. Ansonsten sei Dir noch das trace-Kommando ans Herz gelegt, mit dem man die meisten LISP-Debuggingaufgaben deutlich erleichtern kann. Zu Details siehe beispielsweise http://www.lisp.org/HyperSpec/Body/mac_tracecm_untrace.html und http://www.psg.com/~dlamkins/sl/chapter16.html . Claus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|