明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2673|回复: 10

[已解答] CAD图层冻结与解冻的疑问

[复制链接]
发表于 2013-11-16 00:29 | 显示全部楼层 |阅读模式
由于以前没在程序中对图层进行冻结,今天为了根据需要把所指定的几个图层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))
         )))
  )
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-11-16 08:07 来自手机 | 显示全部楼层
Regen重显一下
 楼主| 发表于 2013-11-16 10:51 | 显示全部楼层
Gu_xl 发表于 2013-11-16 08:07
Regen重显一下

谢谢G版,昨晚出现那情况只是全屏了几次没看到东西就给弄晕了,这会它又不出现那情况了,以后会记住碰到问题多用些手段进行检查,比如(ssget "X" '(( 8 . "图层")))
发表于 2013-12-27 15:30 | 显示全部楼层
这个函数要怎么用?(layeron(“图层1” 图层2“))是这样吗?
 楼主| 发表于 2013-12-28 08:38 | 显示全部楼层
adc 发表于 2013-12-27 15:30
这个函数要怎么用?(layeron(“图层1” 图层2“))是这样吗?

(layeron‘(“图层1” 图层2“))
发表于 2013-12-28 16:34 | 显示全部楼层
列表里的图层如果实际不存在,函数就不能正常使用,请问要怎样处理?
 楼主| 发表于 2013-12-30 10:06 | 显示全部楼层
adc 发表于 2013-12-28 16:34
列表里的图层如果实际不存在,函数就不能正常使用,请问要怎样处理?

先用(tblsearch "layer" “图层名")对图层进行检查。。。
发表于 2013-12-30 13:02 | 显示全部楼层
llsheng_73 发表于 2013-12-30 10:06
先用(tblsearch "layer" “图层名")对图层进行检查。。。

这里处理完也只是找不到图层就不执行,我是希望列表中如果有图层不存在,其他图层也可以正常打开,能这样处理吗?谢谢
发表于 2013-12-30 14:45 | 显示全部楼层
adc 发表于 2013-12-30 13:02
这里处理完也只是找不到图层就不执行,我是希望列表中如果有图层不存在,其他图层也可以正常打开,能这样 ...

试试这个。。。
  1. (defun c:tt()
  2.   (slayon '("wall" "DJ灯具")))

  3. (defun slayon (lays / n obj)
  4.   (vl-load-com)
  5.   (if (listp lays)
  6.     (foreach n lays
  7.       (if (and (tblsearch "layer" n)
  8.                (setq obj(vlax-ename->vla-object(tblobjname "layer" n))))
  9.         (progn
  10.           (vla-put-lock obj :vlax-false)
  11.           (vla-put-layeron obj :vlax-true)
  12.           (if (= (vla-get-Freeze obj) :vlax-True)
  13.             (vla-put-Freeze obj :vlax-false))
  14.         ) ;_ end of progn
  15.       ) ;_ end of if
  16.     ) ;_ end of foreach
  17.   ) ;_ end of if
  18. ) ;_ end of defun
发表于 2013-12-30 16:28 | 显示全部楼层
edata 发表于 2013-12-30 14:45
试试这个。。。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-18 21:02 , Processed in 0.199594 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表