Mit Unterstützung durch:
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen >
Beiträge: 859Registriert: 07.08.2008
ich habe von >hier< einen Code mit dem man Texte aus Blöcken löschen kann.
Jetzt wollte ich mit dem Code nicht sichtbare Objekte aus den Blöcken löschen mit (60 . 1), aber damit findet er nicht die Objekt.
Code:(defun c:test (/ acdoc ss i sset nme Blockdefinition) (vl-load-com) ;; Tharwat 22. 07. 2011 (setq acdoc (vla-get-activedocument (vlax-get-acad-object) ) ) (if (setq ss (ssget "_:L" '((0 . "INSERT")))) (repeat (setq i (sslength ss)) (setq sset (ssname ss (setq i (1- i)))) (setq nme (cdr (assoc 2 (entget sset)))) (setq Blockdefinition (vla-item (vla-get-blocks acdoc) nme)) (if (and (eq :vlax-false (vla-get-isxref Blockdefinition)) (eq :vlax-false (vla-get-islayout Blockdefinition)) ) (vlax-for x Blockdefinition (if (eq (vla-get-objectname x) '(60 . 1)) (vla-delete x) ) ) ) ) (princ) ) (vla-regen acdoc acAllViewports) (princ))
Wenn ich das richtig verstehe reicht die Angabe nicht mit (60 . 1) sondern es muss noch angeben das alle Objekte mit der Eigenschaft (60 . 1) gesucht werden. Wie kann ich das noch hinzufügen?
------------------
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP
Beiträge: 13533Registriert: 30.11.2003
.
d.h. : guck mal nach der Objekteigenschaft visible und teste die auf true
------------------Also ich finde Unities gut ... und andere sicher auch--------------------------------------- - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
Code:(defun c:test (/ acdoc ss i sset nme Blockdefinition) (vl-load-com) ;; Tharwat 22. 07. 2011 (setq acdoc (vla-get-activedocument (vlax-get-acad-object) ) ) (if (setq ss (ssget "_:L" '((0 . "INSERT")))) (repeat (setq i (sslength ss)) (setq sset (ssname ss (setq i (1- i)))) (setq nme (cdr (assoc 2 (entget sset)))) (setq Blockdefinition (vla-item (vla-get-blocks acdoc) nme)) (if (and (eq :vlax-false (vla-get-isxref Blockdefinition)) (eq :vlax-false (vla-get-islayout Blockdefinition)) ) (vlax-for x Blockdefinition (if (eq (vla-get-Visible tObj x) "true") (vla-delete x) ) ) ) ) (princ) ) (vla-regen acdoc acAllViewports) (princ))
--> (vla-get-Visible x)
Zitat:Original erstellt von CADmium:was soll denn (vla-get-Visible tObj x) ??--> (vla-get-Visible x)
Ja klar - da war ja ein Leerzeichen dazwischen.
Funktioniert aber immer noch nicht
(vlax-for x Blockdefinition (if(=(vla-get-Visible x) :vlax-true) (vla-delete x) ))
Zitat:Original erstellt von CADmium:ja, copy&paste reicht oft nicht ... (vlax-for x Blockdefinition (if(=(vla-get-Visible x) :vlax-true) (vla-delete x) ))
Danke!!!
Es ist ja keine Doktorarbeit und da kann man es schon mal mit copy & paste versuchen
Anzeige.:X
Anzeige: (Infos zum Werbeplatz >>)
|
(c)2025 CAD.de | Impressum | Datenschutz