谁有命令求多段线到多段线的最短距离
不知道那个工具箱里有命令可以求多段线到多段线的最短距离?在这个论坛里搜索了一下没有发现,在谷歌里搜索也没有看到。
打算自己写一个。
论坛上有点到线的最短距离,拿其中一多段线取所有点对别一个循环不就行了? soly2006 发表于 2012-3-6 22:50 static/image/common/back.gif
论坛上有点到线的最短距离,拿其中一多段线取所有点对别一个循环不就行了?
有差别,关键圆弧怎么处理 (vlax-curve-getPointAtDist curve-obj dist)
设个步长,设得越小,越接近。
先用soly2006 的方法求出近似点,再对近似点分析,近似点旁的无凸度多段线端点应是所求点;
对有凸度多段线要复杂点,可以求该圆弧圆心到另一多段线最短直线与该圆弧的交点是否与近似点相邻,如不相邻,再比较圆弧两段点到另一多段线的最短距离, 用犀牛软件,内部的命令,就可以求出。 LLXXZZ 发表于 2012-3-7 12:32 static/image/common/back.gif
用犀牛软件,内部的命令,就可以求出。
噢,pro/e也有,但是这样要调到别的软件里去就比较麻烦了。 本帖最后由 Gu_xl 于 2015-4-26 20:58 编辑
加载XLRX_API:
语法: (XLRX-Curve-getClosestPointTo curve1 curve1 ) 功能:返回曲线1上离指定曲线2最近的点(在 WCS 上)参数: curve1曲线1图元名 curve2曲线2图元名 tol 容差值 返回值: 如果成功则返回三维点列表,'(曲线1上一点 曲线2上一点) ,否则返回 nil
语法: (XLRX-Curve-distanceTo curve1 curve1 ) 功能:返回曲线上离指定点最近的距离(在 WCS 上)参数: curve1曲线1图元名curve2曲线2图元名 tol 容差值 返回值: 如果成功则返回实数,否则返回 nil
Lisp版本代码如下:
**** Hidden Message ***** 版主出手,不会有错! Gu_xl 发表于 2012-3-7 16:40 static/image/common/back.gif
**** 本内容被作者隐藏 ****
挺棒的,程序短小,对于SPLINE云形线也可以处理。
对于分段大小,我测试时用0.01一般也挺快的就算好了。但分段设为0.001时,就比较花时间了。