come già anticipato in precedenza apro questo 3d nella sezione Bar dove parlare condividere esempi di codici / file / link ecc sul linguaggio C# sia classico che ovviamente inerente a Rhino / Grasshopper
spero nel coninvolgimento di quanti più utenti possibili anche solo per parlarne
partendo dalle basi (basilari) ovviamente l’intento è quello di capirne un pochino
con l’aiuto di chi ha familiarità con questo linguaggio cinfido in un bel percorso
ciao Luca, in verità l’intendo di questo 3d mi piacerebbe che trattasse specificatamente di esempi concreti, poi certo che ci si ragiona sopra anche con discorsi estesi ma vorrei che tutto girasse intorno a codici.
grazie per essere stato il primo a partecipare spero che anche altri si accodano
proseguo anch’io facendo qualche ricerca in rete vorrei trovare dei codici
che mi permettessero di creare punti spostarli ruotarli e creare curve
ciao @emilio e grazie per aver postato questa risposta
ho pensato di collegarlo a questo 3d su C# come primo esempio pratico
non poteva che inizia con il classico print di saluto in questo caso personalizzato
vorrei iniziare con cose spero abbastanza semplici ma che vedo risultati pratici istantanei, anche per iniziare a prendere confidenza, per lo meno si inizia a fare cose che per chi utilizza Rhino sono comuni
Mi aggrego con piacere. Ho studiato mezzo Libro di Pelleriti per usare bene C# in GH.
Sono al concetto di ereditarietà e polimorfismo. 8 capitoli massicci.
ottimo Luca mi fa piacere più siamo è meglio
spero che non ti butti subito su cose complicate finisce che poi sono io che mi disaggrego ahahahah
quindi se ho capito bene quello che inizialmente intendo fare: creare punti spostarli e crearci una curva
sono cose che già hai studiato e fatto proprio con C# in Gh?
eeee ci sono passato anch’io alla fine degli anni 90 inizio 2000, tra il passaggio da VB a VBA (Access)
mi comprai un libro di programmazione per VBA e due per VB6 “Master” compresivi CD con esempi
conclusione tranne per un paio di cose i codici di quei tre libri non li ho mai usati costo 90.000 Lire cad.
alla fine comprando dei libri basilari ed economici sia per Access che per VB6 ci ho fatto tutti gli esempi
e per VB6 trovai un libricino tascabile dove riporatava un pezzo di codice per ogni pagina utili e pratici.
Emilio nell’atro 3d ha parlato di aver ricavato il primo test dalla documentazione
sono curioso di quale documentazione parla e come trovarla per darci un’occhiata
In specifico, tipo… ?
Daje che butto su un po di codice…
A fare esempi troppo generici ho talmente poca fantasia che non riesco nemmeno a iniziare… ditemi qual’è un mini-target da raggiungere.
ahahahah sei grande Riccardo mi piace il tuo entusiasmo, non so Luca che già ha iniziato è sta a metà libro su C# personalmente al momento per il C# non ho nulla su cui lavorare. ho deciso di fare questo salto giusto un po per curiosità e anche per vedere di superare l’angoscia che ogni volta che in Gh apro C# quella scheramata iniziale con tutte quelle parentesi graffe e se clicchi su alcuni punti escono righe e righe di codice senza sapere a che servono mi ha sempre frenato nell’approfondire l’argomento.
nel link del food4rhino c’é un collegamento per scaricare sia la guida in pdf su C#
e un file .gh con gli esempi esposti proprio nella guida direttamente dal sito di Rhino
ho dato una prima occhiata e sembra proprio quello che stavo cercando
ho visto come spostare un punto, cambiargli le coordinate interagendo con Gh
di codici ne ho visto solo un paio giusto una o due righe come mi interessava
faccio giusto un paragone, spiegando anche del perché non mi sono mai avvicinato a questo linguaggio
nel link preceduto sopra viene riportato il codice per creare una linea,
onestamente non so voi, ma mi sembra un po eccessiva come sintassi
ora per carità, io ho la pecca di minimizzare troppo, ma nell’esempio sopra
veramente lo vedo esageratamente troppo, tutto quel codice per una linea. . .
sarà solo una mia impressione, ma spero che la guida linkata sia prevalentemente come gli esempi visti.
Considera che C# in generale non è un linguaggio di scripting interpretato, ma un linguaggio tipizzato e compilato e puoi fare un infinità di cose.
Non è affatto semplice inizialmente, ma pian piano lo diventa.
Io al momento ho compilato un plugin gha con il componente che crea la curva da punti dati e sono felice come un bambino
Posso condividerlo e si può aggiungere come tutti i Plug.
Non riesco a capire come mettere la bitmap icona del componente. @Riccardo sai per caso come si fa?
Su quel link si usa in tutti e 3 i linguaggi il metodo Rhino.Input.Custom.GetPoint() che permette e richiede un po di righe per il controllo dei filtri e tutte le altre opzioni.
(Su rhinoscript si fa in una riga e fine, volendo.)
Poi c’è il controllo .IsTiny , che controlla che i due punti non siano troppo vicini tra loro.
In generale, è un codice esempio di un caso molto specifico, che richiede il prompt all’user di selezionare sulla viewport di rhino i punti inizio-fine per fare una linea.
(I 3 esempi per i 3 linguaggi sono simili, in lunghezza…)
Se il tuo obbiettivo è creare una linea, basta una riga di codice su uno script di c#: A = new Line(Point3d.Origin, new Point3d(10, 10, 0));
Grande! … in pratica sei già allo step dopo. Io per ora ho sempre fatto solo script dentro grasshopper, di plugin non so niente. Mi limito allo scripting…
Per i plugin, non so.
Per “barare” e farlo sui script c# di grasshopper, io salvavo il file in ghx , editavo con notepad++ e inserivo un override nel blocco xml dello script c# in specifico, tipo:
Mi piace impacchettare il codice, tanto la logica e il codice interno non cambia, ma se voglio ho un pacchetto gha condivisibile e non apribile.
Vorrei creare un pacchetto aeronautico, ma ci vuol tempo, magari insieme si impara e riesco.
Per l icona ho scritto sul forum inglese sperando che non mi prendano a parole, li vedo sensibili
Ah, intendi il codice proprio che “fa funzionare” un componente standard di grasshopper… ?
Non credo sia possibile, o almeno, siamo a livelli di hacking e/o datamining.
McNeel ci da accesso a rhinocommon, questo che chiedi e “oltre”…
Spero di non aver capito male…
Se guardi la versione Python vedi che e’ molto simile.
Quello che ‘allunga’ lo script e’ l’utilizzo di RhinoCommon, qualunque linguaggio tu stia usando.
Se vuoi scrivere poco, c’e’ rhinoscriptsyntax che e’ fatto apposta, usa quello.
EDIT:
Altra cosa: l’esempio di cui parli non e’ per GH, quindi comprende anche l’input dei punti da usare per la linea.
In GH l’input arriva dai parametri del componente, quindi non e’ da scrivere.
Nel grosso dei casi ti basta stare dentro le graffe di “RunScript”.
Ecco un breve esempio dove si usa un oggetto che risiede al di fuori di “RunScript”:
Codice:
private void RunScript(bool Click, bool Reset, ref object Counter)
{
if(Reset) n = 0;
if(Click) n = n + 1; //n++; avrebbe avuto lo stesso risultato
Counter = n;
}
// <Custom additional code>
int n;
// </Custom additional code>