如果使用lisp,怎么做
如果使用lisp,如何清除零长度几何体和空文本对象?谢谢你的帮助!如果图形中没有零长度几何体或空文本对象,则不会激活它。 Command: -PURGE
Enter type of unused objects to purge Zero-length geometry/Empty text objects/All]:
(command "_.-purge" "_Z" "_.-purge" "_E") 既然您提到AutoLISP,您是否打算编写自己的代码?如果是,则要查找零长度实体,需要查找VLA-GET-length函数:
(vla-get-length (vlax-ename->vla-object (car (entsel))))
空文本实体将在其关联列表中的DXF代码1下存储一个空字符串。
当然,上述所有操作都需要解析图形的数据库-请检查ENTNEXT和ENTGET函数。 简单示例
(setq ss (ssadd)
e(entnext)
)
(while (and e (wcmatch (cdr (assoc 0 (setq en (entget e)))) "LINE,LWPOLYLINE,*TEXT"))
(if (or (and (vlax-property-available-p (setq v (vlax-ename->vla-object e)) 'LENGTH)
(zerop (vla-get-length v))
)
(and (vlax-property-available-p v 'TEXTSTRING) (eq (vla-get-textstring v) ""))
)
(ssadd e ss)
)
(setq e (entnext e))
)
(sssetfirst nil ss)
李·麦克、姆萨苏、塔瓦、,
非常感谢。
如果使用清除,但低版本没有此选项,例如acad2007
Tharwat,谢谢你的密码。
这就是为什么我为
不客气。
(vlax-for obj (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
(setq typ (vla-get-objectname obj))
(cond
((wcmatch typ "*Text")
....
((wcmatch (strcase typ) "*LINE,ARC,ELLIPSE")
....
)
(t)
)
) 布局中的对象呢?
(vlax-for obj (vla-get-paperspace (vla-get-activedocument (vlax-get-acad-object)))
....
)
页:
[1]
2