tigcat 发表于 2024-7-10 19:18:48

【分享】选择两点转水平

本帖最后由 tigcat 于 2024-7-10 23:15 编辑

先选取一个旋转基点,再选取一个角度点。然后选取需要旋转的对象,转到水平线上面来。抛砖引玉了~~

(defun c:33 (/ &tmp-ang &tmp-ang2 tmp-pt1 tmp-pt2)
(setq tmp-pt1 (getpoint "指定旋转基点:"))
(terpri)
(setq tmp-pt2 (getpoint "指定另一角度线:"))
(terpri)
(setq &tmp-ang (/ (* 180 (angle tmp-pt1 tmp-pt2)) pi))
(cond
    ((< 0 &tmp-ang 90) (setq &tmp-ang2 (- &tmp-ang)))
    ((< 90 &tmp-ang 180) (setq &tmp-ang2 (- 180 &tmp-ang)))
    ((< 180 &tmp-ang 270) (setq &tmp-ang2 (- 180 &tmp-ang)))
    ((< 270 &tmp-ang 360) (setq &tmp-ang2 (- &tmp-ang 360)))
)
(command "ROTATE" (ssget) "" tmp-pt1 &tmp-ang2)
(prin1)
)

MZ_li 发表于 2024-7-10 20:09:36

(defun cx_xztx(/ p1 p2 hd jd ss)
        (setq p1 (getpoint "\n请选择需转正的第一端点,旋转后此点位于电脑屏幕左边方向")
                p2 (getpoint p1 "\n请选择需转正的第二端点,旋转后此点位于电脑屏幕右边方向\n")
                hd (angle p1 p2))
                (progn
                        (prompt "\n请选择需要旋转摆正的对象:")
                        (setq ss (ssget))
                        (setq jd (- 360 (/ (* hd 180) pi)))
                        (vl-cmdf "rotate" ss "" p1jd)
                )
       
)

你有种再说一遍 发表于 2024-7-10 21:33:48

仿写al命令看看,你就知道难度了

ljpnb 发表于 2024-7-10 22:10:31


(defun c:test ()
(command "rotate"
           (ssget)
           ""
           (setq p0 (getpoint "\n选择一基准点:"))
           "R"
           p0
           (getpoint p0 "\n选择另一个点:")
           0;;可以设定水平0或垂直角度90
)
(princ)
)

tigcat 发表于 2024-7-10 22:27:06

MZ_li 发表于 2024-7-10 20:09


很简洁,待会试试

tigcat 发表于 2024-7-10 23:03:51

你有种再说一遍 发表于 2024-7-10 21:33
仿写al命令看看,你就知道难度了

哈哈,就写点简单的平时工作用

tigcat 发表于 2024-7-10 23:10:43

ljpnb 发表于 2024-7-10 22:10


谢谢分享.

gble119 发表于 2024-7-11 20:01:43

大神就是多哈!
页: [1]
查看完整版本: 【分享】选择两点转水平