直线上任意点取位置画线程序
请教各位大虾:程序功能:要求在选取的点位置(必须在直线图元上)画线
;;;两直线之间画线
(defun c:tt()
(setvar "osmode" 0)
(princ "\请指定起始点:")
(setq en1(entsel))
(princ "\请指定终点:")
(setq en2(entsel))
(setq pt1(cadr en1))
(setq pt2(cadr en2))
(command "line" pt1 pt2 "")
)
运行结果:
所画直线跑了,起点和终点不在选取的两条直线上!
不知如何解决?期待高手解答!!!
需要用vlax-curve-getclosestpointto函数解决 要捕捉一下,点才能落到直线上 (defun c:TT (/ P1 P2)
(if (and (setq P1 (getpoint "\n指定起点: "))
(setq P1 (nentselp P1))
(setq P1 (apply 'vlax-curve-getclosestpointto P1))
(setq P2 (getpoint "\n指定起点: "))
(setq P2 (nentselp P2))
(setq P2 (apply 'vlax-curve-getclosestpointto P2))
)
(command "_.LINE" "_NON" P1 "_NON" P2 "")
)
) 谢谢各位大虾指点,程序已修改成功!
;;;两直线之间画线
(defun c:tt ()
(setvar "osmode" 0)
(princ "\请指定起始点:")
(setq en1 (entsel))
(setq pt1 (osnap (cadr en1) "nea"))
(princ "\请指定终点:")
(setq en2 (entsel))
(setq pt2 (osnap (cadr en2) "nea"))
(command "line" pt1 pt2 "")
)
谢谢楼主,学习了
页:
[1]