habe das ganze so ergänzt , dass die layer automatisch erstellt werden, falls sie nicht vorhanden sind
mit dieser zeile kannst du nun für alle möglichen autocad-befehle
layer festlegen
z.B.: beim start vom befehl circle (kreis) sold der layer KREISLAYER mit der farbe 7 als aktuell eingestellt werden
((= value "CIRCLE") (setlayer "KREISLAYER" 7))
nuin das vollständige neue lisp
(vlr-remove-all :vlr-editor-reactor)
(vlr-editor-reactor nil
'((:vlr-commandWillStart . MyCommandWillStart)
(:vlr-commandEnded . MyCommandEnded)
(:vlr-commandCancelled . MyCommandEnded)
)
)
(defun MyCommandWillStart (reactor value / )
(setq value (car value))
(cond ((= value "XLINE") (setlayer "XLINE" 6))
((= value "BEM") (setlayer "BEM" 3))
((= value "CIRCLE") (setlayer "KREISLAYER" 7))
((= value "LINE") (setlayer "LINIENLAYER" 7))
)
)
(defun MyCommandEnded (reactor value / )
(setvar "CLAYER" "0")
)
(defun setlayer ( layer farbe / )
(if (not (tblsearch "LAYER" layer))
(entmake
(list
(cons 0 "LAYER")
(cons 100 "AcDbSymbolTableRecord")
(cons 100 "AcDbLayerTableRecord")
(cons 2 layer)
(cons 70 0)
(cons 62 farbe)
)
)
)
(setvar "clayer" layer)
)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP