wzg356 发表于 2022-6-26 10:19:53

取下一点函数,利用画直线可输入距离功能

本帖最后由 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)
                )
      )      
)

;其他,比如定距复制/阵列之类程序,应用它,就可以免掉提示输入距离过程了


434939575 发表于 2022-6-28 08:24:31

感谢分享,这个方便
页: [1]
查看完整版本: 取下一点函数,利用画直线可输入距离功能