Seminarska naloga

Izris vijaka po standardu DIN2509

izdelal:Kristof Zupanc

mentor:Janez Krek

30.avgust 2000





Kazalo


  1. Abstrakt
  2. This program draws screws by standard DIN 2509. User must select screw and press button Izris mreznega modela. Program also gives possibility of selecting number of lines, movement in directions of all three axis and rotacion around all three axis. Finally, this program is able to make DXF file and VRML file for which user just has to press button Zapisi DXF or Zapisi VRML.

  3. Definicija naloge
  4. Izdelajte program, ki bo iz seznama omogocal izbiro dimenzije vijaka po standardu DIN 2509 in ga kot mrezni model prikazal v 3D prostoru v lokalnem koordinatnem sistemu. V 3D prostoru naj bo oznacen tudi globalni koordinatni sistem. Program naj nad modelom omogoca izvajanje 3D transformacij. Program naj omogoca zapis modela v DXF in VRML datoteko s ploskvami ali telesi (moznost izbire izhodnega formata). Program izdelajte s programskim jezikom JavaScript (izris s pomocjo PHIGS knjiznice).

  5. Standard DIN 2509

  6. Originalen naziv tega vijaka je: Schraubenbolzen, torej je to sornik z obojestranskim navojem in nastavkom za kljuc. Ta vijak se uporablja za spajanje jeklenih plosc, ki so obremenjene na nateg, torej je vijak obremenjen na strig. Nastavek sluzi za to, da s kljucem ustvarimo protimoment pri privijanju matic.


    Na spodnji sliki je prikazan vijak z merami:

    [slika1]



    Standardni podatki za vijake po DIN 2509 so prikazani v naslednji tabeli:

    [slika2]



  7. Teoreticne osnove
  8. 4.1. Transformacije


    Transformacije v prostoru so:
    - translacija
    - skalacija
    - rotacija


    Tocke lahko transliramo v prostoru kot je prikazano na sliki:


    [slika3]


    Matematicno pa transformacije v prostoru zapisemo z naslednjimi enacbami:


    [slika4]


    Tocke v prostoru lahko tudi skaliramo. To pomeni, da tocke mnozimo z nekim faktorjem, ki poveca ali pomanjsa razdalije med tockami.

    Skalacija tock v prostoru je prikazana na spodnji sliki:


    [slika5]


    Skaliranje tock v prostoru pa matematicno zapisemo z naslednjimi enacbami:


    [slika6]

    Kjer je S skalirni faktor.



    Tocke v prostoru pa lahko tudi rotiramo, tako da lahko sliko pogledamo iz razlicnih smeri.

    Rotacija tock v prostoru je prikazana na spodnji sliki:


    [slika7]


    Matematicno pa rotacijo zapisemo z naslednjimi enacbami:


    [slika8]



    4.2. Zapis transformacij v kartezijevih koordinatah


    Translacija

    [slika9]


    Rotacija okrog x osi

    [slika10]


    Rotacija okrog y osi

    [slika11]


    Rotacija okrog z osi

    [slika12]


    Skaliranje

    [slika13]



    4.3. Zapis transformacij v homogenih koordinatah


    Pri homogenih koordinatah imamo eno matriko, katero mnozimo z dvo ali tro-dimenzionalnimi vektorji. To je 4 x 4 matrika, ki ima na mestu cetrti stolpec, cetrta vrstica, stevilo 1. Ce risemo v dveh dimenzijah ima vekto obliko: [x,y,1]. Ta 1 nam predstavlja x-y ravnino. Ce pa risemo v treh dimenzijah ima vektor obliko: [x,y,z,1].

    Translacija

    [slika14]


    Rotacija okrog x osi

    [slika15]


    Rotacija okrog y osi

    [slika16]


    Rotacija okrog z osi

    [slika17]


    Skaliranje

    [slika18]



  9. Zgradba programa


  10. Program sem naredil tako, da sem najprej definiral obliko uporabniške strani in definiral velikost prikazovalnega okna. Funkcija "rotacija" ima osem spramenljivk, ki jih spreminjamo tako, da spreminjamo vrednosti v okenckih na zaslonu in potem pritisnemo gumb Izris mreznega modela.


    Najprej sem definiral tocke krogov, tako da sem kroznico opisal s stiriinsestdesetimi tockami za katere sem podatke jemal iz baze podatkov. Vse tocke vijaka so postavljene glede na lokalni koordinatni sistem, ki ima sredisce v centru najnizjega kroga. Vse te tocke sem potem transformiral s pomocjo transformacijske matrike. Definiral sem tocke glavnega koordinatnega sistema. Te tocke sem potem rotiral se okrog osi y in z. Potem sem definiral se povezovalne crte med krogi. Crte porekajo od prvega do zadnjega kroga. Uporabnik ima moznost izbrati stevilo crt. Izbira lahko med 2, 4, 8, 16, 32 in 64 crt. Program je izdelan tako, da sta na zacetku samo dve crti. Nato sem definiral se izris nastavka. Za izris nastavka sem definiral tocke, ki sem jih povezal s crtami. Vse te crte sem izrisal s PHIGS ukazi.


    Program je izdelan tako,da ce pade slika izven zaslona, se celotna slika pomanjsa, tako da pade celotna slika na zaslon. To pomeni, da ce vijak zelo povecamo, bo na zaslonu ostal enak, zmanjsal pa se bo koordinatni sistem. Podobno se zgodi, ce vijak mocno premaknemo. Takrat se pomanjsa celotna slika in tako ostane na zaslonu.


    Program omogoca tudi izbiro izhodnega formata, to je DXF ali VRML. S klikom na gumb Write DXF oziroma Write VRML program izpise DXF oziroma VRML datoteko. Ce uporabljamo Netscape lahko shranimo datoteko direktno iz prikazovalnega okna. Ce pa uprabljamo MicroSoft Internet Explorer, pa z desnim gumbom na miski kliknemo na prikazovalno okno, izberemo "Izvorna koda" (View Source) in shranimo iz urejevalnika besedil.



    5.1. 3D risbe vijaka


    Najmanjsi vijak, ki se izrise pri zagonu programa:

    [slika19]


    Globalni koordinatni sistem in lokalni koordinatni sistem se pokrivata:

    [slika20]


    Stranska slika vijaka:

    [slika21]


    Vijak je premaknjen v vseh treh koordinatah in zarotiran okrog osi x:

    [slika22]


    Vijak z najgostejso mrezo:

    [slika23]


    Najvecji vijak po standardu DIN 2509:

    [slika24]



  11. Izpopolnjevanje programa

  12. Izpopolnjevanje programa oziroma dodajanje novih vijakov je zelo enostavno. V direktoriju, kjer imamo shranjen program poiscemo datoteko, ki se imenuje baza.js. To datoteko lahko odpremo s pomocjo programa WordPad. V odprto datoteko dodamo podatke za nov vijak, nato pa ta vijak dodamo se v program v okvir za izbiro vijakov.



    Baza podatkov izgleda tako kot je prikazano na spodnji sliki:

    [slika25]


    Ce zelimo naprimer dodati vijak M12, ki pa je za 20 mm krajsi od obstojecega, v bazo.js dodamo vrstico, ki je prva v bazi podatkov. Ta vrstica je prikazana na spodnji sliki:

    [slika26]




  13. Zagon programa

  14. Zagon programa

  15. Zakljucek


  16. Pri izdelavi programa sem se seznanil s programskim jezikom JavaScript in graficno knjiznico PHIGS s pomocjo katere sem izrisoval crte. Spoznal sem tudi osnove geometrijskih transformacij v 3D prostoru. S pomocjo transformacij lahko premikamo po zaslonu, ga povecujemo ali zmanjsujemo in ga rotiramo okrog vseh treh koordinat.

  17. Literatura

  18. 1. DIN standard
    2. Peter Hribar: Spoznajmo JavaScript, Flamingo 1998
    3. Peter Hribar: HTML, Flamingo 1996


    Kristof Zupanc
    Celovnik 12
    1432 Zidani Most
    kristof.zupanc@siol.net