- 积分
- 9142
- 明经币
- 个
- 注册时间
- 2019-6-5
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|

楼主 |
发表于 2020-8-10 21:05:24
|
显示全部楼层
本帖最后由 magicheno 于 2020-8-11 01:14 编辑
大侠按照新的要求改了下,运行不了,不知道是哪里的问题呢
(setq
;;常用VLA对象、集合
*ACAD* (vlax-get-acad-object)
*DOC* (vla-get-ActiveDocument *ACAD*)
*DOCS* (vla-get-Documents *ACAD*)
*MS* (vla-get-modelSpace *DOC*)
*PS* (vla-get-paperSpace *DOC*)
*BLKS* (vla-get-Blocks *DOC*)
*LAYS* (vla-get-Layers *DOC*)
*LTS* (vla-get-Linetypes *DOC*)
*STS* (vla-get-TextStyles *DOC*)
*GRPS* (vla-get-groups *DOC*)
*DIMS* (vla-get-DimStyles *DOC*)
*LOUTS* (vla-get-Layouts *DOC*)
*VPS* (vla-get-Viewports *DOC*)
*VS* (vla-get-Views *DOC*)
*DICS* (vla-get-Dictionaries *DOC*)
*Layouts* (vla-get-Layouts *doc*)
)
;;返回所有图层的名称(字符串表)
(defun try-Layer-allname(/ out)
(vlax-for obj *LAYS*
(setq out (cons (vlax-get-property obj 'Name) out))
)
(reverse out)
)
;打开图层
;;参数:图层名称表
(defun try-Layer-On (LayList)
(setq LayList(mapcar 'strcase LayList))
(vlax-for each *LAYS*
(if (member (strcase (vla-get-name each)) LayList)
(if (vlax-write-enabled-p each)
(vla-put-LayerOn each :vlax-True)
)
)
(vlax-release-object each)
)
)
;;关闭图层
;;参数:图层名称表
(defun try-Layer-Off (LayList)
(setq LayList(mapcar 'strcase LayList))
(vlax-for each *LAYS*
(if (member (strcase (vla-get-name each)) LayList)
(if (vlax-write-enabled-p each)
(vla-put-LayerOn each :vlax-False)
)
)
(vlax-release-object each)
)
)
;;打开关闭图层
;;参数:字符串,支持通配符
(defun try-Layer-on-2 (layer)
(try-Layer-on(vl-remove-if-not '(lambda(x)(wcmatch x layer))(try-Layer-allname)))
)
;;打开关闭图层
;;参数:字符串,支持通配符
(defun try-Layer-off-2 (layer)
(try-Layer-off(vl-remove-if-not '(lambda(x)(wcmatch x layer))(try-Layer-allname)))
)
;;;打开给水图层
(defun c:tt5 ()
(try-Layer-off-2 "*")
(try-Layer-on-2 "WP_G,DN_G,LGBH_G,TXT_G,EV_G,WP_G_*")
)
;;;关闭给水图层
(defun c:tt7 ()
(try-Layer-off-2 "WP_G,DN_G,LGBH_G,TXT_G,EV_G,WP_G_*")
)
;;;可开给水层
(defun c:tt6 ()
(try-Layer-on-2 "WP_G,DN_G,LGBH_G,TXT_G,EV_G,WP_G_*")
)
;; 关其他水层仅显示给水层
(defun c:tt8 ()
(try-Layer-off-2 "WP_*,DN_*,LGBH_*,TXT_*,EV_*,W-DIM,W_DIM,WW_*,WX-*,SB,SB_*,PUB_W-DIM,PUB_TABLE,PUB_W-DIM")
(try-Layer-on-2 "WP_G,DN_G,LGBH_G,TXT_G,EV_G,WP_G_*")
) |
|