明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 829|回复: 7

[提问] 如何遍历图块(insert)的每一个图元

[复制链接]
发表于 2019-4-2 15:56 | 显示全部楼层 |阅读模式
问题的缘由
嵌套块里包含属性块
嵌套层数不定
现在想找到被层层嵌套的属性块的属性
并改变属性的图层

遍历图块定义(block)+递归的方法在此时无效
想直接遍历图块里的图元
发现不知道该怎么做

请高手赐教

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2019-4-2 17:03 | 显示全部楼层
对于嵌套块,父块定义中只有子块的引用,而不是子块的定义。
父块定义和子块定义实际上是兄弟关系,并无父子关系。
 楼主| 发表于 2019-4-2 22:11 | 显示全部楼层
楼上说的我知道啊
但并不能解决问题啊
提问帖说得很明白
要的是图块insert里的图元
不是块定义block的图元

对一个嵌套块ent来说
子块ent总有一个确定的图元名吧
我要的就是定位到这个图元名

好比nentsel点一个嵌套块里的子图元
返回4元表里的第4个子表
会包含所有的子块和父块图元名
<图元名: 7fffe945f20>
(201933.0 177651.0 0.0)
((1.0 0.0 0.0) (0.0 1.0 0.0) (0.0 0.0 1.0) (201348.0 177176.0 0.0))
(<图元名: 7fffe954830> <图元名: 7fffe954d60> <图元名: 7fffe954dd0>)

 楼主| 发表于 2019-4-3 08:56 | 显示全部楼层
关于这个问题
我突然想起来
似乎在很久很久以前
刚刚开始学习lisp的时候
看到过一个资料
说是桌子公司出于某种担心
没有开放图块内部图元的操作函数
也不知道是不是记忆混乱
发表于 2019-4-3 09:43 | 显示全部楼层
其实,你的概念有点乱。
你说的图块,实际上是叫块的引用
在块的引用中,其实并无图元,所以没有嵌套之说;只有在块的定义中才有图元,可能包含对别的块的引用
相关知识,你可以查一查ACAD的对象模型
 楼主| 发表于 2019-4-3 10:14 来自手机 | 显示全部楼层
那能否解释下上一贴最后的表
发表于 2019-4-3 16:07 | 显示全部楼层
那只是一个函数的返回值,并不代表对象的层次关系

块的定义是block块的引用是blockref

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2019-4-3 16:29 | 显示全部楼层
哥哥呀
很感谢你参与解答
但请仔细看提问贴好吗
帖子里
我在“图块”后面特意加了"insert"
在"块定义"后面特意加了"block"
难道这还不能体现出
我对这两样事物的了解程度?
而且帖子里已经很明确的提到了
“遍历图块定义(block)+递归的方法在此时无效”
所以
请不要再向我普及图块和图块定义的区别了好吗

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

本版积分规则

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

GMT+8, 2024-5-19 07:25 , Processed in 0.269116 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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