明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 562|回复: 1

[提问] 属性块或块,块内或块外图层如何变更

[复制链接]
发表于 2020-11-26 19:36 | 显示全部楼层 |阅读模式
5明经币
本帖最后由 magicheno 于 2020-11-30 19:36 编辑

请教下大侠们,比如类似一个还有标高的属性块或其他块,如何能使命令比如TT5,框选一个或者多个对象,使得属性块内的对象变为0层,块外的图层按我设定的指定图层来指定,比如“A"图层,这样子可以实现么

附件: 您需要 登录 才可以下载或查看,没有账号?注册
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2021-9-21 01:35 | 显示全部楼层
本帖最后由 magicheno 于 2021-9-21 01:47 编辑

自己找来的一些程序然后瞎拼乱凑解决啦,先把属性块等等块变为0层,再变更为自己想要的图层名

好像不能给自己加币,尴尬了,自己的帖子怎样才能自己结束然后归还币呢~~~
(defun c:TT5 ()
  (setq I 0)
  (if (setq ss (ssget)
    (PROGN (REPEAT (SSLENGTH SS)
             (setq ENT (SSNAME SS I))
             (setq OBJ (vlax-ename->vla-object ENT))
             (CHANGE-COLOR OBJ)
             (setq I (1+ I))
           )
    )
  )
  (setq oldlay (getvar "clayer"))
  (command "layer" "m" "WP" "c" "4" "" "")
  (command "change" ss "" "p" "la" "WP" "")
  (command "clayer" oldlay)
  (PRINC)
)


(DEFUN CHANGE-COLOR (OBJ / NAME *ACAD* *BLKS* *DOC*)
  (setq *ACAD* (vlax-get-acad-object))
  (setq *DOC* (vla-get-ActiveDocument *ACAD*))
  (setq *BLKS* (vla-get-Blocks *DOC*))
  (vla-put-Layer OBJ "0")
  (vla-put-Color OBJ acByLayer)
  (if (OR (= (vla-get-ObjectName OBJ) "AcDbBlockReference")
          (= (vla-get-ObjectName OBJ) "AcDbMInsertBlock")
      )
    (PROGN (FOREACH ATT        (vlax-invoke OBJ 'GETATTRIBUTES)
             (vla-put-Layer ATT "0")
             (vla-put-Color ATT acByLayer)
           )
           (setq NAME (vla-get-Name OBJ))
           (VLAX-FOR N (vla-Item *BLKS* NAME) (CHANGE-COLOR N))
    )
  )
)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-18 01:13 , Processed in 0.133830 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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