明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1634|回复: 3

[已解答] 请问高手,为什么下面这个图层关闭在Autocad2012下不能运行,而在Autocad2008可以,?

[复制链接]
发表于 2014-1-11 01:30 | 显示全部楼层 |阅读模式
本帖最后由 wudechao 于 2014-1-12 00:41 编辑

;############################关闭图层###########################
(defun c:tb (/ ss ent index old_lay lay1 temp ffg fyf laylst layer layers)
  (vl-load-com)
  (setvar "cmdecho" 0)
  (setq old_lay (getvar "clayer"))
  (setq layers (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))))
  (if (not (setq ss (ssget "i")))
    (progn
      (prompt "\n选取要关闭物体所在的图层: ")
      (setq ss (ssget))
    );_ 结束progn
  );_ 结束if
  (if (= ss nil)
    (princ "\n没有选到要关闭的物体.")
    (progn
      (setq index 0
     tmq ""
     temp ""
     laylst '()
      )
      (repeat (sslength ss)
(setq ent (ssname ss index))
(setq lay1 (cdr (assoc 8 (entget ent))))
(if (not (member lay1 laylst))
   (progn
     (setq laylst (cons lay1 laylst))
     (setq layer (vla-get-layer (vlax-ename->vla-object ent)))
     (vla-put-layeron (vla-item layers layer) :vlax-false)
     (setq ffg (strcase lay1))
     (setq ffg (strcat "*" ffg "*"))
     (setq temp (strcat temp ffg))
   );_ 结束progn
);_ 结束if
(setq index (+ index 1))
      );_ 结束repeat
      (prompt (strcat "\n图层《 " temp " 》已经被关闭."))
    );_ 结束progn
  );_ 结束if
  (setvar "cmdecho" 1)
  (princ)
);_ 结束defun
发表于 2014-1-11 09:50 | 显示全部楼层
应该是你的电脑上的软件问题,和代码无关。。。
2013 win7 64bit可以关闭。
发表于 2014-1-11 16:35 | 显示全部楼层
本帖最后由 llsheng_73 于 2014-1-11 16:37 编辑

不管在哪可以在哪不可以,对于可以确保存在的图层的处理不需要有这么复杂
(vla-put-layeron(vlax-ename->vla-object (tblobjname "LAYER" lay)):vlax-false)
 楼主| 发表于 2014-4-12 00:42 | 显示全部楼层
经过不懈努力,终于找到原因了.是精简版本CAD的问题,精简版本把安装包里的x86\acad\Program Files\Common Files\Autodesk Shared\*.tlb清空为零字节文件.把这些*.tlb文件复制回去就命令就可以用了可以了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 12:17 , Processed in 0.372021 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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