vlax-map-collection
Dostępne słowniki: Zmienne systemowe i polecenia Architektura LISP System ZWGeo ZWToolbox ZWTraffic ZWTextile ZW3D
vlax-map-collection
(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))
)
)
)