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).
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 ?
La cosa si fa interessante , almeno per i fillettari come me.
Mi sono ricordato di un leggendario test-command:
Che a quanto pare e’ ancora congelato (perche’ ?) a livello ‘Test’ … Ma almeno sulla 6 funziona.
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.
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 ?
EDIT
Scusate, volevo dire 1e-6
Non so nemmeno piu’ scrivere un numero … mi dovranno pensionare per manifesta demenza senile …
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.
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…)
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).
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 … )
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 …
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…
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.
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:
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…
Scusa … mi sono ricordato di questo problema …
E’ possibile avere il riferimento su YT ?
… Sono parecchio imbranato a cercare li’ … ( … Anche ad arrivarci, veramente … )