si potrebbe partire da qui!
Urca che casino … ![]()
Li’ non ci siamo ancora, per ora provo a postare questo, riguarda la __init__
Dimmi cosa ti sembra, cosa e’ chiaro o non e’ chiaro …
Ne parliamo.
schema-1.3dm (155,8 KB)
veramente Urca Urca wauuu e stiamo solo al __ init __
complimenti per lo schema, non immaginavo ad una cosa così intrecciata
(sono obbligato)
heeee adesso da dove incomincio con le domande. . . ahahahah
la questione e che mi sembra talmente incastrata da comprendere che mi pare assurda
sembrano i pezzettini del Lego incastrati uno con l’altro e non credevo alcune di queste combinazioni
essendo un argomento molto contorto e bisogna ragionarci prima bene, mi prendo un po di tempo,
però, comunque ho deciso di iniziare con una domanda delle mie (quelle stupide)
così mi tolgo questo pallino che ho da quando ho iniziato con Eto
proprio alla prima riga, il valore Bool all’interno di Eto.Forms.Dialog

che scopo ha, se quel valore non viene riportato da nessuna parte del codice?
la traduzone dice: Digitare il tipo di risultato della finestra di dialogo
scrivendo Bool si va ad indicare che è un valore Booleano. . .
scusa per la domanda, ma me lo sto chiedendo da tempo.
(spero che le altre domande siano meno strambe) ![]()
Appunto … mai fidarsi della traduzione automatica. ![]()
E’ completamete fuori strada …
Dato che Dialog e’ un tipo parametrico (comprende il parametro T),
dice che il parametro T e’ di tipo … Tipo
(nello script ad esempio e’ un bool)
E indica il tipo del risultato del dialogo.
Almeno io interpreto cosi’.
Poi la composizione automatica di queste informazioni non aiuta … ![]()
Credo che questo T riguartdi la proprieta’ Result, ma nel nosto esempio non mi sembra sia utilizzata …
Type significa sia ‘digitare’ che ‘tipo’ … ![]()
Concordo con Giuseppe, se vuoi divertirti a programmare conviene imparare almeno i termini principali in inglese.
A proposito, nello schema non ho tradotto INITIALIZER perche’ mi sembrava che traducendo diventasse troppo lunga come parola …
che Type volesse dire Tipo, fin qui ci si arriva, essendo che c’è anche in Python la funziona type()
infatti anch’io avevo tradotto con parametro T è ti tipo. . . tipo, ma mi sembrava una cio***a di traduzione.
per carità condivido che per essere professinali bisogna conoscere l’inlgese, per adesso è una cosa mia.
tornando alla domanda, alla fine ho provato a toglierlo proprio, ed ha funzionato lo stesso
quindi come dicevi non influiva sul risultato, ma infatti mi donandavo a cosa servisse
credo che in pratica come dicevo, dovrebbe essere un valore Booleano di ritorno per il result?
ps misà che con le mie domande su questi schemi ci sarà molto da ridere
![]()
Si, il risultato può essere, oltre ai tipo standard, anche una struttura,
una classe ecc.
Scusa Sergio, come andrebbe (o potrebbe essere) usato questo risultato ?
E’ previsto che un Dialog sia una specie di funzione, che restituisce un unico (in certi linguaggi) risultato ?
… Perche’ poi Salvio chiede a me e io non so una cippa …
![]()
l’importante è parlarne, può darsi che discorso facendo, poi si arrivi al risultato ![]()
![]()
Eh, i tipi parametrici sono cosi’.
Come ad esempio List<T>, anche qui T e’ un tipo.
E io ho subito girato la domanda a Sergio. ![]()
Siamo d’accordo. ![]()
Intanto ti sei subito concentrato su una cosa (il tipo T) che non c’entra niente con lo script di Clement.
( Ma me l’aspettavo …
)
Gia’ mi sembra parecchio complicato cercare di spiegare cosa succede nello script, e infatti per ora ho iniziato solo con alcune istruzioni di __init__, e ovviamente partiamo subito a divagare con una cosa estranea allo script …
![]()
ahahahah ![]()
mi sa che conviene che dirigi tu la nave, altrimenti facciamo il giro di tutti gli oceani ahahahah
ps comunque alla fine si è scoperto che in quel codice non c’era bisogno del Bool
lo ritengo sempre un passo in avanti per lo meno, per come la vedo io ![]()
Io ho postato una specie di schema.
Dimmi se e’ quello che volevi, se si capisce qualcosa, cosa va cambiato ecc. ecc. ![]()
lo schema va benissimo, anzi non me lo aspettavo cosi completo
a prima vista, ho notato che tutto ciò che inizia con Eto sono classi
poi ci sono i costruttori delle suddette classi, ed alcune proprietà ecc
quello che mi ha meravigliato, correggimi se sbaglio,
ma, anche gli ArrayList (in basso a destra) sarebbe una Classe?
quindi alla quarta riga, una proprietà IEnum… prende come valore una classe di ArrayList?
sono tutte classi che girano nel codice sia come costruttori di avvio che come valori di ingresso. . .
E’ quello che ci avevo messo un’ora a capire.
Lo script usa una ArrayList dove serve una IEnumerable, giustamente.
E quando legge quella proprieta’, piu’ avanti, ritrova la sua bella ArrayList. ![]()
Comunque … suppongo sia una ArrayList (che e’ una classe, certo) perche’ vedo che Python usa una list. Per cui credo che in C# sia una ArrayList … ma posso sbagliarmi.
Ovviamente si riferisce solo a una parte di quanto fa lo script.
Ho cercato di considerare almeno quelle instruzioni dentro __init__ che riguardano l’event handler di cui volevamo parlare.
Ma il resto … piu’ in la’.
E’ laborioso costruire questi schemini … forse devo prenderci la mano … ![]()
Per intanto vediamo se per le istruzioni in questione (quelle di __init__ nello schemino) e’ tutto chiaro o se c’e’ qualcosa da approfondire. ![]()
Su tutti i metodi in cui trovi < T > puoi mettere quello che vuoi incluso una classe.
Purtroppo il py non lo capisco …
eeee questa è una cosa che dovrei tenere sempre a mente,
che il codice lo si sta scrivendo in Python, ma RCommon è in C#
sempre grazie Emilio, immagino che non sia stato per niente facile ![]()
al momento nello specifico non ho domande precise, già ne ho fatta una divagata e mi fermo con quella.
ripeto come ho visto è più contorta di quanto pensassi la cosa, credevo che con uno schema si potesse capire la sequenza di oggetti da combinare tra loro, ma a come pare non’é così
un qualcosa del tipo: la scrittura del codice inizia con un costruttore
poi continua impostando questa proprietà/parametro ecc ecc
mentre invece a quanto pare, tutto o quasi tutto si può collegare con gli altri oggetti
quindi alla fine per capire come funziona un nuovo oggetto mai utilizzato
si deve per forza di cose andare a vedere che tipo di oggetto è
cosa accetta, cosa ritorna e capire come settare il tutto.
poi spesso vedevo quella < T > che non capivo a cosa servisse e adesso Sergio l’ha spiegato
(è una specie di matta, vale tutto ahahahah)
comunque dai, un po alla volta (molto po) cerco di arrivarci a capirci qualcosa
già il fatto di riuscire ad impastocchiare lo ritengo un bel passo in avanti,
considerando che fino ad inizio anno non riuscivo a metterci le mani. . .
ecco cosa mi ha risposto l’Ai:
a che serve questo programma pyron : items_to_disable = [“Mild steel”, “4140”]
for rb in self.radiobuttonlist.Children:
if isinstance(rb, Eto.Forms.RadioButton):
if rb.Text in items_to_disable:
rb.Enabled = False
ChatGPT
Il programma Pyron serve a disabilitare determinati RadioButton in una finestra GUI. L’elenco degli elementi da disabilitare è definito dalla lista “items_to_disable”, che include “Mild steel” e “4140”.
Il codice attraversa tutti i RadioButton presenti nella finestra GUI, quindi controlla se il testo del RadioButton è incluso nella lista “items_to_disable”. In tal caso, il RadioButton viene disabilitato impostando il valore della proprietà “Enabled” su False.
Si’, questo complica le cose.
Per fortuna in Rhino 8 si dovrebbe poter usare direttamente C#.
Eh, anche il fatto di utilizzare il CAD anziche’ un programma di grafica non aiuta.
![]()
… Solo che io dovrei prima imparare il software grafico … e in effetti credo che sarebbe la cosa migliore …
Mah, vedo poi.
E’ solo il mio tentativo.
Se hai delle idee su come migliorare, faccele sapere. ![]()
Lo schemino riporta alcune istruzioni di __init__ con i collegamenti a classi, metodi ecc. coinvolti.
Invece delle frecce, preferisci un testo di spiegazione dopo (o prima di) ogni istruzione ?
Penso risulterebbe anche piu’ semplice perche’ rimane tutto in sequenza, senza collegamenti di qua e di la’ stile GH
…
Diciamo una cosa piu’ discorsiva e meno ‘a grafo’. ? ![]()
Anzi, in questo caso sarebbe piu’ facile perche’ si scrive direttamente con il text editor, in pratica commentando semplicemente le varie istruzioni.
Dato che parlavi di un disegnino che traccia i collegamenti, pensavo volessi una cosa grafica.
Se non e’ cosi’, meglio ! ![]()
Penso risulti molto piu’ semplice costruire gli ‘schemini’ in questo modo. ![]()
ciao Emilio, scusa se rispondo solo adesso ![]()
lo schema va benissimo anzi non me lo aspettavo così dettagliato,
quella della struttura lineare di testo poteva valere come riferimento base
nel senso avere un modello da seguire per la composizione di una classe
ma pensandoci bene, non credo sia fattibile, essendo che intendevo un testo
unico come modello, ma da quello che ho capito ogni classe è un mondo a se.
magari mi sbaglio, ma questa tipologia di programmazione,
somiglia ad un puzzle, ogni pezzo devi capire dove va messo.
Lo schemino cerca di dare qualche informazione sulle varie istruzioni che compongono lo script, anzi solo per quelle ‘principali’, diciamo cosi’.
Cosa ti aspettavi ?
Se ci sono dettagli superflui, li togliamo.
Be’ lo schemino e’ apposito per quello script, come detto sopra.
Non certo per una o piu’ classi intere … ![]()
Vorresti schemini dedicati alle classi ?
… Cosa dovrebbero indicare ? Ho le idee un po’ confuse … ![]()
Questa e’ una cosa diversa dal capire lo script.
Forse non ho capito io cosa chiedevi.
Vorresti qualcosa per comporre una classe ?
Intendi comporre nuove classi ?
Ma ti interessa la sintassi ?
O invece l’architettura della classe, se e’ la parola giusta, cioe’ quali campi, proprieta’, metodi ecc. inserire nella classe ?
Come da copione, la situazione si sta ingarbugliando … ![]()
Speriamo di no. ![]()

