AMTONNY,你看这个DLT返回的是不是你需要的距离,pt1应该是你需要的点,用autolisp程序如下: (defun Dlt(pt2 pt6 pt7 / pt1) (setq pt1(inters pt2 (polar pt2 (+ (angle pt6 pt7) (/ pi 2.0)) 1.0) pt6 pt7 nil)) (distance pt1 pt2) ) 如果采用VL的话似乎应该用vlax-curve-getClosestPointTo,即返回曲线上离指定点最近的点,当然你的pt6和pt7是直线也属于曲线范畴 语法:(vlax-curve-getClosestPointTo curve-obj givenPnt [extend]) 参数: curve-obj 要测量的 VLA 对象。 givenPnt 点(在 WCS 上),寻找曲线上距该点最近的点。 extend 如果指定该参数且其值不为 nil,vlax-curve-getClosestPointTo 在搜索最近点时扩展曲线。 返回值:如果成功则返回表示曲线上一点的三维点表,否则返回 nil。 |