Prova questo:
(defun c:OLEsc ( / OLErif OLEtot *y* *x* OLE)
(command "_.undo" "_begin")
(if (and
(setq OLErif (vlax-ename->vla-object (car (entsel "Oggetto OLE di riferimento"))))
(princ "\nOggetti OLE da scalare")
(setq OLEtot (ssget '((0 . "OLE*"))))
(setq *y* (vlax-get OLErif 'ScaleHeight))
(setq *x* (vlax-get OLErif 'ScaleWidth))
)
(repeat (setq n (sslength OLEtot))
(setq OLE (vlax-ename->vla-object (ssname OLEtot (setq n (1- n)))))
(vlax-put OLE 'ScaleHeight *y*)
(vlax-put OLE 'ScaleWidth *x*)
)
)
(command "_.undo" "_end")
)
Nota: vengono aggiornate % scala larghezza e % scala altezza mantenendo il punto d'inserimento che per default è in alto a sinistra.