只需一步,快速开始
(defun ALL-ENTS (/ E ELST) (and (setq E (entnext)) (setq ELST (cons E ELST)) (while (setq E (entnext E)) (setq ELST (cons E ELST)) ) ) ELST)
原以为上面的代码可以做到,发现不行,不能遍历到块内的图元。
想用VLA方法取得,但是,似乎没有简便的方法。
后来,新的想法:有没有办法搞到图形中,所有的句柄? 就是组码5的值??
使用道具 举报
你的意思是不是想进入块内??
如果只是这个意思的话,那就在遍历图元之前遍历块就行了。
你可以现用tblnext遍历每个块,然后遍历块里面的每一个图元
最后在遍历模型空间的图元就是了。因为模型空间里面的是Insert对象,而不是块本身。
(ssget "X")不行吗?
vla也不是很麻烦啊,不过感觉ssget简单很多了
(defun c:getall() (vl-load-com) (setq acad (vlax-get-acad-object) doc (vla-get-activedocument acad) spc (vla-get-modelspace doc) ssets (vla-get-selectionsets doc) sset (vla-add ssets "allobjects1") ) (vla-select sset acSelectionSetAll) (princ (strcat "共" (itoa (vla-get-count sset)) "个对象:\n")) (vlax-for obj sset (princ (vla-get-objectname obj)) ) (princ) )
enocheasty发表于2010-4-30 17:30:00你的意思是不是想进入块内??如果只是这个意思的话,那就在遍历图元之前遍历块就行了。你可以现用tblnext遍历每个块,然后遍历块里面的每一个图元最后在遍历模型空间的图元就是了。因为模型空
想用简便的方法。
有没有办法搞到图形中,所有的句柄? 就是组码5的值??
ZZXXQQ发表于2010-4-30 19:15:00(ssget \"X\")不行吗?
上传一个DWG
里面有个块,块内有四个文字,两个空字符串。。。
_$ (setq ss (ssget "X" '((0 . "TEXT"))))<Selection set: 106>_$ (sslength ss)2
把块炸开了以后:
_$ (setq ss (ssget "X" '((0 . "TEXT"))))<Selection set: 19a>_$ (sslength ss)4
sailorcwx发表于2010-4-30 20:28:00vla也不是很麻烦啊,不过感觉ssget简单很多了(defun c:getall() (vl-load-com) (setq acad (vlax-get-acad-object) doc (vla-get-activedocument acad) spc (vla-get-mo
用我楼上的图形文件。
原来是块的时候:
命令: 共3个对象:
"AcDbBlockReference""AcDbText""AcDbText"
块炸开之后:
"AcDbText""AcDbPolyline""AcDbText""AcDbPolyline""AcDbPolyline""AcDbPolyline""AcDbText""AcDbText"
也就是说,在块里面,不能识别出空字符串????
记录CAD实体顺序生成的有两种符号1:Handle 16进制2:ObjectID 8进制数字
以前有个帖子讨论某个实体之后所有实体的帖子,或许会有启发
;;vlax-for应该是最简单的方法
(defun c:TT (/ blks) (setq BLKS (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))) (vlax-for blk blks (vlax-for obj blk (princ (vlax-vla-object->ename obj)) (princ "\n") ) ))
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2025-7-28 04:03 , Processed in 0.192948 second(s), 26 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.