Gli Script

Caspita siete dei veterani di Rhino è un onore poter crescere con le vostre attenzioni vi ringrazio molto.
Peccato non mi sono avvicinato prima a Rhino ma l impegno e idee concredete non possono sopperire ma aiutare sicuramente.

Si immagino talvolta si cerca la soluzione piu evoluta come soluzione . bensi se viene approfondito anche ciò che definito meno potente da degli ottimo risultati.

Ti ringrazio per i vari suggerimenti postati e link , si è piu gradito ovviamente in italiano anche se i comandi e sintassi ovviamente sono sempre in inglese .

Lo acquisto subito volentieri . Grazie

Caspita Complimenti Veri Veterani del settore :heart_eyes: , Grandi !

Come e quando preferisci .

Molte grazie di tutto Emilio

Si’, grazie Claudio.

Cosi’ inizio a cercare informazioni per capire come fare con IronPython o dotNET.

2 Mi Piace

Fra i vari messaggi mi sembra che mi hai chiesto di preparare un file con le relative quote da cui poi prelevare le misure ?
Ok procedo in serata lo carico .
A dopo grazie

1 Mi Piace

Prepara quello che prevedi ti serve leggere tramite lo script, poi vediamo come fare.

Non ho capito se e’ un file Excel o di altro tipo, ma non importa.
Quando abbiamo il file, ci ragioniamo. :slight_smile:

1 Mi Piace

Si di base è excel con macro ( sono pulsanti in vba assegnato) estensione Xslm mentre excel normale xlsx , ma se è piu semplice possiamo usare qualsiasi formato che ci serve ( txt ,csv…)poi me la sbrigo io da excel a esportare i valori successivamente , forse è pure meglio e piu ordinato.
Cosi intanto possiamo usare un file che preferisci ed è piu semplice per partire.
Si fa un file come serve e ci inseriamo i dati manualmente .
Ciao Grazie

Be’, si’.
Secondo me per lo script e’ piu’ semplice avere un file di testo, non binario.
Ovviamente con un formato comprensibile guardando il file, o con le informazioni necessarie.
Cosi’ non servono librerie esterne, e’ sufficiente usare i normali comando di Python per leggere i file e per manipolare i testi.

:grinning:

Ciao

1 Mi Piace

Come diceva uno dei miei primi maestri , le cose piu semplici sono le migliori.:partying_face::partying_face::partying_face:.
Va benissimo per il file che ci facilita l importazione.
Vuoi che ti mando una sorta di quote base su un txt o come preferisci ?

Sagge parole …

Non complichiamo inutilmente lo script, OK.
Ma cerchiamo anche di non complicare il lavoro per ottenere lo script. :slight_smile:

Finche’ e’ un file di testo, va bene.
Non so usare Office, ma ho letto che da Excel si puo’ esportare in formato csv, ad esempio.
Se questa operazione per te fosse comoda, potresti fare cosi’, andrebbe benissimo.
E’ solo un esempio, per capirci.
Scegli tu il formato, in modo che sia semplice e veloce ottenere il file dai tuoi dati di partenza.

Se c’e’ un formato testo che ricavi facilmente, quello va bene.
A leggere il formato ci pensera’ lo script.
Con i testi Python non ha problemi.

1 Mi Piace

Va bene vedo di creare un csv o txt poco cambia mi sa comunque preparo un file di spiegazione per diametro lunghezze e inclinazioni e poi lo posto se si puo in rar cosi 1 file unico.
Grazie a Ciao

1 Mi Piace

Bene.
Tanto siamo solo alla prima versione dello script.
Se servisse poi cambiare formato, lo cambieremo. :slight_smile:
Ciao

1 Mi Piace

Ho abbozzato un file , cercando di spiegare con una breve descrizione all interno , comunque anticipo , sapendo cosa dobbiamo creare diametro minimo , diametro massimo, lunghezza e inclinazione asse del tronco di cono.
Dovrai cancellare i commenti e scegliere una dei tre tipi di dati come incolonnamento , quelli che saranno piu adatti .
Se sono stato poco chiaro , avvisami che cerco di porre meglio la descrizione nel caso.
Ciao grazie
Prova.txt (1,3 KB)

1 Mi Piace

Ho scelto il primo formato (ma vanno bene anche gli altri :slight_smile: ).

Ho estratto dal tuo file queste linee e salvate in un file:

35,38,40,10
38,39,51,10
39,42,54,10  
42,49,54,10
49,55,30,10
55,61,27,10
61,66,26,10
66,88,94,10
88,116,62,0
116,116,65,0
116,90,55,10
90,60,55,10
60,21,60 ,0

E ho iniziato a scrivere alcune linee dello script con EditPythonScript :grinning:

Ovviamente questo e’ solo un modo di scrivere lo script … potremmo trovarne diversi …

import rhinoscriptsyntax as rs

def main():
    name = rs.OpenFileName( 'File da leggere ?' )
    if not name:
        return
    file = open( name, 'r' )
    text = file.read()
    text = text.strip()
    lines = text.split( '\n' )
    
    # controllo
    
    cnt = 0
    for line in lines:
        cnt += 1
        print( str( cnt ) + ') ' + line )
        
main()

Cosi’ abbiamo qualcosa di concreto da esaminare.
Solo pochi cenni di spiegazione.
Fai poi tu le domande, ce ne vorranno parecchie. :wink:

Prima cosa: occhio all’indentazione delle linee.
In Python l’indentazione fa parte della sintassi.

In pratica aumentare l’indentazione e’ come begin in Pascal
Tornare all’indentazione precedente e’ come end

I commenti iniziano col carattere #

Ogni linea e’ una istruzione, almeno qui.

La prima linea ‘importa’ la libreria rhinoscriptsyntax e la chiama rs

def main(): e’ l’inizio di una funzione. Dopo def si incrementa l’indentazione

Richiamiamo la funzione OpenFileName di rhinoscriptsyntax per poter scegliere il file da leggere. Restituisce il percorso del file come stringa.

Se OpenFileName fallisce, cioe’ se non scegliamo il file, l’istruzione return termina l’esecuzione della funzione.
Usiamo l’istruzione condizionale if, anche per qui le istruzioni da eseguire se la condizione e’ vera si incrementa l’indentazione.

Apriamo il file tramite la funzione open, restituisce un ‘file object’, che qui con somma fantasia chiamo ‘file’. :wink:

Con il metodo read del file object leggiamo il contenuto del file e lo salviamo nella stringa text

Col metodo strip delle stringhe eliminiamo eventuali spazi iniziali e finali (serve per il newline finale)

Ricaviamo le varie linee di testo da text con il metodo split delle stringhe, passiamo il carattere newline come separatore tra le linee

A questo punto interrompo lo script e aggiungo alcune semplici istruzioni di controllo, per verificare che funzioni.
( In effetti ho dovuto correggere alcuni errori per sistemarlo :blush: )

Usiamo un ciclo for e una variabile cnt come contatore per elencare le linee di testo lette.
print manda il testo alla command area di Rhino.
Anche con for cambia l’indentazione

Usiamo + per concatenare le stringhe e str per convertire un numero in stringa.

Infine richiamiamo la funzione main per eseguirla

Se vuoi, quando hai tempo prova poi ad aprire EditPythonScript e a scrivere tu le varie istruzioni.
Per lanciare lo script, clicca sulla freccia verde … almeno Rhino 6 e’ cosi’ …

Ovviamente mancano un mucchio di informazioni.
Ne parleremo.

Ciao

1 Mi Piace

Grande , molto bene Emilio , iniziano le danze a quanto vedo si parte nel viaggio

Ok , ottimo questo è l editor di compilazione , provo a vedere se riesco a caricarlo e in mattinata inserisco le istruzioni indicate appena trovo un attimo la mattina purtroppo lavorando sono sempre piu incasinato .

Molte grazie , tutto richiede del tempo a piu tardi
Ciao CIao

1 Mi Piace

Ci provo con GH.
Non so se va bene ma il piano di costruzione delle sezioni è costruito sulla bisettrice dei due segmenti adiacenti.
segmenti.gh (93,9 KB)

1 Mi Piace

Rieccomi , ho creato lo script copiando il tuo codice seguendo le istruzioni , tutto ok , poi eseguo da Run si apre una finestra con richiesta apertura file e presumo sia tutto corretto.
:star_struck: :star_struck:.
Ciao grazie

Molto bello , vedo estensione GH è fatto in Grasshoper presumo , a parte qualche tutorial base base per l interfaccia non mi ci sono ancora avvicinato , cerchero di curiosare l interessante creazione che hai fatto , molte grazie .
Ciao

Ho provato ad aprile il file gh e presumo che non sia normale … sembra non riesca a scaricare anemone che non so cosa sia forse plugin necessari …
Ciao grazie

Ho verificato si plugin ma dice non supportato se non ho frainteso da Rhino8…

Puoi scaricare i plugin da questi link.

Poi copi i file .gha nella cartella C:\Program Files\Rhino 8\Plug-ins\Grasshopper\Components
Riavvia Rhino.
Con Rhino 8 non ho avuto problemi.

1 Mi Piace

A OK ottimo , si li ho gia scaricati prima la 0,4 come quella usata , ti ringrazio del link non li avevo installati non volevo fare casini avendo ancora poco controllo e conoscenza in Rhino …
grazie della spiegazione .
Piu tardi provo .
Ti ringrazio CIao a dopo

A mè da errore per lo meno mi sembra di capire , oppure ho sbagliato qualche passaggio …


CIao Grazie