请问 这打断命令可以改成选择多条线同时打断至点或多点吗?
(defun c:bv();打断于点(while (and (setq ENT(car (entsel))) (setq PT(getpoint "\n指定一个打断点: ")))
(command "._BREAK" ENT "_NON" PT "_NON" PT)
)
)
谢谢大家了
本帖最后由 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)
)
试试吧 ent应该是个表,象entseLL的还回值 不清楚楼主什么意思,配个图 本帖最后由 hooboxu 于 2014-12-4 21:00 编辑
龙城飞将36 请看看 平行且等长的直线吗?
如果不平行 不等长 需要遵循什么规则? 如果是竖向的直接而有长短的话, 则以鼠标点击的X坐标打断.横向直线则以Y坐标打断 本帖最后由 hooboxu 于 2014-12-6 18:53 编辑
感谢print1985热心的帮忙谢谢你,,但还有BUG,意思是对了
页:
[1]