Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Gelöschte Handent macht Probleme

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:  Gelöschte Handent macht Probleme (712 / mal gelesen)
Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 06. Apr. 2017 11: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 Forum!
Hab nach langer Pause mal wieder ein Problem:
Ich such über (setq a (handent "0815")) einen Block. Alles läuft prima, nur wenn der Block gelöscht wird, dann bekomme ich nicht mehr ein Nil zurück wie früher, sondern das Programm bricht ab (ungültiger Objektname). Kann das mit Lisp aber nicht abfangen!

Ich hoffe Ihr versteht mein Problem und könnt mir helfen!?!

Vielen Dank!
Grüße Sven

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 06. Apr. 2017 12:08    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 Big Sven 10 Unities + Antwort hilfreich

Der gepostete Code liefert dir doch keinen Abrruch zurück, , sondern ein ENAME?
Der Abbruch wird bei der Weiterverarbeitung geschehen die uns nicht bekannt ist.
Das war schon immer so und ist nicht neu.

(entdel (handent "271")) liefert doch sicher keinen Abbruch sondern zaubert das Objekt zurück, richtig?

nil kommt nur zurück wenn das Handle unbekannt ist,
ein gelöschtes Entity ist aber noch bekannt.

Erzähle also mal etwas mehr (und genauer) und korrigiere meine Aussagen, wenn nötig. 

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 06. Apr. 2017 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

Hallo cadffm,

Du hast natürlich Recht! Nil kommt nur zurück, wenn es unbekannt ist, ansonsten bekomme ich schon etwas zurück. Nur war mir das bisher nicht aufgefallen oder sagen wir mal so, ich bin mir nicht sicher, ob es nicht beim gelöschten Objekt Nil zurück gibt.
Wie kann ich denn jetzt feststellen, ob es sich um ein gelöschtes Objekt handelt?

Grüße Sven

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 06. Apr. 2017 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 Nur für Big Sven 10 Unities + Antwort hilfreich

Wenn es um AutoLisp geht, dann würde man bei ENTGET ein NIL erhalten
(entget (handent h)) -> nil


Nachtrag zur Vervollständigung des Threads:


Auch würde sich von dem ENAME her kein VLA-Objekt ermitteln lassen:
(vlax-ename->vla-object (handent h))


Wenn man ein VLA-Object hat und testen möchte, dann gibt es eine extra-Funktion dafür:
(vlax-erased-p obj)

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 06. Apr. 2017 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 cadffm,

vielen Dank für Deine Hilfe!
Leider bin ich nicht so firm mit VLA-Objekten, aber ich habe jetzt eine weitere Überprüfung eingebaut, ob das Objekt bereits wieder gelöscht wurde!
Komisch ist nur, dass das seit 10 Jahren niemanden aufgefallen ist!

Grüße Sven

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 06. Apr. 2017 16: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 Nur für Big Sven 10 Unities + Antwort hilfreich

Jedem der in Lisp programmiert "sollte" das bekannt sein.
Es ist genau so in der Hilfe dokumentiert, also auch gewollt.

So funktioniert dann auch der Hoppla-Befehl.

Also "aufgefallen" ist das vielen. Aber man vergisst auch mal 

Der Programmierer hat es in der Hand.
Sobald zwischen Objektdaten spichern (Handle, Ename, Entityliste) und der Weiterverarbeitung die Möglichkeit besteht dass es dieses Objekt "nicht mehr gibt", muß eine Überprüfung stattfinden.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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: 07. Apr. 2017 08:01    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 Big Sven 10 Unities + Antwort hilfreich

Hallo Sven,
Du kannst aber auch prüfen, ob das Objekt für weitere Verwendung gültig ist:

Code:

(if (and(handent "1234")
        (entget(handent "1234")))
    (alert "Das Objekt kann bearbeitet werden")
    )

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

Jörn
http://www.bosse-engineering.com

Liniensignaturen Youtube

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