Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Fehlermeldung in meiner VLX-Anwendung

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 Autodesk Produkte
Autor Thema:  Fehlermeldung in meiner VLX-Anwendung (1087 mal gelesen)
Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 26. Apr. 2005 15:51    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,

in meiner VLX-Anwendung treten seit Wochen immer wieder mal Fehlermeldungen wie z.B. "Fehlerhafter Argumenttyp: fixnump: nil" auf. Das passiert unregelmäßig und auch bei verschiedene Befehle. Starte ich nach Auftreten des Fehlers den gleichen Befehl noch einmal, ist der Fehler weg. Auch im Lisp-Debugger tritt der Fehler nicht auf. Dadurch habe ich im Moment keinerlei Anhaltspunkte, welche Variable in meiner VLX-Anwendung nil ist. Deshalb meine Frage:
Ist es irgendwie möglich, die defun-Funktion (oder noch besser die Stelle des Fehlers im Code) zu erhalten, in der der Fehler entstanden ist?

Danke im Voraus und viele Grüße
Bernd

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 26. Apr. 2005 17:19    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 Bernd10 10 Unities + Antwort hilfreich

Hallo Bernd,
kann es sein, daß Deine Funktion eine globale Variable verwendet, die nicht immer grundsätzlich gesetzt ist?
z.B.
(defun c:test ( / )
  (setq a (* 1 b)))
Wenn ich innerhalb der Zeichnung die Variable b (setq b 1) setze, dann kommt das erwartete Ergebnis raus, wenn die Variable b aber nil ist, dann kommt folgende Fehlermeldung: Fehlerhafter Argumenttyp: numberp: nil

Ich würde also prüfen, ob Du globale Variablen verwendest, deren Inhalte vielleicht durch ein anderes Programm verändert werden.

------------------
viele Grüße

Jörn

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

Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 27. Apr. 2005 08:05    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 Joern,

Zitat:
Original erstellt von joern bosse:

kann es sein, daß Deine Funktion eine globale Variable verwendet, die nicht immer grundsätzlich gesetzt ist?
...
Ich würde also prüfen, ob Du globale Variablen verwendest, deren Inhalte vielleicht durch ein anderes Programm verändert werden.

Ich habe einige globale Variablen, das eine solche Überprüfung in meinen vielen Funktion eigentlich unmöglich macht, sofern ich den Kreis der Funktionen und/oder der Variablen nicht eingrenzen kann. Deshalb auch meine Frage nach der Möglichkeit, ob man die Funktion beim Abbruch feststellen kann.

Gruß Bernd

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 27. Apr. 2005 09:41    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 Bernd10 10 Unities + Antwort hilfreich

Hallo Bernd,
es gibt noch die Funktion "trace"
Damit kannst Du Deine Funktionen bezüglich der übergebenen Variablen und der Ergebnisse prüfen, kann Dir aber nicht mehr dazu sagen, weil ich diese Funktion selber auch noch nie so richtig verwendet habe.
Und so gehts:

Befehl: (trace test) wobei test die zu überwachende Funktion ist
wenn Du jetzt eine vlx-Datei aufrufst, die auch die Funktion "test" verwendet erscheint in der Befehlszeile folgendes Protokoll:
Eingabe von (TEST "Testvariable")
Ergebnis:  ("testergebnis")

------------------
viele Grüße

Jörn

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

Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 27. Apr. 2005 10:57    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 Joern ,

Zitat:
Original erstellt von joern bosse:

es gibt noch die Funktion "trace"
Damit kannst Du Deine Funktionen bezüglich der übergebenen Variablen und der Ergebnisse prüfen, kann Dir aber nicht mehr dazu sagen, weil ich diese Funktion selber auch noch nie so richtig verwendet habe.
Und so gehts:

Befehl: (trace test) wobei test die zu überwachende Funktion ist
wenn Du jetzt eine vlx-Datei aufrufst, die auch die Funktion "test" verwendet erscheint in der Befehlszeile folgendes Protokoll:
Eingabe von (TEST "Testvariable")
Ergebnis:  ("testergebnis")


ich kenne die Funktion "trace" im Moment auch nicht. Deshalb muss ich in der Entwicklerhilfe darüber zuerst einmal nachlesen. Ich melde mich wieder, ob mich die Funktion bei meinem Problem weiter gebracht hat.

Danke und viele Grüße
Bernd

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 04. Mai. 2005 15:44    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 Bernd10 10 Unities + Antwort hilfreich

du holst dir dein Lispprogramme in die vlide, und stellst im Menü "Debugging->bei Fehler unterbrechen" ein.

tritt jetzt ein Fehler auf kommst du mit Ctrl-Shft-G (suchen-> letzte Arbeitsposition) zum Lispprogramm (und zwar zur letzten funktionierenden Anweisung) , dass den Fehler verursacht hat.

------------------

Ing. Anton Fuchs
WWW.FFZELL.AT.TC

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

Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 04. Mai. 2005 16:12    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 Anton,

Zitat:
Original erstellt von fuchsi:
du holst dir dein Lispprogramme in die vlide, und stellst im Menü "Debugging->bei Fehler unterbrechen" ein.

tritt jetzt ein Fehler auf kommst du mit Ctrl-Shft-G (suchen-> letzte Arbeitsposition) zum Lispprogramm (und zwar zur letzten funktionierenden Anweisung) , dass den Fehler verursacht hat.


das habe ich schon mehrmals versucht, aber leider tritt der Fehler dann nicht mehr auf. Auch wenn ich den abgebrochenen Befehl ohne Debugger sofort nochmal starte, tritt der Fehler nicht mehr auf.

Trotzdem danke und viele Grüße
Bernd

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

benwisch
Mitglied
Bautechniker, CAD-Konstrukteur


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

Beiträge: 375
Registriert: 01.02.2001

erstellt am: 05. Mai. 2005 17:12    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 Bernd10 10 Unities + Antwort hilfreich

nur so'ne Vermutung....
hast du mal deine Anwendung nur als FAS geladen und getestet?
Geht's dann?

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

Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 09. Mai. 2005 07:48    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 benwisch,

Zitat:
Original erstellt von benwisch:
nur so'ne Vermutung....
hast du mal deine Anwendung nur als FAS geladen und getestet?
Geht's dann?

ich habe ca. 800 FAS-Dateien und es wäre ein großer Aufwand (besonders bei den Benutzern), die einzeln zu laden. Kannst Du mir deshalb kurz erklären, warum es bei geladenen FAS-Dateien nicht zu dem Fehler kommen soll?

Danke und viele Grüße
Bernd

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

benwisch
Mitglied
Bautechniker, CAD-Konstrukteur


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

Beiträge: 375
Registriert: 01.02.2001

erstellt am: 09. Mai. 2005 12:59    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 Bernd10 10 Unities + Antwort hilfreich

Hallo Bernd

1.Vermutung


  • schau dir mal diesen Link an, vielleicht hilft dir das schon mal weiter...

Zitat:
Ich habe einige globale Variablen, das eine solche Überprüfung in meinen vielen Funktion eigentlich unmöglich macht, sofern ich den Kreis der Funktionen und/oder der Variablen nicht eingrenzen kann.

2. Vermutung

  • globale Variablen können von anderen Programmen überschrieben werden, wenn sie nicht besser benannt werden.
  • Bsp. : gute/schlechte Varibalennamensgebung
    schlecht -> color
    besser  -> *color*
    noch besser -> *[eindeutes Prefix]color*

Tipp
zum auffinden von globalen Variablen, hat uns/mir Mapcar  hier zwei kleine Lisp-Tools zur Verfügung gestellt.

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

Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 09. Mai. 2005 13: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

Hallo benwisch,

Zitat:
Original erstellt von benwisch:

[b]1.Vermutung


  • schau dir mal diesen Link an, vielleicht hilft dir das schon mal weiter...

[QUOTE]Ich habe einige globale Variablen, das eine solche Überprüfung in meinen vielen Funktion eigentlich unmöglich macht, sofern ich den Kreis der Funktionen und/oder der Variablen nicht eingrenzen kann.

2. Vermutung

  • globale Variablen können von anderen Programmen überschrieben werden, wenn sie nicht besser benannt werden.
  • Bsp. : gute/schlechte Varibalennamensgebung
    schlecht -> color
    besser   -> *color*
    noch besser -> *[eindeutes Prefix]color*

Tipp
zum auffinden von globalen Variablen, hat uns/mir Mapcar  hier zwei kleine Lisp-Tools zur Verfügung gestellt.[/B][/QUOTE]

danke für die Informationen.

Gruß Bernd

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