程序很简单就是检测 M-AUX-INF-AREA 这个图层 用一个命令开关
 - (defun c:mm(/ mm_layer mm_a mm_sw)
- (vl-load-com)
- (vlax-for mm_layer (vla-get-Layers
- (vla-get-ActiveDocument
- (vlax-get-acad-object)
- )
- )
- (setq mm_a (vla-get-name mm_layer))
- (if (= mm_a "M-AUX-INF-AREA")
- (progn
- (setq mm_sw (vla-get-layeron mm_layer))
- (cond (= mm_sw :vlax-true) (command "layer" "off" "M-AUX-INF-AREA" "")
- (= mm_sw :vlax-false) (command "layer" "on" "M-AUX-INF-AREA" ""))
- )
- )
- )
- )
一开始用的是vla-put-layeron 这个命令 整体运行能行 但是图层无反应 逐条运行寻错的时候 vla-get-name和vla-put-layeron这两个命令的时候就会出现 activex 服务器返回错误:未知名称 这个问题 |