下面是该线程中代码的概括:
- ;; Scale About Center - Lee Mac
- (defun c:sac ( / ll sel obj ur )
- (initget 6)
- (if
- (and
- (setq *scl*
- (cond
- ( (getdist (strcat "\nSpecify Scale Factor" (if *scl* (strcat " <" (rtos *scl* 2) ">: ") ": "))))
- ( *scl* )
- )
- )
- (ssget "_:L")
- )
- (progn
- (vlax-for obj (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
- (if (null (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list obj 'll 'ur))))
- (vla-scaleentity obj
- (vlax-3D-point
- (mapcar '(lambda ( a b ) (/ (+ a b) 2.0))
- (vlax-safearray->list ll)
- (vlax-safearray->list ur)
- )
- )
- *scl*
- )
- )
- )
- (vla-delete sel)
- )
- )
- (princ)
- )
- (vl-load-com) (princ)
|