也许OP就是这么想的:
- (vl-load-com)
- (defun KGA_Conv_Pickset_To_ObjectList (ss / i ret)
- (if ss
- (repeat (setq i (sslength ss))
- (setq ret (cons (vlax-ename->vla-object (ssname ss (setq i (1- i)))) ret))
- )
- )
- )
- (defun c:ChangeScale ( / doc enm scl ss)
- (setq doc (vla-get-activedocument (vlax-get-acad-object)))
- (vla-endundomark doc)
- (vla-startundomark doc)
- (cond
- ((= 1 (getvar 'tilemode))
- (prompt "\nError: command cannot be used in model space ")
- )
- ((= 1 (getvar 'cvport))
- (prompt "\nError: command requires an active MS viewport ")
- )
- ((setq enm (ssname (ssget "_X" (list (cons 410 (getvar 'ctab)) (cons 69 (getvar 'cvport)))) 0))
- (setq scl (/ 12.0 (vla-get-customscale (vlax-ename->vla-object enm)))) ; Change 12.0 to suit.
- (if (setq ss (ssget '((0 . "INSERT"))))
- (foreach obj (KGA_Conv_Pickset_To_ObjectList ss)
- (vla-put-xscalefactor obj scl)
- (vla-put-yscalefactor obj scl)
- (vla-put-zscalefactor obj scl)
- )
- )
- )
- )
- (vla-endundomark doc)
- (princ)
- )
|