二楼的方法也可以,但是那样做有一个坏处,就是旋转180之后,文字的位置就变了。你这可以试试这个,不光文字,其他的也行,原地翻转180. - (defun c:gfz (/ cmn osn ss i n ssn ssndata ssnsty pt ptmin ptmax cenpt
- *error* msg)
- (defun *error* (msg)
- (if
- (wcmatch msg "; 错误:,函数被取消")
- (progn
- (setvar 'cmdecho cmn)
- (setvar 'osmode osn)
- (princ)
- )
- (princ msg)
- )
- )
- (setq cmn (getvar 'cmdecho))
- (setq osn (getvar 'osmode))
- (setvar 'cmdecho 0)
- (setvar 'osmode 0)
- (princ"\n选择要原地反转的对象:")
- (setq ss (ssget ))
- (setq i 0)
- (setq n (sslength ss))
- (repeat n
- (setq ssn (vlax-ename->vla-object (ssname ss i)))
- (vla-GetBoundingBox ssn 'ptmax 'ptmin)
- (setq pt (mapcar '(lambda (a b) (/ (+ a b) 2))
- (vlax-safearray->list ptmax)
- (vlax-safearray->list ptmin)
- )
- )
- (vlax-invoke-method
- ssn
- 'rotate
- (vlax-3d-point pt)
- pi
- )
- (setq i (1+ i))
- )
- (command "ucs" "")
- (setvar 'cmdecho cmn)
- (setvar 'osmode osn)
- (princ "\n命令:GFZ,BY gruel: 稀粥。")
- (princ)
- )
|