Trama a cerchi tangenti

Buongiorno, non so nemmeno da dove cominciare, ma si potrebbe ottenere con Grasshopper una trama tipo quella dell’immagine con cerchi tutti tangenti fra di loro e soli 3 diametri con disposizione casuale in un quadrato 300x300 mm?

Sembra che si possa fare.
Circle packing with fixed radius and fixed number of circle for each radius - Grasshopper - McNeel Forum

Grazie Leopoldo, addirittura ci fanno di tutto e di più… :open_mouth:
Ora me lo studio, vediamo di capirci qualcosa :wink: :grin:

Merci! :wink:

Forse qui è più aderente alle tue necessià.
NEST_CIRCLES2.gh (mcneel.com)

Senti Leopoldo, io purtroppo avendo rarissime necessità di dover imparare Grasshopper non mi riesce in tempi brevi di capire e non ho il tempo per farlo. Avresti voglia di scrivermi in questo grafico su ogni operatore cosa fa? Così se ne capisco la logica cerco di modificarlo secondo i miei scopi e magari imparo qualcosa.
Scusami per la richiesta, ma non ho tempo di mettermi ad imparare Gh, il tempo mi rincorre.
Grazie in anticipo, estendo la richiesta anche ad altri che ne capiscono ovviamente.

Sui componenti Kangaroo non so che dirti perché non li conosco molto, vediamo se qualcuno è capace di spiegarti e spiegarmi come funzionano.
Posso però proporti questa modifica della definizione trovata sul forum.
NEST_CIRCLES3 a.gh (18,4 KB)

img1

Perfetto Leo, sembra che siamo molto vicini.
Alcune cose si intuiscono , ma altre…

Agendo sui cursori si può ottenere una buona compattazione.
“Button” serve a resettare qualora i cerchi scompaiano.

Quindi, l’attuale 1900 posso dimensionarlo per ottenere le dimensioni del quadrato e poi i 3 diametri dei cerchi con il cursore.
Mi sembra funzioni! Ci gioco un po’ per ottimizzarlo…
Grazie Leo!!!

Un’altra domanda: se volessi trasformare i cerchi in “ciambelle” cioè in solidi toroidali a sezione ellittica come dovrei fare? Sempre in modo parametrico con Gh, intendo.

Vedi se va bene.
Puoi modificare le dimensioni del Toro agendo sui due scrolller.
La sezione del toro è uguale per tutti i cerchi.
NEST_CIRCLES3 b.gh (18,3 KB)

2 Mi Piace

Grazie Leo, il risultato è esattamente quello che volevo ottenere.
Ho provato a ricostruire la procedura che hai utilizzato e ci sto battendo un po’ la testa poiché l’operatore della sottrazione mi rimane rosso e devo capire cosa non va, ma con questi errori dovrei riuscire a capire meglio quello che sto facendo.
Devo ammettere che studiare Gh con un obiettivo pratico è molto stimolante, anche se per contro non ho sufficienti basi per barcamenarmi correttamente, ma è un inizio. Quando uno fa un corso, forse è meno motivato, ma quando c’è un obiettivo da raggiungere le cose cambiano.

Ieri avevo messo a punto le dimensioni che mi interessavano e la disposizione più utile, ora sto ripercorrendo tutto e aggiungendo il Toro.

Vediamo dove arrivo, casomai approfitto ancora della tua disponibilità per qualche chiarimento.

Una piccola cosa: dove si trova tra i comandi il pulsante su cui hai scritto Swatch e a che serve?

Sul mio PC l’elaborazione del toro è abbastanza lenta per cui ho introdotto questa piccola modifica
Quando i cerchi si sono stabilizzati doppio click su “True” e click su “disable” per disegnare le “ciambelle”.
Il pulsante swatch serve solo per cambiare il colore di visualizzazione del toro.
Dovresti postare la definizione per capire dove sta l’errore del componente sottrazione.
NEST_CIRCLES3 c.gh (22,6 KB)



Per vedere dove si trova un componente cliccare sul componente stesso tenendo premuto “Alt Gr”.

Questo è quello che ottengo, però non capisco perché la sezione del toro non è schiacciata:
NEST_CIRCLES3 b paolo.gh (14,5 KB)

Scala Z deve essere inferiore a 1.
img1

Ma posso fissare un’altezza? Vorrei fosse 1,8 mm
ellisse

Sì, basta calcolare la scala in relazione al diametro.
NEST_CIRCLES3 d.gh (23,4 KB)

1 Mi Piace

Questa definizione non usa alcuno script esterno e spero sia comprensibile anche per apprendere meglio Kangaroo.

Ci sono tre valori di raggio pre-impostati: 5, 10, 15
Il numero di punti è pari al valore slider “A” sulla sinistra x 3.
Ovviamente si può creare un metodo per randomizzare in una lista di N valori fatta di numeri 5, 10, 15, quanto e dove ognuno di essi compaia (Leo docet).

  1. punti iniziali in una geometria
  2. tanti raggi per quanti i punti in 1
  3. condizione di contenimento all’interno di una curva che limita la posizione dei punti (e delle circonferenze) in modo tale che il raggio maggiore rimanga all’interno del rettangolo iniziale.
  4. Un metodo rapido per verificare che l’area del rettangolo interno sia simile alla somma delle aree dei cerchi. Questo serve ad impostare nello slider (A) un numero congruente. Troppi punti generano sovrapposizioni dei cerchi. Pochi generano troppi vuoti.

cerchi3raggiInRettangolo.gh (31,6 KB)

1 Mi Piace

Come sempre Giuseppe, l’anima dell’insegnante emerge ed è un bene! :slightly_smiling_face:
… ma perchè il Solver di kangaroo è rosso? L’ho solo aperto, non ho modificato nulla.

Boooooh strano…qui funziona tutto…
Nella tua immagine vedo che non c’è valore in uscita dall’offset.
Su che versione di Rhino 7 sei?
Guarda come da immagine allegata.
Che valore hai se metti il mouse dove indicato dalla freccia e “?” Dovrebbe essere 15.
Poi cosa esce se fai tasto destro su quell’asterisco? Dovrebbe essere “-x” come da immagine