明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1676|回复: 6

[提问] 如何获得块参照中的所有图元名(要支持嵌套)

[复制链接]
发表于 2013-6-7 10:02 | 显示全部楼层 |阅读模式
如何获得块参照中的所有图元名(要支持嵌套)
如何获得块参照中的所有属性图元名(要支持嵌套)

注意:不是块参照对应的块定义中的
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-6-7 10:21 | 显示全部楼层
  1. (defun listblockent (name / l blkdef atts)
  2.   (if (not
  3.         (VL-CATCH-ALL-ERROR-P
  4.           (setq
  5.             blkdef (VL-CATCH-ALL-APPLY
  6.                      'vla-item
  7.                      (list
  8.                        (vla-get-blocks
  9.                          (vla-get-ActiveDocument (vlax-get-acad-object))
  10.                          )
  11.                        name
  12.                        )
  13.                      )
  14.             )
  15.           )
  16.         )
  17.     (vlax-for o blkdef
  18.       (cond
  19.         ((or (= "AcDbBlockReference" (vla-get-objectname o))
  20.              (= "AcDbMInsertBlock" (vla-get-objectname o))
  21.              )
  22.          ;(setq l (cons (vlax-vla-object->ename o) l)) ;_ 嵌套块对象
  23.          (setq atts (vlax-invoke o 'GetAttributes))
  24.          (foreach a atts
  25.          (setq l (cons (vlax-vla-object->ename a) l))
  26.            )
  27.          (setq l (append (listblockent (vla-get-name o)) l))
  28.          )
  29.         (t
  30.         (setq l (cons (vlax-vla-object->ename o) l))
  31.          )
  32.         )
  33.      )
  34.     )
  35.   l
  36.   )
 楼主| 发表于 2013-6-7 12:50 | 显示全部楼层
本帖最后由 namezg 于 2013-6-7 14:05 编辑

谢谢Gu_xl版主
可这是块参照吗,还是块定义吧,blkref才是块参照吧
举个例子我想实现的是选择一个嵌套的块参照后,将里面的属性图元的颜色改为洋红。
发表于 2013-6-7 14:28 | 显示全部楼层
namezg 发表于 2013-6-7 12:50
谢谢Gu_xl版主
可这是块参照吗,还是块定义吧,blkref才是块参照吧
举个例子我想实现的是选择一个嵌套的块 ...

函数参数为块名称!
 楼主| 发表于 2013-6-7 17:11 | 显示全部楼层
本帖最后由 namezg 于 2013-6-7 17:15 编辑

你遍历的是块定义block图元.我要的是遍历块参照lnsert(即插入图元)或者给我如下功能的代码:选择一个嵌套的块参照后,将里面的属性图元的颜色改为洋红。
发表于 2013-6-7 17:39 来自手机 | 显示全部楼层
namezg 发表于 2013-6-7 17:11
你遍历的是块定义block图元.我要的是遍历块参照lnsert(即插入图元)或者给我如下功能的代码:选择一个嵌套的块 ...

我认为,通过我给的代码,你要看明白了,稍加修改,你自己应该完全能够写出来!加油哦!有钻研才会有进步!
 楼主| 发表于 2013-6-7 23:32 | 显示全部楼层
本帖最后由 namezg 于 2013-6-8 12:42 编辑

已明白了,块内定义里面的也是块参照,已解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-12 09:30 , Processed in 0.217232 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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