Ciao ragazzi è da qualche anno che non mi faccio vivo, vi espongo il mio problema.
In rete ho trovato questo lisp che selezionando un solido o regione, mi disegna un cerchio "rosso" nella posizione del suo baricentro.
Fin quì tutto ok, il mio problema nasce dal fatto che ho la necessità di selezionare più solidi insieme, ma il programmino mi fa selezionare un solido alla volta.
Mi rimetto a qualcuno che riesca a modificare il lisp e che estenda la selezione non ad un solo oggetto ma a più oggetti.
Di seguito copio tutto il programma, che magari possa ritornare utile a qualcuno.
Ciao e grazie:


;COG3D - disegna il baricentro di un solido o regione
;
(defun c:COG3D ( / ent coords objent objent-vl)
(vl-load-com)
(setvar "cmdecho" 0)
(while (not (setq objent (car (entsel "\nSelezionare solido 3D o regione: "))))
)
(while (not (member (setq ent (cdr (assoc 0 (entget objent)))) '("3DSOLID" "REGION")))
(prompt
(strcat "\n*** Entità selezionata non valida - " ent)
)
(while (not (setq objent (car (entsel "\nSelezionare solido 3D o regione: "))))
)
)
(setq objent-vl (vlax-ename->vla-object objent))
(setq coords (vlax-get objent-vl "centroid"))
(command "cerchio" coords (/ (getvar "VIEWSIZE") 50));draw it
(command "_.chprop" "_L" "" "_Col" "1" "")
(princ (strcat "\nBaricentro:\nX=" (rtos(car coords)) " Y=" (rtos(cadr coords)) " Z=" (rtos(caddr coords))))
(setvar "cmdecho" 1)
(prin1)
)
(princ "CADstudio COG3D command loaded")
(prin1)