判断矩形内部是否存在图元
请问如何判断矩形内部是否存在图元呢,相交的也算。 C:\Users\86198\Pictures\Camera Roll[*](defun c:ff ()
[*](setq i 0)(setq lss nil)
[*](setq juxing (entsel))
[*](command "measure" juxing "2" "")
[*](setq dianji (ssget "p"))
[*](repeat (sslength dianji)
[*] (setq point1(cdr(assoc 10 (entget(ssname dianji i)))))
[*] (setq lss (cons point1 lss))
[*] (setq i (+ 1 i))
[*])
[*](command "erase" dianji "")
[*](Setq jxss (ssget "CP" lss))
[*](sssetfirst jxss jxss)
[*](setq n (sslength jxss))
[*](setq n1 (1- n))
[*](alert (strcat "所选取的矩形内共有"(itoa n1)"个对象!"))
[*](princ)
[*])
看看这个方法怎么样
本帖最后由 vitalgg 于 2023-1-2 08:01 编辑
;; 选择一个多段线
(setq ent (car (entsel "选择一个矩形:")))
;; 得到矩形的点序
(setq pts (curve:get-points ent))
;; 用点序围选
(setq ents (pickset:to-list(ssget "cp" pts )))
;; 去除 矩形图元
(setq ents (vl-remove ent ents))
;; 如果不空,亮显选中的图元
(if ents (sssetfirst nil (pickset:from-list ents)) (alert "没有选中"))
支持任意形状的多段线。
用到的函数:
根据角点坐标用SSGET"cp"方式就可以了吧,至于是不是矩形得另行判断。。。
页:
[1]