Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Fehlermeldungen Systemvariable

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:  Fehlermeldungen Systemvariable (795 mal gelesen)
molo
Mitglied
Dipl. Ing. Versorgungstechnik


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

Beiträge: 384
Registriert: 16.07.2002

Windows 7 64 bit, AutoCAD MEP 2012

erstellt am: 09. Sep. 2004 12:35    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

Moin,

es gibt die Systemvariable Expert, die einige Fehlermeldungen unterdrückt.

Ich möchte über ein Script alle objekte auf bestimmten Layern löschen, weiss aber nicht ob diese Layer unbedingt in der Zeichnung drin sind.

Der Layerbefehl gibt mir beim Fehlen der Layer Fehlermeldung aus.
"Keine übereinstimmenden Layenamen gefunden"

Kann ich diese Fehlermeldung auch ausschalten, oder muss ich mir im Script vorher so ein Layer erstellen?

------------------
Schöne Grüsse aus dem Herzen Hamburgs

Morten

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

molo
Mitglied
Dipl. Ing. Versorgungstechnik


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

Beiträge: 384
Registriert: 16.07.2002

Windows 7 64 bit, AutoCAD MEP 2012

erstellt am: 09. Sep. 2004 12:38    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

Hier ist nochmal das Script

Ohne machen eines Layers
-------------------------
_layer setzen 0 Sperren * Entsperren *_koo
löschen alle
_layer Tauen *
Bereinig Layer  nein


Mit machen eines Layers
_layer machen _koo setzen 0 Sperren * Entsperren *_koo
löschen alle
_layer Tauen *
Bereinig Layer  nein

------------------
Schöne Grüsse aus dem Herzen Hamburgs

Morten

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

BloodyMess
Mitglied
Applicationingenieur


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

Beiträge: 604
Registriert: 06.06.2002

AutoCAD Map 2000i
AutoCAD Map 3D 2005

erstellt am: 09. Sep. 2004 12:38    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 molo 10 Unities + Antwort hilfreich

Hallo Morten,

mach es doch unter VBA und fang den Fehler einfach ab.

http://ww3.cad.de/foren/ubb/Forum259/HTML/000199.shtml

Gruß TP

[Diese Nachricht wurde von BloodyMess am 09. Sep. 2004 editiert.]

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

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: 09. Sep. 2004 13:21    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 molo 10 Unities + Antwort hilfreich

Aufbauend aus dem Tool aus diesemThread (auch um mal die Wiederverwendbarkeit von CODE zu zeigen)...

(defun DELALL(LAYERLIST / BLOCK ) 
  (vl-load-com) 
  (if (=(type LAYERLIST)'LIST)
    (progn
      (vlax-for LAYOUT (vla-get-layouts(vla-get-activedocument(vlax-get-acad-object)))   
        (vlax-for ITEM (setq BLOCK (vla-get-Block LAYOUT))
          (if(member(strcase(vla-get-layer  ITEM))
                    (mapcar
                      '(lambda(X) (strcase X))
                      (vl-remove-if-not '(lambda(Y)(=(type Y)'STR))
                                          LAYERLIST
                      )
                    )
            )     
            (vl-catch-all-error-p
              (vl-catch-all-apply                 
                'vla-delete
                (list ITEM)
              )
            )         
          )
        ) 
      )                                           
      (vlax-for BLOCK (vla-get-blocks(vla-get-activedocument(vlax-get-acad-object)))
        (vlax-for ITEM BLOCK     
          (if(member(strcase(vla-get-layer  ITEM))
                    (mapcar
                      '(lambda(X) (strcase X))
                      (vl-remove-if-not '(lambda(Y)(=(type Y)'STR))
                                          LAYERLIST
                      )
                    )
            )     
            (vl-catch-all-error-p
              (vl-catch-all-apply                 
                'vla-delete
                (list ITEM)
              )
            )
          )         
        ) 
      )           
    )
  ) 
  (vla-regen(vla-get-activedocument (vlax-get-acad-object)) acAllViewports)
)

Aufruf dann z.B.
(delall '("LAYER1" "LAYER5"))

------------------
- Thomas -

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 09. Sep. 2004 13:34    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 molo 10 Unities + Antwort hilfreich

Hi Cadmium: Genau das ist *kein* Beispiel für die Wiedervendbarkeit von Code;-)

Wiederverwendbarkeit bedeutet doch, dass der Code einmal geschrieben und nicht mehr geändert, sondern nur noch in andere Anwendungen eingebunden wird. Das hier ist genau das Gegenteil und hört i.A. auf den Namen "Copy-Paste-Paradigma".

Wiederverwendeter Code braucht nicht noch einmal getestet werden, das hier ist aber ein Neubau, auch wenn er dem alten Code ähnlich sieht und viele Zeilen einfach kopiert wurden.

Gruß, Axel Strube-Zettler


------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

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: 09. Sep. 2004 13:39    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 molo 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von mapcar:
Hi Cadmium: Genau das ist *kein* Beispiel für die Wiedervendbarkeit von Code;-)

Wiederverwendbarkeit bedeutet doch, dass der Code einmal geschrieben und nicht mehr geändert, sondern nur noch in andere Anwendungen eingebunden wird. Das hier ist genau das Gegenteil und hört i.A. auf den Namen "Copy-Paste-Paradigma".

Wiederverwendeter Code braucht nicht noch einmal getestet werden, das hier ist aber ein Neubau, auch wenn er dem alten Code ähnlich sieht und viele Zeilen einfach kopiert wurden.

Gruß, Axel Strube-Zettler


Jaein, mir gings um das Gerüst mit den Zugriff auf die Objekte! Klar, könnte mann die Scan-routine so aufbauen, das das AuswahlKriterium und die Doit-Funktion auch noch als Parameter übergeben werden... das habe ich mir aber verkniffen 

Wie wärs.. ? Ne chance für dich , daran rumzuschrauben. Du darfst!!

------------------
- Thomas -

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

molo
Mitglied
Dipl. Ing. Versorgungstechnik


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

Beiträge: 384
Registriert: 16.07.2002

Windows 7 64 bit, AutoCAD MEP 2012

erstellt am: 09. Sep. 2004 13: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

Ich danke Euch für Eure Hilfe.

Erstens weiss ich jetz, dass es für solche Fehlermeldungen keine Systemvariable gibt 

Und zweitens kann ich wieder eine schöne Lisp in meine Sammlung nehmen.

Da ich selber nach über zwei Jahren in diesem Forum immer noch kein Lisp kann. Möchte ich mich hier nochmal ganz besonders für Eure hilfe bedanken! (Besonders wenn ich mir den anderen Beitrag durchlese)

Immerhin habe ich jetzt das Einsteigertutoriel von Axel schon einmal komplett durchgelesen. Dabei habe ich nicht besonders viel probiert. Das kommt beim zweiten mal dran. Irgendwann muss es ja klappen.

P.S.: mein Problem konnte ich, da es sich nur um einfache Objekte handelte, auch ganz gut mit meinem zweiten Script lösen.

------------------
Schöne Grüsse aus dem Herzen Hamburgs

Morten

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 09. Sep. 2004 15: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 Nur für molo 10 Unities + Antwort hilfreich

Cadmium scheint heute Lern-Laune zu haben;-)

Ich schraube nicht gleich daran rum - aber ein paar Fragen und Feststellungen:

Warum eigentlich ActiveX? Nur weil AutoDesk behauptet, das sei schneller? Ist es doch gar nicht... Jedenfalls liegt hier keine typische ActiveX-Anwendung vor. In diesem "anderen" Thread habe ich z.B. festgestellt, dass man das Entity "BODY" mit ActiveX nicht fassen kann, und vor ein paar Tagen ging's woanders um das Entity "VL-VLO" (im Zusammenhang mit LData). Mit Standard-Lisp kommt man also an alles dran, aber mit der ursprünglichen Version DELALL kann man weder 3D-Explode-Schrott noch LData-Geröll löschen. Mit ActiveX geht nun mal nicht alles!

Zur Fehlerbehandlung: Die finde ich ziemlich rabiat. Da wird eigentlich jeder mögliche Fehler gleich stillschweigend unter den Teppich gekehrt. Es ist aber nun mal so, dass auftretende Fehler oft, aber nicht immer, anzeigen, dass mit einem Programm etwas nicht in Ordnung ist. Dazu zwei Beispiele: Wenn diese HTML-Seite (bei CAD.de) nicht angezeigt wird, weil irgendein AdServer grad mal pinkeln ist und deshalb ein Werbe-Gif nicht kommt, ist es ok, wenn der Fehler mit einem Catch weggebügelt wird. Die Seite ist trotzdem in Ordnung und fehlerfrei, und sie sollte auch trotzdem angezeigt werden. Das andere Extrem wäre, dass jemand in Vlisp versucht, einer Linie einen Radius zu verplätten und großzügig ein (vl-catch-all-apply ...) drumklebt. So wird er unter Umständen nie merken, was er da für einen Quatsch geschrieben hat;-)

Was gibt es hier zu Catchen? Eigentlich nur Ownerships in allen Erscheinungsformen. Ein delete könnte also fehlschlagen, weil das Objekt referenziert wird. Mein Ansatz wäre da eher, statt catchascatchcan eine qualifizierte Rückgabe zu erzeugen (z.B. eine Liste aller Objekte, die sich beharrlich wie ein kleines gallisches Dorf gegen ihre Auslöschung gewehrt haben). Eine Rückgabe fehlt der Funktion ja bisher völlig - denn was ist die Rückgabe von vla-regen?

Unsinn ist das (vl-catch-all-error-p ...). Das ist doch eine Prädikatfunktion, deren Einsatz nur dann Sinn macht, wenn man das Ergebnis mit if, cond, and, or irgendwie auswertet. So verpufft die Rückgabe, denn das Programm will doch gar nicht wissen, ob ein Fehler aufgetreten ist. Wer die Antwort nicht haben will, braucht die Frage auch nicht zu stellen.

Es wäre auch wirklich zu überlegen, ob man eine wiedervendbare Funktion (apply-to-database doit-function) draus macht. Dann könnte man den Scan-Prozess, wie du das nennst, von der transportierten (lambda-)Expression abkoppeln. Möglich wäre eine Universalfunktion für alles, oder getrennte Varianten für Entities und Tabellenobjekte. Im zweiten Fall wäre die Bedienung etwas einfacher.

Zieht man aber (lambda-Expressions durch), ist es wahrscheinlich nicht mehr tragbar, dass hier das Active-Document zweimal abgefragt wird. Auch wenn ich immer gegen unsinnige SETQs predige - hier wäre eines angebracht. Im bösartigsten Fall könnte ja in der Expression ein anderes Dokument aktiviert werden. Dann, wenn ein mit SETQ gebundener Wert mehr als einmal referenziert wird, ist ein SETQ angebracht. Und dann ist da noch inline-Code, den man in eine Unterfunktion auslagern sollte, nämlich die (member...)-Zeilen. Das ist das Copy-Paste-Paradigma in Reinkultur - völlig identische Programmabschnitte!

Tja, Cadmium, ich hoffe, ich hab dir jetzt nicht deine Lern-Laune vergrätzt;-))) Die Kritik ist wirklich konstruktiv gemeint.

Gruß, Axel Strube-Zettler 

------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

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: 09. Sep. 2004 15:45    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 molo 10 Unities + Antwort hilfreich

@Axel .. schon ok, Danke  irgentwie muß man dich ja aus der Reserve locken

Vorbemerkung .. wenn man alles bis ins letzte feilt kommt sowas wie die Standard-Lisp-Bibo von Herrn Urban raus... effizient, aber keiner blickt mehr duch .. deshalb versuche ich möglichst Standalones zu liefern .. der Code muß ja doch abgearbeitet werden , egal ob ich nun
(vlax-for ITEM BLOCK .. in eine extra Funktion auslagere.. dafür ist copy-paste ok! Für Bibo-Funktionen, wo es auf Quelltextwartung usw. ankommt verfolge ich auch deinen Ansatz.
   
zu Oldlisp vs. VLisp .. den Code hier hatte ich gerade bei der Hand, ansonsten wird wohl immer von Fall zu Fall unterschieden werden müssen, z.B. bei der Property Truecolor ziehe ich VLIsp vor.

Fehlerbehandlung .. ok, ne Liste der Verhinderungsobjekte ist schon ok, mache ich auch öfter, aber in dem Fall interessiert die sicher auch keinen! ( das ist ein Forums-Lisp - ein BTN - und keine bis ins letzte ausgefeilte Bibofunktion)

Ansonsten.. ich freu mich schon auf die Diskussionen in Stuttgart.

------------------
- Thomas -

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