Si. Perché? Lo chiamo script inteso in vb o in altri linguaggi di programmazione. ma si tratta pur sempre di un codice di calcolo …
Cosa vuol dire che passa per i punti di una polilinea? Se intendi che dato una curva generica di grado N trovare la curva che scalata in una data direzione sia di lunghezza definita la risposta è:
SI - PUO’ - FARE! (Cit. Frankenstein Junior)
![]()

in sostanza è questo lo scopo:
dopo aver calcolato la lunghezza e l’inclinazione di ogni segmento di una polilinea divisa in tot punti
(che poi ultimamente non creo più la polilinea ma direttamente una serie di punti e li inclino)
per poi creare una curva di gradi 3 o 5 che passi per quei punti
ora io tramite la lunghezza e l’angolo dei sgmenti riesco ad avere la polilinea della lunghezza voluta
ma ovviamente quando creo la curva quest’ultima non ha la lunghezza “voluta” quella data alla polilinea ma una lunghezza inferiore ovviamente
sarebbe fantastico poter calcolare anticipatamente la lunghezza della polilinea maggiorata in modo che creando poi la curva per i punti risulterebbe della lunghezza voluta evitando la deformazione.
ma qui “se ricordo alcuni discorsi fatti in passato” entrano in gioco il grado della curva, per quanti punti dovrebbe passare, poi la curvatura che si crea nell’angolo dei segmenti e chissà cos’altro.
lo so che riusciresti a farlo tranquillamente tramite script, solo che comunque per altre cose sono obbligato poi ad usare Gh. ovviamente si potrebbe usare anche Py Vb o C in Gh e racchiuderesti tutto in un solo componente con i parametri variabili esterni per controllare la parametricità, pero si può anche racchiudere tutti i componenti in un cluster invece di tante righe all’interno di uno script.
alla fine tutte le strade portano roma l’importante è scegliere quale strada percorrere ![]()
Salvio, il concetto e’ semplice:
tu vuoi conoscere la scala da usare per ottenere la curva di lunghezza data.
Analiticamente non siamo capaci.
Allora si calcolano (Rhino/GH calcola) dei valori, a occhio sia minori che maggiori del valore cercato.
Poi con quei valori disegni il grafico o il diagramma se vuoi, comunque la curva che passa per quei punti e che, si presume, non sara’ troppo distante dal grafico ‘vero’, che non conosciamo.
Cerchi il punto sul grafico corrispondente alla lunghezza curva voluta, e trovi il valore (approssimato) della scala.
Esatto ! … Salvo usare poi i cluster se vuoi …
Certo che puoi fare uno script, se vuoi puoi anche fare uno script dentro GH.
Io sto cercando di imparare un po’ di GH, che come dice Giuseppe e’ un altro linguaggio di programmazione (con pochissima documentazione , inoltre
).
Poi lo trovo anche comodo come debugging: spesso basta attaccate dei Panel e vedi tutti i valori intermedi che vuoi.
In questo caso, in effetti, lo script lo avrei scritto anche abbastanza in fretta.
La cosa lunga per me e’ stato trovare il modo di fare il calcolo in GH …
![]()
Vedi che hai capito benissimo ? ![]()
Ah, se poi qualcuno mi dice se la definizione funziona o meno … Grazie ! ![]()
No, perche’ Salvio continua a dire che non capisce come funziona, ma non mi dice SE funziona … ![]()
Salvio, la polilinea mi giunge nuova …
Vuoi ottenere i CV della curva in modo che la curva poi abbia una certa lunghezza ?
Come dice Giuseppe …
Perche’ ci spieghi il problema … a puntate ?
Dirci tutto subito, no eh …
![]()
Non sono sicuro, ma forse il fattore di scala e’ lo stesso, sia per la polilinea dei CV che per la curva.
Io chiederei a @Sergio_Alessi …
Comunque se anche fosse diverso, basta modificare la definizione …
No, ho fatto una prova e sembra diverso.
Bisogna modificare la definizione.
Se vuoi scalare la polilinea dei CV, prova questa.
salvio-1F.gh (26,6 KB)
… Ma come si fanno quei blob colorati che vedo spesso nelle definizioni ?
… E anche i messages (se si chiamano cosi’ … le scritte nelle finestrelle sopra i componenti ) ? 
questa plugin ti permette di mostrare il nome di ogni singolo tuo componente nel GH canvas:
per i baloon devi selezionare i componenti da raggruppare, poi click destro “create group” e te li gruppa insieme con un rettangolo colorato
a quel punto click destro sul rettangolo colorato (non su un componente gruppato, ma proprio sul rettangolo colorato che li raggruppa) e puoi scegliere di mostrare forme blobbose, dare un colore specifico, e nominare il gruppo con un testo a tua scelta
Grazie Alessandro ! 
Salvio, mi sa che sei riuscito a confondermi le idee ancora una volta.
![]()
Data la lunghezza curva da ottenere, la scala da usare e’ la stessa sia che scali direttamente la curva,
sia che scali la polilinea dei CV.
Prima mi ero confuso con la lunghezza della polilinea, ma quella non credo ti interessi.
Quindi puoi usare tranquillamente la definizione di ieri.
Ti dara’ una scala valida anche per la polilinea dei CV.
E se per qualche motivo vuoi ottenere anche la polilinea dalla definizione, ricavala semplicemente dalla curva risultante.
… Almeno credo …
![]()
Definizione di ieri aggiornata per darti direttamente anche la polilinea scalata
salvio-1E2.gh (26,9 KB)
Aspettando che Salvio ci dica cosa vuole ottenere, da quello che comprendo dagli schemi allegati, in GH non c’è possibilità di produrre un ciclo for / while. Oppure mi sbaglio?
Infatti.
Di solito la parte ‘divertente’ e’ capire come fare i calcoli del ciclo con la logica di GH … ![]()
Ciao Emilio
infatti chiamiamo per semplicità script i codici in vb o python mentre è GH ad essere di fatto uno script inteso come sequenzialità di istruzioni.
Emilio Emilio come vedi anche da prima che provassi la tua definizione già ti avevo detto che andava bene e non avevo dubbi ormai sei una certezza
a già, forse non ho ancora modificato come soluzione al problema ma è soltanto che ormai la stai aggiornando cosi spesso le valutavo ![]()
è inutile dire che per tutte le volte che mi hai aiutato ci vorrebbe una statua d’oro ![]()
infatti era quello che avevo pensato ieri, come modifica alla tua definizione.
alla fine mi hai preceduto sia nell’esecuzione che nell’intenzione ![]()
Forse continunero’ a chiamarle definizioni … perche’ poi dentro le definizioni ci possono essere gli script in Python, C# o VB … ![]()
![]()
Hehe … OK, anche se mi sembra uno strano modo di testare le definizioni. ![]()
Poi pero’ scrivi
… Quindi mi viene il dubbio che la def alla fine non faccia quello che serve …
Anche se non capisco che differenza c’e’ tra scalare la curva e scalare la polilinea dei CV e rifare la curva. ![]()
A meno che con “calcolare” tu intenda un procedimento diverso …
Pero’ se mi dici che funziona, OK, bene cosi’. ![]()
non so, forse con le tue conoscenze sai che volendo ci riusciresti e quindi la cosa non entusiasma?
poi ricordo in alcuni post dove veniva detto che una curva meno la si modifica meglio è. giusto?
in che senso? il ragionamento e che mi serve la polilinea per poi creare la curva che però deve avere una determinata lunghezza, poi debbo scalare “anche” la polilinea perchè con essa debbono essere fatte altre operazioni ed i punti debbono corrispondere a quelli prima della scalatura della curva.
comunque ho fatto alcune prove e funziona, funziona bene ![]()
Mi sembrava strano che ci capissimo una volta …
![]()
Ci riuscirei a fare cosa ?
![]()
L’ultima def che ho postato genera anche la polilinea, basta un bake e ce l’hai bell’e pronta su Rhino.
Se ti serve altro, dimmelo. ![]()
E’ per questo che vuoi usare la polilinea, per non scalare la curva ?
A me non risulta che la curva si deteriori scalandola, non vedo perche’ dovrebbe, e neanche come potrebbe.
Forse la frase che riporti si riferisce a considerazioni estetiche e di continuita’, ma non e’ il mio campo.
E comunque se la forma della curva scalata va bene o meno lo decidi tu.
Geometricamente non ci sono controindicazioni a trasformare una curva.
A quanto ne so, nel database di Rhino la curva e’ definita da CV, grado e nodi.
Non credo ci sia altro.
Poi certo per disegnarla Rhino ricavera’ una polilinea o altro da mostrare sullo schermo.
E ci saranno i vari attributi come colore, layer ecc.
Ma la curva non e’ una cosa indipendente dai CV, sono la stessa cosa.
Secondo me quando scali la curva, in realta’ Rhino scala i CV, grado e nodi non cambiano e il disegno penso se lo ricalcoli (ma ovviamente bisognerebbe chiedere conferma a Giuseppe).
Comunque se preferisci costruire una nuova curva partendo dai CV scalati, niente di male.
La curva che ottieni va bene lo stesso. ![]()
ci mettiamo un pò a volte, però alla fine troviamo sempre il punto d’intersezione per restare in tema
è proprio questo il dubbio che ho, anche se esternamente le curve possono sembrare identiche, più volte mi è stato fatto notare che invece dopo averle modificate cambiano anche se in questo caso anch’io credo che sia come dici.
…Come la definizione.
![]()
Questo e’ interessante.
Mi piacerebbe sapere di cosa si tratta …
eeee non a caso ho scritto intersezione ![]()
con un po di tempo vedrò di trovare il post in questione
non ricordo bene il caso “specifico” ma se non erro si parlava di trasformazione curva. cercherò.

