9.1 VIJAK 7990

Avtor: Andrej Brečko

Mentor: Janez Vrhovec

KAZALO:

1. ABSTRACT
2. DEFINICIJA NALOGE
3. TEORETIČNE OSNOVE TRANSFORMACIJ V 2D PROSTORU
3.1 Translacija točke v ravnini x-y
3.2 Rotacija točke v ravnini x-y
3.3 Skaliranje točke v ravnini x-y
3.4 Matrični zapis transformacij v kartezijevem koordinatnem sistemu
3.4.1 Translacija
3.4.2 Rotacija
3.4.3 Skaliranje
3.5 Matrični zapis transformacij v homogenem prostoru
3.5.1 Translacija
3.5.2 Rotacija
3.5.3 Skaliranje
4. OPIS PROGRAMA
4.1 Potek izdelave in opis programa
4.2 Dopolnitev programa
5. OBLIKA IN DIMENZIJE VIJAKA PO STANDARDU DIN 7990
6. PRIMERI UPORABE PROGRAMA
6.1 Vnosni del programa
6.2 Izris narisa in tlorisa vijaka
6.3 Izris kotiranega narisa vijaka
6.4 Rotacija narisa vijaka
7. ZAKLUČEK
8. LITERATURA
9. ZAGON PROGRAMA

1. ABSTRACT

This document present some basic properties about geometrical transformations in 2D space.
For example of using geometrical transformation is written a program for drawing a screw by DIN 7990 standard. The screw could be moved, rotated and scaled in x and y direction.

2. DEFINICIJA NALOGE

V programskem jeziku Javascript (skupaj z emulacijo knjižnice PHIGS) izdelajte program, ki naj omogoča izbor določenega vijaka iz seznama (vijak po standardu DIN 7990) in nato izris le-tega po izbiri v narisu in tlorisu ali samo v narisu. Izris naj poteka v 2D prostoru, kjer morata biti prikazani koordinati osi x in y.
Program naj vsebuje funkcije, ki omogočajo prikaz osnovnih transformacij (translacija v x in y smeri, rotacija v levo in desno in skaliranje) v 2D prostoru in s tem postavitev vijaka na poljubno mesto v ravnini. Program naj bo izdelan tako, da ga bo možno kasneje čim enostaveje dograditi ali prilagoditi.

3. TEORETIČNE OSNOVE TRANSFORMACIJ V 2D PROSTORU

Osnovne transformacije v 2D prostoru so:
- translacija (premik)
- rotacija (zavrtitev)
- skaliranje (povečava)

3.1 Translacija točke v ravnini x-y:


3.2 Rotacija točke v ravnini x-y:


3.3 Skaliranje točke v ravnini x-y:


3.4 Matrični zapis transformacij v kartezijevem koordinatnem sistemu:

3.4.1 Transformacija:

Transformacije v kartezijevem koordinatnem sistemu ni možno zapisati v matrični obliki.

3.4.2 Rotacija:


3.4.3 Skaliranje:


3.5 Matrični zapis transformacij v homogenem prostoru:

Vstavimo dodatno koordinato w (homogen koordinatni sistem), ki jo rabimo da lahko translacijo zapišemo v matrični obliki.

Pretvorbe homogenih koordinat v kartezijeve:

3.5.1 Transformacija:


3.5.2 Rotacija:


3.5.3 Skaliranje:


4. OPIS PROGRAMA

4.1 Potek izdelave in opis programa:

Program je sestavljen predvsem iz dveh delov; iz vnosnega dela (javascript) in grafičnega dela (javascript + knjižnice phigsa).
Podatke za izris vijaka program prebira s pomočjo funkcije za branje iz datoteke - baze podatkov (v mojem primeru je ime datoteke: datav). Prebrane podatke program pretvori z nekim faktorjem, ki je potreben, da se bo vijak izrisal v določenem velikostnem območju.
Sledi funkcija, ki glede na podano izhodiščno točko in z prebranimi podatki izračuna posamezne točke vijaka. Izračunane točke lahko z funkcijo za transformacijo transformiramo.
Da bi lahko izrisali enkrat naris in tloris vijaka enkrat pa samo naris sem naredil dve funkciji; v eni sem izrisal naris v drugi pa tloris. Funcije pa sem nato skupaj sklical v neki glavni funkciji in ko želim izrisati naris in tloris pač skličem v glavni funkciji izrisani naris in tloris. Ko želim vijak transformirati pokličem tudi funkcijo za transformacijo točk.

4.2 Dopolnitev programa:

Program sem poskušal izdelati tako, da je čim preglednejši in tako lažje prilagodljiv. To sem dosegel z že omenjenimi delitvami na funkcije in z definiranjem globalnih spremenljivk.
Na tak način izdelan program je tudi enostaven za dopolnitev. Če želimo izrisati vijak, ki ga trenutno v programu ni ga enostavno dogradimo. Postopek nadgradnje bom razložil na primeru, da želimo dodati vijak M27×80:
1. v datoteki, ki je baza podatkov: podatki so vpisani po vrstem redu zato je najbolje da se vrstnega reda držimo tudi pri nadgradnji. Vijak v našem primeru spada med vijake M27 in glede na dolžino (l) ga vrinemo med M27×60 in M27×90. Potrebne podatke o vijaku vpišemo v vrstico strogo po predpisanem vrstem redu, ki je napisan kot opomba v prvi vrstici datoteke.

2. v programu: v programu uvedemo spremembo samo v izdelavi zavesnega menija, kjer izbiramo vijake za izris. V formo zavesnega menija na pripadajoče mesto vpišemo

3. če imamo program že v izvajanju, ga moramo po opravljeni spremembi končati in ponovno zagnati (če samo osvežimo - reload v programu Netscape - nam program javi napako.)

5. OBLIKA IN DIMENZIJE VIJAKA PO STANDARDU DIN 7990


6. PRIMERI UPORABE PROGRAMA

6.1 Vnosni del programa:


6.2 Izris narisa in tlorisa vijaka:

Vijak izrišemo tako da kliknemo gumb "Tloris in naris".

6.3 Izris kotiranega narisa vijaka:

Naris vijaka izrišemo z klikom na gumb "Naris vijaka", na narisu v osnovnem položaju sem kotiral glavne mere.

6.4 Rotacija narisa vijaka:

V okence zapišemo kot (v stopinjah) za katerega želimo zarotirati naris, nato pa kliknemo enega od gumbov "v levo" ali "v desno", odvisno od tega v katero smer želimo rotirati.
Podoben je tudi postopek za skaliranje in translacijo.

7. ZAKLJUČEK

Pri izdelavi programa sem spoznal osnovne elemente programiranja v JavaScriptu in JavaScriptu z dodatkom knjižnic iz Phigsa, seznanil pa sem se tudi z osnovnimi geometrijskimi transformacijami v ravnini.
Pri izdelavi programa sem se, kot sem že omenil, držal oblike programa pri kateri je program sestavljen iz posameznih funkcij. Kljub temu da sem čimveč programiral z polji je končni program dokaj dolg in počasen.
Če bi hotel program popolnoma zoptimirati bi se mogel posvetiti programiranju v C++.

8. LITERATURA

1. Standard DIN 7990
2. Peter Hribar; SPOZNAJMO JAVASCRIPT; Flamingo 1998