theisland 发表于 2013-12-7 20:54:42

如何一键控制外部参照的图层状态?

由于使用外部参照比较多,每次都要修改外部参照中的图层状态,比如说外部参照中的图层有:1、2、3、4、5、6
需要冻结图层1、2,将图层3、4的颜色(在宿主中显示的颜色)改为251,将图层5、6的颜色改为8,每次参照新的图纸都要去修改这些图层的状态,外部参照仅图名不一样,图层名都是一样的,实际图层比举例中要多得多 ,能不能实现“一键改外部参照图层状态”呢?请高手支招

theisland 发表于 2013-12-8 16:18:59

这个问题貌似大家不感兴趣啊,自己顶一下

flyfox1047 发表于 2013-12-8 16:31:05

(defun C:FF (/ EN L X ad layers)
(setq   EN (nentsel "\nSelect Xref: ")    L (cdr (assoc 8 (entget (car EN))))   X

(substr L 1 (vl-string-position (ascii "|") L)) )
(setq AD (vla-get-ActiveDocument (vlax-get-Acad-Object)) layers (vla-get-Layers

ad))
(if(/= (vl-string-search "|" L) nil)
(progn
   (vlax-for layer layers
    (if (/= (vl-string-search (strcatX "|") (vla-get-name layer)) nil)(vla-put-

Color layer 250))
   )
   (command ".REGEN")
   )
   (alert "Not an Xref!")
)
(prin1)
)

theisland 发表于 2013-12-8 16:35:48

本帖最后由 theisland 于 2013-12-8 16:37 编辑

flyfox1047 发表于 2013-12-8 16:31 static/image/common/back.gif
(defun C:FF (/ EN L X ad layers)
(setq   EN (nentsel "\nSelect Xref: ")    L (cdr (assoc 8 (entget ...
好神速,赶紧试用~~开心~~

有这个提示
Select Xref: ; 错误: no function definition: VLA-PUT-

程序中怎么没看到其他多图层信息呢?

flyfox1047 发表于 2013-12-8 16:55:30

(defun C:FF ()
(setq laylst nil)
(while
    (setq entsll
           (nentsel "\n   选择需要改变层颜色上的对象: ")
    )
   (setq laynam (cdr (assoc 8 (entget (car entsll)))))
   (if (null laylst)
       (setq laylst laynam)
       (setq laylst (strcat laylst "," laynam))
   )
   (prompt (strcat "\n   {" laylst "}"))
)
                                        ;end while
(if laylst
    (progn
      (setq lay-col (getint "\n输入层的新颜色: "))
      (command "layer" "c" lay-col laylst "")
    )
)
                                        ;end if
(princ)
)
                                        ;end function
;;;====================================================================
(PROMPT "\n 使用FF命令改变外部参照层的颜色.")
(PRINC)

flyfox1047 发表于 2013-12-8 17:07:10

没有改成一键自动的,至少是半自动了,源码上了,可以根据自己的想法稍加修改就行了

theisland 发表于 2013-12-8 17:39:00

还是没反应哦

flyfox1047 发表于 2013-12-8 17:42:47

本帖最后由 flyfox1047 于 2013-12-8 17:48 编辑

flyfox1047 发表于 2013-12-8 17:49:45

theisland 发表于 2013-12-8 17:39 static/image/common/back.gif
还是没反应哦

这个手动输入的,需改变层的颜色需要在命令栏输入的

theisland 发表于 2013-12-14 10:20:54

桑心啊,这个问题大家没什么兴趣,难道大家都不用外部参照吗?
页: [1] 2
查看完整版本: 如何一键控制外部参照的图层状态?