本帖最后由 print1985 于 2014-12-6 15:26 编辑
 - (vl-load-com)
- (defun c:dd (/ e i obj p1 p2 pst s ss x)
- (princ "\n请选择需打断的所有直线")
- (if (setq ss (ssget '((0 . "*LINE"))))
- (progn
- (while (setq p1 (getpoint "\n指定打断点"))
- (progn
- (setq i 0)
- (repeat (sslength ss)
- (setq e (ssname ss i)
- obj (vlax-ename->vla-object e)
- p2 (vlax-curve-getclosestpointto obj p1 T)
- pst (cons p2 pst)
- i (1+ i)
- )
- )
- )
- )
- (foreach x pst
- (if (setq s (ssget "c" x x '((0 . "*LINE"))))
- (command "break" (ssname s 0) x x)
- )
- )
- )
- )
- (princ)
- )
试试吧 |