Trimmare con Rhino 6

… Dopo aver faticato non poco a trovare un titolo che non turbasse il sommo Discourse … :crazy_face:

Ciao

… Sto sperimentando … :wink:

Ho provato Rhino 6 su un tipico caso in cui Rhino 5 fatica a trimmare:

trim2.3dm (52,8 KB)

Si tratta di trimmare le superfici verdi usando quelle viola.
Con tolleranza 0.1, qui non le trimma, esattamente come fa Rhino 5.

Per trimmare devo estrarre il bordo e trimmare con la curva, allora va bene.

Qualcuno sa per caso da cosa dipende questa difficolta’ a trimmare ?
( Io finora non sono riuscito a raccapezzarmi … :confused: )

( Le superfici vengono da Rhino 5 )

Grazie

Ciao Emi,
credo sia colpa della tangenza della superficie.
Credo che in quel punto le normali delle due superfici si trovino a creare una situazione critica per Rhino per cui risulta difficile trovare l’intersezione.
So che mi dirai che è un workaround, ma se prima di lanciare il comando (o anche mentre il comando è in esecuzione) selezioni la superficie da trimmare e sub-selezioni lo spigolo della superficie che trimma, il comando funziona senza dover star li ad estrarre la curva (almeno è un’operazione più rapida).

Ciao Emilio, sembra che Rhino non veda proprio l’intersezione delle due superfici …

Fabio.

Ciao Lucio !

Si’, in effetti uso il solito scriptino, che in questo caso seleziona una curva o un bordo e lancia Trim.

Parlando di estrarre il bordo volevo solo spiegare bene la procedura … :smiley:

Quanto alle normali, vero. Le superfici sono in tangenza, ma nella maggior parte dei casi questo non
impedisce a Rhino di trimmare … :confused:

Grazie !

Ciao Fabio !

Giusto, non provo mai a fare l’intersezione in questi casi.
Probabilmente e’ quello il problema, dato che credo che Trim usi l’intersezione.

Ho provato adesso: la distanza massima del bordo dalla superficie da tagliare e’ meno di 0.0005.

A questo punto sarebbe bello sapere la tattica di Rhino in questi casi.
Considerando che ho provato anche con tolleranza 0.1, secondo lui c’e’ o non c’e’ intersezione ?

Grazie !

Buon sabato !

La cosa si fa interessante :slight_smile: , almeno per i fillettari come me. :wink:

Mi sono ricordato di un leggendario test-command:

Che a quanto pare e’ ancora congelato (perche’ ?) a livello ‘Test’ … Ma almeno sulla 6 funziona. :slight_smile:

Ho provato ad usare TestSphericalPatch per il fillet sferico, e senz’altro il risultato e’ molto megilo rispetto ai pezzi di sfera raffazzonati che metto insieme io di solito.

trim6b.3dm (39,4 KB)

In questo file, con il patch sferico Rhino taglia 1 fillet su 3.
Qui io misuro uno scostamento massimo inferiore a 10e-6.
Eppure Trim cocciutamente si rifiuta di tagliare.

Huston, abbiamo un problema … ( veramente sarebbe Seattle … )
O sono io che come sempre non capisco una mazza ? :confused:

EDIT

Scusate, volevo dire 1e-6
Non so nemmeno piu’ scrivere un numero … mi dovranno pensionare per manifesta demenza senile …

Ah bene, ignoravo questo comando test, buono a sapersi, potrebbe tornare utile!

Ciao Lucio.

Avevo visto sul forum USA la discussione da cui era nato il comando.
Mi ricordo che il famoso ‘jim’ aveva chesto ripetutamente che questa funzionailta’ venisse inglobata nei normali comandi di fillet … e in effetti la cosa avrebbe un suo senso.
In ogni caso e’ certamente utile, anche se per ora e’ nel limbo dei comandi test.
Speriamo che non sia cestinata e magari appaia in qualche forma con pieno titolo nella 7 WIP. :slight_smile:

Secondo me a volte si dimenticano di convertire il comando… magari funziona ma sono troppo presi da altro (io ho una tassa di roba quasi finita da ultimare ma viene sempre scalzata dall’ultimo lavoro urgente…)

1 Mi Piace

Penso anch’io.
Trattandosi poi di fillet, quindi roba piuttosto ‘MCAD’ … hehehe … :smiling_imp: :smile:

Una considerazione.

L’unico bordo che trimma e’ il bordo non trimmato del patch sferico.
Infatti su quel bordo Rhino trova la sua brava intersezione

Sembra che Rhino abbia problemi con intersezioni di superfici tangenti su bordo trimmato.
No ? :slight_smile:

Io ho provato a costruire lo spigolo sferico utilizzando un revolve.
Vede le intersezioni e trimma correttamente.
Trim_Lucio.3dm (49,5 KB)
A questo punto non credo sia un problema di tangenza ma solo di scostamento dei bordi.
Il trim tramite subselection del bordo dello spicchio fa una proiezione del bordo sulla superficie per poi tagliare mentre il trim con selezione tra superfici, non trovando un’intersezione continua (dovuta ad uno scostamento minimo tra spicchio e fillet) fallisce…
Ora, capire come mai non si fa piacere delle intersezioni che dovrebbero essere in tolleranza, credo solo il Giuspa possa dirlo…
Anche perchè, una volta trimmate le superfici con la subselezione dei bordi-spicchio, facendo un join le superfici si uniscono senza errori (quindi i tagli sono in tolleranza).

Ciao Lucio

Giusto. In questo caso si puo’ usare una superficie non trimmata, ma nel caso generale ci possono essere dei bordi trimmati.

Se parli di pura distanza del bordo dalla superficie, non credo sia solo quello.
Ho fatto un’altra prova, con un fillet ‘normale’, non trimmato.

trim3.3dm (101,9 KB)

Taglia benissimo anche con distanze oltre il decimillesimo. mentre il patch di TestSphericalPatch,
sui bordi trimmed non taglia con distanze 1000 volte minori.

EDIT:
No, dovevo dire oltre 1,000,000 di volte minori
/ EDIT

… Sempre ammesso che CrvDeviation sia affidabile qui (non so se risente della tolleranza assoluta … :confused: )

Si’ … sembra anche a me che faccia qualcosa del genere …

Certo.
… Sembra che per l’intersector ci sia differenza tra bordi trimmati e non … boh … :confused:

Esattamente. :slight_smile:

Probabilmente quella superficie “patch” ha dei problemi di qualche tipo… ho provato ad allungarla e ritrimmarla sugli stessi punti… le curve risultanti si scostano e hanno dei punti di controllo differenti… in ogni caso non riesce a trovare alcuna intersezione anche dopo aver rifatto la trimmatura dei bordi…
Le ho provate tutte…
Getto la spugna…

Nono lo deve dire chi lavora sul brep/brep intersect… aggiungo su Youtrack e chiedo se è un caso noto. Sono curioso pure io!

Ok, proviamo da zero, a mano. :slight_smile:

trim4b.3dm (74,1 KB)

Date 3 superfici di fillet, cerco le isocurve alle intersezioni dei bordi e disegno la sfera
( Vedi l’altra discussione su come disegnare la sfera … )

Trimmo la sfera con le 3 isocurve e ottengo il patch.

Ora provo a trimmare i fillet rettilinei usando il patch.
Non ne taglia uno ! Anche con tolleranza 0.1

Se cerco la distanza dei bordi del patch dai fillet rettilinei, ottengo uno scostamento nell’ordine di 10^-4
e due nell’ordine di 10^-14 (quelli lungo delle isocurve del patch)

Dopo aver usato ShrinkTrimmedSrf sul patch, riesco a tagliare 2 fillet, ma non il terzo (per cui uso l’unico bordo trimmato rimasto)

Il risultato non cambia: i bordi non trimmati tagliano, quelli trimmati no. :slight_smile:

Grazie anche a Giuseppe per l’interessamento: :grinning:

Ciao !

… Continua

Ciao

Ho provato a sostituire il patch generato da TestSphericalPacth con una polisuperficie,
in modo che i bordi non risultassero trimmati (tramite script: c5-spherep2.py (3,6 KB) )
Cosi’ sembra che Trim funzioni:

trim5.3dm (63,3 KB)

Si, confermo che così funziona.
Rimane sempre l’amaro in bocca sul motivo per cui l’intersector non riesca a trovare una soluzione in un caso così “comune”.
Ti ricordi che una volta appariva il messaggio che Rhino aveva alzato le tolleranze per portare a termine il comando?
Magari in questo caso basterebbe segnalare che l’intersector ha dovuto operare fuori tolleranza (anche se in realtà così non sembra essere) per arrivare ad una soluzione…

Ciao Lucio

Mi piacerebbe provare con una superficie non razionale, non vorrei che anche quello … aiutasse :wink:
Se riesco (e se mi ricordo) faccio poi una prova …

EDIT

Almeno da una prima prova, sembra che non cambi niente … continua a non trimmare.

Ciao Giuspa

Scusa … mi sono ricordato di questo problema …
E’ possibile avere il riferimento su YT ?
… Sono parecchio imbranato a cercare li’ … :blush: ( … Anche ad arrivarci, veramente … )