Risoluzione dei problemi con le operazioni booleane
I comandi booleani si possono usare con superfici e polisuperfici aperte. Il risultato ottenuto dipende dalla direzione delle normali degli oggetti. Usare il comando Dir per visualizzare la direzione. Se si ottengono dei risultati opposti a quelli desiderati, invertire la direzione della superficie con i comandi Dir o Inverti e riprovare.
Per le superfici, provare ad utilizzare prima il comando Unisci.
Per gli oggetti mesh, i passi da seguire sono gli stessi di quelli usati nei corrispondenti comandi booleani NURBS.
Nota: Il risultato dei comandi è sempre una mesh, a prescindere dal tipo di oggetto in ingresso.
Perché le operazioni booleane possono non riuscire?
Le operazioni booleane possono fallire per diverse ragioni:
Le normali alle superfici non puntano nella direzione prevista.
I punti di controllo tendono a sovrapporsi nell'intersezione dei due oggetti.
Gli oggetti presentano aree di superfici sovrapposte.
Le operazioni booleane utilizzano la direzione delle normali alla superficie per determinare quali parti conservare e quali rimuovere. Se, quando si effettua una differenza booleana, si ottiene un'unione booleana (o viceversa), ciò significa che la direzione delle normali di uno degli oggetti è orientata all'inverso rispetto a quanto previsto. Ciò accade spesso se uno o più oggetti non sono completamenti chiusi. Se un oggetto non è chiuso, Rhino non riesce a determinare quale lato è esterno e quale interno. Per questo tipo di oggetti, si usi il comando Dir per vedere la direzione in cui sono rivolte le normali e quindi, a seconda delle necessità, l'opzione Inverti per assicurarsi che la direzione delle normali sia coerente (le normali della parte dell'oggetto che considerate esterna vanno dirette verso l'esterno). Se un oggetto è completamente chiuso, le sue normali sono sempre rivolte verso l'esterno.
La coincidenza dei punti di controllo si verifica quando i punti di controllo riferiti al bordo di una superficie si trovano nella stessa identica posizione. In Rhino, ciò accade naturalmente nel vertice di un cono, nel polo di una sfera o nel caso di un piano a tre lati. È possibile anche che i punti di controllo siano stati volutamente spostati nella stessa posizione. Un punto con queste caratteristiche, che controlla l'intero bordo di una superficie, è definito singolarità.
Quando un punto di singolarità si trova nell'intersezione di due oggetti ai quali si desidera applicare un'operazione booleana, l'operazione può fallire.
La sovrapposizione di aree di superfici si verifica quando due superfici condividono la stessa area. In questo esempio, i due parallelepipedi si toccano soltanto lungo un lato. Si potrà effettuare un'Unione degli oggetti, ma Differenza ed Intersezione non potranno essere calcolate.
Oltre alle superfici sovrapposte, anche i bordi non-manifold possono causare errori.
Bordi non-manifold
Il bordi di polisuperfici o mesh che hanno più di due facce collegate ad un singolo spigolo sono non-manifold.
Nell'immagine, i bordi non-manifold delle polisuperfici, evidenziati con il comando MostraBordi.
Cosa fare
Se non è possibile impiegare le operazioni booleane su determinati oggetti, si possono usare altre tecniche per ottenere lo stesso risultato.
In questo esempio, il vertice del cono coincide esattamente con lo spigolo del parallelepipedo. Questa è una delle situazioni in cui le operazioni booleane possono fallire.
In questo caso, anziché utilizzare le operazioni booleane, si usi il comando Esplodi per separare le polisuperfici in singole superfici, se necessario. Si usi il comando Intersezione per creare le curve di intersezione tra le superfici. Per creare le parti desiderate, utilizzare queste curve per Troncare e/o Suddividere gli oggetti e quindi usare il comando Unisci per riottenere un oggetto solido.