远方小山 发表于 2016-3-6 13:21 
这个方法我试过,但是效果不好,里面好多点在其他多段线上,也被检测出来,附代码如下,请大神指教。
(d ...
你的程序太啰嗦
随手写了一个,没测试。
- ;;; Dis=端点到曲线距离
- ;;; Rad=圆弧半径
- (Defun _Process (Dis Rad / EPT I OS SPT SS VLO XX)
- (setq os (getvar "osmode"))
- (setvar "osmode" 0)
- (if (setq i -1
- ss (ssget '((0 . "*polyline") (70 . 0)))
- )
- (repeat (sslength ss)
- (setq vlo (vlax-ename->vla-object (ssname ss (setq i (1+ i)))))
- (foreach abc (list (trans (vlax-curve-getstartpoint vlo) 0 1)
- (trans (vlax-curve-getendpoint vlo) 0 1)
- )
- (if (and (setq xx (ssget "_cp"
- (polar abc (* 0.25 pi) (* 1.414 Dis))
- (polar abc (* 1.25 pi) (* 1.414 Dis))
- '((0 . "*polyline"))
- )
- )
- (> (sslength xx) 1)
- )
- (command "_.Circle" abc Rad)
- )
- )
- )
- )
- (setvar "osmode" os)
- )
|