Ordinare curve

Buongiorno a tutti, vorrei riuscire ad avere il controllo sull’ordine di una serie di curve.

Ad esempio, se avessi 5 curve create nell’ordine della seguente foto, come potrei fare ad ordinarle con valori di y (x o z) crescenti (o decrescenti)?
Esempio linee.3dm (20,2 KB)
image

L’ordinamento è basato sulla direzione di una curva di riferimento, per l’ordinamento inverso basta applicare la lista al componente Reverse List.
ordinamento.gh (11,4 KB)

Ciao Leopoldo, grazie per la risposta!
Per caso hai usato qualche plugin? Perchè non parte…

Sì, è un plugin che evidenzia i nomi dei vari componenti, però puoi aprire comunque la definizione.
In ogni caso la ripropongo senza plugin.
ordinamento a.gh (10,8 KB)

Perfetto, ora parte, grazie!

Ho giusto qualche domanda:

  1. Per invertire l’ordine sarebbe possibile realizzarlo in un altro modo più semplice, tipo attraverso dei blocchi “value list” e “stream filter”?
  2. Inoltre vedo che nel blocco “list item” c’è un cerchietto accanto alla W, nel mio è essente, è normale?
  1. Vedi definizione.
  2. Sì, la direzione cambia a seconda del modo in cui si disegna la linea, puoi controllare la direzione con il componente End Points.
  3. Sì se usi Sort Along Curve, ma puoi utilizzare anche il componente Sort Points che non necessita di una curva di riferimento ma dà la priorità prima alle X poi alle Y e infine alle Z.
  4. Vedi immagine.
  5. Sì è normale fa sempre parte di un plugin che ho installato.
    ordinamento b.gh (11,2 KB)

1 Mi Piace

Per rendere più semplice l’ordinamento.
ordinamento c.gh (9,2 KB)

1 Mi Piace

Grazie Leopoldo, ora è abbastanza chiaro!

Stavo provando a ordinare queste linee disegnando una linea verticale (//y) ma stranamente il risultato non è esatto, riesci a capire come mai?
Esempio linee.3dm (506,7 KB)

La mia definizione si basava sull’ordinamento del punto centrale della curva.
Ora, in questa quest’altra situazione è meglio prendere come riferimento il punto estremo della curva.
È consigliabile eseguire un Flip Curve di modo che tutte le curve abbiano la stessa direzione
ordinamento d.gh (295,0 KB)

Giusto a titolo di esercizio.
Allineare in Y crescente.
Metodo alternativo senza dover flippare le curve o usare riferimenti.
Un gruppo cerca l’estremo con Y minore.
Altro gruppo posiziona il piano di riferimento per misurare le distanze Y sul punto con Y minore.


ordinare-curve-Y.gh (19,3 KB)

1 Mi Piace

:+1:

questo lo capito un po meno :blush:

Se hai una curva posizionata nella parte della Y con valori negativi la distanza del punto dal piano XZ posizionato con coordinate World (quello di default) verrà letta sempre con un numero positivo essendo una distanza. Mentre si vuole iniziare comunque dalla curve “più in basso” in Y. Pertanto l’origine del piano deve trovarsi più “in basso” per evitare questo problema.

1 Mi Piace

e questo lo hai fatto con i componenti Weave giusto?

Con weave ho creato coppie di valori Y. Dato che le curve non le volevo flippare ho preso quello con valore minore.

ok si infatti stavo correggendo, adesso guardando meglio la def il secondo gruppo va a prendere solo il punto Y più in basso :+1:

Anche così?

2 Mi Piace

ciao a tutti, avete mai pensato di fare questo ordinamento considerando anche l’asse z? in pratica io non riesco ad ordinare le curve su asse x e y per ogni z, se ordino per x e y funziona perfettamente, appena inserisco l’asse z non tiene l’ordinamento della z.

Prova così.
order.gh (9,8 KB)

1 Mi Piace

Non conosco il componente Droid né tantomeno sono pratico di stampa 3D.
Una soluzione potrebbe essere quella di fornire a Droid, le curve già ordinate ma non so se questo sia possibile.
order a.gh (4,6 MB)