Copiare posizione XYZ e rotazione e scala


#1

Ciao, mi servirebbe sapere se esiste uno script già fatto che faccia questo:
Chieda di selezionare un oggetto 1, copia la posizione X,Y,Z e rotazione X,Y,Z e scala X,Y,Z di quell’oggetto e assegna quei valori ad un oggetto 2.

Altrimenti dovrei scriverlo ma non ho idea di come cominciare, non ho mai fatto script per rhino.


#2

Ciao Bruno

La documentazione ufficiale per gli script la trovi qui:


Con Rhino abbiamo due possibilita’ per gli script:
RhinoScript / VBScript
e
IronPython

Personalmente ti consiglio Python, perche’ ti da’ piu’ possibilita’,
RhinoScript e’ piu’ limitato.
Ovviamente la scelta e’ tua … :slight_smile:

Per discutere di script puoi scrivere su questo forum, c’e’ un piccolo gruppo di scriptomani che, nel caso, saranno lieti di rispondere, consigliare, discutere e imparare.
Poi c’e’ il forum McNeel principale, che forse conosci gia’.
Per gli script c’e’ un’apposita categoria:

Li’ trovi decisamente piu’ gente, compresi i programmatori McNeel.

Quanto al tuo problema particolare … temo di non capire …
Per quanto ne so io, in Rhino solo le istanze di blocco contengono una trasformazione, e quindi posizione, scala e orientamento, nonche’ un punto di riferimento sull’oggetto.
Gli altri oggetti sono definiti direttamente da coordinate (piu’ altri valori), che definiscono la posizione ‘assoluta’ dell’oggetto.
Non ci sono posizioni, orientamento e scala relativi a qualcos’altro.

Naturalmente si possono rilevare, una volta stabilita la ‘base di riferimento’

Anche in caso di oggetti con identica forma, Rhino non ti da’ automaticamente un riferimento, bisogna ricavarselo con lo script.

Se hai piu’ informazioni su come vanno intese posizione. orientamento e scala dell’oggetto in questione, proviamo a cercare qualche idea per lo script … :slight_smile:

Ciao


#3

Ciao Emilio, grazie… in effetti è utile che io dia una spiegazione precisa di quello che stò facendo ora che ci penso…
In pratica mi capita spesso di creare modelli prima NURBS e poi convertirli in mesh poligonali.

Quindi io ho da una parte il mio modello NURBS texturizzato. Ogni polisuperficie è srotolata ed ha applicata ad essa una singola texture.

Per mappare rapidamente gli stessi materiali sul modello poligonale associo gli stessi materiali usando “Copia proprietà” -> Materiale

E subito dopo copio le coordinate UV attraverso il pulsante “Uguaglia mappatura”.

Il chè è ottimo, funziona benissimo ad eccezione del fatto che il widget di mappatura copia del primo, viene collocato sempre da Rhino alla posizione 0,0,0
Invece che essere collocato alla posizione dell’oggetto corrispondente.

E io dico: Magari collocarlo alla posizione dell’oggetto corrispondente è un casino.
Ma nel momento in cui io ho i miei due modelli NURBS e mesh affiancati l’un l’altro ad una data distanza: Copio la posizione e l’orientamento e la scala del widget di mappatura del modello NURBS, e incollo tutti questi dati nel widget copiato che si trova fuori posto. Così facendo i due widget avranno la stessa identica posizione. A quel punto sposto il secondo della distanza fra i due modelli… e così facendo è perfetto.

Ma copiare e incollare posizione X, Y,Z etc… da un widget all’altro è lungo. Quindi ho pensato: Se riuscissi a leggere quelle variabili del widget 1 e ad associarle al widget 2 in automatico attraverso uno script… sarebbe perfetto.

Nello script si potrebbe prevedere anche di inserire l’offset di distanza fra un modello e l’altro (in un determinato asse) e così facendo potrebbe posizionare automaticamente il widget esattamente dove deve stare.

Mi spiego meglio: Se io so che la copia del mio modello si trova traslata su un determinato asse ad una determinata distanza, lo script deve leggere le coordinate del widget 1, inserirle nel widget di destinazione e aggiungere quell’offset a quell’asse.

Tutto ciò mi consentirebbe di riapplicare le texture e le coordinate alle copie mesh in modo abbastanza rapido.



#4

Hai già provato con il comando orient2pt e orient3pt?


#5

Ho provato adesso e funziona ed è una buona idea… ma avrei preferito qualcosa che automatizzasse maggiormente la cosa… richiede un po’ troppo tempo.
Per le forme complesse mi sa di troppo macchinoso… perchè magari il widget è orientato in un modo particolare ed ha molti vertici e selezionare i punti “fine” corrispondenti della geometria NURBS a volte non risulta molto immediato…


#6

Grazie per la spiegazione, Bruno.

Purtroppo per quanto mi riguarda … non credo di aver mai usato una texture … e non so da dove si comincia
( Nelle proprieta’ dell’oggetto, per la texture mi chiede un nome … che non so nemmeno cosa rappresenti, ne’ dove andarlo a prendere … :blush: )
Spero che altri siano piu’ esperti di me (ci vuole poco) a questo riguardo

( Intanto provo a cercare di capirci qualcosa … )

Ciao