Ciao a tutti,
vorrei creare uno script che prenda uno o piu’ oggetti e li allinei al centro del piano di costruzione. Per esempio: ho due cubi di dimensioni diverse, il cubo piccolo è posizionato sopra il cubo grande: selezionandoli entrambi (magari ragruppandoli) lo script dovrebbe prendere in considerazione il centro della faccia inferiore del cubo grande per portare i 2 solidi al centro del piano di costruzione.
Credo di essere molto lontano dalla soluzione, mi potete dare qualche spunto?
Ciao. La premessa mi sembra in contraddizione con l’esempio.
A mio modesto avviso, per ogni script o definizione… è fondamentale che il quesito sia chiaro e univoco. Altrimenti oltre a non trovare la soluzione… non trovi nemmeno la strada.
Ipotizziamo che il piano sia XY?
Vuoi che l’allineamento sia rispetto ai centroidi dei pezzi e relativo al vettore Z? (Centroidi su asse Z)
Per ottenere il nuovo posizionamento i pezzi devono traslare solo in XY?
Banalmente: hai provato i comandi di allineamento di Rhino?
Ciao Giuseppe,
lo sapevo che non mi ero spiegato bene
In Rhinogold c’è un comando che si chiama GotoCenter, praticamente muove uno o piu’ oggetti al centro del cplane, ma lo fa considerando il centroide del pezzo o pezzi selezionati.
Ecco un esempio:
Io invece vorrei il posizionamento al centro del cplane considerando il centro della base dei solidi in oggetto, una cosa di questo tipo:
Sparo: Immagino che lo script debba costruire una boundingbox per determinare la base delle geometrie selezionate per poi utilizzare rs.MoveObjects per traslare il tutto, ma se fosse così come faccio a determinare il centro della base??? .
Ciao Luca,
Lo sai che ci sono già i comandi di allineamento in Rhino, e uno di questi fa esattamente quello che chiedi, vero?
Giusto per non lasciare nulla al caso…
Riccardo
Si, hai ragione, Align è un comando 2D, cioè opera rispetto al piano di lavoro.
Se ripeti la marco con un altra vista ottiene l allineamento sui 3 assi.