Ordine incrociato linee

Ciao a tutti,

vorrei riuscire ad ordinare delle linee in modo “incrociato”, ossia tale per cui l’ordine di creazione delle linee risulti essere (ad esempio) il seguente:

La stessa cosa dovrebbe funzionare in maniera analoga anche su curve non rettilinee (es. circonferenze con un certo offset).

Qualcuno ha qualche idea sul come si possa realizzare tale ordinamento? Grazie.

Lascio in allegato anche il file utilizzato nella foto di esempio:
Ordine linee incrociato.3dm (30,4 KB)

Un percorso utensile con passate parallele e radiali. Sembrerebbe…
Si risolve abbastanza facilmente così:
toolpath-GM.gh (16,4 KB)


I numeri dell’immagine sono gli inizi delle rette.

  • Il primo blocco a sx della definizione orienta tutte le geometrie in XY e ricava il piano per poi ri-orientare a fine lavoro le rette sul piano originale (non lo ho fatto ma è banale)
  • il secondo blocco si occupa di generare le rette (potrebbero essere archi) e ricava le porzioni all’interno della sagoma (polilinea data). Il solo slider presente indica la distanza fra rette.
  • il terzo blocco usa una strategia per flippare le curve in modo alternato.

Chiaramente è tutto perfettibile ma penso che sia richiesto uno spunto su cui lavorare e non una soluzione “chiavi in mano”.

2 Mi Piace

Non è una soluzione.
Partendo dal disegno di Marco faccio un ordinamento di massima quindi manualmente inverto il verso delle curve e l’ordinamento dove è necessario.
Non saprei come tradurre tutto ciò In una definizione efficiente.
ordine.gh (13,8 KB)


Grazie a entrambi per la risposta!

Se invece volessi ordinare le curve tutte nella stessa direzione (es. dal basso verso l’alto - y crescenti) e tutte nello stesso verso (es. orario) come si potrebbe fare?

Vedi se questa definizione fa al caso tuo.

ordine a.gh (15,5 KB)

Grazie Leopoldo!
L’algoritmo sembra funzionare correttamente nel caso di curve aperte, tuttavia credo ci sia una criticità nel caso di curve chiuse:
image

Inoltre non sono convinto che il verso (orario/antiorario) sia mantenuto in maniera costante su tutte le curve.
Lascio anche il file di prova. Ho anche provato a cambiare i piani xy/xz/yz ma non cambia nulla, anzi in alcuni casi la situazione peggiora. Hai qualche idea su come procedere in questi casi?
Esempio curve chiuse.3dm (688,7 KB)

P.S. All’interno del tuo script gh come si fa ad invertire il verso orario/antiorario?

La definizione “ordine a” ordina le curve riferendosi all’asse Z.
Nel caso specifico non riesco a capire come siano messe le curve, invece di riferirsi all’asse Z meglio utilizzare un altro criterio: per esempio la lunghezza delle curve.
Nel disegno ci sono curve che hanno direzioni diverse.
Il primo Flip Curve unifica le direzioni.
Per invertire la direzione basta inserire un ulteriore Flip Curve.
Se può servire, c’è un componente Pufferfish che allinea le seam.
ordine b.gh (431,7 KB)


img2

Grazie mille Leopoldo, mi hai dato degli spunti davvero interessanti!

Sto provando a ordinare gli start/end points delle varie circonferenze attraverso il componente “seam” come mi hai consigliato.
Tuttavia non riesco a trovare un modo per allinearli tutti, ad esempio) lungo l’asse x.
Conosci un modo per riuscire a farlo correttamente in modo automatico?

Con il componente Align Curve Seams di Pufferfish.

Purtroppo a me non si apre, probabilmente apparterrà a qualche plugin che non ho

Pufferfish | Food4Rhino

1 Mi Piace

Perfetto, grazie mille!