小毛草 发表于 2025-2-4 13:57:49

选择对象旋转,让初始旋转角度为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]
查看完整版本: 选择对象旋转,让初始旋转角度为90度,后面根据输入的角度进行旋转