| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Lisp Befehle in ACAD2010 (2270 mal gelesen)
|
CADkon-dresden1 Mitglied Konstrukteur
Beiträge: 3 Registriert: 31.08.2010 ACAD 2010 CATS 2010 Turbo Tube f. Inventor
|
erstellt am: 01. Sep. 2010 15:10 <-- editieren / zitieren --> Unities abgeben:
Hallo Forenmitglieder, vor einiger Zeit haben wir von ACAD2009 auf ACAD2010 umgestellt. In ACAD2010 funktionieren unsere firmenspez. Lisp-Routinen nur noch sehr eingeschränkt bzw. gar nicht. Hängt von der Datei ab. In ACAD2009 funktionieren diese befehle bei gleichen Dateien uneingeschränkt. Könnt Ihr mir zu diesem Thema helfen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 01. Sep. 2010 15:22 <-- editieren / zitieren --> Unities abgeben: Nur für CADkon-dresden1
Zitat: Original erstellt von CADkon-dresden1: ... Könnt Ihr mir zu diesem Thema helfen?
Willkommen im Forum! Die Antwort auf deine Frage ist Ja. Dazu müsste man jedoch den Quellcode kennen, um festzustellen, an welchen Stellen, die Programme 'aussteigen'. Daher mein Tip zur Selbsthilfe: Empfehlen würde ich dir, dass den Quellcode im VL-Editor (Befehl: vlide) öffnest, im Menü unter [Debugging] den Punkt [bei Fehler unterbrechen] anhakst und das Programm von dort aus lädtst. Du startest das Programm, und wenn es in einen Fehler gelaufen ist, kannst du mit [Strg]+[F9] direkt an die Stelle des Quellcodes springen, an der der Fehler verursacht wurde. Wenn Du Dir dann nicht erklären kannst, weshalb das Tool an dieser Stelle aussteigt, postest du am besten den Code-Ausschnitt mit der passenden Beschreibung und Frage. Wenn das alles nicht zum Erfolg führt, müsstest du den Code hier veröffentlichen oder einem Programmierer deines Vertrauens zur Verfügung stellen, damit der die Korrektur der Tools vornimmt - was dann sicher aber nach Aufwand abgerechnet werden würde (zumindest bei mir). Alles klar? Grüße Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADkon-dresden1 Mitglied Konstrukteur
Beiträge: 3 Registriert: 31.08.2010 ACAD 2010 CATS 2010 Turbo Tube f. Inventor
|
erstellt am: 01. Sep. 2010 15:39 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger, vielen Dank für die Antwort. Dort war ich noch nie ... hab mir aber Mühe gegeben und bin - so glaub ich - an die Stelle gelangt, die Du beschrieben. Hierzu die angehängte Grafik von mir. Leider kann ich mit dieser Stelle auch gar nix anfangen. Was bedeutet dies und welche Konsequenzen hat das? Grüße Ralph Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 01. Sep. 2010 15:41 <-- editieren / zitieren --> Unities abgeben: Nur für CADkon-dresden1
|
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 01. Sep. 2010 16:08 <-- editieren / zitieren --> Unities abgeben: Nur für CADkon-dresden1
|
Plenz Mitglied
Beiträge: 71 Registriert: 01.09.2010 ACAD Archi 2015
|
erstellt am: 01. Sep. 2010 16:25 <-- editieren / zitieren --> Unities abgeben: Nur für CADkon-dresden1
Ein paar grundsätzliche Tipps zum Debuggen: 1.) Programmaufruf mit öffentlichen Variablen Normalerweise werden Variablen nur lokal verwendet, das sieht so aus: (defun c:meinprogramm( / variable1 variable2 variable3) Dies muss man fürs Debuggen auskommentieren: (defun c:meinprogramm( / ) ; variable1 variable2 variable3) Wenn man das Programm so laufen lässt oder das Programm bricht ab oder wird manuell abgebrochen, kann man die Variablen anschließend manuell auslesen: (princ variable1) (princ variable2) Nach dem Debuggen wieder den alten Zustand ohne Semikolon und Klammer herstellen! 2.) Programmablauf sichtbar machen An beliebigen Stellen im Code zusätzliche Zeilen einfügen: (princ "A") (princ "B") (princ "C") (princ "D") (princ "E") Wenn das Programm "ABC" ausgibt und dann abbricht, weiß man, dass der Fehler zwischen den Befehlen (princ "C") und (princ "D") zu suchen ist. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADkon-dresden1 Mitglied Konstrukteur
Beiträge: 3 Registriert: 31.08.2010 ACAD 2010 CATS 2010 Turbo Tube f. Inventor
|
erstellt am: 01. Sep. 2010 16:34 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 01. Sep. 2010 16:47 <-- editieren / zitieren --> Unities abgeben: Nur für CADkon-dresden1
Zitat: Original erstellt von Plenz: Ein paar grundsätzliche Tipps zum Debuggen:1.) Programmaufruf mit öffentlichen Variablen Normalerweise werden Variablen nur lokal verwendet, das sieht so aus: (defun c:meinprogramm( / variable1 variable2 variable3) Dies muss man fürs Debuggen auskommentieren: (defun c:meinprogramm( / ) ; variable1 variable2 variable3) Wenn man das Programm so laufen lässt oder das Programm bricht ab oder wird manuell abgebrochen, kann man die Variablen anschließend manuell auslesen: (princ variable1) (princ variable2) Nach dem Debuggen wieder den alten Zustand ohne Semikolon und Klammer herstellen! 2.) Programmablauf sichtbar machen An beliebigen Stellen im Code zusätzliche Zeilen einfügen: (princ "A") (princ "B") (princ "C") (princ "D") (princ "E") Wenn das Programm "ABC" ausgibt und dann abbricht, weiß man, dass der Fehler zwischen den Befehlen (princ "C") und (princ "D") zu suchen ist.
. im VLIDE gibts n Debugger .. da kann man Variablen beobachten, Haltepunkte setzten usw .... ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 bis ACA 2013 Arcibem System: Windows Internet-Startseite: http://www.archi.de
|
erstellt am: 01. Sep. 2010 17:31 <-- editieren / zitieren --> Unities abgeben: Nur für CADkon-dresden1
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 2.5 - 2022, Civil 3D, MAP 3D, ACADM Inventor AutoCAD 2022, AIP 4-2022 Win 10
|
erstellt am: 01. Sep. 2010 23:28 <-- editieren / zitieren --> Unities abgeben: Nur für CADkon-dresden1
Zitat: Original erstellt von CADkon-dresden1: Hallo Forenmitglieder, vor einiger Zeit haben wir von ACAD2009 auf ACAD2010 umgestellt. In ACAD2010 funktionieren unsere firmenspez. Lisp-Routinen nur noch sehr eingeschränkt bzw. gar nicht. Hängt von der Datei ab. In ACAD2009 funktionieren diese befehle bei gleichen Dateien uneingeschränkt.Könnt Ihr mir zu diesem Thema helfen?
Das in eurer Firma verwendete Doppelt.lsp stammt höchstwahrscheinlich von hier http://www.cadwiesel.de/index.html (Rubrik Sonstiges) Auf Cadwiesels Webseite steht dann auch als Hinweis "Fehler in 2010 behoben" bei Doppelt.lsp. Ich würds mir noch mal von dort herunterladen und mit der aktuellen Version testen.
------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 02. Sep. 2010 08:19 <-- editieren / zitieren --> Unities abgeben: Nur für CADkon-dresden1
Hallo Plenz, auf deine Tipps muss ich nun wirklich mal eingehen ... Zitat: Original erstellt von Plenz: ... Dies muss man fürs Debuggen auskommentieren: (defun c:meinprogramm( / ) ; variable1 variable2 variable3)
Das ist ja vollkommener Unsinn. Das würde ja bedeuten, dass ich in meinen Funktionen auf eine eindeutige Variablen-Namen achten muss. Es würde auch bedeuten, dass ich irgendwo am Ende meiner Funktionen die Variablen wieder auf NIL setzen müsste, damit beim nächsten Start, die Variablen nicht schon irrtümlich irgendwelche Werte haben, was ja wiederum zu einer absoluten Fehlfunktion des Programms führen könnte. Und das alles nur damit man Pseudo-Debuggen kann? Zitat: Original erstellt von Plenz: ... An beliebigen Stellen im Code zusätzliche Zeilen einfügen: (princ "A") (princ "B") (princ "C") (princ "D") (princ "E")Wenn das Programm "ABC" ausgibt und dann abbricht, weiß man, dass der Fehler zwischen den Befehlen (princ "C") und (princ "D") zu suchen ist. ...
Was soll dieser Hinweis - Soll ich Stunden damit verbringen, und den Code für's Debugging vorbereiten und nach der Fehlerbehebung wiederum Stunden um den Code zu säubern? Diese Zeit kann man getrost darauf verwenden, und sich mit dem VL-Editor auseinander setzen. Mit diesem kann man alle Variablen abfragen, StepByStep das Programm ablaufen lassen, und die Änderungen der Variablenwerte im Überwachungsfenster verfolgen - was will man mehr? Fazit Sorry, es gibt keine Daseinsberechtigung für deine Methoden des Debuggens! Ich gehe mal davon aus, dass hier niemand mit AutoCAD-Versionen vor Release 2000 zugange ist - ab dieser Version ist der VL-Editor fester Bestandteil des AutoCAD's. Und man kann ja geteilter Meinung über die Vorzüge des Editors sein, aber bei den Vorzügen beim Debuggen ist die VLIDE sehr gut und den mir bekannten anderen Editoren deutlich überlegen.
Grüße Holger
------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |