rln007 发表于 2013-9-7 17:50:03

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

如何点选不规则封闭图形(内部有孔)内部(不在内部孔上)取得质心,并在质心标注出来,vla-get-centroid求带孔不规则封闭图形结果不对

nzl1116 发表于 2013-9-7 18:36:38

楼主怎么知道是错的呢?
我试了一下,应该是对的。

rln007 发表于 2013-9-7 19:29:06

(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不对

rln007 发表于 2013-9-7 19:30:01

(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不对

rln007 发表于 2013-9-7 19:32:17

原因是_boundary命令不能像_bhatch命令把内部孔去除

rln007 发表于 2013-9-7 19:37:21

(setq newentlast (entlast))取得的面域对象是外部不规则封闭图形和内部孔生成的面域中的一个,不是想要的外部不规则封闭图形生成的面域减去内部孔生成的面域差。

rln007 发表于 2013-9-7 19:40:23

vla-get-centroid本身没错

nzl1116 发表于 2013-9-7 19:56:49

rln007 发表于 2013-9-7 19:37 static/image/common/back.gif
(setq newentlast (entlast))取得的面域对象是外部不规则封闭图形和内部孔生成的面域中的一个,不是想要的外 ...

这个你可以先用差集

rln007 发表于 2013-9-7 20:22:34

多个内部孔不怎么好处理

rln007 发表于 2013-9-7 20:26:11

不用选择集,如何获取_boundary生成的面域差集,只想多边形内部点选一下,如何实现?
页: [1] 2
查看完整版本: 求助,求内部带孔不规则封闭图形的质心