Incrociare liste

plane

ho due piani XY collegati a rotare3D passando per un flatten
ho una lista di curve sempre passante sempre per un flatten
mi ritrovo con due liste: curve {0;0} a {0;1} e piani {0;0} a {0;1}

con il componente intersezione piani/curve mi ritrovo la lista di punti nella foto rettangolo rosso
visualizzando i numeri della lista punti vedo che sono tutti sequenzialmente continui da 0 a 11
mentre a me servirebbe che fossero due liste di 6 punti da {0;0;0} a {0;0;5} poi da {0;1;0} a {0;1;5}

come si puĂą fare?

Internalizzare la geometria e postare la definizione, o almeno postare una immagine in cui si vedano chiaramente componenti e collegamenti, oltre ai Panel.

Pero’, da profano di GH, dall’immagine (microscopica) postata mi sembra di vedere che ci sono in effetti dei punti {0;0;*} e dei punti {0;1;*}.

Non e’ quello che cerchi ? :slight_smile:

ciao Emilio :wink:

ecco lo screen della def
nel rettangolo rosso è la soluzione che ho trovato sul forum

solo che non’é proprio quello che volevo.
nel senso: mettendo il flatten nell’origine plane, negli slider e nelle curve
come anche hai sottolineato, avrei dovuto avere il risultato senza “list partition”

ma invece non’é così, si vede che mi manca un pezzo. . . .
:thinking: :thinking:

Ciao Salvio !

Non ho capito se vuoi ottenere una o due liste

quello che vorrei ottenere, sarebbero due liste di sei elementi ciasciuna

lista attuale: {0;0;0} {0;0;1} {0;0;2} {0;0;3} {0;0;4} {0;0;5} {0;1;0} {0;1;1} {0;1;2} {0;1;3} {0;1;4} {0;1;5}

io credevo che con questa suddivisione Gh la dividesse in due liste, mentre invece da quello che ho capito le vede come 12 liste distinte e separate vedendo che ogni indice ha (N = 1) come elemento.

Non l’ho mai utilizzato e non sono in grado di fare test adesso ma penso che il componente TrimTree faccia al caso tuo, altrimenti proverei ShiftPath.

Buona fortuna.

1 Mi Piace

Fai come dice @taldi72 , dovrebbe funzionare.

Il componente intersezione curva-piano restituisce una lista anche se come input gli dai una singola curva e un singolo piano.
Pensa: una curva potrebbe intersecare un piano su piĂą punti!
Ed ecco quindi che il componente intersezione curva-piano sta facendo esattamente quello che ti aspettavi, ma ogni elemento è una lista a se stante contenente un singolo elemento (che potrebbe diventare più di uno in altri contesti)

Capito, grazie !

@emilio, @taldi72 e @RiccardoMajewski grazie a tutti per l’interesse,

@RiccardoMajewski comprendo e concordo con tale scelta nello svolgimento
però sono andato a vedere cosa dice la guida per lo specifico componente:

https://grasshopperdocs.com/components/grasshopperintersect/curvePlane.html

mi sarei aspettato che venisse specificata questa cosa o sbaglio?

tornando ai suggerimenti dati, ho provato come mi avete consigliato
forse sono io, ma non sono riuscito a risolvere con i componenti indicati

ps counque credo di aver trovato un metodo idonio

plane5

al componente flatten delle curve ho aggiunto lunghezza lista
che mi dava due liste con valore di sei per ognuna di essa
quindi l’ho flattata e mi ritorna una lista con due valori sei
l’ho collegato inserendo in automatico i valori in partition

:+1:

Non so se ho capito il problema …
Io ho provato cosi’:

salvio-6.gh (20,5 KB)

però cosi le due liste finali sono con risultati alternati dalla lista dei punti che hai dato in input. ti trovi?
mentre nel mio caso io mi trovo i primi sei elementi di una lista e gli altri sei elementi della seconda:

il componente che hai usato Emilio “Dispatch” ha come valori di default “P” True False
nel tuo caso va bene essendo che hai realizzato una lista alternata con {0, 0, *} e {3, 0, *}

Ho cercato di separare le intersezioni in due liste:
una con le intersezioni col primo piano, l’altra con quelle col secondo.
A te come servono le liste, cioe’ quali punti vuoi avere nella prima lista e quali nella seconda ?

emi.gh (12,6 KB)

questa è la soluzione postata prima, funziona bene.
se cambiano i valori delle singole liste si adattano.
ps se trovi altri metodi mi fa piacere conoscerli

Semplicemente trim tree:
2021-01-31 22_59_41-Window

@RiccardoMajewski scusami ma perché oltre a len list e partition list come nella soluzione
che ho postato sia con foto che con la definizione, dovrei aggiundere sia il trim che la sottrazione?

ps ma hai realizzato liste con punti tutti 0?

Era per mostrare che la soluzione con trim, e quella che hai fatto te con partition e list length danno lo stesso risultato.
La differenza dei due risultati è 0.

@RiccardoMajewski miglior soluzione thanks :+1:

quando mi avevi consigliato di usare il trim tree io giĂ  avevo provato con il partition list
e l’uscita del componente curve/plane avevo messo un flatten per far si che funzionasse
quindi anche quando avevo seguito il tuo consiglio con il trim, avendo il flatten il risultato falliva

cosa importante è la spiegazione che mia hai dato che non conoscevo,
avevo fatto tutto bene, ma avevo subito pensato di aver sbagliato qualcosa,
mentre invece è lo specifico componente che si comporta diversamente :ok_hand: