Gli Script

Si’, certo, puoi farci un pulsante oppure un alias.

No.

Forse e’ una novita’ Rhino 7 o 8 … non lo sapevo.
Ma sapevo che c’erano dei comandi da eseguire all’inizio:

Qui ad esempio ho uno script eseguito all’inizio … che non ricordo cosa sia, va be’.

Se vuoi possiamo prendere la lunghezza dalle dimensioni della griglia, come fa Rhino …

Adesso cerco qualche funzione rhinoscriptsyntax per lo script degli assi …

1 Mi Piace

Va sempre bene Emilio fai come ritieni sia piu idoneo.

Ciao grazie

Intanto ti suggerisco alcune funzioni rhinoscriptsyntax che potrebbero servire per lo script:

AddLine
ObjectColor
ObjectPrintWidth

Per definire un colore basta una lista con 3 valori da 0 a 255, per i 3 valori R,G,B
Ho scoperto che per vedere a video lo spessore linea settato da ObjectPrintWidth bisogna eseguire il comando Rhino PrintDisplay
Forse anche quello puoi aggiungerlo alla lista dei cmandi da eseguire all’inizio …
Per spostare gli oggetti sul livello voluto putresti usare (sempre rhinoscriptsyntax)

ObjectLayer

Per ora ho solo elencato le funzione, nel caso tu voglia provare a iniziare a scrivere qualcosa per conto tuo.

Se invece vuoi vedere lo script come esempio, dimmelo e vedo di scriverlo e postarlo.
Sempre se so su quale livello mettere le linee. :wink:

Ciao

1 Mi Piace

Scrivilo pure tu sto incasinato sulla linea di divisione che farò un post help se non ci capisco bene essendo discontinua .

I piani chiamali come vuoi tanto non cambia niente , io li ho chiamati cosi come ho descritto sopra.


Poi li tengo bloccati .

Ciao Grazie

Aaaaaaah … finalmente ho capito.
Quelli che tu chiami piani Rhino li chiama layers o livelli in italiano. OK

Se permetti un consiglio: in futuro se li chiami “piani” credo che pochi qui capiranno di cosa stai parlando, poi ovviamente fai come preferisci. :slight_smile:

Domani conto di postare lo script.

Ciao

Si scusa ho usato il termine in italiano , :cold_face: :cold_sweat: :cold_sweat: :cold_sweat: mea culpa.

Mi è rimasto dal vecchio autocad memorizzato sono la stessa cosa layer , strati , livelli , piani ma l errore è mio chiedo scusa .

Va bene ottimo e grazie buon lavoro.

import rhinoscriptsyntax as rs

def main():
    rs.AddLayer( 'ASSE X', [ 255, 0, 0 ] )
    rs.AddLayer( 'Asse Y', [ 0, 255, 0 ] )
    rs.AddLayer( 'Asse Z', [0, 0, 255 ] )
    rs.LayerPrintWidth( 'ASSE X', 0.5 )
    rs.LayerPrintWidth( 'ASSE Y', 0.5 )
    rs.LayerPrintWidth( 'ASSE Z', 0.5 )
    GuidX = rs.AddLine( [ 0, 0, 0 ], [ 1000, 0, 0 ] )
    rs.ObjectLayer( GuidX, 'ASSE X' )
    GuidX = rs.AddLine( [ 0, 0, 0 ], [ 0, 1000, 0 ] )
    rs.ObjectLayer( GuidX, 'ASSE Y' )
    GuidX = rs.AddLine( [ 0, 0, 0 ], [ 0, 0, 1000 ] )
    rs.ObjectLayer( GuidX, 'ASSE Z' )
    
main()

Ciao

1 Mi Piace

Dopo provo subito sto litingando ad installare Rhino sul notebook e non accetta la licenza , ho letto che si puo usare su piu pc se usato solo 1 per volta.

Hai optato per lunghezza 1000 sugli assi non piu alla quota griglia .
Penso sia piu semplice cosi hai fatto bene inutile faticare per questo .

C è la possibilita di avere i comandi solo in inglese quando digiti da console ?

Ciao Grazie

Rieccomi test effettuato , Perfetto !

Molto utile sia gli assi secondo mè e anche i comandi utilizzati per creare i Layer .

Ottimo lavoro.

Ciao Grazie

Quello puoi provare a farlo tu.

A questo proposito, forse c’e’ stato un equivoco fin dall’inizio ed e’ meglio chiarire.

Mi sono offerto di aiutarti a imparare a scriptare Rhino, e l’offerta e’ tuttora valida, ma forse abbiamo idee diverse sull’imparare a scriptare.

Io intendo, per quello che so, rispondere a domande, suggerire strategie o librerie da utilizzare, rispondere anche riguardo a Python ed eventualmente postare qualche istruzione se e’ necessario per capirsi.

La mia idea, almeno da quanto ho visto finora sui forum, e’ che lo script lo scrive chi vuole imparare.
Mentre gli altri sul forum danno consigli e spiegano.

Tu forse invece intendi avere prima a disposizione N script tra quelli che ti servono, e poi, quando avrai tempo, nel caso iniziare a scrivere qualcosa tu stesso.

Ho scritto il primo script che hai scelto perche’ avevi scelto un’operazione piuttosto complessa.
Ho anche scritto il secondo, che ti avevo suggerito in quanto semplice ed adatto come primo script da scrivere, anche se l’idea era che lo scrivessi tu.

Ma tu non hai ancora postato una singola istruzione …

Per cui come ‘scrittore dei tuoi script’ mi fermo qui.

Se cerchi qualcuno che ti scriva gli script che desideri, prova a chiedere qui, o meglio ancora sul forum USA.
La’ c’e’ Pascal che spesso scrive degli script su richiesta, lui lo fa per lavoro.

Diversi chiedono ad altri di scrivere degli script e non c’e’ proprio niente di male.
Solo per quanto mi riguarda non e’ quello che voglio fare adesso.

Se invece hai domande su Python, sugli script per Rhino o se ti serve una mano per capire perche’ uno script non funziona, se vuoi ragionare su aspetti vari degli script, chiedi pure e provero’ per quanto possibile a fare qualcosa. :slight_smile:

Ciao

1 Mi Piace

Si concordo Emilio avevo chiesto infatti su cosa era uno Script per comprendere cosa fossero e che potenziale potevano avere .

Si concordo non voglio avventurarmi subito in questa cosa proprio perchè abbandonerei l altro progetto e avendo tempo solo di sera non penso di essere in grado di poter gestire entrambe le cose , avendo appena iniziato da poco con Rhino.

Appena arrivo ad un punto che mi soddisfa se riesco con il mio progetto , come avevo scritto all inizio uno dei miei progetti futuri era quello di fare quello che feci in Lisp , infatti mi hai ampiamento dimostrato che si puo fare avendo una conoscenza adeguata su script python .
Ovviamente non me la sento di postare cose senza potermici dedicare a pieno come mi piace fare.

Va benissimo Emilio ti ringrazio pienamente per i ripetuti aiuti sui vari problemi e dubbi che ho trovato nel cammino diciamo con Rhino.

Se sara ancora possibile piu avanti proseguo dalle basi che mi hai fornito molto interessanti e fondamentali , perchè nemmeno sapevo entrare nell editor dello script.
Qui le cose da imparare sono infinite e questa è la parte piu bella.

CIao Grazie

2 Mi Piace

Non ho resistito , ci ho provato appena installato nel notebook , non è che che ho combinato granchè , va be ho quasi rotto il ghiaccio devo trovare un buon portale con gli esempi.
Se ho capito bene questi script sono in Iron Python 2.7 .
Ecco la micro modifica che ho fatto , comunque non ci ho impiegato poco :cold_sweat: :rofl:.

import rhinoscriptsyntax as rs

def main():
rs.AddLayer(‘ASSE X’, [255, 0, 0])
rs.AddLayer(‘ASSE Y’, [0, 255, 0])
rs.AddLayer(‘ASSE Z’, [0, 0, 255])
rs.LayerPrintWidth(‘ASSE X’, 0.5)
rs.LayerPrintWidth(‘ASSE Y’, 0.5)
rs.LayerPrintWidth(‘ASSE Z’, 0.5)
GuidX = rs.AddLine([0, 0, 0], [1000, 0, 0]) # Aggiungi l’asse X
rs.ObjectLayer(GuidX, ‘ASSE X’) # # Imposta il layer dell’asse X
GuidY = rs.AddLine([0, 0, 0], [0, 1000, 0]) # Aggiungi l’asse Y
rs.ObjectLayer(GuidY, ‘ASSE Y’) # Imposta il layer dell’asse Y
GuidZ = rs.AddLine([0, 0, 0], [0, 0, 1000]) # Aggiungi l’asse Z
rs.ObjectLayer(GuidZ, ‘ASSE Z’) # Imposta il layer dell’asse Z

# Blocca il layer dell'asse X
rs.LayerLocked('ASSE X', True)
# Blocca il layer dell'asse Y
rs.LayerLocked('ASSE Y', True)
# Blocca il layer dell'asse Y
rs.LayerLocked('ASSE Z', True)

main()

In sostanza ho bloccato i 3 layer creati in modo che non vengano piu selezionati e nemmeno cancellati.

Ciao Grazie Buona serata a tutti.

Esatto.

Temo che all’inizio sia normale.
Soprattutto se impari contemporaneamente Python e gli script per Rhino.
Gia’ ‘azzeccare’ l’indentazione richiesta da Python non e’ banale.

Bravo !

Ciao

1 Mi Piace

A guarda a mè piace anche starci sotto , vediamo se riesco a trovare un pò di tempo ma so gia che per certe cose serve molto tempo e non ho conoscenza .

Ciao e grazie

Per info varie c’e’ sempre il forum. :slight_smile:

1 Mi Piace

Allora rieccomi , per un info su una precisazione il file txt che si crea per importare nello script che hai creato può avere decimali tipo:
ora siamo cosi 30,40,60,10 se invece scrivo cosi va bene lo stesso o non abbiamo previsto i numeri reali ?
Si può creare un file cosi ?
30.2,40.5,60.0,10.2

Inserisco dei dati nuovi e voglio vedere se mi riesce con la relativa calma a fare una rotazione …verso asse Z , ma sicuramente sara una guerra…

Ciao Grazie

Certo che abbiamo previsto i reali ! :wink:
Nello script e’ scritto:

        num = [ float( wr ) for wr in wrd ]

float() converte la stringa in numero reale.

Vuoi utilizzare uno script separato per ruotare verso Z ?
O vuoi modificare lo script che ruota nel piano XY aggiungendo la rotazione verso Z ?

Ciao

1 Mi Piace

Visto che posso fare delle prove a mia preferenza , ti espongo cosa vorrei fare , ci vorra un po di tempo , ma con il notebook ora dopo mezzanotte riusciro a fare qualcosa penso.

1)creare un piano e dargli un nome ( dall ambiente disegno Rhino richiesto da script) renderlo corrente in modo si crei la costruzione gia diciamo ordinata.
2)Salviamo penso in modo normale come modello o file da riutilizzare se si vuole in modo che quando apriamo questo file modello archivio troviamo i salvataggi precedenti con relativo disegno.

Per quanto riguarda la rotazione penso che prima faro una prova con script a parte per capire bene il concetto poi tentero nel limite del possibile di collegare il tutto al tuo presiozo lavoro…

Ovviamente sono accette critiche, consigli e tutto ciò che aiuta a crescere.

Ciao e grazie

1 Mi Piace

Questa domanda ti fa gia capire che non ho guardato molto indietro purtroppo infatti non ho ancora finito di inserire i commenti cosa cha a mè piace fare.

Ciao

1 Mi Piace

Ci ho pensato un pochino … e non mi sembra semplicissimo, ma io ormai sono parecchio rimbambito. :smile:
Parlo del ragionamento geometrico. A scriverlo poi in Python credo non ci siano problemi.

Suppongo che la rotazione sia attorno a un asse orizzontale, appartenente al piano del cerchio in questione, in pratica il diametro orizzontale del cerchio.
Ma sai to come va ruotato.

Non so … ma forse per aggiungere queste rotazioni andra’ cambiata un po’ la logica dello script.
Nel senso che cambia la procedura geometrica.
Bel problema, comunque, interessante ! :grinning:

Concordo, anche se credo che sia piu’ laborioso partire dal pezzo gia’ disegnato … ma posso sbagliare, ovvio.

Se non altro credo che la logica sara’ diversa rispetto al caso di script unico.

Ma sono solo chiacchiere a ruota libera … se non proprio inutili.

Nel caso tu voglia poi aggiornarci sul lavoro … faremo altre chiacchiere. :confused: :smile:

Ciao.

1 Mi Piace