明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 126|回复: 0

选择对象旋转,让初始旋转角度为90度,后面根据输入的角度进行旋转

[复制链接]
发表于 前天 13:57 | 显示全部楼层 |阅读模式

  1. (defun c:srr (/ old_cmd s n en pti sc c2p_end c2p_error c2p_start)
  2.   (defun c2p_start (/)
  3.     (setq old_cmd (getvar "cmdecho"))
  4.     (setvar "cmdecho" 0)
  5.     (setvar "blipmode" 0) ; 消除影点变量
  6.     (eval "(command "_.undo" "_group\41;")
  7.     (setq olderr *error* *error* c2p_error)
  8.     (princ)
  9.   )
  10.   (defun c2p_end (/)
  11.     (setq *error* olderr)
  12.     (command "_.undo" "end")
  13.     (setvar "cmdecho" old_cmd)
  14.     (princ)
  15.   )
  16.   (defun c2p_error (s)
  17.     (if (not (member s '("控制台中断" "功能已取消" "退出 / 退出中止")))
  18.       (princ (strcat "\n错误: " s))
  19.     )
  20.     (c2p_end)
  21.   )
  22.   (c2p_start)
  23.   (princ "\n 多实体自身旋转.")
  24.   (if (not mini_rt_angle) (setq mini_rt_angle 90)) ; 初始角度设为90度
  25.   (setq sc (getangle (strcat "\n 旋转角度:<" (rtos mini_rt_angle 2 3) ">"))
  26.         mini_rt_angle (if sc (* 180 (/ sc pi)) mini_rt_angle) ; 转换为度数
  27.   )
  28.   (while (and (princ "\n 选择自旋转实体:")
  29.               (setq s (ssget))
  30.          )
  31.     (repeat (setq n (sslength s))
  32.       (setq n (1- n)
  33.             en (ssname s n)
  34.             pti (cdr (assoc 10 (entget en)))
  35.       )
  36.       (if pti (command "_.rotate" en "" "non" (trans pti 0 1) mini_rt_angle))
  37.     )
  38.   )
  39.   (c2p_end)
  40.   (princ)
  41. )


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-6 02:52 , Processed in 0.153493 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表