Python e rs.Command

Qualcuno sa dove è possibile trovare informazioni sull’ordine dei parametri da inserire nel caso del rs.Command?

rs.Command("_Orient…

rs.Command("_Line 0,0,0…

grazie

rs.command dovrebbe funzionare allo stesso modo di come richiami i comandi da barra di comando…
Quindi il metodo migliore è quello di richiamare il comando incriminato con il trattino “-” davanti in maniera da ottenere tutte le opzioni da riga di comando e copiare pari pari l’ordine di input nello script.
Ciao

OK, finalmente ci sono arrivato, ma ora viene il problema della sintassi.
cambia qualcosa?

rs.Command("_Line 0,0,0 10 0,50,50")
in questo caso disegno una linea dall’origine, di lunghezza 10 verso il punto finale.

come inserisco una variabile al posto della lunghezza o al posto del punto?

grazie.

Ciao Enzo

MI intrufolo nella discussione perche’ forse Lucio non ha ancora trovato il tempo per impratichirsi con Python … almeno credo … in caso contrario mi scuso.

Dunque, dobbiamo costruire il testo del comando usando Python, e volendo anche rhinoscriptsyntax.
Se la variabile contiene un numero (ad esempio la lunghezza), basta usare str().
Se contiente un oggetto punto, va ancora bene str().
Se invece il punto e’ rappresentato da una lista con i valori X,Y e Z, allora userei rs.coerce3dpoint(),
ma naturalmente si puo’ anche costruire la stringa ‘a mano’ usando solo Python.
Io per i punti userei rs.coerce3dpoint() in ogni caso, per sicurezza.

rs.Command( "_Line 0,0,0 " + str( lunghezza ) + " " + str( rs.coerce3dpoint( punto ) )

Invece di concatenare stringhe e usare str(), se vuoi puoi usare l’operatore %

rs.Command( "_Line 0,0,0 %s %s" % ( lunghezza, rs.coerce3dpoint( punto ) )

O ancora la funzione format(), che conosco poco, per cui consiglio di cercare la documentazione.

(Spero che negli esempi non ci siano errori …)

Ciao

Non sbagli affatto!!! :grin:

Grazie mille ad entrambi!

dimenticavo, voi “studiati” usate solo l’help dell’editor o avete altra documentazione a riguardo della particolare sintassi per il “Command”?

Hehe … non so come fanno gli altri ‘vecchietti’ (come utilizzatori di Rhino e ammennicoli vari) …
ma il sottoscritto vecchietto (in tutti i sensi …) fa esattamente come indicato da Lucio per quanto riguarda Command().
Cioe’ eseguo il comando da tastiera ,scrivendolo con il ‘meno’ davanti. E mi annoto la sequenza dei caratteri digitati. Questa sequenza e’ quella che copio pari pari nel Command().
Questo per quanto riguarda il testo del comando Rhino da eseguire tramite Command().

O forse non ho capito la domanda ? … C’e’ qualcosa nello help dell’editor riguardo a Command() ?
Di solito non uso EditPythonScript e non lo conosco gran che … sorry.

Forse ti riferisci a come costruire in pratica la stringa che rappresenta il comando ?
Qui e’ solo sintassi Python, cioe’ operazioni sulle stringhe.
Con l’eventuale aiuto di rhinoscriptsyntax ( coerce3dpoint )
Per cui la documentazione da consultare e’ quella su Python.

Se ancora non ci ho azzeccato, prova a spiegare di nuovo cosa ti serve … :smile:

Ciao !

azzeccato, sto studiando da poco Python e sull’help dell’EditPythonScript trovo difficile capire la sintassi corretta, forse da neofita vorrei solo vedere più esempi per “capire le isruzioni”.

Grazie.

Giusto.
Se hai in mente qualche operazione specifica da scriptare, spara.
Proviamo a imbastire qualche semplice esempio.

Giusto per capire: a livello di conoscenza Rhino, come sei messo?
Intendo, sei da poco diventato utente oppure sei un utente già avanzato che si sta avvicinando allo Scripting?
Ciao

Rhino lo uso dalla versione 1, posso dire di saperlo usare abbastanza bene, ma non ho mai messo mano agli script, ma capito il potenziale, sto tentando di “automatizzare” molte operazioni.

grazie mille per il vostro aiuto!

enzo.

quale altro editor si può utilizzare/mi consigliate?
si riesce poi ad eseguire lo script in automatico o bisogna ricopiarlo manualmente in rhino?

Secondo me per cominciare l’editor interno di Rhino va più che bene…
Per eseguire uno script in automatico lo puoi inserire in un pulsante oppure registrare in Rhino con un alias in modo da poterlo richiamare da tastiera come i comandi standard.
Io di solito ho una barra nella quale ci sono tutti i pulsanti che contengono script vari in modo da poter editare velocemente il codice in caso mi ritrovi dei piccoli bachi…

C’e’ piu’ di un modo per eseguire uno script da Rhino.
Credo che nel Wiki ci siano le spiegazioni.
Io trovo comodo fare un pulsante apposito con scritto

-RunPythonScript prova.py

… ad esempio.
Come dice Lucio, anche per me e’ il modo piu’ comodo per poter velocemente modificare gli script quando ce n’e’ bisogno.

Per il text editor … difficile dare consigli. E’ una scelta che dipende da gusti ed abitudini.
EditPythonScript lo uso piu’ che altro per fare delle rapide prove: e’ comodissimo eseguire lo script.
Per il resto sono abituato a dei comandi diversi, inoltre purtroppo uso sempre schermi da 17", ed essendo anche un po’ orbo il font di EditPythonScript lo leggo a fatica … e fatico anche a selezionare il punto giusto, soprattutto l’inizio delle istruzioni …
Come dicevo, non ho consigli da darti, se ti trovi bene con EidtPythonScript benissimo !
Se no cerca un text editor di tuo gusto.
Ce ne sono tanti in rete … anche se alla fine per i pignoli (o rompiscatole che dir si voglia, come il sottoscritto) la cosa migliore sarebbe scriversi un text editor su misura, ma sono troppo scarso e ci metterei troppo tempo … mannaggia !
Tanto per la cornaca, un po’ di tempo fa qui nella comunita’ Rhino era molto popolare un text editor che mi sembra si chiamasse ConText, lo usavano molti. Poi non ne ho piu’ sentito parlare … mah

Ciao !

grazie mille ancora!

:confused: Cacchio!

Eeeh … si’. In effetti penso che dovrei vedere di prendere un monitor da attaccare al portatile che uso a casa …
Apriamo la caccia alle occasioni ! :smiley:

Ciao Lucio !

Qualche settimana fa ho preso su Misco.it un monitor della Philips da 23’’ FullHD con presa HDMI a 60 euro perché era stata aperta la scatola…
Va da dio e non ha nemmeno uno striscetto (e anche lo avesse avuto… chissene… :wink: )
Ciao!

:smiley: