【分享】选择两点转水平
本帖最后由 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)
)
(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)
)
) 仿写al命令看看,你就知道难度了
(defun c:test ()
(command "rotate"
(ssget)
""
(setq p0 (getpoint "\n选择一基准点:"))
"R"
p0
(getpoint p0 "\n选择另一个点:")
0;;可以设定水平0或垂直角度90
)
(princ)
)
MZ_li 发表于 2024-7-10 20:09
很简洁,待会试试 你有种再说一遍 发表于 2024-7-10 21:33
仿写al命令看看,你就知道难度了
哈哈,就写点简单的平时工作用 ljpnb 发表于 2024-7-10 22:10
谢谢分享. 大神就是多哈!
页:
[1]