- (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)
- )
|