IZRAČUN OBSTOJEČIH ZOBNIKOV NA MOBILNI NAPRAVI … · 2018-08-24 · Slika 2: Valjasti zobniki na vzporednih gredeh Ravnini, ki omejujeta zob po širini, sta čelni ravnini, katerih
Post on 26-Dec-2019
1 Views
Preview:
Transcript
Andraž Krevh
IZRAČUN OBSTOJEČIH ZOBNIKOV NA MOBILNI NAPRAVI
Diplomsko delo
Maribor, maj 2011
I
II
III
IV
I
Diplomsko delo visokošolskega strokovnega študijskega programa
Študent: Andraţ Krevh
Študijski program: VS ŠP Računalništvo in informacijske tehnologije
Smer:
Mentor(ica): red. prof. dr. ZORMAN MILAN, univ. dipl. inţ. rač. in inf.
Somentor(ica): dr. Mateja Verlič, univ. dipl. inţ. rač. in inf.
Lektor(ica): Maja Koleţnik, prof. slovenščine
Maribor, maj 2012
II
Zahvala
Zahvaljujem se mentorju dr. Milanu Zormanu in somentorici dr.
Mateji Verlič za pomoč in vodenje pri izdelavi diplomske naloge.
Zahvala gre tudi konstrukcijskemu oddelku podjetja Serpa, d. o. o., za
strokovno pomoč in možnost testiranja izdelka.
Največja zahvala gre staršema, ki sta me finančno in moralno
podpirala v času študija.
III
IZRAČUN OBSTOJEČIH ZOBNIKOV NA MOBILNI NAPRAVI
Ključne besede:
Android, Windows, okenska aplikacija, mobilna aplikacija, čelni zobniki, stoţčasti zobniki,
polţevo gonilo, izračun zobnikov.
UDK: (004.4:621.395.721.5):621.8(043.2)
Povzetek
V diplomski nalogi opisujemo potek izdelave programa za izračun obstoječih zobnikov za
potrebe strojnih inženirjev, ki se ukvarjajo z rekonstrukcijo gonil. Program sestavljata
okenska aplikacija in mobilna aplikacija. Mobilna različica, ki omogoča delo na terenu in
pošiljanje rezultatov v podjetje, kar pospeši in olajša delo inženirja z zobniki, ki jih zaradi
velikosti ne morejo prenesti v pisarno. V uvodnem delu se posvetimo opisu izdelave in
uporabe okenske aplikacije, ki teče na operacijskem sistemu Microsoft Windows, nato se
lotimo opisa izdelave mobilne aplikacije, ki teče na operacijskem sistemu Android. V zadnjem
delu diplomske naloge prikažemo primer uporabe okenske in mobilne aplikacije v realnem
okolju in predstavimo odziv strokovnjakov na novo orodje.
IV
CALCULATION OF THE EXISTING GEARS ON MOBILE DEVICE
Key words
Android, Windows, windows application, mobile application, front gears, bevel gears, snail's
driving gear, calculation of gears.
UDK:
(004.4:621.395.721.5):621.8(043.2)
Abstract
The thesis describes the course of a program to calculate the existing gear to the needsof
mechanical engineers who are engaged in reconstruction of the drivers. The program
consists of window applications and mobile applications. The wireless version, whichallows it
to work in the field and send the results to the entity, which expedite and facilitate the work
of an engineer with the gear that the size can not be transferred to the office.The introductory
part is concerned with describing the production and use windowsapplication that runs
on Microsoft Windows, then we start the description of themanufacture of mobile applications
that run on Android. The last part of the thesis showan example of using windows and mobile
applications in the real world and present a response professionals a new tool.
V
Kazalo
1 Uvod .................................................................................................................................................... 1
2 Vrste zobnikov ................................................................................................................................... 1
2.1 Gonila z valjastimi zobniki ......................................................................................................... 2
2.2 Gonila s stoţčastimi zobniki ..................................................................................................... 3
2.3 Gonila z mimobeţnimi osmi ..................................................................................................... 5
3 Načrtovanje aplikacij za izračun obstoječih zobnikov .................................................................. 5
4 Izdelava okenske aplikacije ............................................................................................................. 6
4.1 Operacijski sistem Windows ..................................................................................................... 6
4.1.2 Zgodovina ............................................................................................................................ 7
4.2 Microsoft Visual Studio .............................................................................................................. 9
4.2.1 Urejevalnik kode ............................................................................................................... 10
4.2.2 Razhroščevalnik ................................................................................................................ 10
4.2.3 Oblikovalec ........................................................................................................................ 10
4.2.4 Zgradba .............................................................................................................................. 11
4.3 Okenska aplikacija Izračun obstoječih zobnikov ................................................................. 12
4.3.1 Čelni zobniki ...................................................................................................................... 13
4.3.2 Stoţčasti zobniki ............................................................................................................... 16
4.3.3 Polţasta gonila .................................................................................................................. 19
4.3.4 Izpis podatkov ................................................................................................................... 21
4.3.5 Izvoz podatkov v Microsoft Office Excel ........................................................................ 21
4.3.6 Tiskanje podatkov ............................................................................................................. 22
5 Izdelava mobilne aplikacije ............................................................................................................ 23
5.1 Operacijski sistem Android ..................................................................................................... 23
5.1.1 Zgodovina .......................................................................................................................... 25
VI
5.2 Eclipse ....................................................................................................................................... 28
5.2.1 Android v Eclipsu .............................................................................................................. 30
5.3 Mobilna aplikacija Izračun obstoječih zobnikov ................................................................... 30
5.3.1 Oblikovanje ........................................................................................................................ 31
5.3.2 Programiranje .................................................................................................................... 33
5.3.3 Zapis podatkov v Microsoft Excel datoteko .................................................................. 36
5.3.4 AndroidManifest ................................................................................................................ 37
5.3.5 Pošiljanje datoteke ........................................................................................................... 38
6 Uporaba izdelka v praksi ................................................................................................................ 39
7 Sklep .................................................................................................................................................. 42
8 Viri ...................................................................................................................................................... 43
9 Viri slik ............................................................................................................................................... 44
VII
Kazalo slik
Slika 1: Zobniški reduktor .................................................................................................................... 2
Slika 2: Valjasti zobniki na vzporednih gredeh ................................................................................. 3
Slika 3: Stoţčasta zobniška dvojica ................................................................................................... 4
Slika 4: Gonilo z mimobeţnimi osmi (polţevo gonilo) ..................................................................... 5
Slika 5: Primer uporabe OS Windows XP ......................................................................................... 7
Slika 6: Primer uporabe OS Windows Vista ..................................................................................... 8
Slika 7: Primer uporabe OS Windows 7 ............................................................................................ 9
Slika 8: Arhitektura operacijskega sistema Windows .................................................................... 12
Slika 9: Izgled glavnega okna okenske aplikacije .......................................................................... 13
Slika 10: Primer čelnega ravnega zobnika ..................................................................................... 13
Slika 11: Primer izračunov čelnih poševnih zobnikov − začetek ................................................. 14
Slika 12: Primer izračunov čelnih poševnih zobnikov – zadnji izračuni ..................................... 15
Slika 13: Primer izračunov čelnih poševnih zobnikov – končni izpis .......................................... 16
Slika 14: Primer stoţčastih ukrivljenih zobnikov ............................................................................ 17
Slika 15: Primer izračunov za stoţčaste ukrivljene zobnike − začetek ...................................... 18
Slika 16: Primer izračunov za stoţčaste ukrivljene zobnike – končni izpis ............................... 18
Slika 17: Primer polţevega gonila .................................................................................................... 19
Slika 18: Primer izračunov za polţevo gonilo − začetek .............................................................. 20
Slika 19: Primer izračunov za polţevo gonilo – končni izpis ........................................................ 20
Slika 20: Okno za shranjevanje izračunov v Excelovo tabelo ..................................................... 22
Slika 21: Okno za nastavitve tiskanja tabele izračunov ................................................................ 23
Slika 22: Arhitektura operacijskega sistema Android .................................................................... 25
Slika 23: Motorola T-Mobile G1 ........................................................................................................ 26
Slika 24: Logotip Androida 4.0 .......................................................................................................... 27
Slika 25: Primer vmesnika za prikazovanje porabe baterije in pomnilnika ................................ 28
VIII
Slika 26: Primer uporabe razvojnega okolja Eclipse ..................................................................... 29
Slika 27: Primer uporabe Android emulatorja v razvojnem okolju .............................................. 30
Slika 28: Izgled glavnega menija in podmenija mobilne aplikacije ............................................. 31
Slika 29: Primer izračunov čelnih ravnih zobnikov ........................................................................ 33
Slika 30: Primer izbire standardnega modula ................................................................................ 35
Slika 31: Primer pošiljanja izračunov preko elektronske pošte ................................................... 39
Slika 32: Počen zobnik, ki ga je potrebno izmeriti – potrebna izmera ........................................ 40
Slika 33: Po dobljenih merah inţenir izdela skico in izračune na naši okenski aplikaciji ........ 40
Slika 34: Po izračunih inţenir zmodelira izračunani zobnik in izdela načrt ................................ 41
Slika 35: Inţenir opravi meritve na zobniku in izvede izračun s pomočjo mobilne aplikacije . 41
IX
Seznam uporabljenih kratic
LPT − Line Print Terminal
DIN – Deutsches Institut für Normung
ISO − International Organization for Standardization
API − Application Programming Interface
IBM − International Business Machines
XML − Extensible Markup Language
XSLT − Extensible Stylesheet Language Transformations
HTML − Hyper Text Markup Language
XHTML − Extensible Hyper Text Markup Language
CSS − Cascading Style Sheet
WPF − Windows Presentation Foundation
DEX − Dalvik Executable
OHA − Open Handset Alliance
POP − Post Office Protocol
IMAP − Internet Message Access Protocol
TAT − The Astonishing Tribe
BBX − BlackBerry Exchange
RIM − Research In Motion
ICS − Internet Connection Sharing
NFC − Near Field Communication
SDK − Software Development Kit
X
IDE − Integrated Development Environment
JDT − Java Development Tools
UML − Unified Modeling Language
DB − Data Base
SWT − Standard Widget Toolkit
AWT − Abstract Window Toolkit
ADT − Android Development Tool
HSSF − Horrible SpreadSheet Format
1
1 Uvod
Zobniška gonila so sestavni del vsakega stroja, ker pa se zobniki obrabijo ali pa zaradi
preobremenitev pride do poškodb, jih je potrebno nadomestiti z novejšimi, ki bodo imeli
boljše karakteristike glede vzdrţljivosti in se v podobnih okoliščinah ne bodo tako obrabljali.
V strojništvu se inţenirji ubadajo z vzdrţevanjem takšnih zobnikov, kar pomeni, da jih na
novo skonstruirajo. Ko inţenir dobi poškodovan zobnik v delo, mora najprej izmeriti njegove
geometrijske veličine (vse tiste, ki jih je moţno izmeriti), zatem pride na vrsto izračun
potrebnih veličin, za kar so si do sedaj lahko pomagali zgolj z zastarelo konzolno aplikacijo,
ki ne podpira 64-bitnih operacijskih sistemov, njen izpis pa je omejen na LPT-izhod, ki ga ima
le še redko katera delovna postaja.
Zato smo se odločili za izdelavo programa Izračun obstoječih zobnikov z grafičnim
vmesnikom in podporo za 64-bitna Okna. Uporaba programa je tako postala veliko
enostavnejša in uporabniku prijaznejša. Dodali smo moţnost tiskanja na kateri koli tiskalnik,
ki je povezan na računalnik, na katerem teče program, in moţnost shranjevanja izračunov v
tabelo v Microsoft Office Excelu s formatom .xls. Poleg okenske aplikacije smo izdelali še
mobilno aplikacijo, ki teče na Androidovem operacijskem sistemu in pride v poštev, kadar
morajo inţenirji zobnike, ki so se polomili ali preveč obrabili, izračunavati na licu mesta
oziroma na samem stroju oziroma napravi. V takšnih primerih bo aplikacija zelo koristila, saj
nadomesti prenos zapiskov in kasnejše izračunavanje zobnikov [1].
2 Vrste zobnikov
Povezave med stroji štejejo kot najpomembnejše naloge strojništva; med takšne primere
spada povezava stroja, ki pretvarja energijo (pogonski stroj), in stroja, ki preoblikuje material
(delovni stroj). Zaradi morebitnih različnih karakteristik povezanih strojev ju je potrebno pri
znanih ali ocenjenih pogojih povezati tako, da bo njuno delovanje s čim večjim izkoristkom,
čim manjšimi šumi in sunki. V strojništvu pri reševanju takšnih nalog naletijo na veliko strojnih
elementov, ki jih imenujejo pogonski elementi. Strojne dele, ki prilagajajo vrtilno hitrost
pogonskega stroja k vrtilni hitrosti delovnega stroja, imenujemo gonilo.
Poleg prilagajanja vrtilnih hitrosti z enega na drugi stroj morajo gonila v nekaterih primerih
premagati tudi razdaljo med obema gredema, kot razvidno na primeru na naslednji sliki
(Slika 1).
2
Slika 1: Zobniški reduktor
Gredi strojev sta lahko v eni osi, medsebojno vzporedni z medosno razdaljo, se sekata ali pa
sta mimobeţni pod nekim določenim kotom. Za vse te primere so razvili različne vrste
zobniških gonil. Zobniki z medsebojnim zaporednim ubiranjem zob prenašajo vrtilno gibanje
in vrtilne momente z ene na drugo gred, kar jih postavlja med glavne elemente zobniških
gonil. Najmanj dva zobnika (zobniška dvojica), ki ubirata in sta medsebojno povezana s
skupnim okrovom ali ročico, sestavljata zobniško gonilo. Če zobnika prenašata vrtilno
gibanje enolično, morata imeti obe zamišljeni kotalni (kinematični) telesi obliko rotacijskih
koles. Rotacijski osi obeh kinematičnih teles morata biti identični z rotacijskima osema
zobnikov. Plašč rotacijskega telesa, kinematična površina, oriše tvornica A-B, ki rotira okoli
rotacijske osi. Glede na poloţaj te tvornice k rotacijski osi nastanejo naslednje vrste: valji
(kadar je tvornica vzporedna rotacijski osi), stoţci (v primeru, da tvornica seka rotacijsko os)
in hiperboloidi (če sta tvornica in rotacijska os mimobeţni). Če dvojimo enaki kinematični
telesi s skupno tvornico, dobimo naslednje vrste gonil: gonila z valjastimi zobniki, gonila s
stoţčastimi zobniki ter gonila s hiperboloidnimi zobniki [1].
2.1 Gonila z valjastimi zobniki
Ozobje z ravnimi zobmi (Slika 2) lahko smatramo kot primer ozobja s poševnimi zobmi, le da
je nagibni kot bočnic enak nič, kar pomeni, da vse zakonitosti ozobij z ravnimi zobmi veljajo
tudi pri poševnih. Označbe in definicije pojmov na valjastih zobnikih določajo standardi (DIN
in ISO).
3
Slika 2: Valjasti zobniki na vzporednih gredeh
Ravnini, ki omejujeta zob po širini, sta čelni ravnini, katerih razdalja nam pove, kakšna je
širina zoba (b). Bok zoba je površina zoba med korensko in temensko površino. Razdelek
zobnih profilov na razdelnem krogu je dolţina loka na tem krogu med dvema zaporednima
desnima ali levima profiloma zobnih bokov. Razdelni krog s polmerom r0 je računska veličina,
ki je pomembna za izračun ostalih veličin zobnika. Obseg razdelnega kroga izračunamo s
pomočjo premera d0 in števila zob z. Za zmanjšanje potrebnih orodij so vrednosti modulov
standardizirane s standardi, ki navajajo veliko modulov, razdeljene pa so v tri prioritetne
razrede: največkrat se uporabijo vrednosti iz prvega razreda, z upravičenimi razlogi vrednosti
iz drugega, v izrednih primerih pa vrednosti iz tretjega razreda [1].
2.2 Gonila s stožčastimi zobniki
Za stoţčaste zobnike (Slika 3) označujemo zobniške dvojice, katerih osi se sekajo. Osi
stoţčaste zobniške dvojice se lahko sekata pod poljubnim kotom (najpogosteje 90°).
Stoţčasti zobniki povzročajo na svoje leţaje aksialne in radialne sile. Kot med osema in kot
razdelnih stoţcev se mora čim bolj ujemati s teoretičnimi merami. Presečišče osi in vrha
razdelnih stoţcev se mora ujemati v eni točki. Pri vseh gonilih s stoţčastimi zobniki je zaradi
dodatnih moţnosti odstopov potrebna večja pozornost pri izdelavi, uleţavanju in montaţi.
Gonila s stoţčastimi zobniki se delijo v štiri vrste: ravna, poševna, zerol in ukrivljena gonila.
4
Slika 3: Stožčasta zobniška dvojica
Stožčasti zobniki z ravnimi zobmi – pri njih se začne ubiranje zobne dvojice po vsej zobni
širini naenkrat, za kar so posebno občutljivi. Ţe manjši odstopi oblike bočnic, razdelka ali
deformacija gredi pod obremenitvijo povzročajo preobremenitve na zobnih koncih in
neenakomerni prenos vrtilnega gibanja, kar se kaţe v nihanju in ropotu. Zaradi takšnih
občutljivosti se ta vrsta zobnikov uporablja zgolj za gonila, kjer so zahteve glede obremenitve
in mirnosti teka zelo skromne.
Stožčasti zobniki s poševnimi zobmi – zaradi ugodnejših ubirnih razmer (bočno ubiranje)
so uporabni za večje obodne hitrosti. Predvsem so manj občutljivi za montaţno netočnost in
deformacijo gredi.
Stožčasti zobniki zerol – podobni so ravnim, vendar imajo v vzdolţni smeri rahlo ukrivljene
zobe, katerih nagibni kot bočnic v sredini zobne širine je enak nič. Ta vrsta ozobja ima
prednosti glede neobčutljivosti za premaknitve ukrivljenih in majhnih aksialnih obremenitev
ravnih stoţčastih zobnikov. Kljub vsem tem prednostim pa se zerol zobniki uporabljajo
večinoma le pri zelo togem uleţavanju, saj se zobni boki pri večjih deformacijah gredi
dotikajo na področju večjega nagibnega kota bočnic, pri čemer nastajajo večje aksialne sile
in s tem prevelike obremenitve leţajev, ki po drugi strani povzročajo še preobremenitve
zobnih bokov.
Ukrivljeno ozobljeni stožčasti zobniki – podobno kot zobniki zerol imajo v vzdolţni smeri
ukrivljene zobe, vendar so le-ti veliko bolj nagnjeni proti osi zobnika. Na pogled so podobni
poševnim zobnikom, razlog pa je v tem, da so poševni stoţčasti zobniki zgolj poseben primer
ukrivljeno ozobljenih. Zobčajo se na ameriških zobčalnikih Gleason, ki se uporabljajo tudi za
zerol zobnike. Poleg ameriških se uporabljajo še evropski (Klingelnberg, Fiat, Oerelikon,
Modul), in sicer za zobčanje ukrivljeno ozobljenih stoţčastih zobnikov [2].
5
2.3 Gonila z mimobežnimi osmi
Gonila z vijačnimi zobniki (Slika 4) uporabljamo za prenos moči iz vrtilnega gibanja pri
mimobeţnih gredeh. V nasprotju s kotalnimi gonili, kjer sta osi zobniške dvojice vzporedni ali
pa se sekata in kjer se kinematični telesi zobniške dvojice kotalita drugo po drugem brez
drsenja, pri čemer sta obodni hitrosti dotikalnih točk na obeh kinematičnih telesih identični, se
pri vijačnih gonilih kinematični telesi ne kotalita drugo po drugem brez drsenja, ker sta obodni
hitrosti dotikalnih točk na obeh kinematičnih telesih med seboj različni glede na velikost in
smer.
Slika 4: Gonilo z mimobežnimi osmi (polževo gonilo)
Poleg drsne hitrosti v smeri zobne višine nastaja še dodatna relativna drsna hitrost v smeri
bočnice, v celoti torej vijačno gibanje. Medtem ko je pri kotalnih gonilih na kinematičnem
krogu drsna hitrost enaka nič, nastaja pri vijačnih gonilih na tem področju drsna hitrost vzdolţ
bočnice. Za področja na zobnem vrhu in korenu lahko to drsno hitrost zdruţujemo v rezultat
skupaj z drsno hitrostjo, ki deluje v smeri zobne višine [3].
3 Načrtovanje aplikacij za izračun obstoječih zobnikov
Kot je bilo ţe omenjeno, bomo izdelali program za izračun obstoječih zobnikov tako za
uporabo na računalniku kot na telefonu, za kar bomo potrebovali dve ločeni aplikaciji. Prvo,
okensko aplikacijo bomo izdelali v razvojnem okolju Microsoft Visual Studio 2010 v
programskem jeziku C#, mobilno pa v okolju Eclipse Helios v programskem jeziku Java.
Čeprav nam bo izdelana okenska aplikacija orientacija za razvoj mobilne aplikacije, pa se
bosta razlikovali v določenih funkcionalnostih. Okenska aplikacija bo omogočala:
izračunavanje notranjih in zunanjih čelnih zobnikov (ravni, poševni),
izračunavanje stoţčastih zobnikov (ravni, ukrivljeni, poševni, zerol),
6
izračunavanje polţevega gonila,
shranjevanje izračunov v Excelovo tabelo,
moţnost takojšnjega tiskanja izračunov.
Izdelani aplikaciji bosta imeli veliko enakih funkcionalnosti, nekaj pa bo tudi razlik. Mobilna
aplikacija bo imela naslednje funkcionalnosti:
izračunavanje čelnih zobnikov (ravni, poševni),
izračunavanje stoţčastih zobnikov (ravni, ukrivljeni, poševni, zerol),
izračunavanje polţevega gonila,
shranjevanje izračunov v Excelovo tabelo,
moţnost pošiljanja tabele preko Bluetootha ali elektronske pošte.
4 Izdelava okenske aplikacije
Ţe v uvodu smo omenili, da so imeli inţenirji do sedaj na voljo le zastarelo konzolno
aplikacijo z izpisom omejenim le na izhod LPT. Od obdobja razširjenosti konzolnih aplikacij
se je v razvoju računalnikov veliko spremenilo, 64-bitni operacijski sistemi so danes ţe bolj
pravilo kot izjema, kar lahko predstavlja problem, saj večina starih konzolnih aplikacij na teh
sistemih ne teče. Danes sta grafični vmesnik in izmenjava podatkov v razširjenih podatkovnih
formatih (npr. Excelov format) skorajda samoumevna, zato pisanje ukazov v konzolo in
omejitev izpisa na izhod LPT ni sta več sprejemljiva. Iz teh razlogov smo se odločili za
izdelavo programa z grafičnim vmesnikom in podporo za 64-bitna Okna. Moţnost tiskanja na
katerikoli povezan tiskalnik na računalnik, na katerem teče program, in moţnost shranjevanja
izračunov v tabelo v Microsoft Office Excel s formatom .xls pomenita dodatno olajšavo pri
delo s programom. V nadaljevanju bomo na kratko spoznali operacijski sistem Windows in
njegove 64-bitne različice, orodje, s katerim smo razvili namizno aplikacijo in dejansko
aplikacijo za izračun zobnikov.
4.1 Operacijski sistem Windows
Računalniški gigant Microsoft je prepoznaven prav zaradi svojega operacijskega sistema
Windows [4], ki je najbolj razširjen operacijski sistem v splošni rabi računalnikov. Vzrok za
tako mnoţično uporabo je uporabniku prijaznejši in enostavnejši operacijski sistem z
grafičnim vmesnikom.
7
4.1.2 Zgodovina
Bill Gates in Paul Allen sta leta 1975 ustanovila podjetje Microsoft, katerega vizija je bila
spraviti računalnik na vsako delovno mizo.
Leta 1980 je k podjetju pristopil še Steve Ballmer, kaj kmalu zatem pa je Microsoft sklenil
pogodbo z izdelovalcem računalniške strojne opreme IBM-om (International Business
Machines). Tako je v projektu »Šah«, kot so ga poimenovali, IBM izdelal osebni računalnik,
Microsoft pa operacijski sistem MS-DOS (Microsoft Disc Operating System), ki je tekel na
računalnikih. Kasneje, od leta 1983 pa do leta 1998, je izšlo pet verzij operacijskega sistema
Windows, katerih podsistem je bil MS-DOS.
Windows XP – Jeseni 2001 je v petindvajsetih jezikih izšla nova različica Microsoftovega
operacijskega sistema (Slika 5), ki je zaradi svoje hitrosti in varnosti postal eden izmed
najbolj prodajanih izdelkov Microsofta. V petih letih je bilo v uporabi kar štiristo milijonov kopij
tega sistema. Zaradi vse večjega zavedanja nevarnosti računalniških virusov in hekerskih
vdorov so v tej verziji Oken s pomočjo varnostnih posodobitev dali velik poudarek na samo
varnost sistema.
Slika 5: Primer uporabe OS Windows XP
Windows XP je izšel v dveh različicah, Home edition in Professional. Prva je bila namenjena,
kot ţe samo ime pove, domačim uporabnikom, saj je ponujala čarovnika za nameščanje
omreţja, predvajalnik glasbe in videa in pogost dostop do ostalih funkcij sistema, kar je
uporabnikom začetnikom olajšalo delo z računalnikom. Druga različica, Windows XP
Professional, pa je sluţila naprednejšim uporabnikom in delovnemu/poslovnemu okolju. Ta
različica je bila, v primerjavi z Windows 2000, veliko bolj zanesljiva, varna in učinkovita,
nudila je podporo oddaljenega namizja, šifrirnim datotečnim sistemom in novejšim omreţnim
8
funkcijam, saj je podpirala brezţična omreţja 802.1x. Z letom 2001 se je začela nova doba
računalništva; izšla je prva različica 64-bitnega operacijskega sistema, namenjena
računalnikom s 64-bitnim procesorjem in velikimi pomnilniškimi zmoţnostmi za zahtevnejše
3D animacije, filmske učinke in inţenirske programe.
Windows Vista – Čas, ki je pretekel med izdajo različic XP in Viste, je bil najdaljši med
vsemi izidi Microsoftovih operacijskih sistemov. Čeprav je bil datum izida Viste (Slika 6)
planiran ţe v letu 2004, se je le-ta zamaknil za dve leti, saj so spremenili načrte ter opustili
razvoj novejšega varnostnega in datotečnega sistema. Z vedno večjo prodajo prenosnih
računalnikov se je namreč dvignila potreba po večji varnosti podatkov; Vista je omogočala
šifriranje pogona BitLocker. Največje spremembe so se zgodile na samem vmesniku, ki so
ga poimenovali Windows Aero; preglednejša opravilna vrstica, s katero je uporabniku
omogočeno hitro iskanje ţelene datoteke.
Slika 6: Primer uporabe OS Windows Vista
Dodan je bil tudi nov razvijalni API z imenom WinFX, ki je temeljil na ogrodju .NET
framework, kar je razvijalcem programske opreme za Okna omogočalo laţje delo. Trgu so
bile na voljo naslednje različice Viste: Starter, Home Basic, Home Premium, Business,
Enterprise in Ultimate.
Windows 7 – Oktobra 2009 je Microsoft na trg ponudil novo verzijo sistema, ki je po
vmesniku zelo spominjala na Visto, vendar pa je bilo delovanje Windows 7 zaradi večje
izkoriščenosti dvojedrnih procesorjev hitrejše. Odpravili so tudi veliko napak, ki jih je imela
Vista. Nudil je podporo za zaslone na dotik s pomočjo Windows Touch, predvajanje glasbe
na daljavo, ki jo je omogočala oddaljena pretočna predstavnost, prvič pa je bil, s potegom
9
miške na določeno ikono aplikacije, omogočen tudi predogled sličic v opravilni vrstici (Slika
7). Cilj je bil torej doseţen, uporaba računalnika je po zaslugi raznih funkcij in podpor, ki jih
omogoča operacijski sistem Windows, postala in še postaja vse enostavnejša, kar je eden
izmed glavnih razlogov, da je Windows 7 presegel prodajo prej najbolj prodajanega sistema,
Windows XP.
Slika 7: Primer uporabe OS Windows 7
Microsoft je sistem ponudil v šestih različicah: Starter (edina, ki ni podpirala 64-bitne
procesorske arhitekture), Home Basic, Home Premium, Professional, Enterprise in Ultimate
[6].
4.2 Microsoft Visual Studio
Za izdelavo okenske aplikacije izračun obstoječih zobnikov smo uporabili programsko okolje,
ki ga je razvil Microsoft, imenovano Visual Studio verzije 2010. Visual Studio je razvojno
okolje, ki se uporablja za razvoj konzolnih programov, grafičnih aplikacij uporabniškega
vmesnika, spletnih strani, spletnih aplikacij, spletnih servisov, omogoča pa razvoj aplikacij s
podporo za platforme Microsoft Windows, Windows Mobile, Windows CE, .NET Framework,
.NET Compact Framework in Microsoft Silverlight. Vgrajeni razhroščevalnik programske
kode deluje na obeh ravneh; na ravni vira (programa) in na ravni naprave (računalnika). Med
pomembnejše vgrajene pripomočke lahko štejemo oblikovalca Oken za gradnjo grafičnih
vmesnikov, spletnega oblikovalca in oblikovalca shem za postavitev podatkovne baze,
omogočeno pa je tudi dodajanje funkcionalnosti po potrebi uporabnika. Visual Studio podpira
različne programske jezike: C/C++, VB.NET, C# in F#. Z nameščenimi dodatki pa je moţno
programirati tudi v jezikih: M, Python in Ruby. Za izdelavo spletnih aplikacij in storitev podpira
tudi: XML/XSLT, HTML/XHTML, JavaScript in CSS. Obstajajo še posamezne jezikovne
različice Visual Studia, ki omogočajo uporabo jezikov: Visual Basic, Visual J#, Visual C# in
Visual C++.
10
4.2.1 Urejevalnik kode
Kot vsako razvojno okolje tudi Visual Studio vsebuje urejevalnik kode, ki podpira barvno
označevanje sintakse in dopolnjevanje kode IntelliSense za spremenljivke, funkcije, metode
in razne privzete funkcije jezika. IntelliSense prav tako podpira XML, CSS (Cascading Style
Sheets) in JavaScripts. Predlogi avtomatičnega dokončanja stavka se pojavijo v drsečem
oknu pod stavkom, ki ga uporabnik pravkar piše. Urejevalniki kode so vključeni v vse
programske jezike, ki jih podpira Visual Studio. Medtem ko je del kode napisan, Visual Studio
v ozadju zaţene prevajalnik, ki preveri sintakso in označi morebitne napake ali opozorila.
Vendar to prevajanje kode v ozadju ne generira izvedljive kode, saj se za ustvarjanje
izvedljive kode uporablja drugi prevajalnik. Sprva je bilo sprotno prevajanje v ozadju uvedeno
zgolj za Microsoft Visual Basic, danes pa je prisotno v vseh vključenih jezikih razvojnega
okolja.
4.2.2 Razhroščevalnik
Razhroščevalnik se uporablja za razhroščevanje aplikacij v vseh programskih jezikih, ki jih
podpira Visual Studio, poleg tega pa še zaganja proces in ga prikaţe na zaslonu.
Razhroščevalnik ima moţnost, da ga zaţenemo, kadar se aplikacija zunaj delovnega okolja
zruši. Tako nam pomaga popraviti napake. Podpira tudi programe, v katerih teče več niti
hkrati. Ponuja moţnost postavljanja prekinitvenih točk, ki v izvajanju aplikacije obstojijo na
ţeleni točki, s pomočjo ure pa lahko uporabnik spremlja vrednosti spremenljivk, kar
pripomore k hitrejši rešitvi problemov, ki nastanejo med programiranjem. Prekinitvene točke
so lahko tudi pogojne, to pomeni, da se delovanje programa ustavi na točki le v primeru, da
je pogoj izpolnjen, kar pripomore k hitrejšemu preverjanju kode. Moţna je tudi podpora
funkciji Uredi in nadaljuj, ki dopušča popravljanje kode med samim izvajanjem
razhroščevanja, vendar je ta moţnost zaênkrat mogoča le v 32-bitni različici okolja.
4.2.3 Oblikovalec
Visual Studio vsebuje kopico vizualnih oblikovalcev za izdelavo aplikacij. To so naslednja
orodja [7]:
okenski oblikovalec (Windows form designer),
WPF oblikovalec (Windows Presentation Foundation),
spletni oblikovalec/izdelovalec (Web designer/development),
razredni oblikovalec,
oblikovalec mapiranja (Mapping designer).
11
4.2.4 Zgradba
Posamezna okenska aplikacija je zbirka izvršljivih programov in podpornih datotek, vsaka
aplikacija pa je v sistemu predstavljena kot proces z določeno rezervirano količino
pomnilnika. Procese sestavljajo niti ali vsaj ena sama nit, njihova naloga pa je zaganjati
programsko kodo aplikacije. Namen niti je tudi, da izvede več kot eno operacijo, kar je v
večprocesorskih sistemih moţno, saj lahko več niti dostopa do več procesorjev. V eno-
procesorskem okolju pa mora procesor določiti časovni obroč, v katerega spada določena
nit, da se izvrši. Za primer delovanja vzemimo Intelov mikroprocesor Pentium. Ima štiri ravni
privilegiranja, znane kot obroči, ki nadzirajo dostop do pomnilnika in občutljivih enot
procesorja. Vsaka nit se izvaja v enem izmed teh obročev. Obroč številka nič je namenjen
najpomembnejšim, številka tri pa najmanj pomembnim izvršitvam niti. Microsoft je pri svojem
operacijskem sistemu za zdruţljivo delovanje tudi na mikroprocesorjih ostalih proizvajalcev
uvedel le dve stopnji obročev; številko nič in tri, brez vmesnih ena in dva. Kadar nit teče v
obroču številka nič, to pomeni, da je v jedrnem načinu (kernel mode) delovanja, kadar pa je v
obroču številka tri, pa v uporabniškem načinu (user mode) delovanja, kot je prikazano na
spodnji shemi (Slika 8). Koda niţjih ravni operacijskega sistema se vrši v jedrnem načinu,
medtem ko koda uporabniških aplikacij teče v uporabniškem načinu. Določena nit aplikacije
preide iz uporabniške v jedrni način v primeru, ko API pošlje zahtevo za večji privilegij, kar nit
postavi v obroč številka nič. Tako je tudi moţno, da nekatere niti uporabniških vmesnikov
preţivijo več časa v jedrnem kot v uporabniškem načinu. Ko se nit v jedrnem načinu izvrši,
se vrne nazaj v uporabniški način, kar preprečuje, da bi programer napisal program, ki bi
tekel zgolj v jedrnem načinu. Za to mora klicati sistemske funkcije (s pomočjo API-jev) [5].
12
Slika 8: Arhitektura operacijskega sistema Windows
4.3 Okenska aplikacija Izračun obstoječih zobnikov
V okenski aplikaciji je vsaka vrsta zobnikov dobila svoje okno in razred. Vrste so se
poimenovale po imenih zobnikov (Čelni, Stoţčasti, Polţ). Ti razredi vsebujejo metode, ki se
vršijo ob določenih akcijah nad gumbi v posameznem oknu. V metodah smo v spremenljivke
zapisovali rezultate formul za izračunavanje raznih geometrijskih veličin, ki so potrebne za
izvedbo nadaljnjih korakov izdelave novega zobnika. Po vseh izračunih se za izbrano vrsto
zobnika odpre novo okno za izpis rezultatov, ki bodo prikazani v elementu. Okna, in sicer v
obliki tabele, bo moţno shraniti s formatom .xls (Microsoft Office Excel) ali natisniti. Za to
smo potrebovali dodatne metode; eno za kreiranje Excelove tabele, ostale za pošiljanje
podatkov na izbrani tiskalnik, kjer se bodo izpisali podatki, slika primera izbrane vrste
zobnika ter datum in čas tiskanja.
Ko izberemo določeno vrsto zobnika v začetnem oknu (Slika 9), se nam odpre novo okno,
kamor vpišemo zahtevane podatke za nadaljnje izračune. Za vsako vrsto zobnikov je seveda
postopek in izračun drugačen, zatorej sledi opis vseh treh vrst zobnikov.
13
Slika 9: Izgled glavnega okna okenske aplikacije
4.3.1 Čelni zobniki
Ta vrsta zobnikov se deli na ravne (Slika 10) in poševne, med njima pa je kar nekaj razlik.
Ena, tudi najbolj vidna, je nagibni kot bočnic, ki je pri ravnih enak 0°, pri poševnih pa različen
od 0°.
Slika 10: Primer čelnega ravnega zobnika
Ob odprtju novega okna za vnos podatkov program od nas pričakuje vrednosti za naslednje
geometrijske veličine:
število zob prvega zobnika,
število zob drugega zobnika,
ubirni kot,
nagibni kot bočnic – le pri poševnih,
medosna razdalja,
standardni modul.
14
V oknu za čelne zobnike smo oblikovali elemente z imenom besedilno polje (TextBox), iz
katerih se vnesene vrednosti shranijo vsaka v svojo spremenljivko (večino kot realna števila
podatkovnega tipa double).
V praksi je veliko primerov (Slika 11), pri katerih uporabnik ne vnese standardnega modula,
zato smo morali program prilagoditi tako, da nas ta vpraša po zunanjih premerih zobnikov in
meri preko zob prvega zobnika, s čimer dobimo izračun modula zobnika. Sicer vprašamo po
profilnih premikih posameznega zobnika. Za oba primera uporabe smo izdelali svoje
skupinsko polje (GroupBox), ki vsebuje polja za vnos vrednosti geometrijskih veličin. Vidnost
v oknu jima spreminjamo odvisno od prejšnjega pogoja, vnesenega modula. Kadar program
sam izračuna modul, nam le-tega prikaţe v besedilnem polju naslednjega skupinskega polja,
kamor smo dodali še en element, imenovan kombinirano polje (comboBoxu). Le-ta vsebuje
drseče polje moţnih vrednosti, v tem primeru standardnih modulov. Ko uporabnik izbere
standardni modul in ga potrdi, mu program pri poševnih zobnikih izračuna nagibni kot bočnic,
katerega lahko potrdi ali popravi, za kar smo dodali še dva besedilna polja; enega za
izračunani nagibni kot bočnic, drugega pa za izbranega, kjer ni predpisanih standardov, zato
se tudi nismo odločili, tako kot v primeru standardnega modula, za kombinirano polje.
Slika 11: Primer izračunov čelnih poševnih zobnikov − začetek
Zatem program v novem skupinskem polju poda za vsak zobnik posebej število zob (Slika
12), čez katere merimo, ter mero čez zobe, kjer smo s pomočjo izbranega modula,
nagibnega kota bočnic, medosne razdalje, faktorja korekcije in še nekaterih izpeljank
15
sestavili formulo za izračunavanje mere preko zob in števila zob, čez katere merimo. Mero
lahko uporabnik spreminja ročno ali glede na zunanji premer zobnika, za kar smo dodali
posebni gumb. Ponovno smo potrebovali izpeljevanje formul, in to za vsak primer posebej.
Izračunane vrednosti za posamezni zobnik so zapisane v notranjem skupinskem polju; na
levi strani za prvi zobnik, na desni pa za drugega. Ko je uporabnik z mero čez zobe
zadovoljen, program nadaljuje z računanjem medosne razdalje, a le v primeru, kadar se
računa zobniška dvojica. Pri posameznih zobnikih medosne razdalje ni, tako smo nastavili
pogoj, ki preveri število zob drugega zobnika, s čimer dobimo informacijo, ali gre za
posamezni zobnik ali za dvojico. Dodali smo dve besedilni polji; prvo za izračunano medosno
razdaljo, drugo pa za izmerjeno (če jo je uporabnik vpisal na začetku programa). V uporabi
se mora izračunana razdalja čim bolj pribliţati izmerjeni, kar se doseţe s pravo korekcijo
profilnih premikov. Prav korekcije zobnikov lahko spreminjamo glede na medosno razdaljo, s
čimer na novo izvršimo določene izračune, za kar pa potrebujemo dodatna besedilna polja v
skupinskem polju medosne razdalje, ki postanejo vidna ob pritisku na gumb za spreminjanje
korekcije. Prav faktorja korekcij sta ena izmed najpomembnejših veličin, saj sta prisotna v
veliki večini formul za izračunavanje geometrijskih veličin.
Slika 12: Primer izračunov čelnih poševnih zobnikov – zadnji izračuni
Sledi izpis izračunanih geometrijskih veličin in njihovih vrednosti (Slika 13). Za prikaz končnih
izračunov smo uporabili element mreţni prikazovalec podatkov (DataGridView), pri katerem
smo ustvarili tabelo z naslovno vrstico in stolpci za oba zobnika posebej. Ker je tabela v
16
novem oknu novega razreda, smo morali v razredu izračunov čelnih zobnikov ustvariti objekt
razreda IzpisCelni, v katerem se nahaja mreţni prikazovalec podatkov. V konstruktorju
razreda pa smo zapisali argumente, ki smo jih ţeleli prenesti v novo okno; to pa so
izračunane geometrijske veličine. V tabelo smo vnašali podatke po vrsticah; v vsaki vrstici
smo zapisali ime geometrijske veličine, oznako in vrednosti za prvi in drugi zobnik, če je le-ta
obstajal.
Slika 13: Primer izračunov čelnih poševnih zobnikov – končni izpis
4.3.2 Stožčasti zobniki
Pri tej vrsti zobnikov (Slika 14) lahko uporabnik izbira med štirimi različnimi zobniškimi
dvojicami: ravni, poševni, ukrivljeni in ZEROL.
17
Slika 14: Primer stožčastih ukrivljenih zobnikov
V primeru, da uporabnik izbere poševne, ukrivljene ali ZEROL zobnike, program zahteva
nagibni kot bočnic, pri ukrivljenih in ZEROL zobnikih pa tudi srednji nagibni kot, kar pomeni,
da smo pri ravnih zobnikih te vrste elemente v oknu za nagibne kote skrili, da uporabnik ne
more vpisovati nepotrebnih podatkov. Zatem se odpre okno, v katerem program pričakuje
podatke za naslednje geometrijske veličine:
število zob prvega zobnika,
število zob drugega zobnika,
kot med osema,
izmerjeni zunanji premer,
delitev,
izmerjena širina zobnika,
smer nagiba bočnic.
Podobno kot pri čelnih zobnikih smo tudi za stoţčaste zobnike za vsak sklop vpisa podatkov
ustvarili skupinsko polje z besedilnimi polji (Slika 15). V naslednjem koraku se določi
temenski razstop, ki je lahko konstanten ali spremenljiv. V tem koraku program tudi ponudi
izračunani modul, od uporabnika pa zahteva, da izbere enega izmed standardnih modulov, ki
ga izbere iz kombiniranega polja. V končnem koraku smo izdelali novo okno, ki sluţi kot izpis
izračunov (Slika 16), ki smo jih zapisali v mreţni prikazovalec podatkov; prav tako kot za
prejšnjo vrsto zobnikov.
18
Slika 15: Primer izračunov za stožčaste ukrivljene zobnike − začetek
Slika 16: Primer izračunov za stožčaste ukrivljene zobnike – končni izpis
19
4.3.3 Polžasta gonila
Polţasto gonilo (Slika 17) sestavljata dve komponenti, polţ in polţevo kolo.
Slika 17: Primer polževega gonila
S programom za izračun obstoječih zobnikov lahko izračunamo geometrijske veličine za to
vrsto zobnikov. V začetni fazi se programu vnesejo vrednost za naslednje veličine:
čelni razdelek,
medosna razdalja,
število stopenj polţa,
število zob polţevega kolesa,
zunanji premer polţa,
zunanji premer polţevega kolesa,
kot profila,
smer zavojnice.
Tudi za polţeva gonila smo izdelali dve okni; prvo za vpis in izračun podatkov (Slika 18),
drugo pa za izpis podatkov ter moţnosti tiskanja in shranjevanja podatkov (Slika 19).
20
Slika 18: Primer izračunov za polževo gonilo − začetek
Slika 19: Primer izračunov za polževo gonilo – končni izpis
21
4.3.4 Izpis podatkov
Program po končanih izračunih za določeni zobnik izpiše podatke na zaslon v mreţnem
prikazovalcu podatkov, v tabelo z moţnim naknadnim spreminjanjem podatkov s strani
uporabnika. Program ponuja dve moţnosti; izvoz tabele podatkov v Microsoft Office Excel in
tiskanje tabele neposredno iz aplikacije.
4.3.5 Izvoz podatkov v Microsoft Office Excel
Za izvoz podatkov iz tabele elementa mreţni prikazovalec podatkov v Excel smo morali v
programsko orodje Visual Studio uvoziti referenco za Microsoft Excel 12.0 object library in
dodati uporabo knjiţnice s sledečim ukazom [8]:
using Excel = Microsoft.Office.Interop.Excel;.
Ko smo imeli vključeno knjiţnico za delo z Excel dokumenti, smo ustvarili objekt razreda
ApplicationClass, znotraj katerega smo lahko ustvarili delovno knjigo (workbook) ali
dokument, znotraj tega pa list, v katerega se zapiše tabela izvoţenih podatkov. Ker bo ime
dokumenta določeno po končanem zapisu tabele v Excel, potrebujemo še Type.Missing.
Excel.Application xlApp;
Excel.Workbook dokument;
Excel.Worksheet list;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.Application();
dokument = xlApp.Workbooks.Add(misValue);
list = (Excel.Worksheet)dokument.Worksheets.get_Item(1);.
Podatke prenašamo iz mreţnega prikazovalca podatkov v Excel, celico po celico. Najprej
prenesemo imena stolpcev in jih zapišemo v Excel, zatem pa še ostale podatke po vrsticah.
int k = 0;
for (k = 0; k < dataGridView1.ColumnCount; k++)
list.Cells[3, k + 1] = dataGridView1.Columns[k].HeaderText;
k = 3;
for (int i = 0; i <= dataGridView1.RowCount - 1; i++)
{
for (int j = 0; j <= dataGridView1.ColumnCount - 1; j++)
list.Cells[k + 1, j + 1] = dataGridView1.Rows[i].Cells[j].Value;
k++;
}.
Ko so vsi podatki preneseni v tabelo v Excelu, se uporabnik odloči, ali jih ţeli shraniti (Slika
20).
22
Slika 20: Okno za shranjevanje izračunov v Excelovo tabelo
Odpre se nam okno za shranjevanje datoteke s končnico, ki uporabniku nudi shranjevanje
tabele v formatu xls.
4.3.6 Tiskanje podatkov
Poleg izvoza podatkov v Excel nudi program uporabniku tudi moţnost, da tabelo s podatki
natisne neposredno z izbranim tiskalnikom. Za tiskanje podatkov smo v aplikacijo vključili
komponenti printDialog in printDocument; prva nam je sluţila za nastavitve tiskalnika, druga
pa za izbor podatkov za tiskanje (Slika 21). V printDocument smo določili še akciji BeginPrint
za določitev niza tiskanja in Print, ki pošlje na tiskalnik izbor podatkov [9].
23
Slika 21: Okno za nastavitve tiskanja tabele izračunov
5 Izdelava mobilne aplikacije
Ker se v praksi stojnega inţenirja večkrat zgodi, da mora poškodovan zobnik izračunati na
mestu samem, smo se odločili za izdelavo mobilne aplikacije. V svetu so mobilni telefoni s
podporo operacijskega sistema Android med najbolj razširjenimi, kar je botrovalo k temu, da
naša aplikacija teče na tej platformi.
V nadaljevanju bomo na kratko spoznali operacijski sistem Android ter njegove različice, nato
pa še orodje, s katerim smo razvili mobilno aplikacijo.
5.1 Operacijski sistem Android
Android je operacijski sistem, namenjen mobilnim napravam, kot so pametni telefoni in
tablični računalniki. Njegovo delovanje omogoča pet delov (Slika 22) [10] [11] [12]:
Aplikacije – sem spadajo vse aplikacije, ki jih ima uporabnik naloţene na svoji napravi.
Glavne aplikacije, ki so skoraj na vsakem pametnem telefonu ali tabličnem računalniku, so
odjemalec elektronske pošte, koledar, spletni brskalnik in seveda stiki prijateljev. Vse te
aplikacije so napisane v programskem jeziku Java.
Aplikacijsko ogrodje – sem spadajo aplikacije sistema, ki upravljajo z uporabniškimi
aplikacijami. To so različni upravljavci:
aktivnosti (skrbi za ţivljenjski krog aplikacije),
pomnilnika (skrbi za potrebne datoteke aplikacije in grafične vmesnike),
lokacij (aplikacijam omogoča deliti informacije),
24
obvestil (skrbi za obvestila in alarmne signale).
Knjižnice – Android za različne komponente sistema uporablja sklop C in C++ knjiţnic.
Razvijalcem programske opreme so skozi aplikacijsko ogrodje dostopne sposobnosti teh
knjiţnic. Osnovne knjiţnice so:
sistemska C knjiţnica (standardna knjiţnica, ki nudi podporo napravam, ki tečejo na
Linuxu),
medijske knjiţnice (podpirajo predvajanje in snemanje različnih avdio in video
formatov),
upravitelj površine (upravlja dostop prikazovanja podsistema ter grafične plasti več
aplikacij),
knjiţnica spletnega jedra – LibWebCore (omogoča Androidov spletni brskalnik in
vdelani spletni pogled), SGL (osnovna knjiţnica za 2D grafiko),
3D knjiţnice (izvedba temelji na API-ju OpenGL ES 1.0, namenjene so strojni opremi
3D pospeševanje (pospeškometer, če je le-ta na voljo) ali pa so vključene v
programsko optimiziran 3D rasterizator),
FreeType (podpora bitnim in vektorskim vrstam pisav),
SQLite (aplikacijam omogoča dostop do podatkovne baze).
Prevajalnik – vsaka Androidova aplikacija deluje v svojem procesu, na svojem Dalvikovem
virtualnem stroju. Dalvik napravam omogoča, da na njih teče več virtualnih strojev hkrati, kar
pripelje do večopravilnosti Androida. Da se porabi čim manj pomnilnika, Dalvik prevede
izvršilne datoteke v svoj format (.dex – Dalvik Executable). Virtualna naprava, ki je vezana na
register, poganja razrede, spisane v javanskem programskem jeziku in prevedene s pomočjo
Javinega prevajalnika, ki so pretvorjeni v .dex format skupaj z Dalvikovim orodjem.
Jedro operacijskega sistema Linux – Android za osnovne storitve svojega sistema temelji
na Linuxu 2.6. Te storitve so: varnost, upravljanje s pomnilnikom in procesi, omreţje in
gonilniki. Jedro sluţi tudi kot povezava med strojno opremo in ostalimi programskimi plastmi
sistema.
25
Slika 22: Arhitektura operacijskega sistema Android
5.1.1 Zgodovina
Android, kot podjetje, je bilo ustanovljeno v oktobru leta 2003 v Kaliforniji, ZDA, v letu 2005,
ko je podjetje postalo last Googla, s čimer je Google vstopil v posel z mobilnimi telefoni. V
podjetju so ostali ključni ljudje, ki so in še vedno razvijajo operacijski sistem Android.
Sistem se je začel bolje razvijati leta 2007 z ustanovitvijo konzorcija OHA (Open Handset
Alliance), ki danes zdruţuje ţe 86 podjetij (razvijalci strojne in programske opreme ter
telekomunikacijskih tehnologij). Posvetili so se napredku z odprtimi standardi mobilnih
naprav, kar je pripomoglo k temu, da je Google s pomočjo licence Apache izdal Androidovo
kodo kot odprtokodno.
Na trgu je postal prepoznaven konec oktobra 2008, ko so v Zdruţenih drţavah Amerike izdali
mobilni telefon T-Mobile G1 (Slika 23) z operacijskim sistemom Android 1.0. Tako so bili
postavljeni temelji, na katerih se še dandanes gradi vse večja razširjenost Androida na
mobilnih napravah, pa čeprav se je na prvi napravi z Androidovim operacijskim sistemom na
trgu pogrešalo kar nekaj lastnosti, brez katerih si današnji uporabniki mobilnih telefonov ne
predstavljajo (brez zaslonske tipkovnice, zmogljivosti na dotik, vse aplikacije so bile
plačljive).
26
Slika 23: Motorola T-Mobile G1
Nekaj lastnosti Androida, ki mu zagotavljajo konkurenčnost:
Pripomočki na primarnem zaslonu – ena izmed velikih prednosti pred konkurenco, saj si
tovrstne pripomočke uporabnik prilagodi svoji uporabi naprave.
Integracija Googlove elektronske pošte – ţe kar nekaj časa pred izidom prvega telefona z
Androidovo podporo je Gmail podpiral protokola POP in IMAP za mobilno elektronsko pošto,
vendar pa nobeden izmed protokolov ni podpiral nekaterih edinstvenih funkcij, kot sta
arhiviranje in označevanje. Android 1.0 je to napako odpravil in si s tem na trgu pridobil
veliko prednost v mobilni uporabi elektronske pošte.
Android market – danes si kar teţko predstavljamo, da pametni telefoni ne bi imeli nekega
središča, od koder črpamo potrebne aplikacije za svoje naprave, a ob izidu prve verzije
Androida ni bilo tako. Android market je ponujal zgolj nekaj osnovnih aplikacij, ni vseboval
večplastnega kurirjenja, kot ga ima današnja verzija, ampak samo eno samo ročno izbrano
vrstico na vrhu privzetega zaslona telefona.
Google je s pomočjo švedskega podjetja The Astonishing Tribe (TAT) izdelal grafični
vmesnik za Android verzijo 1.0. TAT je kasneje postal last podjetja Research In Motion
(RIM), v sklopu katerega se je posvetil njihovim BlackBerry telefonskim napravam in njihovi
BBX platformi. Tako se je sodelovanje med Googlom in TAT-om končalo.
Za verzijo 1.0 se je od februarja 2009 pa do novembra 2011 razvilo kar nekaj verzij sistema:
Android 1.1,
Android 1.5 »Cupcake«,
27
Android 1.6 »Donut«,
Android 2.0 »Eclair«,
Android 2.2 »Froyo«,
Android 2.3 »Gingerbread«,
3.X »Honeycomb«,
Android 4.0 »Ice Cream Sandwich«.
V Sladolednem sendviču (Ice Cream Sandwich - ICS) (Slika 24) je Google obnovil
sodelovanje s Samsungom. Izdelali so nov telefon v seriji Nexus z imenom Galaxy Nexus, s
katerim je izšla nova verzija sistema Android 4.0, imenovana sladoledni sendvič (po imenu
še ene sladice).
Slika 24: Logotip Androida 4.0
Kljub temu, da je ICS le nekakšna priredba Honeycomba, saj imata veliko skupnih novosti, je
za Android ta nadgradnja ena izmed največjih do sedaj. ICS je zamenjal staro pisavo, ki je
veljala vse od 1.0 verzije, z novo, Roboto pisavo, ki veliko bolje izkoristi višje ločljivosti
današnjih zaslonov. Odpravljena je bila ena izmed najstarejših značilnosti Androida,
obvestila na zaslonu. V prejšnjih verzijah je lahko uporabnik počistil le vsa obvestila hkrati ali
pa mu je ob pritisku odpiralo aplikacije, ki jih ni ţelel. ICS je uporabniku omogočil, da je
obvestilo, ki ga je prebral, enostavno izločil iz ostalih obvestil. Naslednji velik korak po
Gingerbreadu na področju virtualnih tipkovnic je bil narejen prav v ICS-ju. Na videzu ni bilo
nekih velikih sprememb, pomembnejše spremembe so bile na popravkih inteligence
popravljanja črkovanja in predloga besed. Z rdečo barvo obarva besede, ki niso pravopisno
pravilne, ter iz slovarja predlaga pravilnejše. Z vnosom besedila, podporo odloţišča in
izpopolnjeno virtualno tipkovnico je Android eden izmed vodilnih na današnjem trgu. Kot smo
28
ţe omenili, je ICS veliko podedoval od tablične verzije Honeycomb, a dodali so tudi nekaj
novih trikov. Ustvarjanje map je postalo zelo enostavno, saj mora uporabnik samo potegniti
eno ikono na drugo in prikaţe se ikona v obliki tridimenzionalnega kupa. Mapa je tako
ustvarjena. Za razliko od Froyota in Gingerbreada, ki je imel telefonske in internetne
aplikacije fiksno na dnu zaslona, pa ICS omogoča, da si uporabnik prilagodi aplikacije na
primarnem zaslonu svojim potrebam v prid. NFC podpora je sicer privabljala kupce telefona
Nexus S in z njim Gingerbread, vendar pa poleg omejenega zagona Googlove denarnice
funkcionalnost ni bila dovolj praktična, zato je ICS ponudil novo podporo, imenovano Android
Beam (širina). Le-ta je omogočala, da sta se dva telefona povezala z dotikom drug ob
drugega in tako sta lahko izmenjavala podatke. Ključavnice z vzorci in gesli smo spoznali ţe
s prejšnjimi verzijami, ICS pa je izdal odklepanje telefona z zaznavo obraza uporabnika. Da
naprava zazna uporabnika, ji je v pomoč kamera na sprednji strani telefona (nad zaslonom),
vendar pa ta funkcija sluţi bolj kot nekaj novega, ne pa tudi zelo uporabnega. Gingerbread je
vseboval vmesnik za prikazovanje porabe baterijske energije, ICS pa je izdal vmesnik za
prikaz porabe pomnilnika (Slika 25). Tako uporabnik vidi, koliko spomina porabljajo
posamezne aplikacije. Če ugotovi, da je to preveč, lahko aplikacijo konča [13].
Slika 25: Primer vmesnika za prikazovanje porabe baterije in pomnilnika
5.2 Eclipse
V programskem svetu se omemba »Eclipse« nanaša na komplet razvojne programske
opreme (SDK), ki jo sestavljajo platforma Eclipse, Javino razvojno orodje in plug-in razvojno
okolje (Slika 26). Platforma Eclipse je več-jezikovno programsko razvojno okolje, ki vsebuje
integrirano razvojno okolje (IDE) in razširljiv plug-in sistem; večinoma je napisan v
programskem jeziku Java. S pomočjo različnih vtičnikov se lahko uporablja za razvoj aplikacij
v različnih programskih jezikih: Ada, C, C++, COBOL, Erlang, Java, Perl, PHP, Python, R,
Ruby, Scala, Clojure, Groovy in Scheme. Podporo pa nudi tudi razvojnemu paketu programa
29
Mathematica. Razvojno okolje za Javo vključuje Eclipse Java razvojna orodja (JDT), Eclipse
CDT za C in C++ ter Eclipse PDT za PHP [14].
Slika 26: Primer uporabe razvojnega okolja Eclipse
Platforma Eclipse za zagotavljanje funkcij znotraj in zunaj sistema uporablja vtičnike, ki jih
nekatere druge platforme ne omogočajo, deluje pa na osnovi Equinox, implementaciji jedra
OSGi delovnega okvirja. Poleg tega, da platforma omogoča uporabo drugih programskih
jezikov, delovni okvir vtičnika platformi omogoča tudi delo z jeziki, kot je Latex, spletne
aplikacije in sistem za upravljanje s podatkovnimi bazami. Zgradba vtičnika podpira pisanje
ţelenih razširitev v okolju, prav tako pa tudi nastavitve upravljanja platforme. V platformi igra
glavno vlogo, razen majhnega jedra za izvajanje, vtičnik, kar pomeni, da se vtičnik integrira s
platformo po enaki poti kot vsi ostali vtičniki. To pripelje do tega, da so vse funkcije
»enakopravne«. Platforma vtičnikom omogoča široko paleto funkcij. Nekatere izmed njih
uporabljajo tako prosto dostopne kot plačljive modele. Primer vključevanje vtičnika je UML
vtičnik za UML (Unified Modeling Language) diagrame, vtičnik za DB Explorer (raziskovalec
podatkovne baze). Eclipse SDK vsebuje Eclipse Javina razvojna orodja (JDT), ki ponujajo
IDE z vgrajenimi Javinimi prevajalniki ter celoten model izvornih javanskih datotek, kar
omogoča napredne tehnike zdruţevanja in analizo kode. IDE uporablja delovno okolje za
nabor metapodatkov o dostopnosti zunanjih datotek in osveţevanju le-teh. Eclipse
implementira gradnike s pomočjo orodja gradnikov za Javo, imenovanega SWT, za razliko
od ostalih Javinih aplikacij, ki uporabljajo Javin standardni AWT (Abstrack Window Toolkit) ali
Swing. Za uporabniški vmesnik Eclipse uporablja sloj grafičnega vmesnika, imenovan JFace,
ki poenostavlja gradnjo aplikacij, ki temeljijo na SWT [15].
30
5.2.1 Android v Eclipsu
Za izdelavo naše mobilne aplikacije smo za podporo platforme Eclipse morali dodati vtičnik
ADT (Androidovo razvojno orodje), ki omogoča zmogljivo in integrirano okolje za gradnjo
Androidovih aplikacij. ADT omogoča hitrejše ustvarjanje Android projektov in izgradnjo
uporabniškega vmesnika. Dodajanje elementov temelji na API-ju Androidovega delovnega
okvirja (framework); razhroščevanje aplikacij s pomočjo Android SDK orodij in izvoz .apk
datotek, ki omogočajo distribucijo izdelka razvitega v Eclipsu. Veliko SDK orodij je vključenih
v meni Eclipsa. Le-ta so ali uporabna ali pa so predstavljena kot del procesov v ozadju, ki jih
poganja ADT. Urejevalnik kode programskega jezika Java in IDE v Eclipsu imata skupno
značilnost: čas prevajanja in pregledovanja sintakse, avtomatsko dokončanje stavkov in
vključeno dokumentacijo za API-je Androidovega delovnega okvirja. ADT omogoča tudi
urejevalnik XML datotek za obliko, namenjeno uporabniškemu vmesniku mobilne naprave.
Urejevalnik grafične postavitve pa je namenjen za gradnjo uporabniškega vmesnika. Android
SDK vključuje emulator mobilne naprave (Slika 27), ki predstavlja navidezno mobilno
napravo, ki teče na računalniku [16].
Slika 27: Primer uporabe Android emulatorja v razvojnem okolju
Emulator omogoča razvijanje in testiranje Android aplikacij brez uporabe fizične mobilne
naprave, kar je zelo olajšalo naše delo med razvojem mobilne aplikacije, saj tako ni bilo
potrebno vsakič znova naloţiti aplikacije na telefon. Emulator zahteva, da v Eclipsu
zaţenemo prevajalnik, ta pa po razhroščevanju pošlje aplikacijo na navidezno mobilno
napravo.
5.3 Mobilna aplikacija Izračun obstoječih zobnikov
Poleg okenske smo izdelali še mobilno aplikacijo, ki teče na Androidovih mobilnih napravah.
Njen namen je uporaba na terenu, saj se v praksi večkrat zgodi, da mora inţenir
31
poškodovane zobnike zaradi njihove velikosti izmeriti kar na mestu samem. V programu
mobilne aplikacije ima vsaka vrsta (čelni, stoţčasti, polţ) in podvrsta zobnikov (ravni,
poševni, ukrivljeni …) svoj razred, imenovan aktivnost (activity), v katerem so metode za
izračunavanje veličin. Po končanih izračunih se ob pritisku na zadnji gumb v aplikaciji zaţene
metoda, ki izdela tabelo in jo shrani v .xls datoteko, zatem pa dá uporabniku moţnost, da
lahko datoteko pošlje, bodisi preko Bluetooth-a ali elektronske pošte.
Ob zagonu aplikacije se nam prikaţe glavni meni, v katerem izberemo vrsto zobnikov (Slika
28), pod izbrani vrsti pa se pri čelnih in stoţčastih zobnikih prikaţejo še podvrste (čelni: ravni,
poševni; stoţčasti: ravni, ukrivljeni, poševni, zerol). Sledi vpisovanje izmerjenih veličin,
preračunavanje in prilagajanje vrednosti (Slika 29).
Slika 28: Izgled glavnega menija in podmenija mobilne aplikacije
5.3.1 Oblikovanje
Postopek izdelave Androidovih aplikacij je nekoliko drugačen od postopka izdelave Okenskih
aplikacij. Za določen zaslon mobilne aplikacije je potrebno izdelati dve datoteki; .xml
datoteka skrbi za obliko, postavitev in definicije elementov na zaslonu, .java datoteka pa
vsebuje implementirane razrede z metodami, ki se vršijo ob določenih uporabnikovih
dogodkih in akcijah na zaslonu.
Za primer oblikovanja zaslona si poglejmo kratek izsek iz .xml datoteke za čelne ravne
zobnike. Pomični pogled (Scrollview) uporabniku omogoča drsenje po zaslonu navzdol in
navzgor, saj vsi elementi niso vidni hkrati. Vsakemu prikazu smo definirali tudi ime, širino,
višino in postavitev, ki pa je v tem primeru vertikalna. Za ozadje zaslona je v mapo dodana
32
slika, kliče pa jo stavek android:background, v katerem je navedeno tudi ime slike. Da ni
vsak element v svoji vrstici, smo ustvarili tabelo z elementom tablična razporeditev
(TableLayout), ki v večini primerov vsebuje v vsaki vrstici po dve celici; prvo za naziv
geometrijske veličine (tekstovni pogled (TextView)), drugo pa za vpisno polje vrednosti
(urejevalno besedilo (EditText)). Posamezne celice so v vrsticah, kjer so potrditveni gumbi.
Višino in širino smo dodelili tudi elementom v celicah te tabele, tako da koristijo celoten
prostor celice, ki jim je dana. Ker se v programski kodi dogaja, da podatke črpamo iz
elementov, večinoma vrednosti iz urejevalnega besedila, mora imeti vsak tovrsten element
svojo identifikacijsko ime, ki mu ga dodelimo s stavkom android:id. V tekstovnem pogledu s
stavkom android:text zapišemo besedilo, ki je v večini primerov ime geometrijske veličine,
katere vrednost se zahteva v sosednjem urejevalnem besedilu.
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/forma"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/celniback"
>
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1"
>
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stevilo zob prvega zobnika:"
/>
<EditText
android:id="@+id/z1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</TableRow>
</TableLayout>
</ScrollView>
33
Slika 29: Primer izračunov čelnih ravnih zobnikov
5.3.2 Programiranje
Kot smo ţe omenili, je zgornji odlomek iz .xml datoteke zadolţen za obliko in postavitev
elementov na zaslonu, kar prikazuje tudi slika pod kodo. .java datoteke pa skrbijo za pravilno
izvedbo in akcije, ki se vršijo v delujočem stanju mobilne aplikacije. Če smo za prikaz
oblikovanja izbrali primer čelnih ravnih zobnikov, potem podajmo še primer .java datoteke za
to vrsto zobnikov.
public class CelniRavni extends Activity {
DecimalFormat df = new DecimalFormat("#.###");
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.celniravni);
… }
V razredu CelniRavni, ki predstavlja aktivnost, ta pa je potrebna za prikaz grafičnega
vmesnika na zaslonu, smo implementirali metodo onCreate(Bundle), ki se zaţene ob vstopu
programa v to aktivnost. Najprej je potrebno napisati stavek, v katerem programu povemo,
kateri .xml naj prikaţe na zaslonu ob vstopu v to aktivnost. To storimo s
setContentView(R.layout.celniravni); v oklepaju je ime .xml datoteke, ki smo jo opisali zgoraj.
Zatem smo implementirali še metode, ki se kličejo ob pritisku na različne gumbe na zaslonu,
ki ga prikazuje prej omenjeni stavek. Za vsak gumb je pred implementacijo njegove metode
potrebno ustvariti objekt razreda Button in mu prirediti identifikacijo ime, ki smo ga zapisali v
.xml datoteki. Najprej smo implementirali metodo onClick, ki posluša in se ob pritisku na
gumb »prvi«, ki smo ga pred tem definirali, izvede.
34
Button prvi = (Button)findViewById(R.id.okej);
prvi.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText zob1 = (EditText)findViewById(R.id.z1);
if(zob1.getText().toString().length()>0)
z1 = Integer.parseInt(zob1.getText().toString());
else
z1=0;
… }
Naloga metode je, da iz urejevalnih besedil pobere vpisane vrednosti, ki pa so v tem primeru:
število zob prvega in drugega zobnika, ubirni kot, medosna razdalja med zobnikoma in
modul. Da smo lahko vrednosti shranili v spremenljivke, smo morali najprej, podobno kot za
gumb, ustvariti objekte za urejevalna besedila z identifikacijskimi imeni. Ko smo imeli objekte
teh elementov, smo preverili, ali je v urejevalnem besedilu vpisana katera vrednost. V
primeru, da vrednost je zapisana, jo pretvorimo v število (pri številu zob zobnika v
celoštevilsko, pri ostalih pa v realno število) in le-tega shranimo v spremenljivke. Tako se v
spremenljivko z1 shrani vrednost, ki je zapisana v urejevalnem besedilu zob1, v z2 iz zob2 in
tako vse ostale vrednosti. V primeru, da je določeno polje za vpis prazno, se v spremenljivko
zapiše vrednost 0. V praksi se največkrat zgodi scenarij, da v tem prvem bloku vpisa
podatkov uporabnik ne vpiše modula, saj v naslednjem koraku s pomočjo drugih
geometrijskih veličin program izračuna ter ponudi moţne standardne module; v kolikor je
izračunani modul različen od standardnih. Tako v drugem bloku vpisa podatkov program
zahteva, da se na zobnikih izmerita zunanja premera, tako na prvem kot na drugem zobniku,
ter na enem izmed njiju mero prek n in n-1 zob.
mn=(wn-wn1)/Math.PI/Math.cos(alfa);
racunskiM.setText(df.format(mn));
S pomočjo mer preko zob in ubirnega kota alfa lahko izračunamo računski modul. Ob pritisku
na gumb po vpisanih podatkih za sledeče veličine se za ta gumb, podobno kot pri gumbu za
prvi blok vpisa podatkov, kliče metoda, ki v spremenljivke shrani vpisane vrednosti,
nevpisane pa postavi na 0. Izpiše se izračunani modul, s pomočjo padajočega okna
(Spinner) (Slika 30) pa lahko uporabnik izbere eno izmed vrednosti standardnih modulov; v
kolikor je ne izbere, velja računski modul za nadaljnje izračune.
35
Slika 30: Primer izbire standardnega modula
Za potrditev izbranega modula smo dodali gumb, ki ob pritisku sproţi svojo metodo, ta pa v
spremenljivko shrani modul ter izračuna število zob, ki čeznje merimo; mero preko n in n-1
zob in zunanji premer za oba zobnika. Izračunane veličine prikaţemo na zaslonu, uporabniku
pa damo moţnost, da vpiše mere za zunanja premera in mere preko zob za oba zobnika.
EditText vpisanW1 = (EditText)findViewById(R.id.merjeniW1);
if(vpisanW1.getText().toString().length()>0)
{
w1 = Double.parseDouble(vpisanW1.getText().toString());
x1 = ((w1 / (mn * Math.cos(alfa))) - (zw1 - 0.5) * Math.PI - z1
(Math.tan(alfa) - alfa)) / (2 * Math.tan(alfa));
zw1 = Math.sqrt(Math.pow(((z1 + 2 * x1) / Math.cos(alfa)), 2) -
Math.pow(z1, 2)) * ((alfa * 180 / Math.PI) / (180 * Math.tan(alfa)));
zw1 = Math.round(zw1);
w1 = mn * Math.cos(alfa) * ((zw1 - 0.5) * Math.PI + z1 *
(Math.tan(alfa) - alfa) + 2 * x1 * Math.tan(alfa));
d01 = mn * z1;
dki1 = d01 + 2 * mn * (1 + x1);
EditText stzob1 = (EditText)findViewById(R.id.ZW1);
stzob1.setText(Double.toString(zw1));
EditText racunska_mera1 = (EditText)findViewById(R.id.racunskiW1);
racunska_mera1.setText(df.format(w1));
EditText dk1_racunski = (EditText)findViewById(R.id.racunskiDK1);
dk1_racunski.setText(df.format(dki1));
}
Dobljene izračune lahko potrdimo ali pa mero preko zob spremenimo glede na zunanji
premer. Za obe moţnosti smo ustvarili gumba s svojimi metodami za zapisovanje podatkov.
Zatem sledi preračunavanje medosne razdalje med zobnikoma, seveda le v primerih, kadar
se računa zobniška dvojica in ne posamezni zobniki. Z dobljenimi korekcijami smo lahko
izvedli izračun medosne razdalje, ki ga ponudimo uporabniku, da lahko primerja računsko in
36
izmerjeno medosno razdaljo med zobnikoma. Računsko medosno razdaljo uporabnik
pribliţuje izmerjeni s spreminjanjem vsote korekcij na obeh zobnikih. Ko je računska
medosna razdalja pribliţno enaka izmerjeni, se zaključi še zadnji blok vpisa podatkov in
preide se na zapis izračunov geometrijskih veličin obstoječih zobnikov, in sicer v tabelo
programa Microsoft Office Excel.
5.3.3 Zapis podatkov v Microsoft Excel datoteko
Za vpis v Excelovo tabelo smo naloţili POI Apache – javanski API (Application Programming
Interface) za delo z Microsoftovimi dokumenti, med katere spada tudi Excel. Vključuje
knjiţnico HSSF, ki smo jo uporabili. Najprej je bilo potrebno ustvariti objekt razreda
HSSFWorkbook, ki predstavlja delovni zvezek, zatem pa še delovni list v tem zvezku.
Podatke smo v tabelo dodajali po vrsticah. Ustvarjali smo torej vrstice in v vsaki vrstici
določeno število celic. Za višino in debelino besedila v celicah smo morali ustvariti tudi objekt
razreda HSSFFont, v katerem smo oblikovali vsebino celic, da je bila tabela preglednejša.
HSSFFont omogoča tudi risanje stranic (črt) okoli celic, ki skupaj predstavljajo mreţo tabele.
V spodnjem primeru je prikazana programska koda za čelne ravne zobnike. Ker je napisane
kode precej, je predstavljen le odsek, v katerem se v tabelo vpišejo zgolj imena stolpcev in
število zob obeh zobnikov.
HSSFWorkbook zvezek = new HSSFWorkbook();
HSSFSheet list = zvezek.createSheet();
HSSFRow vrstica = list.createRow(0);
HSSFCell celica = vrstica.createCell(0);
HSSFFont naslov = zvezek.createFont();
naslov.setBoldweight((short)6);
naslov.setFontHeight((short)300);
HSSFCellStyle obl = zvezek.createCellStyle();
obl.setFont(naslov);
celica.setCellValue("IZRACUN ZA CELNE RAVNE ZOBNIKE");
celica.setCellStyle(obl);
HSSFFont pisava = zvezek.createFont();
pisava.setFontHeight((short)200);
pisava.setBoldweight((short) 5);
HSSFFont pisava1 = zvezek.createFont();
pisava1.setFontHeight((short)190);
pisava1.setBoldweight((short) 4);
HSSFCellStyle oblika_glava = zvezek.createCellStyle();
oblika_glava.setFont(pisava);
oblika_glava.setBorderBottom((short) 5);
oblika_glava.setBorderTop((short) 5);
oblika_glava.setBorderLeft((short) 5);
oblika_glava.setBorderRight((short) 5);
HSSFCellStyle oblika = zvezek.createCellStyle();
oblika.setFont(pisava1);
oblika.setBorderBottom((short) 4);
oblika.setBorderTop((short) 4);
37
oblika.setBorderLeft((short) 4);
oblika.setBorderRight((short) 4);
vrstica = list.createRow(2);
celica = vrstica.createCell(0);
celica.setCellValue("GEOMETRIJSKA VELICINA");
celica.setCellStyle(oblika_glava);
celica = vrstica.createCell(1);
celica.setCellValue("OZNAKA");
celica.setCellStyle(oblika_glava);
celica = vrstica.createCell(2);
celica.setCellValue("VREDNOST ZA 1. ZOBNIK");
celica.setCellStyle(oblika_glava);
celica = vrstica.createCell(3);
celica.setCellValue("VREDNOST ZA 2. ZOBNIK");
celica.setCellStyle(oblika_glava);
vrstica = list.createRow(3);
celica = vrstica.createCell(0);
celica.setCellValue("Stevilo zob");
celica.setCellStyle(oblika);
celica = vrstica.createCell(1);
celica.setCellValue("z");
celica.setCellStyle(oblika);
celica = vrstica.createCell(2);
celica.setCellValue(df.format(z1));
celica.setCellStyle(oblika);
celica = vrstica.createCell(3);
celica.setCellValue(df.format(z2));
celica.setCellStyle(oblika);
5.3.4 AndroidManifest
Vsaka mobilna aplikacija, ki teče na operacijskem sistemu Android, mora imeti svojo
AndroidManifest.xml datoteko, ki predstavlja glavne informacije o aplikaciji potrebnem
operacijskemu sistemu, da lahko zaţene sámo aplikacijo. V njej so zapisane informacije o
imenu paketa, ki je identifikator aplikacije v sistemu, saj je to ime edinstveno za vsako
aplikacijo. Za prikaz izdelanih javanskih datotek in podporo pri obliki v .xml datotekah smo v
AndroidManifest.xml zapisali tudi to, katera je primarna datoteka, kar pomeni, kateri del
aplikacije naj se prikaţe ob zagonu aplikacije; mi smo ga poimenovali kar »glavni«. Za
preostale datoteke, ki se odpirajo z akcijami nad gumbi, je bilo prav tako potrebno vpisati kot
activitiy-je z njihovimi imeni. Spodaj podajamo primer datoteke AndroidManifest.xml, odsek
za čelne ravne zobnike.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.pioz.android"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon"
android:label="@string/app_name">
<activity android:name=".glavni"
android:label="@string/app_name">
<intent-filter>
38
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".Celni" android:label="PIOZ - celni
zobniki"/>
<activity android:name=".CelniRavni" android:label="PIOZ -
celni zobniki (ravni)"/>
</application>
</manifest>
Poleg omogočanja odpiranja ostalih aktivnosti je bilo v AndroidManifest.xml potrebno vpisati
tudi dovoljenje za shranjevanje datotek v pomnilnik naprave, kar smo potrebovali za zapis
tabele v datoteko formata .xls programa Microsoft Office Excel. To smo storili s spodnjim
stavkom:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>.
5.3.5 Pošiljanje datoteke
Ko je bila po izračunih tabela shranjena v pomnilnik mobilne naprave, je bilo potrebno
datoteko nekako prenesti na računalnik, za kar smo aplikaciji dodali moţnost pošiljanja
datoteke preko elektronske pošte in bluetootha (Slika 31). Izdelali smo objekt razreda Intent
z metodo ACTION_SEND, katere ime ţe sámo po sebi pove, da omogoča pošiljanje. Med
različnimi tipi pošiljanja smo določili tip text/plain, ki med drugim omogoča pošiljanje preko:
elektronske pošte privzetega predalnika na napravi, Googlove elektronske pošte Gmail in
Bluetootha.
Intent poslji = new Intent(Intent.ACTION_SEND);
poslji.setType("text/plain");
poslji.putExtra(android.content.Intent.EXTRA_SUBJECT, "PIOZ izracun
(Celni zobniki - ravni)");
poslji.putExtra(android.content.Intent.EXTRA_TEXT, "V priponki je
dokument z izracuni celnih ravnih zobnikov.");
poslji.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new
File(Environment.getExternalStorageDirectory(),"podatki.xls")));
startActivity(Intent.createChooser(poslji, "Poslji preko:"));
39
Slika 31: Primer pošiljanja izračunov preko elektronske pošte
V tem delu smo opisali, kako smo izdelali del mobilne aplikacije, ki je namenjen čelnim
ravnim zobnikom. Poleg te vrste zobnikov pa smo izdelali še podporo za izračune ostalih
vrst, tako kot pri okenski aplikaciji: čelni poševni, stoţčasti (ravni, ukrivljeni, poševni, zerol) in
polţasta gonila.
6 Uporaba izdelka v praksi
Uporabo našega izdelka smo preizkusili v podjetju Serpa, d. o .o., v Ţelezarni Ravne na
Ravnah na Koroškem. Podjetje se ukvarja s strojno obdelavo, popravili strojev,
ključavničarskimi deli in konstruiranjem. V konstrukcijskem oddelku je podjetje potrebovalo
okensko aplikacijo, ki bi konstruktorjem pomagala pri izračunavanju geometrijskih veličin
obstoječega zobnika, ki ga je potrebno na novo izdelati. V tem oddelku podjetja Serpa, ki se
prvenstveno ukvarja z vzdrţevanjem strojev in naprav, so do sedaj uporabljali DOS-ovski
program za izračun obstoječih zobnikov. Problem je predstavljalo predvsem tiskanje izpisov
na izhodu LPT1 in neprijazen uporabniški vmesnik. S pomočjo inţenirja smo preizkusili oba
izdelka; prvega na manjšem zobniku, kjer smo lahko uporabili okensko aplikacijo, v
nadaljevanju pa bomo predstavili še postopek uporabe mobilne aplikacije na terenu.
40
Slika 32: Počen zobnik, ki ga je potrebno izmeriti – potrebna izmera
Slika 33: Po dobljenih merah inženir izdela skico in izračune na naši okenski aplikaciji
41
Slika 34: Po izračunih inženir zmodelira izračunani zobnik in izdela načrt
V zgornjem primeru (Slika 31, Slika 32, Slika 33, Slika 34) je inţenir lahko ubral postopek
izračunavanja s pomočjo okenske aplikacije, saj poškodovani zobnik ni bil prevelik za
meritve v pisarni. V spodnjem primeru (Slika 35) pa je zobnik večjih dimenzij, kar predstavlja
problem, saj mora inţenir meritve na zobniku opraviti na mestu samem.
Slika 35: Inženir opravi meritve na zobniku in izvede izračun s pomočjo mobilne aplikacije
S tem izdelkom so v podjetju v celoti zelo zadovoljni, saj jim nudi prijaznejše okolje ter
moţnost izračunov zobnikov večjih dimenzij pri samem stroju ali napravi, kjer je prišlo do
obrabe ali loma zobnikov. Tako imajo izračun takoj na mestu in s tem moţne takojšnje
korekcije geometrijskih veličin. Tiskanje tabele izračuna je moţno kasneje v konstrukcijskem
oddelku, kjer se nahaja ustrezna oprema (tiskalnik). S tem so skrajšali čas preverjanja in
korekcij geometrijskih izmer zobnika.
42
7 Sklep V okviru diplomske naloge smo izdelali aplikaciji za najbolj razširjena operacijska sistema. To
je tudi glavni razlog za izdelavo aplikacij s takšno podporo. Najprej smo izdelali okensko
aplikacijo, ki teče na operacijskem sistemu Windows. Za pomoč in orientacijo pri izdelavi
nam je sluţila stara konzolna aplikacija, s pomočjo katere smo pridobili večino formul za
izračunavanje geometrijskih veličin zobnika. Med izdelavo smo spoznavali delo inţenirjev v
konstrukcijskem oddelku podjetja. Le-tem bo aplikacija tudi sluţila. Potrebe po
funkcionalnosti izdelka, ki smo jih dodajali, so zato izrazili prav inţenirji. Velikokrat se zgodi,
da mora inţenir zaradi velikosti zobnika opraviti meritve v delavnici ali na mestu stroja, kjer
se je zobnik okvaril. V ta namen smo delo olajšali, saj lahko inţenir s pomočjo mobilne
naprave z operacijskim sistemom Android zaţene naš izdelek – mobilno aplikacijo na terenu
in tam izvrši vse potrebne izračune.
Tukaj nam je bila okenska aplikacija v pomoč pri izdelavi mobilne aplikacije. Sama izdelava
mobilne aplikacije pa je potekala povsem v drugačni smeri, kot je potekala izdelava njene
predhodnice, okenske aplikacije. Potrebno je bilo načrtovati novo razporeditev elementov v
oknu aplikacije, saj je zaslon mobilne naprave občutno manjši od monitorja delovne postaje.
Postopki računanja so ostali enaki, kar pa je edina pomoč okenske mobilni aplikaciji; mobilna
aplikacija je namreč napisana v programskem jeziku Java, okenska pa v C#.
Izdelana diplomska naloga je tudi dokaz sodelovanja med različnimi strokami; v našem
primeru smo računalničarji sodelovali s kolegi iz strojništva, ki ta program uporabljajo. Le-ti
so za program podali potrebne funkcionalnosti, ki naj bi jih aplikaciji vsebovali za čim
enostavnejšo in hitro uporabo tako v pisarni kot na terenu. Novost pa je mobilna aplikacija,
kar je bila tudi osrednja tema naše diplomske naloge, saj programa za izračun obstoječih
zobnikov na mobilnih napravah ni bilo moč zaslediti kjerkoli. Končni izdelek naše diplomske
naloge bomo v prihodnosti nadgradili s funkcionalnostjo pošiljanja izračunov neposredno v
program za risanje Pro-Engineer. Na načrt narisanega novega zobnika bi v tem programu
lahko uvozili tabelo izračunov geometrijskih veličin. Te stroka namreč sedaj vpisuje ročno v
tabelo na načrtu. S to nadgradnjo izdelka bi aplikaciji postali še bolj uporabni in zanimivi za
trg. Upam, da bosta kolegom iz strojništva, ki so pomagali pri ustvarjanju izdelka, aplikaciji
dobro sluţili pri vsakodnevni uporabi v praksi, ob potrebah po novih dodatkih aplikacijam pa
si obetamo še več sodelovanja s to stroko, ki je ena izmed najvplivnejših v industriji.
43
8 Viri [1] Mirko Podlesnik, Gonila z valjastimi zobniki 1. del, dopisna delavska univerza Univerzum,
Ljubljana, 1979.
[2] Mirko Podlesnik, Gonila s stožčastimi zobniki 1. del, delavska univerza Univerzum,
Ljubljana, 1980.
[3] Mirko Podlesnik, Zobniška gonila z mimobežnimi osmi 1. del, delavska univerza
Univerzum, Ljubljana, 1982.
[4] Wikipedia: Microsoft Windows, http://sl.wikipedia.org/wiki/Windows, 2012.
[5] Windows architecture, Steven Roman, http://technet.microsoft.com/en-
us/library/cc768129.aspx, 2000.
[6] Zgodovina operacijskega sistema Windows, http://windows.microsoft.com/sl-
SI/windows/history, 2012.
[7] Wikipedia: Microsoft Visual Studio, http://en.wikipedia.org/wiki/Microsoft_Visual_Studio,
2012.
[8] Exporting a DataGridView to Excel in .NET 2.0 (C# code),
http://www.codeproject.com/KB/grid/ExportDatagridviewToExcel.aspx, 2009.
[9] Printing of DataGridView,
http://www.codeproject.com/KB/printing/PrintingOfDataGridView.aspx, 2008.
[10] Wikipedia: Android (operating system),
http://en.wikipedia.org/wiki/Android_%28operating_system%29, 2012.
[11] Wikipedia: Android (operacijski sistem),
http://sl.wikipedia.org/wiki/Android_%28operacijski_sistem%29, 2012.
[12] What is Android?, http://developer.android.com/guide/basics/what-is-android.html, 2012.
[13] Android: A visual history, Chris Ziegler, www.theverge.com/2011/12/7/2585779/android-
history, 2012.
[14] Wikipedia: Eclipse (software), http://en.wikipedia.org/wiki/Eclipse_%28software%29,
2012.
44
[15] ADT Plugin for Eclipse, http://developer.android.com/sdk/eclipse-adt.html, 2012.
[16] Android Developer Tools, http://developer.android.com/guide/developing/tools/adt.html,
2012.
9 Viri slik
Slika 2: http://www.stahlgear.com/images/iStock_000006337878XSmall-gears3.jpg, 2011.
Slika 3: http://www.gearsandstuff.com/images/gear_types/gear-bevel.jpg, 2012.
Slika 5: http://www.crunchbase.com/assets/images/original/0006/0620/60620v4.png, 2012.
Slika 6: Microsoft Corporation, http://static.ddmcdn.com/gif/windows-vista-7.jpg, 2006.
Slika 8: Steven Roman, http://technet.microsoft.com/en-
us/library/Cc768129.winarc01_big%28l=en-us%29.gif, 2000.
Slika 22: http://elinux.org/images/c/c2/Android-system-architecture.jpg, 2011.
Slika 23: Andrew Garcia, http://www.eweek.com/c/a/Mobile-and-Wireless/TMobile-G1-with-
Google-Android-Phone/, 2008.
Slika 24: Sahil Kotecha, http://scm-l3.technorati.com/11/06/21/45839/Android-Ice-Cream-
Sandwich.jpg?t=20110621065352, 2011.
Slika 25: Thomas R. Hall,
http://www.androidmeup.com/system/application/resources/img/battery_use_breakdown.png,
2009; Ashish Mohta, http://img.technospot.net/Android-Data-Usage-Graph.png, 2011.
top related