vlax-map-collection

Wyszukaj w słowniku

Dostępne słowniki:

Termin Definicja
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)) )
     )
)