明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1697|回复: 8

[提问] 多段线生成4个顶点坐标?

[复制链接]
发表于 2024-9-9 13:12:46 | 显示全部楼层 |阅读模式
有时候用bo生成的矩形会有不止4个顶点,会有5个或者6个顶点。怎么求出4个角点的坐标?谢谢各位大佬
发表于 2024-9-9 13:16:53 | 显示全部楼层
bo可能生成多个多段线,你求最大那个的(vla-getboundingbox (vlax-ename->vla-object end) 'minp 'maxp)
发表于 2024-9-9 14:09:53 | 显示全部楼层
得overkill一下,或者写段代码,清理共线的点以及重复的点
发表于 2024-9-9 21:05:44 | 显示全部楼层
本帖最后由 qazxswk 于 2024-9-9 21:11 编辑

试试这个。
  1. (defun c:11(/ pta ent minp maxp p1 p2 p3 p4)
  2. (setq pta (getpoint "\n封闭图形内指定点:"))
  3. (vl-cmdf "-BOUNDARY" pta "")
  4. (setq ent (entlast))
  5. (vla-getboundingbox (vlax-ename->vla-object ent) 'minp 'maxp)
  6. (setq p1 (vlax-safearray->list minp) p3 (vlax-safearray->list maxp))
  7. (entdel ent)
  8. (setq p2 (list (car p1) (cadr p3)))    ;;矩形左上点
  9. (setq p4 (list (car p3) (cadr p1)))    ;;矩形右下点
  10. (entmake (list'(0 . "LWPOLYLINE")'(62 . 1)'(100 . "AcDbEntity")'(100 . "AcDbPolyline")
  11. (cons 90 4)(cons 10 p1)(cons 10 p2)(cons 10 p3)(cons 10 p4)'(70 . 1)))
  12. (princ))





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-9-9 23:07:22 | 显示全部楼层
  1. (defun c:tt ()
  2.   (setq p0 (getpoint "\n封闭图形内指定点: "))
  3.   (setq s1 (bpoly p0))
  4.   (vla-getboundingbox (vlax-ename->vla-object s1) 'p1 'p9)
  5.   (setq p1 (vlax-safearray->list p1))
  6.   (setq p9 (vlax-safearray->list p9))
  7.   (entdel s1)
  8.   (command "rectang" "non" p1 "non" p9)
  9.   (princ)
  10. )
 楼主| 发表于 2024-9-9 23:34:02 | 显示全部楼层
自贡黄明儒 发表于 2024-9-9 13:16
bo可能生成多个多段线,你求最大那个的(vla-getboundingbox (vlax-ename->vla-object end) 'minp 'maxp)

好的,谢谢
 楼主| 发表于 2024-9-9 23:37:37 | 显示全部楼层

谢谢大佬。
 楼主| 发表于 2024-9-9 23:40:47 | 显示全部楼层

谢谢,太给力了。
发表于 2024-9-10 08:38:11 | 显示全部楼层
bpoly多余节点处理测试:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-22 20:11 , Processed in 0.183890 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表