Naar de inhoud

Wat is het verschil tussen mesh-modelleren en NURBS-modelleren?

Wat is het verschil tussen mesh-modelleren en NURBS-modelleren?

English version: What is the difference between mesh modelling and NURBS modelling?

Twee programma’s kunnen hetzelfde onderdeel tekenen en het toch anders opslaan. Het ene bewaart de vorm als een huid van driehoekjes, het andere als oppervlakken die met wiskunde zijn vastgelegd. Dat verschil bepaalt wat je later met het model kunt doen: meten, afronden, uitwisselen en bewerken.

Wat een mesh is

Een mesh-model is een schil van driehoekjes. Een rond gat wordt een rij platte stukjes, en hoe fijner je die maakt, hoe ronder het lijkt. Van dichtbij blijven de knikken zichtbaar, en een echte cirkel bestaat in zo’n model niet: het is een veelhoek met veel zijden. Meet je zo’n gat op, dan krijg je een waarde die net naast de bedoelde maat zit, en een afronding is een trapje van facetten in plaats van een vloeiende overgang.

Voor beeldwerk is dat geen probleem. Een render, een animatie of een 3D-print werkt met driehoekjes, en bij een print wordt het model toch in laagjes opgebouwd.

Wat een NURBS/B-rep-model is

Een NURBS/B-rep-model slaat geen driehoekjes op, maar oppervlakken: een plat vlak, een cilinder, een kegel, een bol, een torus, en voor vrije vormen een oppervlak dat met formules is beschreven. Die oppervlakken zitten aan elkaar vast in een bouwwerk van randen en aangrenzende vlakken, een B-rep. Een gat van 10 mm is dan precies 10 mm, een cilinder is rond op elke zoomstand, en een afronding is een echte afronding.

In de praktijk kom je voor hetzelfde ook de woorden exact modelleren en B-rep-modelleren tegen. Het is hetzelfde beginsel: rekenen met oppervlakken in plaats van met driehoekjes.

Wat NURBS precies is

NURBS staat voor non-uniform rational B-spline: een kromme of een oppervlak dat met een handvol controlepunten en gewichten wordt vastgelegd, zodat de computer het op elke zoomstand opnieuw kan uitrekenen. Een autospiegel, een schoenzool en een kuipstoel zijn geen cilinder of bol, en daarom worden ze met NURBS beschreven. De meeste NURBS-modellen bevatten trouwens ook gewone analytische vlakken: een blok met een gat erin is een plat vlak plus een cilinder.

Wat je ervan merkt

Het verschil wordt pas echt zichtbaar bij het uitwisselen en bij het aanpassen. STEP bewaart echte oppervlakken, dus een ander programma kan het model opnieuw bewerken en een maat wijzigen. STL en 3MF bewaren alleen driehoekjes, en daar valt weinig meer aan te veranderen. Een mesh is prima om te printen of te renderen; een NURBS-model is wat je nodig hebt als iemand later een passing wil aanpassen of een tekening met maten wil maken.

Ook het rekenhart van een programma volgt die keuze. Een kernel die met NURBS-oppervlakken werkt, kan een afronding plaatsen waar twee vlakken samenkomen, een wand dikte geven en een model doorrekenen voorbewerking. Een mesh-kernel kan dat niet of maar half, want er zijn geen oppervlakken om aan te rekenen, alleen driehoekjes.

Waarom een programma toch voor mesh kiest

Omdat het eenvoudiger is. Een mesh-kernel is kleiner, sneller te bouwen en vrij van de licentievoorwaarden die aan de grote NURBS-kernels hangen. De bekendste zijn commerciële bibliotheken als Parasolid en ACIS, en het open-source OCCT; die zijn groot, oud en duur om te onderhouden. Wie snel een modelleerprogramma in elkaar wil zetten, begint daarom vaak met driehoekjes.

De prijs betaalt de gebruiker. Fillet op een ronde rand, STEP inlezen, een model van iemand anders aanpassen: het zit er allemaal niet in, ook wanneer de knoppen op het scherm hetzelfde staan als in een programma dat het wel kan.

Hoe je het verschil ziet

Zoom in op een rond gat. Blijven de randen glad, dan rekent het programma met NURBS; zie je facetten, dan is het een mesh. Een tweede controle: laat het programma een gat van 10 mm tekenen en meet het na. Een mesh-kernel geeft een uitkomst die net afwijkt, een NURBS-kernel geeft 10,00.

De beschrijving van NURBS en B-rep staat in de documentatie van OCCT. Wat een kernel verder doet en welke open-source kernels er zijn, staat in Wat is SMLib, en hoe verhoudt het zich tot OCCT?.

3 reacties

Laat een reactie achter

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *