Range in python

Ragazzi, il Python che usa Rhino e’ IronPython, che gira sotto .NET
Quindi se usate gli script in Python per Rhino o per GH, state usando .NET

Il vantaggio nell’usare IronPython e’ che nei nostri script in Python possiamo attingere direttamente alla vasta libreria di funzioni .NET
E in effetti e’ cio’ che facciamo ogni volta, per esempio, che usiamo rhinoscriptsyntax
Gli ID sono in realta’ degli oggetti System.Guid
I colori sono oggetti System.Drawing.Color
Ma ci sono molte altre classi che possono rivelarsi utili.

( Poi secondo me ci sono anche gli svantaggi, almeno per noi utilizzatori, ma sono opinioni personali … )

Quindi, nessana paura di .NET ! :slight_smile:
Forse voi vi riferite a RhinoCommon, che e’ la libreria usata da Rhino sotto .NET
(e’ cio’ su cui si basa rhinoscriptsyntax)

RhinoCommon puo’ essere usata nei nostri script, ma non e’ necessario partire con RhinoCommon.
Si puo’ benissimo iniziare usando rhinoscriptsyntax (e’ fatto apposta), e poi, se ci serve RhinoCommon,
utilizzare alcune cose di RhinoCommon insieme a rhinoscriptsyntax.

Non c’e’ nessun problema a mischiare le due librerie.

Se ci serve RhinoCommon per fare una cosa particolare, impariamo quella cosa e la utilizziamo, ma quando non ce n’e’ bisogno si puo benissimo andare avanti con rhinoscriptsyntax. :slight_smile:

… Spero di non aver confuso le idee ancora di piu’ … anche se temo sia proprio cosi’ (date le mie eccelse capacita’ didattiche) … :rofl:

Eeeeh … io sono molto piu’ venale … :blush:

Diciamo che se mi dessero la pensione …
… Potrei anche provare a imparare l’assembler …

:rofl:

… e forse per 100 Ducati (quelle a due ruote), lo farebbe anche @giuseppe
:rofl:

Beh, in realtà mi hai chiarito le cose più che confonderle…
Io avevo capito che i metodi di IronPython fossero legati a Python e basta mentre .Net fosse un linguaggio più da programmatori seri (stile plug-ins).
Così da autodidatta, avevo intuito che Python (ehm scusa, IronPython) fosse un qualcosa confezionato per noi pippe della programmazione, mentre il resto era per i puristi (che poi, non ho mai capito sta storia di chiamare i linguaggi tutti con nomi simili C C++ C# Python IronPython VB VBScript… e poi non capisci mai se uno è il seguito dell’altro o se non centrano nulla e hanno solo il nome simile).
Comunque, seguendo il consiglio di Vittorio, prossimo scriptino che devo fare lo butto su in IronPython così comincio il mio percorso e poi, visto che mi dici essere simile a .Net, mi arrischierò a fare qualcosa di più.
Ciao!

< Confusione, capitolo 2 … hehehe :wink: >

I metodi che usiamo negli script, tipo GetObject(), UnselectAllObjects(), Command() e via dicendo, che usavamo anche in VBS, adesso (per Python) sono nel ‘modulo’ rhinoscriptsyntax
E, come dici tu, sono disponibili solo per Python
( Ci sono anche alcune differenze con quelli del VBS … tanto per non annoiarsi … :wink: )

In VBS scrivevamo

Rhino.GetObject()

In Python importiamo il modulo e lo usiamo cosi’

import rhinoscriptsyntax as rs
rs.GetObject()

Con la differenza che in VBS, dato che maiuscole o minuscole a lui non interessava, scrivevo tutto minuscolo per semplicita’.
In Python bisogna mettere maiuscole e minuscole al posto giusto, se no … nisba. :confused:

.NET non e’ un linguaggio, ma un ambiente, diciamo cosi’, in cui eseguire i noscri script/programmi.
In ambiente .NET si possono usare diversi linguaggi.
E comprende tutta una serie di librerie, utilizzabili con i vari linguaggi (compreso IronPython)

Microsoft sviluppa VB.net, C#, F# … non so se altro ancora …
Poi ci sono inizative esterne, come IronPython … che infatti non si sa mai se dura, se non dura, se viene sviluppato, se resta cosi’ …
Tanto noi mona siamo qua a tradurre script da un linguaggio all’altro … allegria !

Ma si sa, se a Seattle non restano appiccicati alle gonne di mamma Microsoft, non sono contenti …
Loro diranno “Rhino lo faccio io e decido io” … e hanno anche ragione … :slight_smile:

Hehe, mi sa che noi restiamo pippe indipendentemente dal linguaggio, e i maghi restano maghi. :grinning:

( Tornando a Rhino, come dicevo rhinoscriptsyntax e’ per pippe (script), mentre RhinoCommon … e’ piu’ democratico, lo usano sia pippe (per gli script) che maghi (per plug-in e add-on) :slight_smile: )
( L’SDK C++ e’ solo per maghi )

Quanto ai nomi dei linguaggi … in effetti di solito ci sono delle parentele (piu’ o meno strette)
IronPython e’ sempre Python, anzi e’ Python ‘portato’ in ambiente .NET,
Cosi’ come Rhino Mac e’ Rhino portato in ambiente OSX (anche se per Rhino credo ci siano delle differenze volute tra le due versioni)

Per cui la documentazione su Python che troviamo in rete o nei libri serve anche per gli script,
ricordando che IronPython e’ alla versione 2.7.
Rispetto alle ultime versioni 3.X ci sono alcune differenze, ma a livello pippe e’ praticamente la stessa cosa.

Ci sono delle differenze tra IronPython e CPython (la versione di riferimento) per le librerie esterne.
In IronPython non ci sono tutte le librerie disponibili per CPython, in compenso possiamo usare .NET … bisogna vedere caso per caso, quando dobbiamo usare librerie esterne.

Si, ma ormai, fatto trenta facciamo trentuno e creiamo la versione “PippePython” (o “MonaPython” se vogliamo spostarci più a Est) così non ci sono dubbi su cosa dobbiamo utilizzare!
Comunque, il fatto del “case sensitive” a me va bene dato che, come sai, sono abbastanza precisetto e mi piace richiamare sempre le variabili e le funzioni con le loro letterine maiuscole al posto giusto (prima ero precisino mentre adesso avrò l’alibi che lo richiede il linguaggio :wink: )
Ti lascio nelle grinfie di Salvio che torno al lavoro; vedrai che al momento opportuno salto fuori bestemmiando perché non mi funziona niente (ma in quel caso rompo le balle anche a Vittorio, non ti preoccupare, che l’ingegnè deve tornare sulla cattedra! altro che pensione!).
E 'sto anno cerco di rifare un salto a Padova per il RhinoDay così mi abbuffo a spese di Vittorio e Fulvio! :smiley:

buondì a tutti, ragazzi che ironpython è per le pippe c’è lo ricorda anche il web: ahahahah

haha

forse tra tante versioni, hanno fatto anche loro confusione ahahahah battute a parte alcune osservazioni
in Rhino col comando: “EditPythonScript” avvia “RhinoPythonEditor” F1 “RhinoIronPython”
in Grasshopper componente: “PythonScript” abbiamo “GrasshopperPythonScriptEditor” F1 “RhinoIronPython”
codice copiato fedelmente dalla guida del componente python in grasshopper premendo F1

import rhinoscriptsyntax as rs
a=rs.AddTextDot(“howdy”,(1,2,3))

in pratica il codice in rhino python funziona mentre nel componente python in grasshopper no
essendo che la guida in entrambi casi è la stessa ma come si vede il risultato invece proprio no

PS ironpython sarà per pippe, e posso essere anche la pippa più pippa di tutte le pippe :stuck_out_tongue:
però queste cose a casa mia le chiamo con il proprio nome cioè: sabotaggio ahahahah

Sei sicuro, Salvio?
Io vedo una linea nello help, e funziona
Non so se GH usa i TextDot …

di quale linea parli?
e cosa funziona?

In GH, componente Python Script :
Nella finestra di Help c’e’ un esempio con rs.AddLine()
E inserendolo come testo dello script, il componente mi da’ una linea in output

Il tuo e’ diverso ?

nell’help li ho visti esempi e la linea in output funziona, ma il codice che ho postato riguarda “AddTextDot”

Visto che dicevi “copiato fedelmente”, credevo che tu in GH avessi un esempiocon TextDot …
Purtroppo conosco poco GH, ma non sono sicuro che utilizzi i TextDot …
Prova a chiedere a Giuseppe, visto che e’ in zona … :wink:

Porta anche il piccoletto…che così cresce bene…:joy:

che non lo supportava alla fine lo avevo capito poi andando ad indagare in effetti porta questa dicitura:

Runtime error (NotSupportedException): This type of object is not supported in Grasshopper, so this Python script cannot create it. You might want to use ‘scriptcontext.doc = Rhino.RhinoDoc.ActiveDoc’ to use the Rhino doc, instead? If you do, remember to restore it: ‘scriptcontext.doc = ghdoc’.

adesso vallo a trovare una guida context o activedoc per questi esempi
per questo dicevo una guida in comune ma non adatta al 100% è un po forviante

ma mi sa che Giuseppe questi livelli di codici non li considera nemmeno, vuole far fare prima le ossa :slight_smile:

Scusa, a quale guida ti firerisci ? :slight_smile:

( Parlavo di Giuseppe soprattutto per i TextDot … ma hai gia’ risolto )

Eh, a fine marzo il piccoletto mi fa il primo compleanno!! :wink:
Siamo già a 10Kiletti di pargoletto!
Viene giù con la sua “macchinetta scatolone” visto che si sta già allenando a correre in giro per l’appartamento

Ludovico

Dall’espressione sorpresa sta dicendo “mi avete raggiunto! accidenti! devo accelerare!!!” :smile:

1 Mi Piace

ma che bravo papà :slight_smile:

Grassie!! :wink:

dopo una () di Lucio e quelle cose che allietano la vita, si ritorna ai rompicapi della vita ahahahah

mi sa che ci stiamo confondendo giusto per riepilogare:

se premi F1 in RhinoPython o premi F1 in GhPython la guida se noti è sempre la stessa di IronPython
ora il codice postato per i TextDot è lo stesso per entrambi solo che in RhinoPython funziona mentre in GhPython come anche tu hai menzionato non funziona ed infatti esce quel messaggio premendo “Test”

al momento non ho risolto comunque.

Ah, OK … mi perdevo l’F1 … tutto chiaro. :slight_smile:

Eeh … pero’ son sempre di coccio … :confused: … cos’e’ che non hai ancora risolto ?