复制线的一部分简单实现
(vl-load-com)(defun c:py1(/ oo st_pt end_pt pt1 pt2 pt_tmp l_ss)
(setq oo (entsel "请选择线"))
(setq ss (car oo))
(setq pt1 (osnap (cadr oo) "near"))
(setq st_pt (vlax-curve-getStartPoint ss)
end_pt (vlax-curve-getEndPoint ss)
pt2 (getpoint "线上第二个点")
)
(if (>(vlax-curve-getParamAtPoint ss pt1) (vlax-curve-getParamAtPoint ss pt2))
(setq pt_tmp pt2
pt2 pt1
pt1 pt_tmp)
)
(command "undo" "be")
(command "_break" ss st_pt pt1)
(command "_break" ss end_pt pt2)
(command ".copy" ss "" '(0 0) '(0 0))
(setq l_ss (entget (entlast)))
(command "undo" "end")
(command "undo" "")
(entmake l_ss)
(setq ss (entlast))
(vla-put-Color (vlax-ename->vla-object ss) 1)
(command "_move"ss "" pt1 )
)
http://bbs.mjtd.com/data/attachment/album/201412/09/020045nh08efmhe9ewwkfh.gif
感谢 819534890 分享程序! 有特色,感谢 819534890 分享程序!“请选择线”应该是请选择线上第一点“” 必须支持。谢谢! 虽然用不上,但是好东西还是得顶顶 这个好玩,不错,学习了,谢谢分享 多来这里学习,刚学lisp,觉得很好玩。 这个有意思,支持一下 支持下,很给力,留脚印,以后再研究 哈哈,这个有点意思
页:
[1]
2