Brīvformu virsmas modelēšana

thumb|250px|Virsma ar atskaites punktiem
**Brīvformu virsmu modelēšana** ir CAD (*computer-aided design*) un CAID (*computer-aided industrial design*) sistēmu iespēja datorgrafiski modelēt brīvu, liektu, vienmērīgu, sarežģītu formu virsmas.

## Modelēšanas principi

Modelēšanas tehnoloģija ietver divas galvenās jomas – estētiskās virsmas (A klases) virsmas, kuras nodrošina arī konkrētu funkciju, piemēram, automašīnu virsbūves un citas patērētāju produktu ārējās formas, kā arī tehniskās virsmas, kas nepieciešamas tādām komponentēm kā liektas turbīnu lāpstiņas un citas ar šķidruma dinamiku saistītas inženierijas sastāvdaļas.

CAD programmatūrā izmanto divas galvenās pamatmetodes virsmas veidošanai. Vienā no tām izmanto *spline* (brīvi uzvilktas, liektas līnijas) instrumentu, no kuras tiek "izvilkta" nepieciešamā trīsdimensionālā virsma (līnija kalpo kā virsmas šķērsgriezums), vai arī tiek lietots *mesh* (tīklojuma) instruments, kurā līnijas veido konkrētu tīklu, ko aizpilda ar trīsdimensionālo virsmu.

Otra metode ir tiešas trīsdimensionālas virsmas veidošana, kurā izmanto manipulācijas ar punktu un polu koordinātēm, savstarpējām atrašanās vietām.

right|300px|thumb|Ar poliem modelēta virsma

No šīm sākotnēji radītajām virsmām turpina veidot sarežģītākas formas, izmantojot tādus modelēšanas instrumentus kā *offset* (nobīde), *grouping surfaces* (virsmu savienošana) un *bridging* ("tilta" veidošana starp virsmām), kas rada leņķisku pagarinājumu abām virsmām, veidojot vienmērīgu un vienotu virsmu.

## Virsmas

Brīvformas virsmas tiek izmantotas CAD un arī citās grafiskajās programmatūrās, lai varētu definēt 3D ķermeņu ārējo apvalku. Brīvformas virsmām nav stingri noteiktas radiālās dimensijas atšķirībā no vienmērīgas, regulāras virsmas, kādas ir plaknēm, cilindriem un koniskām virsmām. Tās tiek izmantotas, lai raksturotu tādas formas, kādas piemīt turbīnu lāpstiņām, kā arī automašīnu un laivu korpusiem. Sākotnēji izstrādātas autobūves, aviācijas un aerokosmiskajām nozarēm, brīvformas virsmas mūsdienās tiek plaši izmantotas visās inženierijas un dizaina sfērās, sākot ar patēriņa preču produktiem, līdz kuģu būvei.

Lielākā daļa mūsdienu sistēmu izmanto NURBS (matemātiska modeļa virsmu) sistēmu ar *B spline* (B līnija – matemātiski noteikta līklīnija) un racionālu matemātisku sakarību, kas raksturo nepieciešamo virsmu. Tomēr tiek izmantotas arī citas metodes, kā piemēram *Gorden* virsmas un *Coon* virsmas.

Šīs virsmas ar izliekumiem netiek saglabātas vai definētas CAD programmatūrā kā polinomu vienādojumi, bet pēc to poliem, leņķiskā stāvokļa un komponentu skaita (segmentiem ar noteiktām līknēm). Virsmas stāvoklis nosaka tās matemātiskās īpašības, un var tikt uzskatīts, ka tas parāda virsmas formu pēc polinomiem ar mainīgajiem pēc noteiktas pakāpes vērtības. Piemēram, virsma pirmajā pakāpē būtu plakana šķērsgriezuma virsma. Otrajā pakāpē virsma būtu ieliekta vienā virzienā, bet trešajā pakāpē virsma varētu (bet ne obligāti) variēt no ieliektas uz izliektu. Dažas CAD sistēmas izmanto jēdzienu "kārtība" (*order*) jēdziena "pakāpe" (*degree*) vietā. Polinoma kārtībā ir par vienu locekli vairāk nekā pakāpes skaitlī, un vairāk kalpo kā koeficienta skaitlis nekā lielākais rādītājs.

Virsmas poli, saukti arī par atskaites punktiem, nosaka tās formu. Virsmai raksturīgās malas tiek noteiktas pēc pirmajiem un pēdējiem poliem, virsmai var būt arī precīzas robežas, ko veido ar instrumentu *trim*. Starpposmu poli darbojas kā magnēti, kas velk virsmu savā virzienā, taču virsma šos punktus nešķērso. Otrie un trešie punkti nosaka formu un attiecīgi sākumu un pieskares jeb tangentes leņķus un izliekumu. Viengabalainās virsmās (Bezjē virsma) ir par vienu polu vairāk nekā virsmas pakāpes vērtības. Virsmas gabali var tikt savienoti vienā NURBS (matemātisks modelis) virsmā - tajos punkti ir mezglu līnijas. Mezglu skaits noteiks polu ietekmi uz jebkuru no pusēm un to, cik līdzena ir pāreja. Līdzenums starp gabaliem, zināms arī kā kontinuitāte, bieži tiek definēts ar C vērtību:
* C0: mazliet pieskaras, var būt ar nelielu atstarpi
* C1: pieskaras, bet varētu būt ar krasām izmaiņām izliekumā
* C2: gabali ir izliekušies, turpinot viens otru
Vēl divi no aspektiem ir U un V parametri. Šie ir rādītāji uz virsmas, vērtībā no 0 līdz 1, kas tiek lietoti, lai definētu virsmas matemātisko vērtību un, noteiktu virzienus, piemēram, precīzai robežas malai (instrumentam trim). Rādītāji nav proporcionāli izvietotas pa visu virsmu. Pastāvīgs U vai V izliekums ir zināms arī kā izoperimetrikāls izliekums vai U (V) līnija. CAD sistēmās virsmas bieži vien tiek attēlotas ar to konstanto U vai konstanto V polu vērtībām, ko savieno ar līnijām, tos dēvē arī par kontroles poligoniem.

### Bezjē līknes

Katrs punkts Bezjē līknē (arī cita veida līknēs) ir visu kontroles punktu ietekmes summa. Tas nozīmē, ka jebkurš no no kontroles punktiem ietekmē katru līnijas punktu. Pirmajam kontroles punktam ir maksimālā ietekme uz līnijas sākuma punktu, otrais sasniedz maksimumu līnijas pirmajā pusē utt. Beigu daļu kontroles punkti ietekmē attiecīgi ar savienojuma funkcijas palīdzību – tā nosaka kontroles punkta nozīmīgumu pret katru punktu. 0 vērtība nepiešķir kontroles punktam nekādu ietekmi, bet vērtība 1 nozīmē, ka veidotā līkne krusto kontroles punktu.

### Līniju polinoma pakāpes
Polinomu pakāpe visvairāk attiecas uz līnijas augstāko rādītāju polinoma savienojuma funkcijā, ko izmanto Bezjē līknē. Tai var būt brīvi izvēlēta pakāpe. Pirmās pakāpes līkne ir vienkārša līnija ar diviem kontroles punktiem. Otrās pakāpes līnija, savukārt, ir arka, ko veido trīs kontroles punkti (arī polinoma ir trīs matemātiskie locekļi). Jo augstāka ir pakāpe, jo vairāk kontroles punktu, tas nozīmē, ka ir iespēja veidot sarežģītāku formu. Tajā pašā laikā šo līniju ir daudz grūtāk izveidot pilnīgi precīzu, jo vēl joprojām katrs kontroles punkts ietekmē katru līnijas punktu.

### Racionālās līknes

Katram kontroles punktam racionālā līknē ir noteikta piešķirtā ietekme. Tā nosaka to, cik daudz šis punkts piesaista līniju. Tiek ņemta vērā tikai līnijas relatīvā, nevis absolūtā vērtība, tas nozīmē, ka līkne, kura tiek nostādīta ar vērtību 1, ieņems tādu pašu formu, kā līnija ar vērtību 100. Forma mainās tikai tad, ja tiek mainīta kontroles punktu ietekme (izliekuma virziens un intensitāte).
Parastajai Bezjē līknei ir arī speciāls gadījums – racionālā Bezjē līkne, kur visas kontroles punktiem piešķirtās ietekmes ir vienādas vērtības. Racionālā līkne nodrošina papildus iespēju veidot daudz sarežģītāku algoritmu līnijas un papildus informāciju par līknes veidošanas procesu.

### B –līnijas

B-līnija ir vairāku Bezjē līkņu savienojums un tā nodrošina vienotu mehānismu, kas nosaka konkrētu savienojuma funkciju.
Šajās līnijās izmanto ārēju ietekmi, lai vairākus fragmentus savienotu kopā, saglabājot kontroles punktu oriģinālo konceptu un funkciju. Blakusesošajām līknēm ir daži kopīgi kontroles punkti. Ārējo ietekmi ir iespējams vai nu tieši, vai netieši (vienotajām līknēm) norādīt ar mezglu punktu vektoriem un to vērtībām. Mezglu vektori nosaka to, cik daudz informācijas nepieciešams ‘dalīt’ ar blakusesošajiem līknes segmentiem. Mezglu vektors ir skaitļu virkne, parasti no 0 līdz 1 (piemēram, 0; 0.5; 0.5; 0.7; 1 ), kas satur informāciju par visu ārējo ietekmi. Intervālu skaits nosaka segmentu skaitu (pēc dotajiem skaitļiem šajā gadījuma, tie ir trīs – no 0 – 0.5; 0.5 – 0.7; 0.7 - 1). Katram mezglu vektoram ir savs lielākais rādītājs, kas norāda, cik informācijas tiek pārnests uz blakusesošo segmentu. Kad šis skaitlis sakrīt ar līknes polinoma pakāpi, rodas asa robeža.

### NURBS

*Non-Uniform Rational B-spline* – nesavienota racionāla B īinija ir Bezjē līkņu un nesavienotu mezglu vektoru kopums. Tāpēc, lai precizētu NURBS līkni, nepieciešams zināt pakāpi, kontroles punktus, to ietekmi un mezglu vektorus.
Visi vienas dimensijas objektu (līniju) principi attiecas arī uz vairāku dimensiju objektiem, kā virsmas un apjomi. Virsmas izmanto 3D objektu projektēšanā, piemēram, ainavās, perspektīvās, bet apjomus izmanto, lai definētu nelineāras transformācijas.

## Modelēšana

Kad tiek definēta konkrēta forma, nozīmīgs faktors ir virsmu savstarpējai pārejai – cik gludi un vienmērīgi tās savienojas viena ar otru.

Viens no piemēriem ir automašīnu virsbūves paneļi. Vienkārši savienojot divu izliektu virsmu paneļus ar atšķirīgiem izliekuma rādiusiem, saglabājot tangenciālu vienotību (būtībā sapludinot divas virsmas, to pāreja nav asa un strauja, bet gluda) ir par maz. Ir nepieciešama arī pastāvīga izliekuma vērtība (mainīgo izteiksme), kas mainās intervālā ar šo divu virmu rādītajiem, citādi to atainojums būs pārtraukts.

Vienotību definē ar šādiem parametriem:
* G0 – pozīcija
* G1 – tangente (leņķis)
* G2 – izliekums (rādiuss)	
* G3 – izliekuma izmaiņu intervāls

Lai iegūtu augstas kvalitātes NURBS vai Bezjē virsmu, parasti izmanto virsmas piektajā un augstākā pakāpē. Atkarībā no produkta un ražošanas procesa, tiek izmantoti dažādas precizitātes līmeņi (to raksturīgā pielaide svārstās no 0,02 līdz 0,001 mm). Kuģu būvniecībā, piemēram, vērtības var nebūt tik precīzas, bet tādās nozarēs kā medicīniskais aprīkojums un precīzijas instrumentiem šiem rādītājiem jābūt daudz smalkākiem.

Savienojuma funkcijas īpašības nosaka arī visas līknes īpašības, un katra līkne veidojot virsmu, nosaka arī visas virsmas īpašības. Bezjē līknēs izmanto polinomu noteiktā pakāpē. Rezultātā līknēm ir šādas īpašības:
* līkne sākas pirmajā kontrolpunktā, beidzas pēdējā, bet iekšējos kontroles punktus vispār nešķērso (tie kalpo kā izliekuma virzienu rādītāji),
* līknes tangente beigu punktos tiek kontrolēta ar visiem kontroles punktiem,
* līkne vienmēr veidojas kontroles poligona izliektajā korpusā.

## Terminu vēsture

*Lofting* – grafiskajās programmatūrās tā ir iespēja veidot izliektas virmas. Šis termins radies no kuģu būvniecības meistariem (*loftsmen*), kuriem bija nepieciešams veidot izliektas formas no koka laivu ķīļiem, kuģu jumta struktūrām. Pēc tam šīs zināšanas tika pārņemtas arī aviācijas, vēlāk automašīnu inženierijā, kurās arī parādījās nepieciešamība pēc plūdlīniju formām.

*Spline* – brīvi izliektas līnijas instruments grafiskajās programmatūrās. Arī šī termina izcelsme nāk no jūrniecības. Tas ir Austrumanglijas dialekta vārds, kas apzīmē tievu, plastisku, garu koka strēmeli (visticamāk radies no vācu un angļu vārda *splint*).

## Brīvformu virsmas modelēšanas programmatūras
* Cobalt (Ashlar-Vellum)
* form•Z 
* Solidworks 
* CATIA 
* Imageware 
* ProEngineer ISDX
* NX (Unigraphics) 
* Rhinoceros 3D 
* FreeForm Modeling Plus, SensAble Technologies
* Autodesk Inventor 
* FreeSHIP 
* GenesisIOD 
* OmniCAD 
* Thinkdesign 
* Microstation (Bentley Systems Inc) 
* Shark FX (Punch!) 
* Moi Moment of Inspiration 3D modeling (Moi3d)
*Fusion 360

## Atsauces

## Ārējās saites
* Apmācība CAD virsu modelēšanā
* Video piemēri virsmu veidošanai

## Skatīt arī
* 3D modelēšana
* 3D datorgrafika
* Arhitektūra
* Bezjē līkne
* CAD