- 积分
- 3213
- 明经币
- 个
- 注册时间
- 2012-5-16
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2013-5-4 20:46:07
|
显示全部楼层
我有个类似的程序,貌似缺点东西,同求解
;; 关闭专业图层
(defun c:lay1 ()
(lm_ini T)
(lm_of '(wcmatch lay laystr))
(lm_roe T)
(princ)
)
;;关闭非专业图层
(defun c:lay2 ()
(lm_ini T)
(lm_of '(not (wcmatch lay laystr)))
(lm_roe T)
(princ)
)
;;
;;
(defun lm_of (cond / cde ept olderr dxf lay offlst onlst lst nn)
(setq laystr (strcat
"A-*," ;; 这里添加若干图层信息
"A1-*,A2-*,A3-*,A123,辅助定位," ;; 这里继续添加若干图层信息
"B1-*,B2-*,B3-*,B123,专业标注" ;; 这里再添加若干图层信息^_^
)
offlst nil
onlst nil
dxf (tblnext "LAYER" T)
)
(while dxf
(setq lay (strcase (ai_val 2 dxf)))
(if (> (ai_val 62 dxf) 0)
(if (eval cond) ;Condition
(setq offlst (append (list lay) offlst))
(setq onlst (append (list lay) onlst))
)
)
(setq dxf (tblnext "LAYER"))
)
(command "_.LAYER")
(foreach nn offlst (command "_OFF" nn))
(command "")
(if onlst
(if (not (member (getvar "clayer") onlst)) (progn
(setq lay (car (acad_strlsort onlst)))
(setvar "clayer" lay)
(prompt (strcat "\n图层" lay "是当前层."))
))
(alert "\n所有图层均被关闭!")
)
) |
|