RhCOM e variabili

Una domanda agli esperti:
Come fare per inserire una “collezione” di variabili (POINTS, coordinate x,y,z) in una stringa di comando da inserire in RhCOM?

Nella programmazione AutoLISP dopo aver memorizzato le coordinate dei vertici (Setq v1 (list 0 0 0)) ecc… e poi basta scrivere (command: Pline v1 v2 v3 “”) ‘naturalmente nella forma più semplice’.

Grazie.
Federico

Al posto del ; metti uno spazio.

1 Mi Piace

Ti ringrazio moltissimo Luca. Da quel che vedo bisogna operare in C# linguaggio non nelle mie corde.
Mi rattrista il fatto che GH non gestisca direttamente le variabili e le liste delle variabili in modo diretto, mi sarei aspettato un semplice box che le raccoglie/organizza e un input nell’RhCOM che le gestisca mi farebbe veramente comodo. Comunque grazie.
Posso chiederti se esiste un interprete del linguaggio LISP in Grasshopper?
Sarebbe molto più semplice per me.

Figurati.
Forse il componente esiste, ma intuendo di poter risolvere con un banale ciclo non ho voluto indagare: punto all’obiettivo.
Se sai programmare con un qualsiasi altro linguaggio non dovrebbe essere difficile implementare un ciclo. Ad ogni modo chiedi, qui c’è molta gente competente.

Riguarda al Lisp non so dirti.

SOR FEDERICOOOOOOO !!!
Vicino di casa.
Benearrivato!!!
:smiley:
Ecco il metodo “Spritz” che mischia e formatta i testi. Un “invento” (porcata) ma funziona.
Trasformo e unisco in unico testo
Levo {
Levo }
Gestisco “spazio”
Concateno in formato Rhino Command
Sparo il tutto nel componente con bottone
Amen

EDIT
Eventualmente si può mettere come ulteriore testo da concatenare l’opzione di comando _Polyline “_PersistentClose=Yes”

1 Mi Piace

Grandissimo! Ci stavo lentamente arrivando (fra 2 mesi) giocando con le stringhe.
Grazie infinite.
Certo il LISP mi manca molto!
La provo subito,
A presto…

comandi_gh_rh.gh (6,4 KB)

ti allego il file, qualora volessi avere tutto in un unico comando.
Anche perché non ti avevo detto che gli input vanno tipizzati.

1 Mi Piace

comandi_gh_rh2.gh (14,0 KB)

Versione 2: puoi scegliere il comando, il separatore e la stringa di chiusura.

Lo Script C# è fantastico! Ti ringrazio molto, serve solo una grafica accattivante e poi lo dovresti inserire
in libreria disponibile a tutti perché è molto utile!
:raising_hand_man:

Ciao Federico

Come forse avrai notato, in GH non c’e’ solo il C#.
Si possono utilizzare anche script in VB.Net e (Iron)Python.

Non ho mai letto niente invece sui forum di Rhino riguardo al LISP … ed e’ un peccato, concordo.
Cercando sul Web si trovano alcuni progetti riguardo a interpreti LISP in C#.
Ad esempio ho trovato questi:

https://gjdanis.github.io/2015/09/14/writing-a-simple-interpreter-cs/

E suppongo ce ne siano anche di piu’ per Python …

… Ma personalmente non saprei nemmeno come fare per utilizzare una cosa del genere in GH … :roll_eyes:

… E in effetti forse non sarebbe cosi’ difficile imbastire un interprete per un piccolo simil-LISP per GH,
con molte limitazioni ovviamente.
O forse si’ … chissa’ ! :smile:

Comunque ci vorrebbe il tempo di provarci, quindi per ora temo tocchi accontentarsi di quello che c’e’ … :confused:

1 Mi Piace

L’argomento si fa certamente complicato per me e Vi ringrazio molto per i contributi.

Il Common Lisp è un linguaggio molto bello ma pare che esista un interprete fra LISP e C++
chiamato CLASP: CLiki: Clasp
Non ho capito se però è a senso unico o doppio cioè fa funzionare Lisp in C++ o viceversa o entrambi.

Una introduzione al Clasp:

Saluti
Federico Lardera

Macché, è una banalità.

Mi associo ! :grinning:

Sembra una cosa per professionisti … :confused:
Inoltre GH non usa il C++ a quanto ne so.
Puoi usare il C++ per scrivere plug-in per Rhino, ma non credo per gli script.

Scusa Luca, cosa intendi ?
( Non capisco mai se e’ una battuta … o se sono io a non capire cosa intendi …
Sei piu’ conciso di Salvio … e ce ne vuole … :wink: )
:grinning_face_with_smiling_eyes:

ahahahah sei terribile Emilio :wink:

1 Mi Piace

Ciao carissimo Emilio,

Il mio post dovrebbe essere una risposta a srls che aveva scritto

“Lo Script C# è fantastico! Ti ringrazio molto, serve solo una grafica accattivante e poi lo dovresti inserire”

pensavo si capisse (non risulta a chi rispondo?), scusami, avrei dovuto citare.

1 Mi Piace

Hai ragione Luca.
Scusa, sono io che non ho visto a cosa si riferiva la risposta … :blush:

P.S.
… comunque una cosa la avevo azzeccata: :wink:

:smile:

1 Mi Piace

Fifty fifty :grin:

:+1: :grinning_face_with_smiling_eyes:

Con rhinoscript hai le medesime potenzialità:

dim v1
v1=array(0,0,0)
dim v2
v2=array(…)

dim Lpoints
lPoints=array(v1,v2,v3 …)
Dim pl
pl= rhino.addpolyline(lPoints)

In una forma più compatta:

Dim pl: pl = rhino.addpolyline(array(array(0,0,0),array(1,0,0), array(1,1,0)))

Mi sembra semplice.
Inoltre l’help è estremamente chiaro e semplice.

Ciao Sergio !

Se non erro si sta parlando di Grasshopper, niente Rhinoscript ! :wink:
Pero’ con Python e’ anche piu’ semplice …

import rhinoscriptsyntax as rs
v1 = [ 0, 0, 0 ]
v2 = [ ... ]
rs.AddPolyline( [ v1, v2, ... ] )

oppure

import rhinosciptsyntax as rs
rs.Addpolyline( [ [ 0, 0, 0 ], [ 1, 0, 0 ], [ 1, 1, 0 ] ] )

:grinning: