(vlax-map-collection objekt funkcja)
Stosuje funkcję na wszystkich elementach kolekcji VLA.
Jeśli argument objekt nie reprezentuje kolekcji VLA lub każdy obiekt kolekcji nie jest odpowiedni dla funkcji vlax-map-collection rzuca błąd. W przeciwnym przypadku funkcja jest zastosowana na każdym elemencie kolekcji i zwraca wartość argumentu objekt.
Przykład:
(vl-load-com)
(defun c:test (/ ModelSpace Nums_circle Nums_line Nums_arc Nums_ellipse)
(setq Nums_circle
Nums_line 0
Nums_arc 0
Nums_ellipse
)
(setq ModelSpace (vlax-get-property (vlax-get-property (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace))
(vlax-map-collection ModelSpace 'statistics)
(alert (strcat (itoa Nums_circle) " circles" "\n"
(itoa Nums_line) " lines" "\n"
(itoa Nums_arc) " arcs" "\n"
(itoa Nums_ellipse)" ellipses"
)
)
(princ)
)
(defun statistics (ent / objType)
(setq objType (cdr (assoc 0 (entget (vlax-vla-object->ename ent)))))
(cond
((= objType "CIRCLE") (setq Nums_circle (1+ Nums_circle)) )
((= objType "LINE") (setq Nums_line (1+ Nums_line)) )
((= objType "ARC") (setq Nums_arc (1+ Nums_arc)) )
((= objType "ELLIPSE")(setq Nums_ellipse (1+ Nums_ellipse)) )
)
)