取下一点函数,利用画直线可输入距离功能
本帖最后由 wzg356 于 2022-6-26 10:22 编辑;取下一点函数,利用画直线可输入距离功能
;可以距离指获取一个点,也可以按正常鼠标打点
;str:提示符
;ps点表(主要是本人需要这样),实质是以最后一点为基点
;(getdp "\n指定边" '((0 0 0)))
(defun getdp (str ps / loop e e1 p2)
(setq loop te(entlast))
(setvar "cmdecho" 0)
(princ str)
(while loop
(command "line")
(foreach p ps (command "none" p))
(commandpause "")
(setq p2(getvar "lastpoint"))
(if(> (distance (last ps) p2)0)(setq loop nil))
(setq e1 e)
(if e(while(setq e1(entnext e1))(entdel e1))
(while(setq e1(entlast))(entdel e1))
)
)
(setvar "cmdecho" 1);高版cad貌似可以不要了
p2
)
;应用例子:3点画平行四边形/矩形
;过程中可以输入距离确定各边
(defun c:ddr( / p1 p2 p3 p4)
(if (and(setq p1(getpoint "\n指定第一点:"))
(setq p2(getdp "\n确定第一边:" (list p1)))
(setq p3(getdp "\n确定第二边:"(list p1 p2)))
);getdp距离定点函数
(progn
(setq p4(polar p3(angle p2 p1)(distance p1 p2)))
(setvar "cmdecho" 0)
(command "pline" "none" p1 "none" p2 "none" p3 "none" p4 "c")
(setvar "cmdecho" 1)
)
)
)
;其他,比如定距复制/阵列之类程序,应用它,就可以免掉提示输入距离过程了
感谢分享,这个方便
页:
[1]