Semplifica e rigenera curve 2d

Ciao a tutti
Volevo parlare di questo argomento e chiedere a voi esperti come affrontate questo storico problema con rhino: rigenerare e semplificare le curve in 2d entro una certa tolleranza per ottenere curve ottimizzate almeno di grado 3. Spesso mi capita di lavorare con file dei clienti in dxf o dwg con curve molto complesse o spezzate di grado 1 ecc… con inevitabili problemi nelle fasi successive di modellazione.In rhinoceros si sa bisogna partire con curve più semplici e ottimizzate possibili ma purtroppo gli strumenti messi a disposizione da rhino per le curve sono molti ma semplificano bene solo curve o policurve prive di spigoli o discontinuità.Ad esempio se abbiamo un semplice rettangolo da semplificare il risultato anche con tolleranze strette sarà di una policurva con gli spigoli arrotondati. Le discontinuità vengono smussate e arrotondate da tutti i comandi.C’è il comando"FIT"che in teoria è fatto apposta però utilizza la tolleranza angolare che è troppo restrittiva per varie morfologie di curve; come faccio a sapere qual è il valore giusto per 50 curve diverse selezionate? è assurdo e spesso infatti fallisce rovinando le curve o semplificando fuori tolleranza ecc… L’unico modo è quello di preparare la curva 2d e tagliarla in tutte le discontinuità che si vogliono mantenere e poi semplificare le curve. E’ chiaro che se abbiamo molte curve diventa una cosa impossibile e decido di farlo con altri software.In altri sw ho notato che non vengono richiesti valori di tolleranze angolari ecc… la semplificazione avviene solo entro una tolleranza impostata(0.01 ;0.1 ecc) rispetto alla curva iniziale mantenendo gli spigoli e le discontinuità più pronunciate. Ho visto in giro che ci sono alcuni script che semplificano le policurve ma non funzionano bene… È possibile fare uno script dedicato? Oppure bisogna rassegnarsi ed utilizzare altri sw?
Scusate per il poema ma l argomento è abbastanza delicato XD
Grazie in anticipo!

Il problema è che quella che tu definisci discontinuità in effetti non lo è assolutamente. E’ infatti una continuità G0.Di posizione. Curve discontinue non si toccano.
Una poly di grado 1 è una serie di curve di grado 1 in continutà G0.
In teoria quando tutto è ancora in questa fase si dovrebbe generare un vettore fra inizio e fine di ogni retta e valutarne l’angolo con il successivo. Mettere un punto se l’angolo è maggiore di…
Riunire tutte le curve con Join e splittarle tutte con i punti ricavati prima.
…in teoria…

Rhinoceros con il comando “Fit” in teoria dovrebbe fare quello che dici… Cioè entro un certo angolo di soglia trova e smussa le continuà G0 delle policurve con la tolleranza impostata. Il problema è che il comando non si può usare senza stare molto attenti alle curve di input, al loro grado e hai vari gradi di continuità presenti… Ecc. In parole povere ogni volta è un casino e spesso bisogna fare prove su prove e controllare che i risultati non siano fuori tolleranza. Forse è per via della struttura delle nurbs che non esiste semplicemente un comando unico per semplificare le curve entro una tolleranza? Ogni volta si è costretti a fare accurate ispezioni delle curve per capire quale comando non fallirà la semplificazione… con conseguenti perdite di tempo e rallentamento del flusso di lavoro. Per me avere delle buone curve prima del 3D é molto importante e spero che rhinoceros si migliori in futuro. Per adesso possiamo solo confidare in qualche "cervellone " che tiri fuori un script ad hoc! :grin::grin::grin:

Allega una di queste curve. Solo così si può dare un eventuale aiuto
Vittorio

1 Mi Piace

Direi di no… o al massimo ni.
Infatti il problema è quello che hai giustamente notato.
Pensavo a una strada completamente diversa: portare a Deg1 tutto quello che non lo è e poi agire come descritto sopra.
Vero che fra il dire e il fare…
Come dice il Prof. Vittorio: posta un po’ di curve varie…giusto per vedere come approcciare.

Buongiorno
ho preparato un paio di esempi:
1test curve.3dm.pdf (540,9 KB)
2test curve.3dm.pdf (103,6 KB)
File Rhino
test curve.rar (6,0 MB)

Lo scopo sarebbe quello di trovare il modo di semplificare velocemente le curve all’interno di Rhino senza dover ricorrere a SW esterni o lavorare singolarmente su ogni curva… Il risultato finale è evidente e basta guardare le superfici estruse per capire la differenza…

Spero di essermi spiegato. Questi sono esempi di situazioni particolari ma vorrei trovare il modo di risolvere con il rinoceronte! :slight_smile:

A mio parere non sembra un gran risultato. Le parti curve vengono approssimate con bezier grado 2, come da classica codifica dei caratteri. Gli archi poi non sono neanche in tangenza (punti di controllo non alleneati) … :scream:

Si vabé… Infatti nessuno ha chiesto di controllare l accuratezza del logo. Ho chiesto se è possibile semplificarlo in qualche modo velocemente con rhino visto che a volte i file esportati dai clienti sono penosi e inutilizzabili… Almeno così il file è un pò più decente. Se poi vogliamo controllare la precisione e la continuità di più di 100 curve dove non serve… Ci vuole una settimana!! :sunglasses: