马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - (defun c:xdtb_blkrot (/ x an x ss ang v)
- (defun _callback (key) (setq #xd-var-global-rot-mode key) (_prompt))
- (defun _prompt ()
- (xdrx-prompt
- "\n**当前方式: "
- (cond ((= #xd-var-global-rot-mode "E") "绕中心点旋转")
- (t "绕插入点旋转"))
- )
- )
- (if (not #xd-var-global-rot-mode)
- (setq #xd-var-global-rot-mode "A")
- )
- (if (not #xd-var-global-rot-angle)
- (setq #xd-var-global-rot-angle 45))
- (if (setq v (getreal (xdrx-prompt "\n输入原位旋转的角度<" #xd-var-global-rot-angle ">:" t)))
- (setq #xd-var-global-rot-angle v))
- (if
- (and (xdrx-prompt
- "\n将选中的块以各自的插入点为中心旋转指定的角度:"
- )
- (_prompt)
- (xdrx-initget "E T")
- (xdrx_initssget
- "\n选取要旋转的图块[中心点(E)/插入点(T)]<退出>:"
- "E T"
- ""
- "_callback"
- )
- (setq ss (xdrx-ssget '((0 . "insert"))))
- )
- (progn
- (mapcar '(lambda (x)
- (setq an (xdrx-getpropertyvalue x "rotation"))
- (cond ((= #xd-var-global-rot-mode "T")
- (xdrx-setpropertyvalue
- x
- "rotation"
- (+ an (/ (* pi #xd-var-global-rot-angle) 180.0))
- )
- )
- (t
- (setq cen (trans (xd::geom:get9pt x 5) 1 0)
- mat (xdrx-matrix-setrotation (/ (* pi #xd-var-global-rot-angle) 180.0) '(0 0 1) cen ))
- (xdrx-entity-transform x mat)
- )
- )
- )
- (xdrx-pickset->ents ss)
- )
- )
- )
- (princ)
- )
|