如何限定entsel从AutoCAD选定的图元类型
假设用lisp编程时需要用entsel从AutoCAD界面选取一个矩形图元,请问怎样限制选取的图元对象只为矩形,而不能选定像圆或者多段线等其他类型的图元,谢谢指导。http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 南林浣风的微博 (defun isrectangle(e)
(if ...;;;自己写
t nil)
)
(defun mysel()
(while(not(isrectangle(car(setq en(entsel"选择矩形"))))))
en) 矩形不是cad内置对象,恐怕可能(不确定)不能直接用组码选,所以先按多线段过滤选择,然后再通过条件判定是不是矩形! (while (not (and (setq s1 (entsel "\n选择矩形: "))
(setq ent (entget(car s1)))
(wcmatch (cdr(assoc 0 ent)) "*POLYLINE")
(= (cdr(assoc 90 ent)) 4)
(progn
(setq ptlst (list))
(foreach x ent (if (= (car x) 10) (setq ptlst (cons (cdr x) ptlst))))
(equal (distance (car ptlst) (caddr ptlst)) (distance (cadr ptlst) (last ptlst)) 1e-6)
)
))) ZZXXQQ 发表于 2015-3-29 09:07 static/image/common/back.gif
(while (not (and (setq s1 (entsel "\n选择矩形: "))
(setq ent (entget(car s1)))
(wcmatch (cdr(ass ...
精辟的代码 ZZXXQQ 发表于 2015-3-29 09:07 static/image/common/back.gif
(while (not (and (setq s1 (entsel "\n选择矩形: "))
(setq ent (entget(car s1)))
(wcmatch (cdr(ass ...
对角线互相平分且相等的四边形是矩形 有意义吗 ZZXXQQ 发表于 2015-3-29 09:07 static/image/common/back.gif
(while (not (and (setq s1 (entsel "\n选择矩形: "))
(setq ent (entget(car s1)))
(wcmatch (cdr(ass ...
谢谢,非常感谢,但除了矩形,怎么限制其他类型的图元呢 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=71545&extra=page%3D3%26filter%3Ddigest%26digest%3D1%26digest%3D1
页:
[1]