明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2357|回复: 8

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

[复制链接]
发表于 2008-10-28 21:46:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2008-10-31 18:05:59 编辑

以下函数可以获得获得任意曲线拟合点,但是用等步长的方法,对于比较平缓的曲线,点有点太密了,能不能加一个判断,当点的切线方向较上一个点变化一固定值时,则记录,否则不记录.不知道能不能实现,请大家帮个忙.
  1. ;获得任意曲线拟合点
  2. (defun getplinepoint(ent / obj elist pt j zc)
  3.    (vl-load-com)
  4.    (setq obj (vlax-ename->vla-object ent)
  5.          zc(vlax-curve-getDistAtPoint obj (vlax-curve-getEndPoint obj))
  6.          j 0)
  7.     (repeat (fix zc)
  8.       (setq pt (vlax-curve-getPointAtDist obj j)
  9.             elist (append elist (list pt))
  10.             j (1+ j)
  11.        )
  12.     )
  13.     (setq elist (append elist (list (vlax-curve-getEndPoint obj))))
  14. )
 楼主| 发表于 2008-10-29 12:14:00 | 显示全部楼层
没人知道吗?
 楼主| 发表于 2008-10-30 12:14:00 | 显示全部楼层

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

 

本帖子中包含更多资源

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

x
发表于 2008-10-30 12:22:00 | 显示全部楼层

可根据弧度来判断

根据用户给定的“精度”来添加弧度判断

发表于 2008-10-30 14:46:00 | 显示全部楼层

根据弯曲度来...这个楼主能写出来吗?

针对spline...

如果只是等长,有时候过密...

期待楼主写出类似ET中的acet-geom-object-point-list函数...extrim.lsp中有用到

 楼主| 发表于 2008-10-30 19:10:00 | 显示全部楼层
请问怎么得到spline的弯曲度呢,组码里没有啊?
 楼主| 发表于 2008-10-31 18:02:00 | 显示全部楼层

现在可以了,只是夹角计算还是繁琐了一些,谁能给简化下就好了.

 

本帖子中包含更多资源

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

x
发表于 2008-10-31 18:44:00 | 显示全部楼层

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

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-10-31 19:17:00 | 显示全部楼层
ljttjl发表于2008-10-31 18:44:00给您传个图形,您看看.不知能否按图形里的样条曲线的加密方式那样,将其改写多段线.44204

用一楼的程序可实现,不清楚为什么你的样条曲线vlax-curve-getendparam的值会是1,我沿你曲线新画的就可以,是不是版本问题,请高手指点。

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

本版积分规则

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

GMT+8, 2025-9-21 14:05 , Processed in 0.156791 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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