Inclinazione assetto oggetto

aereo4

buonferragosto a tutti, chi è andato al mare, chi in vacanza e chi sta a casa
nel contempo posto una domanda tosta come il caldo di questi giorni. . . .
(premetto che l’intento è più nella discussione che alla soluzione “in seXse”)

ho preso un aereo come oggetto essendo che mi sembrava idoneo come esempio:
nella FIG1 abbiamo un asse di rotazione che attraversa l’aereo nella lunghezza
nella FIG2 l’intento sarebbe quello di stabilizzare l’assetto in orizzontale

ps
immagino che bisogna utilizzare strumenti avanzati di Gh
ma non ho la minima idea come e se sia davvero fattibile
preciso che l’oggetto su cui bisogna lavorare è una Mesh
spero che ci siano argomentazioni sul quale lavorare :wave:

Con Rhino farei così, con Grasshopper è sufficiente applicare lo stesso schema.


ciao Leopoldo, si in teoria sarebbe questa la strada più facile
(ribadisco che l’aereo è solo un’esempio l’oggetto è tutt’altro)
ricordo che si tratta di una Mesh. sto provando da tempo ad
adattare l’approcio che hai suggerito. ma non’é semplice
essendo che i punti di riferimento non combaciano bene

per fare un’esempio del ragionamento che ho fatto,
estraendo i punti della mesh, e cercando il punto
più in basso di tutti (nella FIG1 sarebbe del ruotino)
e quindi intersecando con asse, raddrizzo assetto
(equivarrebbe alla stessa procedura da te indicata)

ma in entrambi i casi anche se lo spostamento è minimo
speravo in qualcosa di più automatico dove Gh potesse
confermare che la correzione fatta fosse esatta. . . .

L’aereo solo perché graficamente è più leggibile.
Il mio esempio risolve il problema ma ovviamente bisogna fornire gli assi riferimento e l’asse di rotazione.
Non conosco la natura dell’oggetto in questione, ma se la procedura deve essere automatica bisogna comunque fornire dati sufficienti a Grasshopper o a Rhino.

come dati cosa intendi? (spero non assi “precisi sopratutto”)

Gli assi devono essere precisi per loro natura, anche perché sono rappresentati da rette, come si determinano è un altro discorso.
Posta un esempio di quello che vuoi ottenere così ci si può ragionare.

SE e ripeto: SE…
esiste nella mesh 1 faccia che sia complanare al piano su cui vuoi “raddrizzare” l’oggetto inclinato,
basta usare Set Cplane To Object e cliccare quella specifica faccia come riferimento.

Consiglio prima il comando Uplane in modo che il nuovo Cplane sia aggiornato in tutte le viste.

ciao Giuseppe, grazie per il suggerimento
ho provato come dici, ma come presumo già immaginavi (per i 2 SE) la cosa non’é per nulla facile
anche perché la FIG1 dell’aereo non l’ho messa cosi casualmente, ma è l’inclinazione che mi ritrovo

per conferma, quando dici complanare al piano, intendi che una faccia deve essere perpendicolare?
ma a questo punto anche se riuscissi a trovare questa Mesh complanare, come mi sarebbe utile?

es: se io traccio una retta sul piano, è la punto al centro della Mesh complanare,
come faccio a raddrizzare l’oggetto se la retta è già di per se parallela al piano?

ps qualche suggerimento in Gh per cercare di trovare questa Mesh complanare?
proiettando il centroide/area della Mesh sul piano le coordinate X e Y debbono combaciare?

Un esempio di come poter utilizzare Grasshoppers per “raddrizzare” un oggetto.
Ovviamente con un parallelepipedo è abbastanza semplice perché gli assi sono facilmente individuabili.
Si devono determinare due assi: uno per la rotazione e uno per l’allineamento.
In pratica bisogna fornire a Grasshopper 4 punti che determinano due rette.
Non riesco a immaginare un altro modo, ma la teoria non è il mio forte.
assetto.gh (16,2 KB)
img1

appunto, io quello della rotazione già esiste FIG1 e dovrebbe essere l’unica cosa “sicura”
ora mi serve trovare l’asse per l’allineamento o assetto orizzontale come appunto dicevo
ma il tutto deve sempre ruotare facendo riferimento al primo asse quello di rotazione giusto?

Screenshot 2021-08-17 at 10-51-41 Inclinazione assetto oggetto - Bar-Rhino - McNeel Forum

le linee verdi tracciano il contorno dell’oggetto inclinato, mentre quella azzurra è l’asse di allineamento in riferimento alla faccia Mesh. a questo punto se la linea azzurra è già complanare al piano sono bloccato
dovrei invece trovare l’asse avendo la stessa inclinazione dell’oggetto per allinearlo dall’asse di rotazione.

comunque nel frattempo ho realizzato una definizione per trovare una qualche faccetta complanare
ma nella posizione iniziale come immaginavo è impossibile, faccio alcune prove di orientamento e vedo

ps ho simulato l’allineamento ed è abbastanza contorta la cosa. spero ci sia un modo più diretto. . . .
Leopoldo in Rh, il parallelepipedo della figura che hai postato quali comandi useresti per allinearlo?

Per ruotare il parallelepipedo c’è il comando “ruota attorno a un asse”.
Però ci sono dei vincoli da rispettare.
L’asse di allineamento deve essere perpendicolare all’asse di rotazione,inoltre lo deve intersecare altrimenti si determina un angolo errato.
Ovviamente con il parallelepipedo è semplice perché Grasshopper pensa a trovare i vari assi, ma per una figura più complessa la cosa cambia.

Questa definizione allinea la figura al piano orizzontale prendendo come riferimento un punto.
Molto semplice, più che altro un esercizio per capire i comportamenti.
assetto a.gh (14,8 KB)
img1

Mentre quest’altra prendi come riferimento due punti.
assetto b.gh (18,8 KB)
img2

Il problema è sempre quello, come determiniamo i due punti?
Forse la soluzione migliore è sceglierli manualmente.
Un’altra incognita è la direzione di rotazione che può essere oraria o antioraria a secondo di come sono messi i punti scelti.
Ho utilizzato dei punti ma nulla vieta di usare altri elementi.

scusate se non ho letto tutto con attenzione, la domanda è “come si ripristina l’assetto del velivolo”?

la prima immagine è chiriassima, la seconda non comprendo come i punti di riferimento
si trasformano nelle due direzioni delle frecce che hai indicato.

io posto la foto prendendo l’esempio del parallelepipedo di prima dopo aver trovato il piano giusto:

proiez

il parallelepipedo è l’oggetto in questione, ed i due punti selezionati sono per l’asse di rotazione
nella parte superiore c’é la superficie che equivale al piano complanare trovato del parallelepipedo,
il punto “non” selezionato sulla superficie è il punto (anteriore) proiettato perpendicolarmente prima.

si deve ruotare verso sinistra direzione linea lunga. il problema che riscontro, come proietto il punto sulla superficie seguendo la direzione della linea corta senza avere prima il punto di riferimento sulla stessa?

ciao Luca, in parole povere si.

Ok.
Cosa stabilisce qual è l’assetto di un velivolo (leggi corpo qualsiasi)?
Gli angoli di inclinazione rispetto ad un altro riferimento, motivo per cui si parla di terna corpo e terna suolo.

Possiamo limitarci a disegnare due terne cartesiane, inizialmente coincidenti e, per capire i riferimenti, applicare un assetto e proiettare gli assi della terna corpo sulla terna suolo: quelli che otterremo saranno i tre angoli di Eulero (theta, phi e psì detti anche di elevation/beccheggio, bank/rollio e azimuth/imbardata).

Il primo angolo è la rotazione di X_body rispetto ad X_eart con asse di rotazione Y_eart,
il secondo di Y_body rispetto ad Y_eart con asse di rotazione X_eart
e il terzo di X_body rispetto ad X_eart con asse di rotazione Z_eart.

Ai fini di implementazione di GH, per disegnare le terne bastano

  • due vettore normali e il terzo sarà univocamente determinato,
  • assegnare il nome ad ogni angolo di rotazione

voilà avrete riportato gli angoli di Eulero che vi strizzerà l’occhio. :wink:

ps riguardo il primo punto, ricordo che il prodotto vettoriale di due vettori è un terzo vettore normale ai primi due, quindi possiamo usare il comando Cross Product di GH.

Non ho fatto altro che spostare i due punti utilizzando lo stesso vettore AB in modo che il punto A coincida con una estremità dell’asse di rotazione.
img1
A questo punto il procedimento diventa uguale a quello di “assetto a“, ovvero ricavo l’angolo ABC.
img2

Non ce la posso fare.

Leopoldo mi scuserai, ma quando si parla di trigonometria quel poco di materia grigia se ne va in fumo

credo che Luca abbia descritto quello che dicevo, e che sto provando a fare ma che non funziona bene.

Ciao Salvio

Non mi preoccuperei delle rotazioni.
Se individui i riferimenti, poi basta usare Orient, sia in Rhino che in GH, no ?

EDIT:

Per Rhino credo sia Orient3Pt

2 Mi Piace