C# Scripting in Gh

Ovviamente scherzo :stuck_out_tongue_winking_eye:

1 Mi Piace

Emilio per struttura dati cosa intendi?

certo anch’io l’ho trovato meno angosciante, solo che se debbo fare questo salto lo vorrei fare
direttamente usando Gh, uno perché nel caso posso avere un riscontro pratico in Rhino
e anche perché poi finisce che se dovrò mettere mano in Gh mi ritroverò lo stesso problema
quindi a questo punti è meglio togliersi il dente si dall’inizio e tagliamo la testa al toro.

a proposito di questo, una domanda: ma con C# in Gh posso scrivere un codice che mi crei punti
curve lavorare con le superfici ecc ma questo lo posso fare essendo che è internamente a Gh
oppure C# è nato anche per questo e quindi lo si può fare anche esternamente con mono

(credo che anche se nel caso i metodi li posso richiamare in mono, uno codice scritto
esternamente da Rh / Gh non può interagire con essi senza creare un plug-in giusto?)

Chiedo scusa, ma perché parlate di Mono? Vi serve un Editor per GH? In questo caso basta scaricarsi Visual Studio Code.
Segui queste istruzioni: Rhino - Installing Tools (Windows)

per questo pensavo che era meglio continuare la discussione che avevo aperto sul Linguaggio C#: avevo posto la stessa domanda.

Si parla di come ‘strutturare’, organizzare i dati di un certo programma, in pratica il suo database, se vogliamo chiamarlo cosi’.
Per Rhino ad esempio, potremmo dire (sperando di non sbagliare) che le sue strutture dati sono le varie Table:
Rhino.DocObjects.Tables Namespace (rhino3d.com)
… che contengono oggetti geometrici, layer, blocchi ecc.
Per ogni programma e’ importante trovare delle strutture dati che facilitino la scrittura del programma stesso, il suo uso, la sua evoluzione ecc.

Certo, ho installato Mono per poter fare qualche semplice test con la sintassi di C#, se serve.
Dato che non prevedo di fare di piu’ con C#. Ma questo vale per me.

A te che intendi usare C# con GH/Rhino invece, non credo sia utile Mono.
Usa direttamente GH, almeno per ora, ed eventualmente poi gli script in C# per Rhino 8, che suppongo siano in fase WIP/Beta finche’ non esce Rhino 8.

Non credo. A quello che so, RhinoCommon funziona solo all’interno di Rhino, ma posso sbagliarmi, non sono aggiornato sugli sviluppi di Rhino.

Credo ci siano altri strumenti per lavorare con gli oggetti geometrici di Rhino esternamente a Rhino,
ma penso interessino chi vuole sviluppare software indipendente da Rhino.
Non credo sia il tuo caso.

Suppongo per il tuo progetto.
Essendo ‘dentro’ GH forse bisogna vedere se utilizzare solo dati previsti da GH o anche altri … suppongo.
Sto parlando un po’ a caso, eh. :blush:
Hai un’idea di cosa serve, a livello di dati ?
( E non so quali problemi di compatibilita’ ci saranno quando uscira’ GH2 … :confused: )

No, domanda generica in risposta a @gerry

Ah, OK.
Allora ha gia’ spiegato Gerry. :slight_smile:

Be’, no … non solo.
Quelle le chiamerei forse il suo database, o almeno un layer del database, ma le strutture dati comprendono anche tutto il resto.
A cominciare da RhinoDoc, che dovrebbe rappresentare l’intero documento:
RhinoDoc Class (rhino3d.com)
Il quale RhinoDoc contiene la varie Table, che a loro volte contengono un mucchio di altri dati, sotto forma di Class o Struct, in pratica tutte le classi che vedi in RhinoCommon, forse anche altro, non so.

opennurbs

1 Mi Piace

quindi la struttura dati implica molteplici fattori. . .

Grazie, Sergio !
Scusa … non e’ che hai tempo tu di spiegare cosa sono le strutture dati, che io mi sto incasinando sempre piu’ ? :blush:

È il modo il cui i dati vengono conservati e gestiti in memoria, non c’entrano col database.

Le strutture sono le classi, i record, le struct,…

@Sergio_Alessi dimmi pure se sbaglio.

Ciao Emilio

hai già dato la definizione: un database ma anche l’insieme di classi e strutture
all’interno di un codice. Non a caso nella libreria open opennurbs di Mcneel, la
lettura e scrittura di un file di rhino avviene attraverso le classi di rhino.
Se poi parliamo di strutture dati in senso più generale allora si apre un mondo:
le strutture dati che risiedono in memoria per velocizzare le ricerche, partizioni
spaziali per velocizzare la selezione degli elementi geometrici a video che
consentono di muovere il mouse tra 10-50-100.000 curve e individuare il tempo
reale un’intersezione tra 2 curve …
Di fatto un concetto astratto.

3 Mi Piace

Ciao Luca

… sono la stessa cosa, cambia solo il nome.

Sergio

quindi riguarda un programma com’è strutturato, l’impostazione di come si comporta nelle varie fasi.

:thinking: Non ho ben capito Sergio, porta pazienza.

Perché non dovrebbero essere la stessa cosa? In che modo registri i dati in memoria?
Non useresti delle liste per memorizzare le varie entità?

Non ho capito cosa sono la stessa cosa?

Approfittando della domanda di @giovanni.vit
sulla tassellazione Voronoi, che ne pensate se insieme proviamo a scrivere il codice?

Ps per non soffrire troppo:

Appena possibile provo.

allora siamo in due …
Che tipo di dati ti riferisci? Puoi fare un esempio concreto?

Ma di cosa? :rofl:
Ps lascia stare Sergio.

Tu che hai esperienza invece… Come la vedi implementare il codice Voronoi? Troppo complicato?