Spostamento oggetti su superficie

Ciao a tutti.
Esiste un modo per spostare in un colpo solo i punti (lungo l’asse z) in modo che tocchino la sfera?
Grazie mille, Fabio.Punti su sfera.3dm (262,1 KB)



ciao Gambler,
puoi semplicemente proiettare nella vista top (o prospettica) i punti sulla sfera.

Se dovessi eseguire un operazione similare ma non in asse costruzione la sequenza è quella di fare un segmento orientato secondo l’angolo che ti serve che parte da uno dei punti sopra la sfera, copiarlo per ogni punto presente, intersecare i segmenti con la sfera e tenere solo i punti superiori dell’intersezione.

ciao

Grazie mille Illo ma mi rendo conto ora di non avere impostato bene la domanda, scusa.
In realtà i punti sono oggetti e mi servirebbe poterli “adagiare” su una superficie bombata secondo una certa direzione e non semplicemente proiettarli.
Spero di essermi spiegato questa volta. :slight_smile:
Fabio.

Non ho capito bene cosa ti serva… quindi butto li tre metodi spiegati velocità ma che potrebbero fare quello ceh ti serve:
Project guarda il piano di costruzione per proiettare gli oggetti su altri (quindi imposti il CPlane rispetto alla direzione voluta).
Pull adagia sulla superficie seguendo la normale tra superficie e oggetto (non gli interessa il Cplane).
Flow (along surface o along curve) ti permette di piegare gli oggetti partendo da un riferimento ad un altro (curva/curva o superficie/superficie).

ciao Fabio,
in questo caso allora devi creare un segmento normale alla superficie in corrispondenza dei punti proiettati sulla superficie precedentemente (comando presente tra quelli per disegnare ile polilinee) e poi usare il comando orient on surface o oriend perpendicolar to line

Vorrei poter adagiare degli elementi (in verde) sulla superficie di un ciondolo con una sola operazione.
Una volta appoggiati li abbasso di una quantità precisa e ci faccio la differenza booleana … prima li chiudo. :slight_smile:
Al momento li allineo uno ad uno con la superficie ma è un lavoro lungo, alla fine parliamo di circa 500 elementi da sistemare.
Se li raggruppo e allineo il gruppo non ho un risultato preciso per via delle irregolarità e della bombatura
della superficie.

Penso sia fattibile ma temo sia una cosa da fare elemento per elemento e quidni parecchio lunga.

Mi vien da dire Orient 3 points opzione to Object e selezioni le pietre come oggetto di destinazione…
ma devo fare una prova per verificare se funziona bene.

No scusa, ho detto una cavolata… l’opzione to object ce l’hai solo per l’orientamento del CPlane… ho fatto confusione.
Però mi pare di aver fatto uno script che faceva delle robe simili… provo a vedere se lo trovo e casomai te lo posto.

In effetti non trovavo l’opzione.
Se dovessi trovare lo script mi farebbe sicuramente piacere ma non stare a tribolare.
Mentre sciviamo sto procedendo a sistemare le cose “a manina” visto che il lavoro è per ieri. :slightly_smiling:

Anzi, mi ricorreggo… se estrai la superficie irregolare, la untrimmi (mantenendo i bordi dei fori) e poi fai l’orient on surface delle incisioni con opzione copy (snappando sui bordi dei fori), la cosa si dovrebbe velocizzare parecchio… o no?

Esiste uno script scritto da Pascal della McNell che , usando il comando _Cage , fà ciò di cui hai bisogno… Unica condizione perchè l’ operazione funzioni e che gli oggetti siano esattamente sopra le superfici sui cui si devono adaggiare, essendo uno script e’ lento nell’ esecuzione sconsiglio di usarlo con 500 elementi alla volta … meglio a gruppi di 50.

Ciao Mario, grazie.
Però mentre stavo leggendo che mi dicevi di copiarlo in un tasto è sparito tutto …
Ora leggo solo le prime quattro righe del tuo messaggio. ??

Sì, così procedo più velocemente.
Ho portato un elemento sulla superficie in modo che in uno specifico punto (che userò come riferimento) abbia l’elevazione desiderata rispetto alla superficie.
Mentre li posiziono il comando mi permette di orientarli a raggiera.
Rimane poi da allinearli secondo la curvatura locale della superficie ma questo lo sto già facendo con il mio metodo.
Così risparmio di dovere allineare un oggetto alla volta sulla superficie.
Grazie mille.

Si il format del forum aveva incasinato tutto…
Metto lo script in allegato …devi inserirlo tutto in un bottone .ProjectObjects.txt (4,7 KB)

Mario lo so che sono uno stress ma lo script mi da questo errore:

Ti allego un filettino di Rhino, stavo provando velocemente a riportare delle sfere sulla suuperficie.
Fabio.Esempio per Mario.3dm (1,4 MB)

Strano da me tutto funziona correttamente.
Do’ per scontato che tu abbia correttamente copiato TUTTO il testo dentro ad un bottone…

Il msg di errore fa’ riferimento a questa linea di codice

Dim SDir: SDir = Rhino.GetString(“Projection direction”,OldDir,aDir)

nel punto in cui appare la seguente scritta

Projection direction (WorldZ CplaneZ ):

Quando arrivi a quel punto prova a confermare cliccando con il tasto destro del mouse senza inserire nessun carattere da tastiera.
Ovviamente il Cplane corrente DEVE essere impostato su _CPlane _World _Top

Ps: tutti gli oggetti da adaggiare devono essere sul medesimo piano perche’ fa’ fede il loro boundingbox globale, altrimenti li devi processare ad uno a uno.

Mi viene un dubbio … Gli oggetti che devi adaggiare devono mantenere la loro forma originale o possono venire deformati ?
Perche’ purtroppo lo script li “spalma” sulla superfice di arrivo come se fossero di gomma morbida.

Ciao Mario, letto ora tuoi post.
No, devono mantenere la loro forma sennò è un disastro.
Ora provo però peccato però che li spalmi in quel modo.
Grazie mille comunque, sei stato gentilissimo.
Fabio.

L’errore rimane.
Il pano C non l’ho mai modificato, non capisco però cosa voglia dire _CPlane _World _Top