Conferma Metodo Rcommon

è una formattazzione che fa il forum discourse , non l’ho voluto io.
Anzi, “getter” è quasi fuorviante, potrebbe alludere ad altro… sarebbe stato meglio lo chiamavo “corriere” o “postino” … è un nome come un’altro.

…no, “new Rhino.Input.Custom.GetNumber()” non è un nuovo ordine ma un nuovo facchino, la creazione di un nuovo facchino… che in quel caso lo chiamiamo “getter”.


Guarda qua:
2022-12-29 12_40_35-Script Editor
Rhino.Input.Custom contiene già molti tipi diversi di “facchini” ognuno già specializzato a prendere qualcosa in spacifico, l’ideale è prendere subito quello più vicino alle necessità.
Come già detto, io consiglierei di usare Rhino.Input.RhinoGet , sono più semplici…


Edit:
ad ogni modo, come al solito, consiglierei di andare sul pratico, piuttosto di stare sul teorico/astratto.
Poniti un obbiettivo semplice, un esercizio, una piccola macro funzionale, e poi cerca di crearla fino in fondo.
Tutte le cose che so di programmazione le ho imparate solo ed esclusivamente andando a tentativi per ottenere script che mi servivano, mai studiato teoria.
Non dico che sia il percorso migliore, ma neanche l’estremo opposto aiuta.
Metti in pratica in parallelo alla teoria.

PS, se lavori con c#, non usare “var”. È controproducente, soprattutto se vuoi imparare.

2 Mi Piace

Ciao Sergio.

Eh, ho provato a rispondere a Salvio che voleva mettere insieme 4 istruzioni … :neutral_face:

Non so perche’ lo voglia fare, ma certo io non glielo chiedo :wink:
Siamo gia’ abbastanza incasinati cosi’ … :grinning_face_with_smiling_eyes:

Con alcune differenze.

Con Python, ad esempio, puoi fare quello che vuoi con la variabile, metterci un numero, poi metterci una stringa, poi un booleano ecc.
Sono tutte cose che succedono in fase di esecuzione, e che possono variare per esempio in conseguenza di un input dell’utilizzatore.
Python, man mano che esegue il codice, verifica che dati ha e si comporta di conseguenza.

C# deve sapere da subito, cioe’ quando compili lo script, qual’e’ il tipo di dati, e questo tipo non cambiera’ piu’ durante l’esecuzione.

Prima o poi sarebbe bene evitare confusioni tra metodi e classi. :slight_smile:
GetNumber e’ una classe:

GetNumber Class (rhino3d.com)

Un metodo e’ una funzione che ‘riguarda’ quella classe. Una di quelle che richiami col punto.
Ad esempio

double a = getter.Number();

qui Number e’ un metodo della classe GetNumber,
infatti per richiamarlo scrivi prima una variabile che contiene un oggetto GetNumber, cioe’ getter, poi scrivi il punto e ci attacchi nome del metodo e parentesi con eventuali parametri, come per ogni chiamata di funzione.
E’ la tipica sintassi OOP ,che ovvimente puo’ avere pregi e difetti, ma quella e’.

Guarda la documentazione RhinoCommon di GetNumber linkata sopra.
Vedi quanti metodi ci sono ?
Quante cose puoi fare ?
E’ fatta cosi’ per essere flessibile, per poter configurare la tua azione di input come ti serve, caso per caso.
Se o quando vuoi usare una cosa piu’ semplice, usa invece la classe che ti ha mostrato Riccardo sopra:

RhinoGet Class (rhino3d.com)

2 Mi Piace

avevo notato che non passi per Custom, ci sono differenze sostanziali?

chissà per la serie:

ahahahah

comunque come hai detto anche tu è una passione in primis, poi voglio cercare di capirne anche un po.

esatto è proprio quello che intendo e sto cercando di fare, però (c’é un grande però)
e come quando vidi i tutorial su Py 2.7, mi scaricai editor ripetevo ciò che vedevo e facevo pratica.
adesso (però come anche passando da Py a IPy in Rhino) è differente non posso usare Console Write oppure Read per dialogare con gli I/O quindi debbo vedere i tutorial per vedere la sintassi di C# poi
debbo ricercarmi qualche script in C# con metodi che facciano per vedere cosa fa o no a caso mio
ed infine debbo abbinarle insieme con altre aggiunte personali che faccia funzionare il tutto. non’é facile.

comunque non mollo :muscle:

ps mi raccomando non mi abbadonate che ho altre punti da chiarire :wink:

Hai ragione.
Ma se vuoi, invece di cercare esempi in giro, puoi anche scegliere qualche semplice operazione e poi chiedere qui, vedrai che un esempio da cui partire riusciamo a metterlo insieme.
Inoltre, si potrebbe anche provare a portare in C# esempi presi da rhinoscriptsyntax.
Se ti serve una mano a ‘tradurre’, stesso discorso, ci proviamo insieme.

rhinoscriptsyntax/Scripts/rhinoscript at rhino-6.x · mcneel/rhinoscriptsyntax · GitHub

grazie Emilio per la disponibilità :+1:

ovviamente come già sto facendo, nel caso di aiuto posto il problema :ok_hand:

eeee mi sa che quei codici sono troppo complessi da quelli che faccio io in Py
finisce che dovrei imparare anche le tecniche avanzate di Py ahahahah
ma ci vuole il codice intero per realizzare una linea con line.py?

però oltre alle domande che faccio sul forum, vi condivido anche il fatto
che ieri prima di fare la domanda postata, avevo anche concluso
la mio primo plug-in (assemblato) in Rh per realizzare un offset

quindi comunque l’impegno messo a qualcosina è servito :wink:

1 Mi Piace

E’ per quello che dobbiamo provare in pratica …
Per capire cosa serve, cosa non serve e cosa serve a fare cosa …
:thinking: :wink: :grinning_face_with_smiling_eyes:

prof io ho iniziato con un 3d apposito, ora tocca a Lei indirizzare la rotta o meglio,
raddrizzare prima la barca, che già c’é un iceberg, se no facciamo la fine del Titanic :wink:

Riccardo da quanto tempo scrivi in C# e quanto ci hai messo per essere pratico in questo linguaggio?

Dal 2018 circa. Ma solo ed esclusivamente dentro gli script c# di grasshopper. Non ho mai usato c# al di fuori di questo.
Usare c# dentro grasshopper l’ho trovato perfetto, per imparare c# ed esplorare le librerie di rhino.
L’ho sempre usato per cose che mi servivano a livello pratico, per lavoro o per altro. Zero teoria.

quindi quando dissi di iniziare con C# in Gh l’idea non era proprio cattiva :thinking:

vedo se riesco, dopo aver convertito gli script Py in Common per poi passarli in Gh con C#

spero che in qualche mese riesco ad ottenere dei risultati per lo meno sufficienti per il mio standard :+1:

:crazy_face:

1 Mi Piace

Riccardo in Gh una sola riga, si saltano tutti i riferimenti agli oggetti all’interno della programmazione

1 Mi Piace