matichen 发表于 2002-9-14 19:33:00

为报答大家对明经通道的支持,本站特别与TrueTable共同推出免费注册活动

我用pl线所有顶点坐标相加求x.y平均值的方法求得了中心点,但是在一些比较不规则的形状中,中心点偏移得很多(至少看上去是这样)。哪位帮我看看怎样解决这个问题,我是想在中心点写文字的。

秋枫 发表于 2002-9-14 23:39:00

利用这个pl生成region, 然后就可以求得region的形心、重心、惯心矩之类的。

matichen 发表于 2002-9-14 23:55:00

怎么不能传图了.....?

本帖最后由 作者 于 2002-9-14 23:55:51 编辑

这个
....

matichen 发表于 2002-9-15 00:00:00

怎样求region的形心、重心、惯心矩?

秋枫 发表于 2002-9-15 01:49:00

region就有这些属性的。参见

http://www.xdcad.com/forum/showthread.php?s=&threadid=13754

matichen 发表于 2002-9-15 18:40:00

参了半天,没参懂....

看来我是的要质心,但是massprop之后,那个质心坐标没办法提出来啊。(看得到,用不了。)有没有什么办法。

陈伯雄 发表于 2002-9-16 08:18:00

您不会写程序?

(Command "massprop" regs "" "y" "c:\\00")
(SetQ cpfn (Open "c:\\00.mpr" "r"))
(Repeat 7 (Read-Line cpfn))
(SetQ cpfx (Last (Read (StrCat "(" (Read-Line cpfn) ")"))) ;提取质量中心X位置
      cpfy (Last (Read (StrCat "(" (Read-Line cpfn) ")"))) ;提取质量中心Y位置
)
(Close cpfn)

秋枫 发表于 2002-9-16 08:57:00

这样吧,给你一段代码:

本帖最后由 作者 于 2002-9-16 8:57:51 编辑

使用标准的vlisp, centroid是重心,
这种返回值是一个实数数值变体
(vla-get-centroid (vlax-ename->vla-object (car (entsel))))
为了转成list, 用下面的代码:
(vlax-safearray->list
(vlax-variant-value
    (vla-get-centroid (vlax-ename->vla-object (car (entsel))))
)
)
这样的代码,显然比较麻烦一点,
在本站的vlisp函数库中,定义了一个 通用的转化成lisp-value的函数,可以简化一点:
(lisp-value (vla-get-centroid (vlax-ename->vla-object (car (entsel)))))

龙龙仔 发表于 2002-9-16 10:10:00

更简单的代码 (vlax-get (vlax-ename->vla-object (car (entsel)))”centroid”)

更简单的代码 (vlax-get (vlax-ename->vla-object (car (entsel)))”centroid”)

秋枫 发表于 2002-9-16 10:41:00

高!能不能详细说明一下这个(vlax-get), 我在help中没有找到。竟然是自动转换的。

高!能不能详细说明一下这个(vlax-get), 我在help中没有找到。竟然是自动转换的。vlax-get-property就和我那个一样了。还有没有类似的函数,请一并赐教。
页: [1] 2 3
查看完整版本: 如何求pl线几何中心?[求助]