Die Vorgehensweise finde ich gut, denn "um deren gesamten Inhalte zu löschen" machst du damit genau NICHT (nicht in jedem Fall)
Sind UW* Layer in verschachtelten Objekten verwendet, oder in anderen Layout, so werden diese Objekte bei deinem Vorgehen nicht gelöscht (gut).
Dennoch kannst du ein alle "TopLevel"-Objekte im aktuellen Bereich auf diesen Layern direkt auswählen und löschen.
Per Hand Beispielsweise mit Befehl: SAUSWAHL oder FILTER
Im Makro oder Script wie von dir vorgeschlagen, wenn du das Makro oder Script erstellt hast brauchts auch kein Lisp mehr
Alternativ per Lisp (ssget), wenn ExpressTools installiert sind auch über SSX.
Wie man LÖSCHEN und LAYISO in der Befehlszeile bedient findest du heraus? Dann andere Beispiel:
Beispiele
; ==== Per Hand wenn Expresstools installiert sind (kannst die nächsten 13 Zeilen direkt kopieren und in die Befehlszeile einfügen zum testen. ==== ;
-LAYER
ENTSPERREN
UW*
LÖSCHEN
'SSX
LAYER
UW*
VORHER
;==== schnipp =====
An sowas dachtest du vermutlich
(defun c:UWe ()
(if (ssget "_X" (list '(8 . "UW*")(cons 410 (getvar 'CTAB))))
(command "-LAYER" "ENTSPERREN" "UW*" "" "LÖSCHEN" "VORHER" "")
)
(princ)
)
tschö
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP