Univerza v Ljubljani - Fakulteta za strojništvo

Avtor: Boštjan Zupanc




Izris navojne gredi





Abstract

This program draws the threaded shaft in 3D with a help of "Glut" graphic library.

Definicija naloge

Potrebno je izrisati trapezno navojno gred, za poljubno podani trapez.

Uvod

Izdelan je bil program za izris trapezne navojne gredi v 3d prostoru. Program je bi izdelan v programu "C++" z uporabo knjižnice "Glut". "Glut" knjižnica je namenjena za izdelavo 3d grafike v standardu "Open Gl". Glut knjižnica olajša programiranje 3D grafike. Glut knjižnica ima funkcijo generiranja 3d prostora, izris 3d primitivov kot je črta, več vrst poligonov, homogene transformacije, senčenje prekrivanje površin, in druge.
Izhodišča za izris gredi so bile standardne mere trapeznega navoja, ki so prikazane na Sliki 1.

Slika 1: Mere trapeznega navoja


Osnovni podatki za izris trapeznega navoja sta

D,d ... imenski premer (velikost trapeznega navoja)
P ... korak navoja
n ... število navojev

Iz teh osnovnih podatkov lahko izrčunamo še najmanjši premer navoja.
h3=H1+ac

Nadmero navoja
ac=P/100;

Struktura programa

Program je napisan v programskem jeziku C++. Program je sestavljen iz glavnega programa in pod programov. V glavnem programu se kreira okno za izris, določi barve, inicializira tipke kot dogotke in kliče podprograme za izris.

Najprej se kliče funkcija init, v kateri definiramo odboj svetlobe, postavimo luci, definiramo barvo ozadja okna in naredimo listo točk za izris navojne gredi. Pri izdelavi listi točk kličemo funkcijo gred, ki izračuna točke.

V podprogramu gred se najprej izvede vpis osnovnih podatkov, ki so potrebni za izris navojne gredi. S pomočjo osnovnih podatkov se izračunajo še ostali podatki, ki so potrebni za izris. Kateri so osnovni podatki in izračunani so podani v uvodu.

Ko so določeni vsi podatki, se izvede izračun točk in definiranje površin navojne gredi.Površine so bile genreiranje z ukazom "GL_QUAD_STRIP" oziroma s pravokotnimi ploskvicami, ki so med sabo povezani v dveh točkah oziroma je vska ploskvica definirana z dvema starima in dvema na novo definiranima točkama.
Izračun točk izveden tako, da so vse točke "X","Y" in "Z" funkcije parametra "j", ki se spreminja v "for" zanki. Točke "X" in "Y" so kotne funkcije "Z" pa linearna funkcija. Na enak način so izračunane tudi ostale ostale vijačnice in površine navojne gredi.
Za senčenje so tudi izračunane normale površin, ki se izračunajo iz vektorskega produkta.
V nadaljevanju vidimo izračun točk za eno vijačno ploskev. ena vijačna ploskev predstavljata dve vijačnici. Obe vijačnice imata enake koordinati "X" in "Y" samo "Z" koordinata pa se razlikuje za konstantno vrednost "a". Ta konstantan predstavlja razmik med vijačnicama.


Taki ramaknjeni vijačnici je potrebno nato še prerezati z ravnino,da sta začetek in konec vijačnice na isti rvnini ravnini. To prikazuje slika 2.

Slika2: Izris vijačnice in porezana vijačnica z ravninama

V funkciji "reshape" se definira osnovni pogled, ki se izriše na začetku programa in pa pri spreminjanju velikosti okna za izris. V tej funkcije je definiran prespektiva in velikost izrisane navojne gredi.

V funkciji "keyboard" so definirane homogene transformacije, ki se izvedejo pri pritisku na tipko. Transformacije so translacija, skaliranje in rotacija. Vse transformacije se izvedejo na izhodišče koordinatnega sistema.

Delovanje programa

Program deluje v "Windows" okolju. Pri zagonu programa se pojavi okno za vpis podatkov. V to okno se vpisejo podatki za izris navojne gredi. Vipše se velikost trapeznega navoja oziroma imenski premer, korak navoja in število ovojev.

Slika 3: Vnos podatkov

Po vnosu osnovnih podatkov se izvede izris in na okno se izpisejo še ostali podatki, ki so bili izračunani za izris in navodilo za manipulacijo z objektom(homogene transformacije) .

Slika 4: Prikaz izračunanih vrednosti

Na graficnem delu okna se izriše gred v izhodiščnem pogledu. To gred lahko nato manipuliramo prek tipk.

Slika 5: Izhodiščni prikaz gredi

Na naslednji sliki je izrisana gred po manipulaciji

Slika 6: Gred po manipulaciji

Zaključek

Na enostavnem primeru je bila izisana navojna gred v 3d prostoru. Pri programeranju z uporabo knjižnice "Glut" se je izkazala prednosti v programirnju 3d grafike. S knjižnico se lažje definira samo okolje za izris. Prednost so tudi v funkcijah, kot so podajanje točk in likov v 3d prostoru , senčenje, postavljanje luči definiranje odboja svetlobe, homogene transformacije in drugo. Programi so krajši in bolj pregledni.


Program

Pogled v izvirno kodo

Boštjan Zupanc, avgust 2002