(defun C:test ( / SS ent vla-obj )
(vl-load-com)
(if (setq SS (ssget "X" (list (cons 0 "INSERT"))))
(repeat (setq i (sslength SS))
(setq ent (ssname SS (setq i (1- i))))
(setq vla-obj (vlax-ename->vla-object ent))
(if
(and
(or
(not (= (vla-get-XScaleFactor vla-obj) 1.0))
(not (= (vla-get-YScaleFactor vla-obj) 1.0))
(not (= (vla-get-ZScaleFactor vla-obj) 1.0))
)
; (vlax-get-IsDynamicBlock vla-obj :vlax-true)
(vlax-property-available-p vla-obj 'EffectiveName)
(member (vlax-get vla-obj 'EffectiveName)
'("Point" "KORYFES" "station" "trigonom" "KOKAEK" "KOROT" "AnnotPoint" "AnnotKORYFES" "Annotstation" "Annottrigonom" "AnnotKOKAEK" "AnnotKOROT")
)
)
(progn
(vla-put-XScaleFactor vla-obj 1.0)
(vlax-put-property vla-obj 'YScaleFactor 1.0)
(vlax-put vla-obj 'ZScaleFactor 1.0)
)
)
);repeat
)
(vla-Regen (vla-get-ActiveDocument (vlax-get-acad-object)) acActiveViewport)
(princ)
);defun
(defun C:test ( / SS vla-obj )
(vl-load-com)
(if (setq SS (ssget "_X" (list (cons 0 "INSERT")(cons 410 (getvar 'ctab)))))
(vlax-for vla-obj (vla-get-ActiveSelectionSet (vla-get-activedocument (vlax-get-acad-object)))
(if
(and
(eq (vla-get-isLayout vla-obj) :vlax-false)
(eq (vla-get-isXref vla-obj) :vlax-false)
(or
(not (= (vla-get-XScaleFactor vla-obj) 1.0))
(not (= (vla-get-property vla-obj 'YScaleFactor) 1.0))
(not (= (vlax-get vla-obj 'ZScaleFactor) 1.0))
)
; (vlax-get-IsDynamicBlock vla-obj :vlax-true)
(vlax-property-available-p vla-obj 'EffectiveName)
(member (vlax-get vla-obj 'EffectiveName)
'("Point" "KORYFES" "station" "trigonom" "KOKAEK" "KOROT" "AnnotPoint" "AnnotKORYFES" "Annotstation" "Annottrigonom" "AnnotKOKAEK" "AnnotKOROT")
)
); and
(progn
(vla-put-XScaleFactor vla-obj 1.0)
(vlax-put-property vla-obj 'YScaleFactor 1.0)
(vlax-put vla-obj 'ZScaleFactor 1.0)
)
); if
); vlax-for
); if SS
(vla-Regen (vla-get-ActiveDocument (vlax-get-acad-object)) acActiveViewport)
(princ)
);defun
I think it should be faster, since the objects from the SS are not converted into VLA objects (atleast I think so).