buongiorno a tutti è il mio primo post in questa community. premetto che sono alle prime armi con rhino e da poco mi sono avvicinato a grasshopper, spero di non fare da subito domande tropo strane
la mia è una domanda per sapere se sia possibile utilizzando grasshopper, indicare un punto A e uno B di una curva in rhino, dove poter eseguire il comando AdattaCurve “_FitCrv” solo per la parte della curva compresa tra i due punti…
facendo delle ricerche su questo forum mi sono imbatutto in questa discussione WISH: piccola aggiunta al comando “lunghezza” dove l’utente David parla della sua esigenza di sapere la lunghezza di una parte di curva, compreso tra il punto di inizio A e B fine.
in pratica è proprio ciò che intendevo io con il comando AdattaCurve “_FitCrv” con la differenza che a lui gli serviva per il comando Lunghezza “Length”.
grande grande marco era proprio quello che mi serviva fare, ed un doppio grazie ancora per la prima risposta che mi hai dato perchè con il comando “subcrv” che io non conoscevo nemmeno in rhino mi hai aperto un mondo tutto nuovo di possibili cose che ho in mente di fare
ps un ultima cosa che vorrei chiedere sempre inerente allo schema di grasshopper che hai postato:
come faccio ora a sostituire quella porzione di curva con quella nuova creata con il comando “subcrv”?
Immagino, ogni tanto con Rhino si scoprono delle cose nuove, e se comincerai ad usare Grasshopper vedrai che le potenzialità aumentano esponenzialmente!
Io procederei così (vedi file allegato):
crei tre sottocurve:
sottocurva 1 - dal punto iniziale al punto di partenza della sottocurva da modificare
sottocurva 2 - la sottocurva da ricostruire
sottocurva 3 - dal punto finale della sottocurva al punto finale della curva complessiva
ricostruisci la sottocurva intermedia come già visto
unisci le tre porzioni con Join
Un paio di note:
all’inizio della definizione di GH ho riparametrizzato la curva iniziale per essere sicuro che il dominio del parametro t vada da 0 a 1, in questo modo il punto iniziale e il punto finale corrispondono con certezza ai valori 0 e 1 rispettivamente
una volta calcolati i valori t dei due punti che delimitano la sottocurva, ho utilizzato Minimum e Maximum per determinare correttamente i domini delle altre due sottocurve indipendentemente dall’ordine in cui si considerano i punti stessi
ok grandioso marco grazie ancora adesso provo subito i file che hai postato e ti faccio sapere
una cosa ti volevo chiedere essendo che ogni tanto ci sbatto la testa e quello che hai scritto me lo ha fatto ritornare in mente, appunto oggi pensavo a quale soluzione avresti adottato se dividere la curva in tre parti come appunto hai fatto, oppure avresti spezzato o suddiviso la curva con la subcrv per poi unirle.
te lo chiedo proprio perchè da tempo che in GH cerco di spezzare o suddividere due o più curve che si intersecano
ma non ho capito se sia una cosa possibile anche in GH come Rhino oppure mi sono buttato in un vicolo cieco . . . .
il massimo che sono riuscito ad ottenere sarebbe tramite i comandi di intersect un punto fra le intersezioni delle curve
spero di non aver perso tempo anche questa volta in una cosa che non è fattibile
un grazie anticipato e un grazie ancora per le soluzioni che mi hai dato
In questo caso i punti di intersezione erano proprio quelli di partenza, per cui calcolare l’intersezione era superfluo.
In generale se si deve dividere una curva con un’altra sicuramente si può partire dai punti di intersezione, poi da lì volendo si può fare lo split, ma dal punto di vista del calcolo trovare il parametro t e quindi le varie sottocurve è più efficiente.
Tra l’altro con l’operazione di split otterresti una lista di sottocurve in cui non è possibile sapere a priori quale sia l’ordine, quindi per determinare quale/i curva/e tenere occorre aggiungere degli step aggiuntivi, tipo confrontare le lunghezze, o la posizione, o le bounding box ecc.
Comunque ci sono anche altri comandi per fare questo tipo di operazioni, tipo Shatter, i vari componenti Region e altri, in alcuni casi potrebbero essere la soluzione migliore.
Diverso è il discorso se si ha a che fare con superfici, in questo caso, a meno di casi particolari, penso che fare lo split sia l’unica strada.