Griglia avvolta su solidi e superfici irregolari

Buongiorno a tutti, vorrei “avvolgere” una griglia in formato dxf su dei solidi e superfici irregolari.

Nello specifico non necessito di una semplice “proiezione” ma di un avvolgimento vero e proprio sulla superficie esterna del solido (in modo poi da estrarne le coordinate dei punti “avvolti”).

Per il momento ho ovviato al problema utilizzando le curve UV dopo aver ricostruito la superficie del solido in esame (in quanto il comando delle curve UV non mi consente di selezionarne più di una in contemporanea e stenderle sul piano). Tuttavia nel caso di superfici molto irregolari (e caratterizzate da molte superfici di taglio) tale operazione risulta essere molto complessa e con risultati non precisissimi.

Potreste darmi una mano? Avete qualche idea su come realizzare questa cosa? Vi lascio in allegato un file di prova su cui vorrei realizzare l’avvolgimento di una griglia/circonferenze/scritte.

Esempio.3dm (223,7 KB)
GRIGLIA.dxf (699,2 KB)

Marco, benvenuto!

Ecco la mia soluzione basata su Flow Along Srf.
Occorre fare qualche “preparativo” perché il comando chiede una Srf di destinazione mentre tu hai una polySrf.
Ho isolato la “pelle” superiore.
Contratto tutti i bordi di trimmatura con ShrinkTrimmedSrfToEdge (altrimenti il successivo comando non funziona).
Fatto un MergeSrf per avere una unica Srf celeste.
Ridotto la griglia a una misura pari allo sviluppo della celeste.
Creato una srf di base pari allo sviluppo della celeste.
Flow along Srf della griglia con srf di base quella piana e destinazione quella celeste.
Puoi fare un Pull delle curve così proiettate sulla parte opposta alla celeste.
Spero sia utile.
Esempio (4)-GM.3dm (1,4 MB)

1 Mi Piace

Ciao Giuseppe, grazie per la risposta!

Utilizzo da poco Rhino, quindi ho ancora molto da imparare! Potresti gentilmente spiegarmi (nel dettaglio possibilmente) come fare ad “isolare” la pelle esterna del solido direttamente con Rhino v7? (io ho provato a realizzarlo attraverso un variable offset impostando SetAll = 0, esiste qualche altro metodo più rapido che non conosco?)

Inoltre vorrei chiederti se attraverso la tua procedura è possibile realizzare l’avvolgimento anche di scritte (ad esempio pdf importati) escludendo la porzione di spazio in cui sono presenti vuoti/fori (ad esempio realizzando delle circonferenze concentriche ai fori).

Per isolare la pelle esterna puoi banalmente esplodere l’oggetto o usare il tasto destro con comando esplodi che “estrae” le singole superfici.
Che si tratti di griglia o di scritte fa poca differenza. Per Rhino sono solo curve una volta che le importi.
Per la porzione dove hai i buchi puoi trimmare le scritte usando come oggetto di taglio il bordo del foro.

1 Mi Piace

Grazie mille!! Ho ottenuto esattamente quello che volevo.

Unica domanda: per sviluppare la superficie sul piano xy hai utilizzato il comando “_CreateUVCurve”, giusto?

Benissimo!
In realtà per una srf in singola curvatura ho solo duplicato il bordo e misurato…
Create UV Curve e il corrispondente Apply usano lo spazio Parametrico (U,V) e non quello “metrico” e potrebbero portare a deformazione in base a come sono parametrizzate le srf.

1 Mi Piace

Perdonami, potresti spiegarmi più nel dettaglio come hai fatto a sviluppare nel piano la superficie? Io avevo utilizzato il createUVCurve e poi effettuato il comando Flow along Srf per riportare il tutto sulla superficie curva…

Non la ho sviluppata ho misurato il bordo dritto (che diventa un lato della Srf rettangolare) e misurato (comando: _Length) il bordo a zig-zag dove sono i raggi. Che diventa l’altra misura del rettangolo.
Data la natura della srf (singola curvatura) questa cosa si può fare. Ma puoi anche svilupparla, una volta che è unita in una unica srf (celeste) con UnrollSrf o Flatten.

Scusami Giuseppe, stavo provando a replicare quanto fatto sopra su un’altra superficie ma quando effettuo il comando MergeSrf mi da errore “can’t merge trimmed edges of surfaces”. Sai come potrei risolvere?
Ho caricato il file in allegato

Prova 2.3dm (1,2 MB)

Figurati Marco!
Su questo modello non funzionerà mail. Il MergeSrf si usa su bordi non trimmati.
Ti conviene partire da una srf non trimmata, generata dai bordi esterni come quella azzurra che vedi nel file allegato. Su questa fai la proiezione dell curve e poi con Pull riporti le curve sul modello finale.
Prova 2-GM.3dm (1,0 MB)

Ti ringrazio per la risposta Giuseppe.

Purtroppo necessito delle coordinate dei punti precisi sulla superficie in esame e come vedi in foto la superficie blu in sezione si discosta…

C’è un modo per rendere la superficie trimmata “non trimmata” e procedere con la procedura analizzata stamane (considerando che in questo caso è anche presente una doppia curvatura)?

Ciao Marco,
temo si debba fare un attimo la tara al concetto di “precisione” in questo tipo di strategia.
Comunque si tratta di deformare curve che dal giacere in piano passano a diventare curve nello spazio…
Puoi usare il comando “_untrim” per rimuovere il bordo di trimmatura ma tu hai una polisrf… che dovrai esplodere e per ogni componente fare untrim che poi non ti porterà da nessuna parte perché ogni srf avrà misura diversa… il delirio.
L’approccio suggerito è proprio perché hai srf in doppia curvatura e l’esempio iniziale non funziona più al meglio.
Devi usare la celeste com passo intermedio di proiezione (Flow Along Srf) POI quelle curve le devi applicare con il comando _Pull al modello con tutti i dettagli.
La proiezione avviene usando le normali delle srf di destinazione.

1 Mi Piace

Grazie mille Giuseppe, sei stato gentilissimo!

Potresti solo spiegarmi cosa intendi di preciso con “passo intermedio di proiezione”?

Eccomi:
Spiego con un file in cui in (1)
Ho realizzato la srf piana usando _Squish su celeste. Il comando spiana anche srf in doppia curvatura. Se la doppia curvatura è minima l’errore è accettabile (dipende dall’ambito)
Posizionato le curve da prioettare (rosse).
Con Storia di Costruzione (vedi help Rhino) sempre attiva, io lavoro così, Flow along Srf usando la celeste come destinazione.
La Storia permette di muovere e centrare le curve rosse quando sono sulla srf piana e automaticamente si aggiornano sulla celeste.
(2) Levi la celeste e fai un _Pull delle curve verso le corrispondenti parti dell’oggetto “vero”.
A questo punto le curve rosse sono sulle srf dell’oggetto “vero” e puoi usarle, ad esempio, per splittare ed estrudere (cerchi rossi).
Prova 2-GM2.3dm (2,8 MB)

1 Mi Piace

Grazie Giuseppe per i tuoi consigli!
La metodologia che mi hai proposto ha funzionato egregiamente sulla superficie precedente, tuttavia replicando la procedura in modo analogo su un altro caso (in cui è presente una forte discontinuità tra le curvature di due superfici adiacenti), il comando pull ha generato una griglia non corretta (vedi foto in allegato)… hai qualche idea su come si potrebbe risolvere il problema?


Ciao Marco.
Questo è il limite di tutti i metodi basati su U e V… temo. Vale lo stesso discorso per la mappatura per rendering.
Esiste un plugin per Rhino che si chiama “Paneling Tools” e affronta il problema che, comunque, richiede una strategia caso per caso. A volte completamente diversa da quello che abbiamo trattato fino a ora.
Prendiamo un esempio ostico. Allegato.
Oggetto azzurro fatto in parte per rivoluzione e srf piana. Polysrf. Il peggio che puoi trovare…
Cominciamo a dire che uno spigolo non è “discontinuità” ma semmai continuità di posizione… :wink:
Se cerco di applicare direttamente con Pull, le curve della griglia, alla polysrf azzurra, ho un risultato molto dubbio…
Trasformando la polysrf in Mesh con il comando _QuadRemesh ho una forma abbastanza simile ma il vantaggio che il Pull genera una rete che non si spezza come sul bordo condiviso di una polysrf. Queste curve potrebbero essere poi adattate per appartenere alla polysrf azzurra.
grid.3dm (3,7 MB)

1 Mi Piace