马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×

- ;; 旋转UCS ,类似ExpressTools中的 rtucs, 因为要让R14用户使用,故只使用了command.
- ;; 临时写的,没有仔细测试,如发现问题请 email : [email]lkcadway@21cn.com[/email]
- ;; add "F " option : exit and planview
- ;; 2003/06/20
- ;; 系统要求: AutoCAD R14~2004
- ;; 专业 : 任意 , 对经常使用UCS的人更有用些.
- ;; written by e2002 2003/06/19
- (defun C:lkpt:UCS:Rotate ( /
- lkpt:UCS:Rotate:err
-
- oldvar1 oldvar2 oldvar3 olderr
- bLoop bDirection sAxis rAngle
- sDirection sKey sAngle rAngle-in
- )
- (defun lkpt:UCS:Rotate:err (sErrMsg)
- (if (/= sErrMsg "Function cancelled")
- (princ (strcat "\nerror : " sErrMsg))
- )
- (command "_.ucs" "_d" "$_lkpt_UCS_Rotate_Save")
- (setvar "CMDECHO" oldvar1)
- (setvar "DIMZIN" oldvar2)
- (setvar "UCSICON" oldvar3)
- (setq *error* olderr)
- (princ)
- )
-
- (setq oldvar1 (getvar "CMDECHO")
- oldvar2 (getvar "DIMZIN")
- oldvar3 (getvar "UCSICON")
- olderr *error*
- *error* lkpt:UCS:Rotate:err
- bLoop T
- bDirection T
- sDirection "逆时针"
- sAxis "Z"
- rAngle 15.0
- )
- (setvar "CMDECHO" 0)
- (setvar "DIMZIN" 0)
- (if (/= oldvar3 3) (setvar "UCSICON" 3))
- (command "_.ucs" "_s" "$_lkpt_UCS_Rotate_Save")
- (while bLoop
- (princ "\n当前设定: 转动角度 : ") (princ rAngle)
- (princ " 转动方向 : ") (princ sDirection)
- (princ " 旋转轴 : ") (princ sAxis)
- (if bDirection
- (setq sDirection "顺时针")
- (setq sDirection "逆时针")
- )
- (initget "E W R A S D F")
- (setq sKey (getkword (strcat "\n按"Enter"开始转动UCS或设置[退出(Exit)/to Wcs/Restore/转角(A)/换转动轴(S)/" sDirection "(D))/exit and plan view(F)] :")))
- (cond
- ( (null sKey) (command "_.ucs" "_n" sAxis rAngle) )
- ( (= sKey "E") (setq bLoop nil) )
- ( (= sKey "S")
- (cond
- ( (= sAxis "Z") (setq sAxis "X") )
- ( (= sAxis "X") (setq sAxis "Y") )
- ( (= sAxis "Y") (setq sAxis "Z") )
- )
- )
- ( (= sKey "W") (command "_.ucs" "_w") )
- ( (= sKey "F") (setq bLoop nil) (command "_.plan" "_c") )
- ( (= sKey "R")
- (command "_.ucs" "_r" "$_lkpt_UCS_Rotate_Save")
- )
- ( (= sKey "A")
- (setq sAngle (rtos rAngle 2 4)
- rAngle-in (getangle (strcat "\n指定转角[5/10/15/20/30/60/90/180] <" sAngle ">: "))
- )
- (if rAngle-in
- (setq rAngle (abs (/ (* rAngle-in 180.0) PI)))
- )
- (if (> rAngle 180.0)
- (setq rAngle (- rAngle 180.0))
- )
- )
- ( (= sKey "D")
- (setq bDirection (not bDirection)
- rAngle (- 0 rAngle)
- )
- )
- );end cond
- );end while
- (command "_.ucs" "_d" "$_lkpt_UCS_Rotate_Save")
- (setvar "CMDECHO" oldvar1)
- (setvar "DIMZIN" oldvar2)
- (setvar "UCSICON" oldvar3)
- (setq *error* olderr)
- (princ)
- );end defun C:lkpt:UCS:Rotate
|