Clipping Plane


#1

mi piace molto la funzione del clipping plane non solo nel rendering ma anche nella vista ombreggiata. Mi pare però di capire che funzioni solo su solidi e quindi se ho superfici con bordi coincidenti ma non unite tra loro (appartengono a layer differenti) il gioco non funziona.
Come faccio a aggirare l’ostacolo?


#2

Ciao Stefano,

Se ho capito bene, vorresti vedere la superficie “di sezione” invece del “vuoto”, giusto? non credo sia possibile farlo in Rhino, ma si potrebbe fare un piccolo “hack” usando Grasshopper e generando al volo le superfici di sezione - ti allego un file.

Due righe sul funzionamento: bisogna inserire manualmente l’ID del clipping plane e collegare da Rhino le polisuperfici da considerare, poi la definizione di GH trasforma il clipping plane in un vero e proprio piano, trova le intersezioni con gli oggetti, chiude eventuali curve aperte e crea un “Cap” come superficie planare.
Per evitare problemi di visualizzazione nella viewport con il clipping plane (che funziona anche sulle anteprime di GH), le superfici vengono spostate leggermente lungo la normale del piano.

Non ho trovato un modo per aggiornare in automatico la soluzione - ma sicuramente c’è - quindi va ricalcolata premendo F5 in Grasshopper. I piani possono essere visualizzati usando le funzioni di anteprima di GH e all’occorenza creati in Rhino con il baking,

E’ troppo “articolata” come soluzione :smile: o potrebbe andare?

Marco

2015-10-30 - ClippingPlaneCap.gh (8,7 KB)
2015-10-30 - ClippingPlaneCap.3dm (100,5 KB)


#3

grazie infinite e scusa se ho messo tempo a rispondere (è stato un fine settimana un pò complicato).
Se capisco bene dalla tua spiegazione, GH costruisce una nuova superficie dati i piani da intersecare ed il piano intersecante. Bellissimo, è esattamente quello che mi serviva, Grazie ancora.
Tuttavia questa nuova superficie non viene renderizzata (nel render, anche quello di rhino) la superficie inclinata, scompare.
Cosa mi sfugge?


#4

Non credo ti sfugga nulla :smile:
Le geometrie create in Grasshopper restano lì finché non si fa il “baking” (si selezionano uno o più componenti, si preme la barra di spazio e dal menu si sceglie l’icona dell’“uovo” oppure si sceglie “Bake” dal menu contestuale con il pulsante destro del mouse).

A questo punto le geometrie vengono effettivamente create in Rhino e possono essere renderizzate, assegnate a materiali ecc.

Se occorre, si può automatizzare il baking utilizzando il componente “Bake” del plugin Lunchbox (da scaricare gratuitamente da www.food4rhino.com/project/lunchbox)

Trovi un esempio nei file allegati: il bake si può fare cliccando sul pulsante Bake Caps, che può riportato anche nel pannello Remote Control Panel in Rhino.

Ovviamente se si modifica il clipping plane occorre cancellare le sezioni vecchie.

2015-11-02 - ClippingPlaneCap v2.gh (11,9 KB)
2015-11-02 - ClippingPlaneCap v2.3dm (121,9 KB)


#5

lo vedi che qualcosa sfuggiva? In effetti avevo eseguito il comando “bake” ma senza selezionare alcunchè, per cui alcunchè succedeva.
Ora invece mi succede che non riesco a cancellare la superficie creata ed ho fatto passare tutto questo tempo perchè è una cosa che cerco di fare nei ritagli di tempo e vorrei fare da solo senza fare domande stupide. Ora provo a passare sul mio disegno e vedo cosa riesco a combinare. Ma credo che dovrò seccare di nuovo.
Grazie ancora


#6

Se la superficie è stata creata in Rhino con il bake, dovrebbe essere possibile cancellarla da Rhino come un qualsiasi altro oggetto. Però quello che può essere successo è che rimanendo selezionata e/o avendo il componente l’anteprima abilitata in Grasshopper, la superficie viene mostrata in Rhino, anche se “fisicamente” lì non c’è più.

Per verificarlo rapidamente puoi provare a cancellare tutta la “canvas” di GH (dopo puoi fare l’Undo) oppure creare temporaneamente un nuovo file (sempre dentro GH) - e la superficie dovrebbe scomparire

Quando si usa GH. anche per una cosa semplice, è necessario capire come gestire l’anteprima delle geometrie - provo a fare un breve sunto: ogni componente può avere anteprima abilitata (colore grigio chiaro - di default) o anteprima disabilitata (colore grigio scuro).

Per abilitare/disabilitare l’anteprima selezioni un componente, premi la barra di spazio e clicchi sull’icona con l’omino con o senza benda.

Poi nella barra degli strumenti in alto a destra trovi 4 icone.

Le prime 3 indicano il tipo di anteprima (nessuna, wireframe, shaded), la quarta (quella verde) decide se l’anteprima è attiva solo per i componenti selezionati (indipendentemente dal fatto che siano grigi chiari o grigi scuri) oppure se è attiva per tutti i componenti - selezionati e non - con anteprima abilitata.

Effettivamente non è proprio “intuitivissimo” però una volta capito il meccanismo ci si muove abbastanza bene.

Tutto questo se ho capito quel è il problema :slight_smile: altrimenti chiedi pure.


#7

tutto quello che scrivi è prezioso, sono io che mi spiego male.
Le superfici vengono eliminate (se le cancello), ma quando sposto il clipping plane la nuova “cottura” mi ricrea le superfici sulla vecchia posizione. Effettivamente il problema è visibile già in preview. Come spiego a Grasshopper che in Rhino il clipping plane ha cambiato posizione? Immaginavo che la questione fosse automatica ma evidentemente mi perdo ancora qualcosa…


#8

In genere funziona in automatico, ma in questo caso particolare no, perché per qualche motivo GH non riconosce il clipping plane come un vero e proprio oggetto, infatti per “catturarlo” ho dovuto usare uno script inserendo manualmente l’ID, ma non ho trovato un modo per farlo aggiornare quando si muove.

Comunque per aggiornare la soluzione basta che premi F5 (sempre all’interno di GH) oppure vai sul menu Solution > Recompute.


#9

Grazie. Ora il prossimo passo.

  1. Ho importato la tua definizione nel mio disegno. Ho copiato l’ID del mio clipping plane nelle note del Pannello (il primo elemento giallo sulla sinistra). Giusto?

  2. l’elemento “Breps from Rhino” è diventato arancione e riporta il messaggio “Brep with ID {256de510-9621-43ed-935c-e69ec1644486} failed to load” ripetuto per altri due oggetti.

  3. l’elemento “Join” è anch’esso arancione e riporta il messaggio “1. Insufficient curves for join operation”

Se capisco bene in qualche punto il modello è aperto e non è possibile chiudere le superfici con una curva di bordo. Corretto?
Intanto provvedo a correggere il modello nei punti che vedo, poi magari vado alla ricerca degli ID evidenziati.
Grazie ancora


#10

1 giusto

2 - Il componente Breps from Rhino è arancione perché è “vuoto”, cioè non viene “alimentato” da altri componenti di GH né è associato ad alcuna geometria di Rhino. Per farlo, seleziona il componente, clicca con il destro e scegli “Set Multiple Breps”, poi seleziona in Rhino le polisuperfici e superfici che ti interessano

3 Join è arancione perché non riceve in input alcuna curva - dipende a cascata dal problema 2

Nel caso l’intersezione non sia una curva chiusa, la definizione di GH prova a chiuderla collegando con una linea il punto di fine e quello di inizio, quindi in genere può funzionare, ma in casi particolari (es, intersezione formata da due curve aperte distinte) può non dare il risultato voluto.

Piano piano ci avviciniamo alla soluzione :slight_smile:


#11

dunque… funziona! Tuttavia devo riparare il modello per fare in modo che le cose funzionino a dovere. Però appena ho finito posto il risultato, per tua amia soddisfazione. :smile:
Grazie ancora :grinning:


#12

Perfetto, allora aspettiamo :slight_smile:


#13

niente da fare, purtroppo. Il tuo .gh funziona perfettamente, te ne sono estremamente grato e lo conservo gelosamente, ma il modello è troppo complesso (una chiesa settecentesca) e a cercare tutti i punti in cui le modanature creano problemi sto perdendo troppo tempo. La soluzione che ho trovato è stata la seguente:

  • ho tracciato un sezione sul piano del clipping plane;
  • ho corretto a mano i punti in cui la sezione si interrompeva;
  • ho chiuso la curva, generato la superficie interna e spostato tale superficie 1 cm indietro per non farla giacere sullo stesso piano del clipping plane.
    Non il massimo dal punto di vista tecnico e della precisione del disegno ma raggiunge lo scopo che mi ero prefisso.
    Grazie sempre e comunque. :wink: :smiley:

#14

In effetti il modello è abbastanza complesso, in questi casi spesso si fa prima a fare a mano :smile: