马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - ;;闭合线时根据 p1 p2 顺序取中点
- (defun Curve:MidPntat (curve p1 p2 / d1 d2 tl d d0)
- (setq p1 (vlax-curve-getclosestpointto curve p1)
- p2 (vlax-curve-getclosestpointto curve p2)
- d1 (vlax-curve-getdistatpoint curve p1)
- d2 (vlax-curve-getdistatpoint curve p2)
- )
- (if (and (or (vlax-curve-isclosed curve)
- (equal (vlax-curve-getstartpoint curve)
- (vlax-curve-getendpoint curve)
- 1e-6
- )
- )
- (> d1 d2)
- )
- (progn
- (setq tl (vlax-curve-getdistatparam
- curve
- (vlax-curve-getendparam curve)
- )
- d0 (- tl d1)
- d (* (+ d0 d2) 0.5)
- )
- (if (> d d0)
- (vlax-curve-getpointatdist curve d)
- (vlax-curve-getpointatdist curve (+ d1 d))
- )
- )
- (vlax-curve-getpointatdist curve (* (+ d1 d2) 0.5))
- )
- )
|