Hallo Forumer,
es sollen NUR in Blöcken Schraffuren vom Typ Solid gelöscht werden.
Zum Löschen ALLER Solid-Schraffuren habe ich hier z.B. gefunden:
Code:
(defun C:DEL-SOLID( / BLOCK )
(vl-load-com)
(vlax-for LAYOUT (vla-get-layouts(vla-get-activedocument(vlax-get-acad-object)))
(vlax-for ITEM (setq BLOCK (vla-get-Block LAYOUT))
(if(and(=(strcase(vla-get-objectname ITEM))(strcase "AcDbHatch"))
(wcmatch (strcase(vla-get-PatternName ITEM)) "SOLID*")
)
(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(and(=(strcase(vla-get-objectname ITEM))(strcase "AcDbHatch"))
(wcmatch (strcase(vla-get-PatternName ITEM)) "SOLID*")
)
(vl-catch-all-error-p
(vl-catch-all-apply
'vla-delete
(list ITEM)
)
)
)
)
)
(vla-regen(vla-get-activedocument (vlax-get-acad-object)) acAllViewports)
)
Leider ist mir die Begrenzung der Auswahl nur auf Blöcke bisher nicht gelungen.
Wo bzw. wie muss der Code geändert werden, damit nur die Schraffuren in Blöcken gelöscht werden?
Dankbarer Gruß
archi
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP