只需一步,快速开始
(setq a (car (entsel)));我用这段代码选择块获取块名
(entnext a);我想用这段代码来获取块内实体,但为什么总是返回nil?要么就获取图档内的其它实体,总之不是块内实体!!!
如果不是这样用,我要怎样获得块内实体的数据?
如果是一个球表块(由一个圆和文字组成的块),我如何才能获得它圆的数据?
我用的是Autolisp,或者Vlisp也可以,麻烦各位了
使用道具 举报
;;vla方法;;注意,所得数据是块定义中圆的数据,而不是块对象中圆的数据(defun c:TT (/ a) (setq a (car (entsel))) (setq a (vlax-ename->vla-object a)) (setq a (vla-get-name a)) (vlax-for x (vla-item (vla-get-Blocks (vla-get-activedocument (vlax-get-acad-object))) a) (if (= (vla-get-objectname x) "AcDbCircle") (princ (entget (vlax-vla-object->ename x))) ) ))
谢谢caoyin版主
你也说了,这个获取的是"Block"中的数据,
可是我想要"INSERT"中的
没有办法获得吗?
非得从"Block"中获取数据后再用插入点算座标、用块缩放比例来算尺寸等等?
没其它办法了吗?
我个人认为没有更好的办法——期待高手
你可以 EXPLODE 块然后再 UNDO 回去啊
如果EXPLODE块再UNDO回去的话
太慢了,太多块的时候我担心电脑会挂掉
麻烦就麻烦吧,用比例,旋转角来算好了
你可以用矩阵变换,建议你参考下面帖子,里面谈到的方法可能对你有帮助。
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=73535&replyID=&skin=1
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2025-2-24 17:21 , Processed in 0.177610 second(s), 25 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.