选择对象旋转,让初始旋转角度为90度,后面根据输入的角度进行旋转
(defun c:srr (/ old_cmd s n en pti sc c2p_end c2p_error c2p_start)
(defun c2p_start (/)
(setq old_cmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "blipmode" 0) ; 消除影点变量
(eval "(command \"_.undo\" \"_group\41;")
(setq olderr *error* *error* c2p_error)
(princ)
)
(defun c2p_end (/)
(setq *error* olderr)
(command "_.undo" "end")
(setvar "cmdecho" old_cmd)
(princ)
)
(defun c2p_error (s)
(if (not (member s '("控制台中断" "功能已取消" "退出 / 退出中止")))
(princ (strcat "\n错误: " s))
)
(c2p_end)
)
(c2p_start)
(princ "\n 多实体自身旋转.")
(if (not mini_rt_angle) (setq mini_rt_angle 90)) ; 初始角度设为90度
(setq sc (getangle (strcat "\n 旋转角度:<" (rtos mini_rt_angle 2 3) ">"))
mini_rt_angle (if sc (* 180 (/ sc pi)) mini_rt_angle) ; 转换为度数
)
(while (and (princ "\n 选择自旋转实体:")
(setq s (ssget))
)
(repeat (setq n (sslength s))
(setq n (1- n)
en (ssname s n)
pti (cdr (assoc 10 (entget en)))
)
(if pti (command "_.rotate" en "" "non" (trans pti 0 1) mini_rt_angle))
)
)
(c2p_end)
(princ)
)
页:
[1]