jxlsp 发表于 2008-10-28 21:46:00

[讨论]如何更真实获得任意曲线拟合点(31日更新)

本帖最后由 作者 于 2008-10-31 18:05:59 编辑

以下函数可以获得获得任意曲线拟合点,但是用等步长的方法,对于比较平缓的曲线,点有点太密了,能不能加一个判断,当点的切线方向较上一个点变化一固定值时,则记录,否则不记录.不知道能不能实现,请大家帮个忙.
;获得任意曲线拟合点
(defun getplinepoint(ent / obj elist pt j zc)
   (vl-load-com)
   (setq obj (vlax-ename->vla-object ent)
         zc(vlax-curve-getDistAtPoint obj (vlax-curve-getEndPoint obj))
         j 0)
    (repeat (fix zc)
      (setq pt (vlax-curve-getPointAtDist obj j)
            elist (append elist (list pt))
            j (1+ j)
       )
    )
    (setq elist (append elist (list (vlax-curve-getEndPoint obj))))
)

jxlsp 发表于 2008-10-29 12:14:00

没人知道吗?

jxlsp 发表于 2008-10-30 12:14:00

<p>又改了一下,改绝对步长为相对步长,同时支持多段线,就是SPLINE还有待完善,点密度还不能根据弯曲度来设定,请各位高手提供思路.</p><p>&nbsp;</p>

caoyin 发表于 2008-10-30 12:22:00

<p>可根据弧度来判断</p><p>根据用户给定的“精度”来添加弧度判断</p><p></p>

carrot1983 发表于 2008-10-30 14:46:00

<p>根据弯曲度来...这个楼主能写出来吗?</p><p>针对spline...</p><p>如果只是等长,有时候过密...</p><p>期待楼主写出类似ET中的acet-geom-object-point-list函数...extrim.lsp中有用到</p>

jxlsp 发表于 2008-10-30 19:10:00

请问怎么得到spline的弯曲度呢,组码里没有啊?

jxlsp 发表于 2008-10-31 18:02:00

<p>现在可以了,只是夹角计算还是繁琐了一些,谁能给简化下就好了.</p><p>&nbsp;</p>

ljttjl 发表于 2008-10-31 18:44:00

<p>给您传个图形,您看看.不知能否按图形里的样条曲线的加密方式那样,将其改写多段线.</p>

jxlsp 发表于 2008-10-31 19:17:00

ljttjl发表于2008-10-31 18:44:00static/image/common/back.gif给您传个图形,您看看.不知能否按图形里的样条曲线的加密方式那样,将其改写多段线.44204

<p>用一楼的程序可实现,不清楚为什么你的样条曲线<a href="http://www.mjtd.com/object/autolisp/vlax-curve-getendparam.htm" target="_black"><font face="Courier New" color="#0000ff">vlax-curve-getendparam</font></a>的值会是1,我沿你曲线新画的就可以,是不是版本问题,请高手指点。</p>
页: [1]
查看完整版本: [讨论]如何更真实获得任意曲线拟合点(31日更新)