CAD图层冻结与解冻的疑问
由于以前没在程序中对图层进行冻结,今天为了根据需要把所指定的几个图层on,UnFreeze,UnLock等,为了查程序效果,结果在我手动把图层冻结后再解冻开来一看,那个图层上什么东东都没了,是它本来就这样还是我的CAD出了问题?子过程如下,经测试程序没问题,但图层上的图元全部丢夫不知道什么原因
(defun layeron(lys / a);;将lys表中的所有图层解冻、解锁、打开
(vlax-for n(vla-get-layers(vla-get-ActiveDocument(vlax-get-acad-object)))
(setq a(vla-get-name n))
(if(member a lys)
(progn
(vla-put-lock n :vlax-false)
(vla-put-layeron n :vlax-true)
(if(/=(getvar"CLAYER")a)(vla-put-Freeze n :vlax-false))
)))
)
Regen重显一下 Gu_xl 发表于 2013-11-16 08:07 static/image/common/back.gif
Regen重显一下
谢谢G版,昨晚出现那情况只是全屏了几次没看到东西就给弄晕了,这会它又不出现那情况了,以后会记住碰到问题多用些手段进行检查,比如(ssget "X" '(( 8 . "图层"))) 这个函数要怎么用?(layeron(“图层1” 图层2“))是这样吗? adc 发表于 2013-12-27 15:30 static/image/common/back.gif
这个函数要怎么用?(layeron(“图层1” 图层2“))是这样吗?
(layeron‘(“图层1” 图层2“)) 列表里的图层如果实际不存在,函数就不能正常使用,请问要怎样处理? adc 发表于 2013-12-28 16:34 static/image/common/back.gif
列表里的图层如果实际不存在,函数就不能正常使用,请问要怎样处理?
先用(tblsearch "layer" “图层名")对图层进行检查。。。 llsheng_73 发表于 2013-12-30 10:06 static/image/common/back.gif
先用(tblsearch "layer" “图层名")对图层进行检查。。。
这里处理完也只是找不到图层就不执行,我是希望列表中如果有图层不存在,其他图层也可以正常打开,能这样处理吗?谢谢 adc 发表于 2013-12-30 13:02 static/image/common/back.gif
这里处理完也只是找不到图层就不执行,我是希望列表中如果有图层不存在,其他图层也可以正常打开,能这样 ...
试试这个。。。(defun c:tt()
(slayon '("wall" "DJ灯具")))
(defun slayon (lays / n obj)
(vl-load-com)
(if (listp lays)
(foreach n lays
(if (and (tblsearch "layer" n)
(setq obj(vlax-ename->vla-object(tblobjname "layer" n))))
(progn
(vla-put-lock obj :vlax-false)
(vla-put-layeron obj :vlax-true)
(if (= (vla-get-Freeze obj) :vlax-True)
(vla-put-Freeze obj :vlax-false))
) ;_ end of progn
) ;_ end of if
) ;_ end of foreach
) ;_ end of if
) ;_ end of defun edata 发表于 2013-12-30 14:45 static/image/common/back.gif
试试这个。。。
页:
[1]
2