Quesito raccordo lineare vincolato

ciao a tutti,
quesito di carattere geometrico:
ho 2 rette sghembe; (immaginate due tubi)
devo individuare il segmento lineare che le congiunga sapendo di vincolare l’angolo che si forma tra ciascuna delle due rette e il segmento di congiunzione ad una angolo fisso di 45°

pensavo di cavarmela costruendo i due coni con assi dati dalle due rette di partenza e vincolando l’angolo di apertura dei coni a 45° per poi muoverli con record history e vedere quando la loro intersezione formasse un segmento lineare…

ma sembra non essere il processo giusto…

rette sghembe.3dm (23,8 KB)

rette sghembe2.3dm (42,0 KB)

per tentativi individuat il segmento

sarebbe bello uno script che estragga il segmento senza dover andare per tentativi di avvicinamento…

In realtà, tra quella rossa e quella azzurra i gradi sono 44.886.
Ho fatto un paio di tentativi ma la soluzione definitiva non l’ho trovata…

Ma certo, era un approssimazione dei 45 gradi perché come avevo scritto ero arrivato al segmento per tentativi di avvicinamento……

la richiesta era invece quella di trovare uno script per automatizzare il processo

Non è automatico, ma forse così è un po’ più semplice.
join.gh (12,1 KB)

ciao Leopoldo!
ho provato la tua definizione di GH ma il risultato che mi formula non soddisfa i 45 gradi di angolo

forse sbaglio ad usarlo?

mi correggo, la definizione è corretta ma lascia l’utente a cercare in modo interattivo il segmento visionando in tempo reale gli angoli…
ma la soluzione non è automatica nè facile da rintracciare

Che non fosse automatica l’avevo detto.
Io la soluzione l’ho trovata abbastanza velocemente.
join a.gh (11,9 KB)

1 Mi Piace

Grazie Leopoldo, ho provato la nuova definizione e testandola su un nuovo set di rette non traguarda il risultato voluto

forse sbaglio qualcosa?


set diversi.3dm (29,5 KB)

join b.gh (19,6 KB)

join b2.gh (14,0 KB)

continuo a non ottenere il risultato

ho tolto la parte del piping (che rallenta l’esecuzione della definizione) e sostituito 2 slider per poter muovere in modo immediato il risultato ma così sembra che si debba “cercare” la soluzione per tentativi

non so come si potrebbe inserire un loop ricorsivo della modifica degli slider che si fermi quando la condizione degli angoli è traguardata =45°


2024-07-04 10_46_25-Window
linea angolata.gh (17,9 KB)
Questo script fa una sorta di brute-force, da linea A verso linea B (e crea un grafico con loft) e viceversa da linea B a linea A (e un altro grafico), poi interseca i due grafici e trova la soluzione.
Si possono specificare i due angoli, anche diversi da 45°.

Forse funziona pure con curve non lineari, ma non ho provato…

Edit: ad angoli acuti sballa un po, bisogna aumentare la suddivisione iniziale, portatela a 500 anziché 100…


Secondo me, almeno per il caso con semplici linee, si può trovare una soluzione con un calcolo diretto, senza fare brute-force…


Interessante!

1 Mi Piace

Una soluzione per “automatizzare” lo script di superLeo potrebbe essere questa:


join2.gh (12,4 KB)

uso l’integer per arrotondare i valori, altrimenti l’eguaglianza non funziona per i 45,01 gradi ad esempio. La distanza iniziale setta ogni quanto testare i punti sulle linee, quindi abbassala a tuo rischio e pericolo.
Provala su altre linee anche e se funziona, in realta’ uno script python potrebbe velocizzare notevolmente la cosa e fermarsi quando pesca la prima soluzione utile.

edit: aggiunto alla fine un flatten e remove duplicate lines (per questo serve kangaroo, ma dovrebbe shippare con GH ormai).

ragazzi siete fantastici! impareggiabili nella generosità delle proposte!

Alex, ho provato la tua definizione ma mi ha mandato in blocco rhino e l’ho dovuto tirare giù… :slight_smile:

Riccardo la tua definizione mi funziona benone!! GRAZIE ANCORA A TUTTI! TOP

Dai, uno strumento più serio.
e… niente… ha vinto il metodo iterativo ancora una volta.

Script c# che richiede angolo iniziale e finale e punto di intersezione approssimativo da dove iniziare a cercare la soluzione:

linea angolata 2.gh (17,6 KB)

Funziona anche con curve generiche:

Se ti basta approssimare al cazzesimo di grado…


45gradi.gh (15,0 KB)

2 Mi Piace

alla fine ha vinto Galapagos? :smile:

Ho ripreso l’idea del cono espressa da Marco.
Muovendo il cono, anche con due rette praticamente perpendicolari si trova facilmente la soluzione.
Chissà se non sia possibile risolverlo con una funzione matematica.
join c.gh (15,0 KB)

1 Mi Piace

Eccola:


linea angolata.gh (18,4 KB)

Interessante che quindi la soluzione si possa raggiungere a prescindere dalla “scala” del problema, tutti i calcoli sono solo di angoli.

Due rette sghembe hanno comunque un piano che risulta parallelo a entrambe.
Si crea quel piano a metà strada tra le due rette, in modo che ci sia una simmetria di rotazione tra le due rette… in questo modo il problema “si dimezza”, ogni successiva costruzione è più semplice (compaiono angoli retti, utili a fare pitagora e trigonometria con cateti comuni…)
… quindi si misurano gli angoli e si procede con solo con quelli, alla fine con un piano in centro al problema opportunamente ruotato si trovano le intersezioni corrette.

5 Mi Piace