llsheng_73 发表于 2013-11-16 00:29:51

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))
       )))
)

Gu_xl 发表于 2013-11-16 08:07:45

Regen重显一下

llsheng_73 发表于 2013-11-16 10:51:34

Gu_xl 发表于 2013-11-16 08:07 static/image/common/back.gif
Regen重显一下

谢谢G版,昨晚出现那情况只是全屏了几次没看到东西就给弄晕了,这会它又不出现那情况了,以后会记住碰到问题多用些手段进行检查,比如(ssget "X" '(( 8 . "图层")))

adc 发表于 2013-12-27 15:30:15

这个函数要怎么用?(layeron(“图层1” 图层2“))是这样吗?

llsheng_73 发表于 2013-12-28 08:38:10

adc 发表于 2013-12-27 15:30 static/image/common/back.gif
这个函数要怎么用?(layeron(“图层1” 图层2“))是这样吗?

(layeron‘(“图层1” 图层2“))

adc 发表于 2013-12-28 16:34:27

列表里的图层如果实际不存在,函数就不能正常使用,请问要怎样处理?

llsheng_73 发表于 2013-12-30 10:06:31

adc 发表于 2013-12-28 16:34 static/image/common/back.gif
列表里的图层如果实际不存在,函数就不能正常使用,请问要怎样处理?

先用(tblsearch "layer" “图层名")对图层进行检查。。。

adc 发表于 2013-12-30 13:02:57

llsheng_73 发表于 2013-12-30 10:06 static/image/common/back.gif
先用(tblsearch "layer" “图层名")对图层进行检查。。。

这里处理完也只是找不到图层就不执行,我是希望列表中如果有图层不存在,其他图层也可以正常打开,能这样处理吗?谢谢

edata 发表于 2013-12-30 14:45:39

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

adc 发表于 2013-12-30 16:28:25

edata 发表于 2013-12-30 14:45 static/image/common/back.gif
试试这个。。。

页: [1] 2
查看完整版本: CAD图层冻结与解冻的疑问