Using (setvar "CLAYER" ) isn't the best way to create a layer
It takes a bit more error trapping etc:
Code:
(defun SetLayer (name / ldef flag)
(command "_.LAYER")
(if (not (tblsearch "LAYER" name))
(command "_Make" name)
(progn
(setq ldef (tblsearch "LAYER" name)
flag (cdr (assoc 70 ldef)))
(and (= (logand flag 1) 1)
(command "_Thaw" name))
(and (minusp (cdr (assoc 62 ldef)))
(command "_On" name))
(and (= (logand flag 4) 4)
(command "_Unlock" name))
(and (= (logand flag 16) 16)
(princ "\nCannot Set To XRef Dependent Layer")
(quit))
(command "_Set" name)))
(command "")
name)
Code:
(and (/= (strcase (getvar "CLAYER")) "ACDUCT")
(SetLayer "ACDUCT")
(command "_.LAYER" "_LT" "Continuous" "ACDUCT" ...... ""))
Checking for (snvalid) is also a good thing.
-David
Bookmarks