明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2420|回复: 16

[源码] 求助,求内部带孔不规则封闭图形的质心

[复制链接]
发表于 2013-9-7 17:50 | 显示全部楼层 |阅读模式
如何点选不规则封闭图形(内部有孔)内部(不在内部孔上)取得质心,并在质心标注出来,vla-get-centroid求带孔不规则封闭图形结果不对
发表于 2013-9-7 18:36 | 显示全部楼层
楼主怎么知道是错的呢?
我试了一下,应该是对的。
 楼主| 发表于 2013-9-7 19:29 | 显示全部楼层
(setq pt (getpoint
               "\n选择内部点(不能选择在内部孔上)<右键退出> : "
             )
    )

(command "-boundary" "a" "o" "r" "" pt "")

       (setq newentlast (entlast))
       (setq ptzx        (vlax-safearray->list
                  (vlax-variant-value
                    (vla-get-centroid
                      (vlax-ename->vla-object newentlast)
                    )
                  )
                ;)
      ) ;_取得质心
对带孔的ptzx不对
 楼主| 发表于 2013-9-7 19:30 | 显示全部楼层
(setq pt (getpoint
               "\n选择内部点(不能选择在内部孔上)<右键退出> : "
             )
    )

(command "-boundary" "a" "o" "r" "" pt "")

       (setq newentlast (entlast))
       (setq ptzx        (vlax-safearray->list
                  (vlax-variant-value
                    (vla-get-centroid
                      (vlax-ename->vla-object newentlast)
                    )
                  )
                )
      ) ;_取得质心
对带孔的ptzx不对
 楼主| 发表于 2013-9-7 19:32 | 显示全部楼层
原因是_boundary命令不能像_bhatch命令把内部孔去除
 楼主| 发表于 2013-9-7 19:37 | 显示全部楼层
(setq newentlast (entlast))取得的面域对象是外部不规则封闭图形和内部孔生成的面域中的一个,不是想要的外部不规则封闭图形生成的面域减去内部孔生成的面域差。
 楼主| 发表于 2013-9-7 19:40 | 显示全部楼层
vla-get-centroid本身没错
发表于 2013-9-7 19:56 | 显示全部楼层
rln007 发表于 2013-9-7 19:37
(setq newentlast (entlast))取得的面域对象是外部不规则封闭图形和内部孔生成的面域中的一个,不是想要的外 ...

这个你可以先用差集
 楼主| 发表于 2013-9-7 20:22 | 显示全部楼层
多个内部孔不怎么好处理
 楼主| 发表于 2013-9-7 20:26 | 显示全部楼层
不用选择集,如何获取_boundary生成的面域差集,只想多边形内部点选一下,如何实现?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-2 01:14 , Processed in 0.273274 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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