Articolo pubblicato in Progettare n° 235, giugno 2000, VNU Business Publications, Milano
Alcune linee guida per la modellazione di forme vincolate. La qualità del modello matematico è fortemente determinata dalla qualità delle curve sulle quali vengono generate le superfici.
Dal punto di vista geometrico, la progettazione meccanica può distinguersi in progettazione di parti e di forme.
Il “part design” indirizza soprattutto le richieste del settore Fabbrication & Assembly ed è caratterizzato da oggetti di forma relativamente semplice, ma in gran numero e assemblati in modo da costituire il prodotto finale. Il tipo di modellazione più adatto è il solid modeling.
Lo “shape design”, invece, riguarda più specificatamente l’Automotive per le carrozzerie, l’Aerospace per le fusoliere e le ali, lo Ship Building per gli scafi delle navi ed è caratterizzato da forme complesse. Il ricorso alle superfici, in tal caso, è suggerito sia dal maggior dominio di rappresentazione del surface modeling rispetto al solid modeling, sia dalle notevoli possibilità di deformazione "controllata" che possiedono le superfici.
I sistemi CAD generalmente consentono due tipi di tecniche di shape design: analitiche e sintetiche. Nel primo caso si modellano le superfici a partire da una serie di punti, i quali possono essere o calcolati o rilevati sperimentalmente tramite una qualunque apparecchiatura in grado di restituire, sotto forma digitale, il risultato di una misura (tomografia computerizzata, risonanza magnetica, ultrasuoni, ecc...). Tali superfici devono soddisfare due esigenze in genere contrastanti: approssimare il più possibile i punti dati e presentare continuità in tangenza e curvatura. Il compito del bravo designer è quello di ottenere il giusto compromesso fra tali diversi aspetti. Nel secondo caso, invece, le superfici che delimitano l'oggetto non sono vincolate al rispetto di un set di punti di input, bensì possono essere create liberamente dal progettista seguendo unicamente la sua idea progettuale, normalmente ispirata più da motivi estetici che condizionata da motivi tecnico-funzionali.
In entrambi i casi, la deformabilità delle superfici create, unitamente alla possibilità di controllarla, è il requisito fondamentale richiesto allo schema di rappresentazione matematica delle superfici utilizzato dal sistema CAD. Ma mentre nell'approccio di tipo sintetico la deformabilità delle superfici è utilizzata in maniera intensiva, per ottenere varie "versioni" della forma da porre a confronto, per scegliere la soluzione finale, nell'approccio analitico la deformabilità è asservita sostanzialmente all'esigenza di "lisciatura" o anche, come si dice in gergo tecnico, di buona “filanza” delle superfici. In altre parole, si può parlare di modellazione "libera" nel caso dell'approccio sintetico (free form design) e di modellazione "vincolata" (constrained form design) nel caso dell'approccio analitico.
In queste note si suggeriscono alcune linee guida per la modellazione tridimensionale di forme vincolate, basate su proprietà generali delle spline, facendo riferimento al sistema Catia e, in particolare, alle funzioni arc, spline/spline2, patch, surf1, net1, net2.
L'input è una nuvola spaziale di punti, i quali devono essere ripartiti opportunamente in insiemi piani ordinati di punti (constraint di punti), da cui si otterranno poi le superfici, direttamente o no, seguendo due metodi fondamentali.
Nel primo metodo, i punti del constraint iniziale sono interpolati da curve piane poliarco (spline o no), tramite una delle funzioni spline/spline2, curve2 + pts cst. Si preferiscono le curve piane, in quanto più facilmente modificabili per la lisciatura. Tali curve non sono costruite come singoli archi, con la funzione arc, poichè gli archi in Catia sono curve di Bezier di grado massimo 15 e quindi possono interpolare al massimo 16 punti, mentre generalmente i punti da interpolare sono molto più numerosi. [1] . Quindi si costruisce la superficie d’interpolazione delle curve così ottenute.
Nel secondo metodo, invece, tramite la funzione net2, si crea direttamente la superficie d’interpolazione della nuvola iniziale di punti. Questo metodo è preferibile quando le curve d’interpolazione dei punti iniziali non hanno tolleranze particolarmente buone, oppure quando esistono punti che non sono inseribili in piani, per modo che non è possibile interpolarli con curve piane.
Ove sia possibile, dei due metodi, è preferibile il primo e ad esso faremo riferimento nel seguito.
I punti di input possono provenire o da calcoli o da misure fisiche. Nel primo caso le superfici sono più precise e approssimano più facilmente i punti, poiché questi rispecchiano relazioni matematiche, mentre nel secondo caso sono meno precise, sia perchè i punti di input soffrono degli errori di misura sia perchè, essendo in genere numerosi, non tutti vengono utilizzati per la costruzione delle curve. I punti esclusi, però, non vengono cancellati, bensì devono essere mantenuti per verificare, tramite funzioni interattive o batch sviluppate ad hoc, lo scostamento della superficie modellata rispetto ad essi.
In ogni caso è molto importante minimizzare il numero dei punti del constraint iniziale, al fine di ottenere modelli più semplici e curve più lavorabili.
Accrescere la lavorabilità delle curve d’interpolazione significa aumentarne la deformabiltà, al fine di migliorarne la filanza.
Le curve d’interpolazione iniziali possono essere curve poliarco di tipo spline o no. In quest’ultimo caso è conveniente approssimarle con spline, perchè le spline sono deformabili globalmente, oltre che localmente, cioè a livello dei singoli archi componenti.
Infatti, come è noto, le spline sono calcolate globalmente rispetto agli archi costituenti, perciò una deformazione prodotta in uno dei nodi della spline si propaga a tutta la spline. Dalla definizione matematica delle spline discende la seguente proprietà: maggiore è il numero di archi, minore è l'influenza sull’intera spline della deformazione prodotta in un suo punto. La rigidezza delle spline, quindi, aumenta all’aumentare del numero di archi costituenti, ovvero del numero di nodi. La figura 1 illustra tale proprietà, applicando lo stesso spostamento al medesimo nodo in due spline a 19 e 4 archi. Per rendere comparabili le deformazioni prodotte, la spline a 4 archi è stata costruita su un constraint di punti (nodi) derivato da quello della spline a 19 archi, eliminando da questa 15 nodi. Dunque, per rendere più lavorabile la curva d’interpolazione iniziale, occorre trasformarla in una curva col minor numero possibile di archi, minimizzando però lo scostamento della nuova curva rispetto al constraint dei punti di input. La curva iniziale d’interpolazione si trasforma così in una curva approssimante.
Esistono, in Catia, due metodi per ridurre il numero di archi di una curva: l'approssimazione indiretta e l'approssimazione diretta. In entrambi i casi la curva ottenuta è una spline. Quindi, nel caso in cui la curva iniziale non sia una spline, si otterrà contemporaneamente la riduzione del numero di archi e l’approssimazione della curva con una spline.
Tanto per avere un'idea dell'entità della riduzione del numero di archi che è possibile effettuare, mantenendo l’andamento della curva iniziale, si consideri che una curva aperta di 25 archi può essere ridotta ad una curva di due archi soltanto. Naturalmente il numero e la posizione di tali archi dipendono dall’irregolarità di forma della curva iniziale. Non esiste una regola precisa che aiuti in tali scelte, se non la sensibilità e l'esperienza dell’operatore. Tuttavia, come sarà meglio posto in evidenza più avanti, si può affermare che se la curva iniziale presenta tratti con curvature piuttosto grandi (raggi di curvatura piccoli), affinchè la spline approssimante conservi tali curvature, occorrerà scegliere i suoi nodi coincidenti con gli estremi di detti tratti, altrimenti si rischia di "rettificare" troppo la curva in quei tratti.
L’approssimazione indiretta consiste nel fare il "break" della curva d’interpolazione iniziale in uno o più punti. Ciascuna delle parti così ottenute è quindi approssimata con un arco (funzione arc + approxim). Questi archi sono concatenati, ottenendo così una curva concatenata. Infine, assumendo come nodi gli estremi degli archi della curva concatenata, con la funzione spline/spline2 + approxim si approssima quest'ultima con una spline con il medesimo numero di archi .
L’approssimazione diretta è più semplice e consente di ottenere risultati più precisi, cioè una curva con uno scostamento dal constraint iniziale minore rispetto al caso precedente. La curva iniziale, che può essere una spline o no, viene approssimata con una spline a minor numero di archi direttamente tramite la funzione spline/spline2 + approxim. Gli archi costituenti la spline approssimante possono essere ottenuti scegliendo in tre modi diversi i loro estremi, cioè i nodi della spline da creare:
a) si stabilisce il numero di nodi della spline approssimante. Il sistema posiziona tali punti automaticamente in maniera equidistanziata sulla curva iniziale, cioè sceglie automaticamente gli archi costituenti la spline;
b) si eliminano i punti del constraint della curva iniziale che non interessano e si lasciano soltanto quelli che definiscono i nodi della spline approssimante;
c) si selezionano come nodi della spline approssimante punti della curva iniziale precedentemente creati su di essa e non coincidenti con punti del constraint della curva iniziale.
Nel caso a) si può scegliere il numero di archi ma non il loro posizionamento. In figura 2 sono state create, con tale sistema, a partire da una curva a 53 archi, spline con 5,6,7,8 e 9 archi. Dal confronto delle spline ottenute si possono evincere alcune osservazioni:
gli scostamenti rispetto alla curva originaria sono minimi o nulli nei tratti caratterizzati da piccola curvatura e da un’evoluzione dolce della tangente, mentre diventano sensibili in quelli a grande curvatura con rapidi mutamenti di tangenza (zone inferiori sinistra e destra);
l'aumento del numero di archi non porta necessariamente ad una migliore approssimazione della curva originaria, ed è pertanto fondamentale la posizione dei nodi. Per esempio, tra la spline a 5 archi e quella a 6 archi, è la prima che approssima meglio la curva originaria.
Nei casi b), c), al contrario, che possono coesistere, si possono scegliere sia il numero di archi sia il loro posizionamento: quest'ultima strada è utile quando, per esempio, occorre imporre alla spline approssimante il passaggio per alcuni punti stabiliti o uno scostamento controllato dalla curva originaria.
Una regola, utile per la scelta degli estremi degli archi della spline approssimante, è la seguente: “per ottenere una spline approssimante che non si discosti molto dalla curva originaria nei tratti a curvatura più grande, occorre scegliere i nodi della spline in corrispondenza dei punti estremi di detti tratti ove si manifesta un cambiamento apprezzabile di tangenza”.
La figura 3 mostra in maniera palese che la scelta casuale dei nodi produce approssimazioni inaccettabili. La figura 4 dimostra, per contro, che una prima applicazione della regola proposta dà risultati già buoni. Nella figura 5 risulta evidente che una piccola variante nella scelta del posizionamento dei nodi, della spline da ottenere, produce un miglioramento nell'approssimazione. Infatti, l’arretramento del nodo 6 e lo spostamento del nodo 3 verso l'alto consentono di ottenere una spline che approssima meglio la curva iniziale, sia lungo l'arco 2-3 sia lungo l'arco 4-5.
A differenza dal caso a), nei casi b), c) l'aumento del numero di archi, congiuntamente ad una scelta oculata del loro posizionamento, consente di ottenere migliori approssimazioni della curva originaria. Si ricordi, però, che il numero di archi deve essere sempre il minimo indispensabile, onde ottenere una spline meno rigida, ovvero più deformabile globalmente.
A titolo di esempio, in figura 6 viene riportata la spline approssimante creata per approssimazione diretta (caso b) aumentando da 6 a 9 il numero di archi. E' evidente il miglioramento del "fitting" della nuova spline rispetto alla curva originaria.
Figura 1- Elasticità delle spline.
Figura 2 - La curva originaria è approssimata, direttamente (caso a), con spline a 5,6,7,8,9 archi.
Figura 3 - La curva originaria è approssimata con una spline a 6 archi, scegliendo casualmente i suoi nodi.
Figura 4 - La curva originaria è approssimata con una spline a 6 archi, scegliendo i suoi nodi tenendo conto delle zone a grande curvatura.
Figura 5 - Ottimizzazione della spline di fig. 4, spostando i nodi 3 e 6.
Figura 6 - Miglioramento del fitting con la curva originaria tramite una spline derivata da quella di figura 5 aumentando a 9 gli archi.
IBM –Italia DIR.M.A.P. – “ B-Splines workshop” ADB / Dir. M.I.D. V2, r0 6/89
L. Nicotra – “ Catia Shape Design” – Memoria Tecnica A81895-01-MT Elettronica S.p.A., Roma 1994.
S. Breccia – “Algoritmi per grafica mediante elaboratore”. Scuola Superiore “G.Reiss Romoli” L’Aquila, 1988.
G. Farin – “Curves and Surfaces for Computer Aided Geometric Design” – Academic Press Inc
[1] Questa è una limitazione comune a tutti i sistemi CAD, variando semplicemente dall’uno all’altro il grado massimo ammesso per il tipo di arco su cui è basato il rispettivo modellatore per superfici