PDA

View Full Version : Lisp routine for layers



steven_mott33
2004-09-29, 03:33 PM
I am looking for a lisp routine that will turn all the layers that are currently ON.....OFF and at the same time turn all the layers that are currently OFF....ON. Does anyone know of such a routine?

thanks

Jeff_M
2004-09-29, 06:49 PM
Yes, I know of one.......


(defun c:on-off ()
(vl-load-com)
(vlax-for x (vla-get-layers
(vla-get-activedocument
(vlax-get-acad-object)))
(if (eq (vla-get-layeron x) :vlax-true)
(vla-put-layeron x :vlax-false)
(vla-put-layeron x :vlax-true)
)
)
(princ "\nLayer On/Off states have been flipped....")
(princ)
)

Jeff_M
2004-09-30, 09:49 PM
Here's on for frozen/thawed. Creates a layer, if it doesn't exist, named "Freeze_Thaw" for use a static layer since the current layer cannot be frozen.



(defun c:frz-thw (/ layers lay)
(vl-load-com)
(setq layers (vla-get-layers
(vla-get-activedocument
(vlax-get-acad-object)
)
)
)
(setq lay (vla-add layers "Freeze_Thaw"))
(if (eq (vla-get-freeze lay) :vlax-true)
(vla-put-freeze lay :vlax-false)
)
(setvar "clayer" "Freeze_Thaw")
(vlax-for x layers
(if (not (eq (vla-get-name x) "Freeze_Thaw"))
(if (eq (vla-get-freeze x) :vlax-true)
(vla-put-freeze x :vlax-false)
(vla-put-freeze x :vlax-true)
)
)
)
(vla-regen (vla-get-activedocument (vlax-get-acad-object)) acAllViewports)
(princ "\nLayer Frozen/Thawed states have been flipped....")
(princ)
)


Enjoy,
Jeff

kieren
2004-10-01, 11:47 AM
Thanks for sharing Jeff.
Very useful for me!