多段线生成4个顶点坐标?
有时候用bo生成的矩形会有不止4个顶点,会有5个或者6个顶点。怎么求出4个角点的坐标?谢谢各位大佬bo可能生成多个多段线,你求最大那个的(vla-getboundingbox (vlax-ename->vla-object end) 'minp 'maxp)
得overkill一下,或者写段代码,清理共线的点以及重复的点 本帖最后由 qazxswk 于 2024-9-9 21:11 编辑
试试这个。(defun c:11(/ pta ent minp maxp p1 p2 p3 p4)
(setq pta (getpoint "\n封闭图形内指定点:"))
(vl-cmdf "-BOUNDARY" pta "")
(setq ent (entlast))
(vla-getboundingbox (vlax-ename->vla-object ent) 'minp 'maxp)
(setq p1 (vlax-safearray->list minp) p3 (vlax-safearray->list maxp))
(entdel ent)
(setq p2 (list (car p1) (cadr p3))) ;;矩形左上点
(setq p4 (list (car p3) (cadr p1))) ;;矩形右下点
(entmake (list'(0 . "LWPOLYLINE")'(62 . 1)'(100 . "AcDbEntity")'(100 . "AcDbPolyline")
(cons 90 4)(cons 10 p1)(cons 10 p2)(cons 10 p3)(cons 10 p4)'(70 . 1)))
(princ))
(defun c:tt ()
(setq p0 (getpoint "\n封闭图形内指定点: "))
(setq s1 (bpoly p0))
(vla-getboundingbox (vlax-ename->vla-object s1) 'p1 'p9)
(setq p1 (vlax-safearray->list p1))
(setq p9 (vlax-safearray->list p9))
(entdel s1)
(command "rectang" "non" p1 "non" p9)
(princ)
) 自贡黄明儒 发表于 2024-9-9 13:16
bo可能生成多个多段线,你求最大那个的(vla-getboundingbox (vlax-ename->vla-object end) 'minp 'maxp)
好的,谢谢 qazxswk 发表于 2024-9-9 21:05
试试这个。
谢谢大佬。 xyp1964 发表于 2024-9-9 23:07
谢谢,太给力了。 bpoly多余节点处理测试:
页:
[1]