本帖最后由 lee50310 于 2021-7-17 08:48 编辑
試試看:

- (defun C:ZR ()
- (setvar "cmdecho" 0) ;指令执行过程不回应
- (princ "\n自身旋转")
- (setq ss (ssget))
- (setq sel(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
- (foreach x sel
- (vla-getboundingbox (vlax-ename->vla-object x) 'minpt 'maxpt)
- (mapcar 'set '(minpt maxpt) (mapcar 'vlax-safearray->list (list minpt maxpt)))
- (setq p (mapcar '(lambda (x y) (/ (+ x y) 2.0)) minpt maxpt))
- (command "_.rotate" x "" p 90.0)
- );end_forecch
- (princ)
- )
|