Visto che abbiamo un po' di tempo... Problema da risolvere (per Emilio... o chi altro vuole)

Ciao Emi, visto che hai iniziato a guardare dentro Gh e non sapevi cosa fare… ti lascio un problemino interessante.
Nel file che allego ci sono due set di punti. Set1 e Set2.
Alcuni punti di Set2 sono vicini (ma non coincidenti) con altrettanti punti di Set1.
Voglio rimuovere da Set1 tutti i punti che si trovano ad una certa distanza (tipo tolleranza per capirci) valore 0.3 per dire un numero… dai corrispondenti punti di Set2.
La soluzione che ho trovato mi fa abbastanza schifo e per questo anche volevo condividere con te e con chiunque altro voglia intervenire per confrontare le diverse logiche.
problema-punti.3dm (80,1 KB)

Ciao Giuspa !
Dopo lo guardo. :slight_smile:
(Adesso portiamo il gatto dal veterinario per un controllo dopo un’operazione)
… E mi hanno detto che domani e martedi’ dovro’ andare in ufficio, non so ancora a fare cosa … grrrrrr…
Grazie comunque del problema interessante, voglio ficcarci il naso ! :grinning:

Porello…che ha fatto?

Ciao Giuseppe,

Proprio ieri ho scoperto il componente Point Groups, che raggruppa punti e relativi indici in base alla distanza reciproca. L’ho usato nella definizione che allego.

Che ti sembra?

Ciao!
Marco

2020-04-05-problema-punti.gh (13,3 KB)

Si, mi piace più il tuo metodo.
Io ho “imbrogliato” con il trucco della conversione testo -> Numero. :wink:
closepoints-two-list-gm.gh (18,1 KB)

Beh, se non avessi scoperto Point Groups avrei fatto la stessa cosa… Ogni tanto penso che dovrei passare in rassegna i componenti dalla toolbar, probabilmente farei scoperte interessanti :slight_smile:

Comunque direi che la conversione testo-numero non è necessaria, se colleghi dei valori booleani a un Integer la conversione è automatica.

Anzi, ho fatto una prova e collegando i valori booleani direttamente alla Mass Addition la conversione è anche molto più veloce (quasi 10 volte!), cosa che non mi aspettavo…

1 Mi Piace

Ciste sull’occhio e inizio di tumore della pelle sulle orecchie.
Gliele hanno accorciate … adesso sembra un piccolo puma … :wink:

Adesso mi studio le vostre soluzioni. :slight_smile:

Impantanata N. 1

Dalla soluzione di Giuspa (Quella di Marco non l’ho ancora aperta):
Provavo a sostituire Replace Tex e Mass Addition con Index,
per capire quali liste contenessero un False.
Ma dice che non trova nessun False (o almeno cosi’ mi sembra)
Panel a SX: output del Larger sulle distanze, nonche’ input di Index
Panel a DX: output di Index
Dove sbaglio ?

Grazie :slight_smile:

Ah, in alternativa al Mass Addition cercavo un “Mass OR” … o un modo per costruirlo …
C’e’ modo ?
( O sto sparando vaccate ? :confused: )

Emi, guarda questo:

Hmmm.
OK, grazie … ma non mi sembra la stessa cosa.
Index (se funzionasse sul valore) ti dice se l’elemento cercato c’e’ o meno.
Quell’altro trova comunque il piu’ simile (in qualche senso :wink: ).
Probabilmente essendo esperti di alberi si riesce a taroccare le liste e ad ottenere quello che serve.

Comunque, data l’informazione di Marco sulla conversione automatica dei booleani, ho visto che con
Mass Multilpication possiamo eliminare diversi componenti, di piu’ che usando Index :slight_smile:

Bella la soluzione di Marco.
E credo molto utile Point Groups, soprattutto quando abbiamo tanti punti, supponendo che usi una struttura dati efficiente. :slight_smile:

Si, anche a me non sembra la stessa cosa devo dire…
Cosa intendi per struttura dati efficiente?

Tipo … caricare i punti in un octree o una cosa simile (ovviamente non sono un esperto :wink: )
Se avessimo MOLTI punti, il calcolo di tutte le distanze sarebbe improponibile …

Centinaia di migliaia? Bella domanda. Ci provo. Faccio tipo intersecare due nuvole di punti e vediamo come si comporta… :upside_down_face:
Mi preoccupa un po’ che non c’è il doppio pallino sul componente per indicare multi-thread.

1 Mi Piace

Ciao ragazzi

Ho provato, come esercizio, a mettere insieme una versione utilizzabile dal GrasshopperPlayer della WIP.
… OK, dopo lunghi ravanamenti e tentativi parecchio random … :wink:

Per avere qualcosa da scegliere ho ‘liberalizzato’ i layer da cui prendere i punti, per cui (almeno in teoria) adesso i layer ce li chiede Rhino 7 via GrasshopperPlayer.
Mi sembra che Pipeline non preveda l’input del layer, per cui al suo posto ho usato un piccolo script.

Oltre alla distanza limite per i punti c’e’ anche la possibilita’ di scegliere l’algoritmo: quello di Giuseppe o quello di Marco (un po’ semplificati, scusate il taroccamento :woozy_face: ).

Comunque il punto e’ che non riesco a far funzionare il Player. :confused:
Se lo lancio, mi chiede il primo layer, io lo scrivo, e lui me lo richiede.
Se a questo punto do’ Enter, il comando termina senza far niente.

Qualcuno ha provato il Player e sa darmi qualche dritta ? :slight_smile:
( Confesso che non ho capito molto dal video di Steve :blush: … Forse mi sono perso qualche informazione importante. :confused: )

Grazie

closepoints-two-list-crew-3.gh (16,9 KB)

P.S.

Approfitto che qualche domanda.

C’e’ modo di importare una definizione, cioe’ in pratica di aggiungerla a quella aperta in GH (Come facciamo quando importiamo un file 3dm con Rhino) ?
Io non ho trovato niente e per mettere insieme le definizioni di Giuseppe e di Marco me ne sono ricopiata una a mano. Se fosse stata molto lunga sarebbe stato impossibile …

Come faccio a spostare un gruppo di componenti nel Canvas ?
Se trascino il mouse disegnando un rettangolo sopra i componenti, compare il rettangolo tratteggiato, ma poi non so come usarlo per spostare i componenti … :confused:

Ciao Emy, ho fatto delle prove pure io (con un’altra definizione intendo) e ho avuto un po’ lo stesso problema, continuava a chiedere lo stesso valore … però, se non ricordo male, premendo enter (senza aver inserito il valore) passava al parametro successivo.
Penso siano errori di gioventù.

Punta su un componente qualsiasi della selezione con il tasto sinistro del mouse premuto.

Credo sia un bug, lo fa anche a me. Mi sembra il problema ci sia con i testi. Se come input usi un numero (ad esempio rinomini i layer con semplici numeri interi), allora comunque il primo input viene richiesto una seconda volta ma premendo enter funziona, come dice Fabio.

Fabio ti ha già risposto… Aggiungo: se ne devi spostare tanti e spesso puoi raggrupparli (ctrl+G oppure menu radiale con ctrl+space); mentre se li vuoi copiare funziona il trascinamento premendo poi alt (come in Rhino)…ma forse lo sapevi già.

Lo sapevo che avresti cominciato con script dentro a script dentro ad altri script :slight_smile:

Grazie ragazzi ! :grinning:

Ecco … mi ricordavo che una volta lo sapevo fare … ma poi l’ho dimenticato … :confused:
Bene !

No, questo non lo ricordo proprio … ottima dritta !

Hahahahaha …
Senti chi parla … :wink: … Non ricordo bene chi era che aveva fatto un plug-in (o uno script ? :wink: ) per trasformare gli script … in plug-in … :confused::smile:

In effetti ho colto l’occasione (che Pipeline fosse ‘chiuso’) per ri-impratichirmi un po’ col C#.
Era tanto che non lo usavo, e visto che e’ uscito un tutorial fresco fresco, mi ci rimetto. :slight_smile:
Anzi, secondo me dovrebbero abilitare gli script in C# anche per Rhino, mi sembra poco logico avere a disposizione RhinoCommon senza poter scriptare in C# … :confused:

Piano piano, zitto zitto … GH sta conquistando Rhino … :smile:
:+1:

Che memoria! E’ vero, mi ero scordato! :rofl:

Sono d’accordo, anche se personalmente ultimamente tendo a fare quasi tutto direttamente in Grasshopper senza utilizzare script.

Una cosa un po’ faticosa per me è utilizzare diversi linguaggi senza farlo con continuità: tra C#, Python, PHP e javascript (che uso per applicazioni web) + un altro paio di linguaggi di script proprietari a volte è facile perdersi dei pezzi…

Molto interessante, non mi vengono in mente al momento applicazioni ma sicuramente ne verranno fuori. Grazie per la segnalazione!

… A chi lo dici … :confused:
Quello che non uso regolarmente… regolarmente lo dimentico. :wink:

… Comandi di Rhino compresi, naturalmente. :smile:

( EDIT: )

Caspita !
Se mi capita di usare anche solo 2 linguaggi nello stesso periodo … tendo a mischiarli … e a fare pasticci. :smile: