• Rezultati Niso Bili Najdeni

PROGRAM ZA RISANJE ENOPOLNIH SHEM ELEKTRIČNIH RAZDELILCEV NA PODLAGI TABELE TOKOKROGOV

N/A
N/A
Protected

Academic year: 2022

Share "PROGRAM ZA RISANJE ENOPOLNIH SHEM ELEKTRIČNIH RAZDELILCEV NA PODLAGI TABELE TOKOKROGOV"

Copied!
72
0
0

Celotno besedilo

(1)

Univerza v Ljubljani

Fakulteta za elektrotehniko

ALJAŽ DREMEL

PROGRAM ZA RISANJE ENOPOLNIH SHEM ELEKTRIČNIH

RAZDELILCEV NA PODLAGI TABELE TOKOKROGOV

Diplomsko delo

Visokošolski strokovni študijski program prve stopnje Aplikativna elektrotehnika

Mentor: doc. dr. Matej Bernard Kobav

Ljubljana, 2021

(2)

ii

(3)
(4)

iv

(5)
(6)

vi

(7)

vii

Zahvala

Zahvaljujem se svojemu mentorju, doc. dr. Mateju Bernardu Kobavu, ki je dal pobudo za temo te diplomske naloge. Zahvaljujem se mu za ves trud in čas, katerega mi je posvetil. Brez zadržkov je odgovoril na vsako moje strokovno vprašanje. Zahvale gredo tudi vsem ostalim kolegom za strokovne nasvete in podporo pri projektu. Zahvaljujem se svoji družini, ki mi je stala ob strani tekom celotnega študijskega procesa in me pri tem močno podpirala.

(8)

viii

(9)

ix

Povzetek

Diplomsko delo se nanaša na projektiranje in risanje enopolnih načrtov električnih inštalacij. Programersko delo je bazirano v okolju Excel, AutoCAD, programiranju v programskem jeziku VBA, ter samodejnem risanju enopolnih shem elektroinštalacij. Cilj diplomske naloge je samodejni izris enopolnih shem v programu AutoCAD, na podlagi tekstovnega opisa uporabnika programa. Na začetku sledi kratka predstavitev programiranja v VBA, risanja v AutoCAD-u in koncept programa. Kasneje si po postopkih sledi pregled delovanja programa z navodili kako dodati dodatne elemente v program. Naloga se najprej dotakne programskega okolja AutoCAD, ki je že kot temeljni program za risanje različnih inženirskih shem. Na elektro področju se zelo pogosto uporablja v projektiranju in risanju električnih načrtov, običajno sta to načrta iz enopolnih shem in tlorisov. Spoznali bomo začetniške funkcije programa, katere nam lahko pridejo prav ob risanju, ter na katerih bazira celoten program. Sledi predstavitev programskega okolja VBA, ter programske sintakse, katere so uporabljene v projektu. V kolikor se bralec zanima za VBA programiranje, lahko na podlagi te diplomske odnese kar nekaj kompetenc. Ob predstavitvi programskih okolij VBA in AutoCAD, nas naloga popelje v svet projekta te naloge, katerega je cilj avtomatski izris enopolne sheme na podlagi Excel datoteke. Program Excel ni podrobneje opisan, saj je v inženirski stroki zelo pogosto uporabljen. Sledijo navodila za zagon programa, opisan postopek, ter ozadje programa.

Uporabniku je nazorno prikazan pravilen vnos podatkov v Excel tabele, na podlagi katerih program riše sheme v AutoCAD. Zagon programa se izvaja po dveh sekvencah. Prva se nahaja v programskem okolju Excel, slednja pa preide v drugo sekvenco, ta je v okolju VBA. V obeh primerih mora uporabnik sam vnesti željene podatke, na podlagi katerih program izvaja risanje. Podrobneje je opisano tudi ozadje delovanja programa. Tukaj se dotaknemo programiranja v okolju VBA. Vsak uporabniški ukaz je slikovno podrobneje opisan. Na slikah lahko zasledimo odseke posameznih kod. Diplomska naloga je tako strnjena v skupno celoto, katera je lahko uporabniku programa v pomoč, ali kot referenca za izvajanje podobnega programiranja za avtomatsko AutoCAD risanje.

Ključne besede: AutoCAD, Excel, VBA, risanje enopolnih shem, projektiranje, električne inštalacije.

(10)

x

(11)

xi

Abstract

The bachelor's thesis focuses on the design and drawing of single-pole wiring diagrams for electrical installations. The programming part of the thesis is based on the software environment Excel, AutoCAD, programming in the VBA programming language, and on automatic drawing of single-pole diagrams for electrical installations.

The aim of the bachelor's thesis is to automatically draw single-pole diagrams in the AutoCAD program, based on the textual description of the user of the program. At the beginning, there is a brief introduction to the VBA programming, AutoCAD drawing and the concept of the program. Later, we take a step-by-step look at how the program works, with instructions on how to add additional elements to the program. The thesis first touches upon the AutoCAD software environment, which is the basic program for drawing various engineering diagrams. In the field of electrical engineering, it is very often used in the design and drawing of electrical plans. Usually, these plans are made from single-pole diagrams and floor plans. We will get to know the basic functions of the program, which can be of help when drawing, and on which the entire program is based.

This is followed by an introduction to the VBA software environment and the programming syntax used in the project. If the reader is interested in VBA programming, he or she can learn quite a few competencies from the bachelor’s thesis. Having introduced the VBA and AutoCAD software environments, the thesis presents the project of this thesis, which aims to automatically draw single-pole diagrams based on an Excel file. Excel is not described in detail as it is very common in engineering. This is followed by instructions for launching the program, description of the procedure, and the background of the program. The user is shown how to correctly enter the data into the Excel tables, on the basis of which the program draws diagrams in AutoCAD. The program is launched in two sequences. The first one is located in the Excel software environment, and the latter switches to the second sequence, which is in the VBA environment. In both cases, the user has to enter the desired data on the basis of which the program performs the drawing. The background of the functioning of the program is also described in more detail. Here we touch on programming in the VBA environment.

Each user command is described in more detail in the figures. Sections of individual codes can be seen in the figures. The thesis is thus condensed into a coherent whole, which can be of help to the user of the program, or serves as a reference for implementing similar programming for automatic AutoCAD drawing.

Keywords: AutoCAD, Excel, VBA, single-pole diagrams drawing, design, electric installations.

(12)

xii

(13)

xiii

Vsebina

1 Uvod ... 1

1.1 Osnovna ideja ... 1

1.2 Osnovni koncept ... 3

2 Program AutoCad ... 5

2.1 Predstavitev programa AutoCad ... 5

2.2 Osnovne funkcije programa ... 6

2.2.1 Risbe ... 6

2.2.2 Risanje ... 7

2.2.3 Model in layout ... 7

2.2.4 Bližnjice ... 8

3 Programski jezik Visual Basic for Aplications – VBA ... 9

3.1 Osnovni princip VBA ... 10

3.2 Operatorji ... 10

3.2.1 Aritmetični operatorji ... 11

3.2.2 Primerjalni operatorji ... 11

3.2.3 Logični operatorji ... 11

3.2.4 Operatorji združevanja ... 12

3.3 Spremenljivke ... 12

3.3.1 Spremenljivka tipa integer ... 13

3.3.2 Spremenljivka tipa double ... 13

3.3.3 Spremenljivka tipa string ... 15

3.3.4 Spremenljivka tipa boolean ... 16

3.4 Zanke in pogojni stavki ... 16

3.4.1 For zanka ... 17

3.4.2 While zanka ... 18

3.4.3 If pogojni stavek ... 18

3.5 Funkcije ... 20

4 Zagon programa ... 21

4.1 Povezava uporabnik – program 1. stopnja ... 22

4.1.1 Tokokrogi ... 22

(14)

xiv

4.1.2 Zaščitni elementi ... 23

4.1.3 Porabniki in dodatni elementi določeni po prostorih ... 25

4.1.4 Določitev faz, moči, ter vodnikov porabnikov ... 27

4.2 Poveza uporabnik - program 2. stopnja ... 30

4.2.1 Povezava AutoCad - Excel ... 30

4.2.2 Zagon programa v Excelu ... 31

4.2.3 Končni zagon programa ... 31

5 Programska koda ... 34

5.1 Konstrukcija programa... 34

5.2 Uporabniški vmesnik ''user form'' ... 35

5.3 Moduli ... 39

5.3.1 Izris glave načrta ... 40

5.3.2 Izris legende ... 41

5.3.3 Izris teksta projektanta in objekta ... 42

5.3.4 Izris glavnega stikala ... 42

5.3.5 Izris FID stikala ... 43

5.3.6 Izris inštalacijskih elementov ... 43

5.3.7 Izris tekstovnega opisa električnih razdelilcev ... 45

5.3.8 Modul za definicijo lokacije posameznih blokov ... 46

6 Navodila za dodajanje elementov ... 46

6.1 Predhodni lastnoročni izris novega elementa na novo risbo ... 46

6.1.1 Lastnoročni izris elementa ... 47

6.1.2 Programiranje ... 48

7 Zaključek ... 49

8 Viri in literatura ... 50

(15)

xv

Seznam slik

Slika 1: Ukazna vrstica za ukaz kopiraj. ... 2

Slika 2: Podatki iz Excela za izris treh vej. ... 4

Slika 3: Primer risanja inštalacijskega odklopnika tipa C16A. ... 7

Slika 4: Osnovne bližnjice v AutoCAD-u. ... 8

Slika 5: Primer definicije spremenljivke tipa integer s projekta. ... 13

Slika 6: Primer definicije spremenljivke tipa double s projekta. ... 14

Slika 7:Primer definicij posameznih koordinat z spremenljivko double. ... 14

Slika 8: Dodelitev vrednosti koordinat za posamezno os x in y. ... 14

Slika 9: Definicija definiranih koordinat na spremenljivko TockaText tipa array. ... 14

Slika 10: Definicije spremenljivke TxtTokokrog podatkovnega tipa string. ... 15

Slika 11: Določitev vrednosti spremenljivki TxtTokokrog tipa string iz Excel tabele. . 15

Slika 12: Definicija spremenljivke tipa boolean. ... 16

Slika 13: Primer uporabe boolean spremenljivke v pogojnem stavku if. ... 16

Slika 14: Primer uporabe for zanke za izris glav vsake sheme posebej. ... 17

Slika 15: While zanka se izvaja dokler je x na intervalu med številoma 12 in 56. ... 18

Slika 16: Primer klasičnega if stavka. ... 20

Slika 17: Definicija funkcije s parametri x1, y1, ter R1. ... 21

Slika 18: Klic funkcije RazsvetljavaIzris s parametri x1, y1 in R1. ... 21

Slika 19: Primer podatka o tokokrogu v Excel datoteki. ... 22

Slika 20: Primer vnosa podatka o tokokrogu razsvetljave. ... 23

Slika 21: Primer vnosa uporabnika zaščitnih elementov v Excel tabeli. ... 24

Slika 22: Primer izbrisa dodatno izrisanih nepotrebnih zaščitnih elementov. ... 24

Slika 23: Napačni vnos podatkov zaščitnih elementov podtokokrogov. ... 25

Slika 24: Definiranje elementov, dodatnih elementov, ter lokacije porabnikov. ... 26

Slika 25: Primer izrisa za podatke s slike 24. ... 26

Slika 26: Vnos podatkov za razsvetljavo, ter vnos porabnikov po prostorih. ... 27

Slika 27: Primer izrisa sheme z slike 26. ... 27

Slika 28: Vnos podatkov v Excel tabelo za fazo, moč in vodnik. ... 28

Slika 29: Primer izrisa opisa moči, ter tipa vodnika za primer z slike 28. ... 28

Slika 30: Definicija faz, moči, vodnikov, ter števila podtokokrogov za razsvetljavo. ... 29

Slika 31: Primer izrisa podtokokroga za primer z slike 30... 30

Slika 32: Gumb ''Zazeni program''. ... 31

Slika 33: Okno za vnos druge stopnje podatkov. ... 32

Slika 34: Primer končnega izrisa enopolnih shem v risbi AutoCAD. ... 33

Slika 35: Približan primer izrisa vseh možnih elementov. ... 33

Slika 36: Podmape projektnih kod z uporabniškim vmesnikom in dodeljenimi moduli.35 Slika 37: Klici različnih funkcij. ... 36

(16)

xvi Slika 38: Klici funkcij in definiranje spremenljivk za risanje močnostnega dela in

razsvetljave. ... 37

Slika 39: Klic funkcij za izpis tekstov za vsako električni razdelilec. ... 38

Slika 40: Dodatni klici funkcij za izris razdelilcev ob vnosu teksta uporabnika. ... 39

Slika 41: Klic funkcije za izris prenapetostne zaščite. ... 39

Slika 42: For zanka za izris glav načrtov za prvo vrstico. ... 41

Slika 43: Izris legende enopolnega načrta. ... 41

Slika 44: Koda za izris imena in priimka projektanta. ... 42

Slika 45: Odsek kode za izris elementov močnostnega dela. ... 44

Slika 46: Izsek kode v funkciji za izris razsvetljave. ... 45

Slika 47: Koda za definicijo lokacije blokov na različnih računalnikih. ... 46

Slika 48: Primer začetne točke risanja novega elementa. ... 48

(17)

xvii

Seznam tabel

Tabela 1: Tipi aritmetičnih operatorjev. ... 11

Tabela 2: Tipi primerjalnih operatorjev... 11

Tabela 3: Tipi logičnih operatorjev. ... 12

Tabela 4: Tipi operatorjev združevanja. ... 12

Tabela 5: Tipi operatorjev združevanja. ... 12

Tabela 6: Vrste pogojnega stavka if. ... 19

(18)

xviii

(19)

xix

Seznam uporabljenih krajšav

FE Fakulteta za elektrotehniko

VBA Visual Basic for Applications

ACAD AutoCAD

NNEI Nizko-napetostne elektroenergetske

inštalacije

(20)

xx

(21)

1

1 Uvod

V vsakodnevnem življenju srečamo inženirske ovire katere moramo premagati, če želimo doseči zastavljen cilj. Vse se začne s svinčnikom in radirko, še prej pa s posvetovanjem z drugimi kolegi inženirji in vodstvom. Projektantski svet se vsako leto bolj izpopolnjuje, kar se tudi nanaša na mojo temo diplomske naloge.

Naloga obravnava svet projektiranja in risanja načrtov, bolj podrobno avtomatsko risanje načrtov v programskem okolju AutoCAD. Ob posvetu z doc. dr. Matejem Bernardom Kobavom, univ. dipl. inž. el. me je ideja o diplomski nalogi ponesla v programerske vode, bolj specifično v programiranje avtomatskega risanja enopolnih načrtov v AutoCAD-u.

Na Fakulteti za elektrotehniko se izvaja predmet NNEI – nizkonapetostne elektroenergetske inštalacije pod vodstvom prof. dr. Grega Bizjaka, vaje pa vodi doc. dr.

Matej Bernard Kobav, univ. dipl. inž. el., pri katerem se je porodila ideja o diplomskem delu. Predmet zajema osnove risanja v AutoCAD-u, a v študijskem procesu ni dovolj časa, da bi študentje sami izrisali enopolno shemo. Predmet zajema risanje tlorise-v elektroinštalacij, za risanje enopolnih shem pa zmanjka časa. Moja diplomska naloga bo tako v pomoč, saj bo lahko služila kot pripomoček študentom ob učenju in profesorju ob izvajanju predmeta. [4]

1.1 Osnovna ideja

Risanje enopolnih shem v AutoCAD-u je lahko včasih naporno in zamudno, zato se je porodila ideja o avtomatskem izrisu enostavnih enopolnih shem na podlagi tekstovnega opisa. Nekatera podjetja že uporabljajo svoje programe, lahko so to bodisi kupljeni ali se izvajajo v kakšnem drugem programskem okolju. V primeru te diplomske naloge je praktična uporaba programa še kar enostavna.

Podjetja včasih začnejo risanje risb tudi kar z referenčnimi podlogami ali drugače rečeno že vnaprej izrisanimi risbami, na katerih so izrisani vsi potrebni elementi za risanje

(22)

2 enopolne sheme elektroinštalacije. Na risbi nato popravijo določene elemente, jih izbrišejo, kopirajo in prilagodijo določenemu objektu. Na koncu še vpišejo tokokroge, spremenijo ožičenja, porabnike, moči itd.

Vse to pa lahko na velikih projektih, velikih zgradbah postane zelo zamudno. Tukaj pride na vrsto programiranje, katero že lahko rečemo, da nas spremlja na vsakem koraku. Vsa naša prihodnost temelji na programih, tako da tudi pri elektroinštalacijah ni nič drugače.

Programsko okolje v katerem sem pisal program ne temelji na AutoCAD-u. AutoCAD vsebuje ''svoje'' programsko okolje z imenom AutoLISP, katero bazira na programskem jeziku LISP. Kot zanimivost lahko omenim, da je jezik LISP znan kot drugi najstarejši programski jezik visokega nivoja na svetu. AutoLISP je bil izdelan specifično za vse serije in polne verzije AutoCAD-a. Izdan je bil leta 1995 kot dodatek in pomoč uporabniku AutoCAD-a. Temelji na bližnjicah, katere si lahko sprogramira uporabnik sam in so mu tako pomoč pri risanju. Tukaj sem naletel na prvo dilemo v diplomski nalogi, katero programsko okolje uporabiti za programiranje. [7] [8]

Za programiranje sem uporabil programsko okolje VBA – Visual basic. VBA je razvilo podjetje Microsoft. Okolje VBA je znano po COM – Component Object Model programskem modelu, kateri je bil prvič izdan leta 1991 in opuščen v letu 2008. Od takrat naprej ne prihaja več do večjih posodobitev. Programiral sem torej v dokaj starem programskem okolju. Glede na njegovo starost sem našel precej koristnih informacij na spletu in primerov kod, katere so mi olajšale izdelavo projekta. Po premisleku in iskanju rešitev sem se nazadnje odločil za programiranje v programskem okolju VBA. [5] [6]

Sam programski jezik je orientiran na manipulacijo z objekti. V Excel-u nam še kako pride prav, saj lahko vnesemo določene podatke, ter nato manipuliramo z njimi s programsko kodo. Bazira na opravljanju s podatki v Excelu, vendar je zelo dobra podlaga za programiranje AutoCAD izrisov. [5]

AutoCAD ukazi temeljijo na bližnjicah, katere si lahko kot uporabnik določimo sami.

Lahko so to kombinacije tipk na tipkovnici ali ukaz, katerega napišemo z besedo v ukazno vrstico, ki se nahaja spodaj na sredini ekrana. [1], [2]

Slika 1: Ukazna vrstica za ukaz kopiraj.

(23)

3 V tem primeru lahko izberemo objekte katere bomo kopirali in postavili na neko koordinato v prostoru, naj bo to bodisi 2D ali 3D. Če imamo več enakih objektov, to ni problem, saj lahko kopiramo en in isti objekt neštetokrat in zelo hitro. V primeru da imamo zelo veliko objektov in da so ti različni, pa lahko to postane zelo zamudno. S tem namenom se je tudi porodila ideja o tej diplomski nalogi. Kako uporabniku prikrajšati vse te zamudne korake in mu omogočiti avtomatski izris le-teh. V nadaljevanju bomo spoznali bolj podrobno vsak ukaz posebej, ter kako ga klicati v programskem jeziku. [1], [2]

Z mojim programom se uporabniku prihrani veliko časa in dela za risanje, kot če bi se lotil risanja brez programa. Je pa res, da, če se projektant loti risanja projekta sam, kot je to potekalo včasih z radirko in svinčnikom, je ob svojem delu bolj dosleden. Tudi ob samodejnem izrisu programa, nikoli ni garantirano, da bo računalnik izvedel program 100% pravilno. Zato je pomembno, da projektant, ali uporabnik, po izrisu pregleda sheme, če je vse na pravilnem mestu.

Zaenkrat je moj projekt zgolj za pomoč študentom ob učenju in ne, za delo na resnih projektih in s tem prodajo programa. Ima pa potencial, da se ga še dodela in posodobi.

1.2 Osnovni koncept

Ob posvetu z mentorjem sem si na začetku postavil koncept, osnovno zgradbo projekta.

Postavil sem si nekaj osnovnih raziskovalnih vprašanj na katere odgovori diplomska naloga.

1. Katere programske jezike ali programske konzole podpira AutoCAD?

2. Iz katerega programskega okolja bi črpal tekstovne opise?

3. Na kakšen princip bi vnašal elemente inštalacij v skico? Blokovno ali po posameznih segmentih?

4. Kako narediti program pregleden in po izrisu uporaben?

5. Kako narediti uporabniku najbolj prijazen vmesnik?

Ker so bile moje reference glede programiranja na začetku bolj skope, sem se lotil projekta sistematično in kolikor je moje znanje o programiranju takrat dopuščalo. Prebral sem veliko različnih člankov, spletnih forumov, pregledal YouTube posnetke, da sem si zrisal približno sliko v katero smer bi se lotil projekta. Sprva je bilo naporno, kajti programski jezik ima svojo obliko jezika, svoje sintakse, katere se po pisanju dosti razlikujejo od ostalih programskih jezikov.

Program je sestavljen iz več različnih sklopov. Začetek temelji na vnosu podatkov. Ob zagonu programa se porabnika vpraša po različnih podatkih, katere vnese sam na podlagi projekta:

(24)

4 - ali naj projekt vsebuje prenapetostno zaščito,

- število električnih razdelilcev v projektu (maksimalno število razdelilcev je lahko štiri),

- vnos imen električnih razdelilcev po vrsti, - sistem napajanja,

- ime in priimek projektanta, - ime objekta.

Programska koda bere reference iz Excel datoteke, v katero tudi uporabnik sam spiše vse potrebne informacije glede objekta. Osnova Excel datoteke se deli na dva različna dela elektro inštalacij.

- močnostni del, - razsvetljava.

V močnostnem delu uporabnik spiše vse potrebne informacije glede močnostnih inštalacij, te so:

- oznake tokokrogov, - vrsta zaščitnega elementa, - oznake varovalk

- električni elementi, - dodatni elementi

- porabniki določeni po prostorih,

- na katero fazo so povezani določeni elementi, - moč elementov,

- ter tip kabla, ki je uporabljen za dovod do elementa.

Na podlagi teh informacij začne program risati veje v enopolnih shemah za določene elemente z določenimi lastnostmi, katere so naštete zgoraj.

Slika 2: Podatki iz Excela za izris treh vej.

Razsvetljava se izvaja na podoben način, vendar tukaj imamo še podtokokroge, kar je bilo še potrebno upoštevati ob programiranju. Temelji na enakih informacijah od uporabnika, vendar je program zastavljen malo drugače zaradi podtokokrogov.

Podtokokrogi se uporabljajo v primeru, da vežemo več porabnikov na enako varovalko.

Program je zastavljen tako, da je sposoben risati podtokokroge le za razsvetljavo, se pravi za luči.

(25)

5

2 Program AutoCad

2.1 Predstavitev programa AutoCad

AutoCAD je licenčni program. Vsem redno vpisanim študentom univerze v Ljubljani je omogočen dostop do študentske verzije programskega paketa AutoCAD, katera pa poteče z izpisom s fakultete. Licenca ni namenjena profitnemu namenu, ampak zgolj študijskemu. Moja naloga je bila večinoma spisana v tem paketu, določeni deli pa tudi v podjetju, na kupljenem licenčnem programskem okolju. Študentska licenca in kupljena licenca se bistveno ne razlikujeta, le da se ob tiskanju risbe ali komercialnemu izvodu risb pojavi napis čez risbo. [11]

AutoCAD je zelo razširjen tako v inženirskih podjetjih, kot tudi v vseh drugih podobnih strokah. Uporablja se predvsem na področjih:

- strojništvo, - elektrotehnika, - gradbeništvo, - arhitektura, - geodezija, - in lesarstvo.

Končnica CAD pomeni v angleščini ''computer assisted design'', kar pomeni v prevodu računalniško podprto konstruiranje. AutoCAD je izdelek podjetja Autodesk, katero ga je tudi izdalo in ga razvija ter posodablja še danes. Autodesk ponuja tri licenčne programe, kateri bazirajo na risanju 2D, 3D risb, ter modeliranju. Sem spadajo:

- AutoCAD, - Revit,

- AutoCAD LT.

Razlika je predvsem v namenu uporabe programa ter v ceni. AutoCAD je v srednjem cenovnem razredu in je bolj ali manj namenjen risanju 2D in 3D risb. Revit je v najvišjem cenovnem razredu in je namenjen BIM (Building Information Modeling). AutoCAD LT je v zelo nizkem cenovnem rangu proti Revit-u in AutoCAD-u, ker le-ta ni namenjen 3D risanju. Vse risbe bazirajo na 2D projektiranju, npr. za risanje tlorisov ali v mojem primeru risanje enopolnih shem. V zadnjih letih je prišlo do posodobitev, da lahko uporabnik dostopa do programov zrisanih v AutoCAD-u in AutoCAD LT-u preko mobilne naprave, kjer lahko tudi do neke mere ureja in pregleduje načrte. Aplikacijo so poimenovali AutoCAD 360. [9], [10], [12] , [13]

Prva verzija AutoCAD-a je bila predstavljena leta 1982. Od takrat prihajajo iz meseca v mesec nove posodobitve. Program obratuje na obeh glavnih operacijskih sistemih

(26)

6 Microsoft Windows in MacOS. Vse AutoCAD datoteke se shranjujejo s končnicama DWG in DXF. [9], [10]

Da bi se program še bolj približal posameznemu področju uporabe je Autodesk razvil dodatke, kateri se nanašajo na vsako stroko posebej. Sem spadajo:

- AutoCAD Advance Steel, - AutoCAD Architecture, - AutoCAD Electrical, - AutoCAD ecscad, - AutoCAD Map 3D, - AutoCAD Mech, - AutoCAD MEP,

- AutoCAD Structural Detailing, - AutoCAD Utility Design, - AutoCAD P&ID,

- AutoCAD Plant 3D, - AutoDESK Civil 3D.

2.2 Osnovne funkcije programa

V nadaljevanju bomo spoznali nekaj osnovnih funkcij ter pojmov v programu, večinoma tiste, katere sem uporabljal pri svojem projektu in se nanašajo na elektro stroko.

2.2.1 Risbe

Ko odpremo program, se nam odprejo različne možnosti. Prikažejo se različne funkcije.

Kar nas zanima je kako začeti risati risbo. Lahko odpremo obstoječ projekt ali začnemo risati od začetka s klikom na Start Drawing. Odpre se nam prazen projekt v katerega lahko začnemo poljubno vstavljati raznorazne elemente. Kot privzeto se risba poimenuje Drawing1, katero lahko kasneje preimenujemo in shranimo kamor želimo. V levem zgornjem kotu lahko vidimo zavihek ''Drawing1'', to je naša risba, katero smo pognali v prejšnjem koraku. Če bi hoteli začeti risati nov projekt z novo risbo kliknemo na sosednji desni zavihek in ta nam odpre novo prazno stran v katero lahko začnemo risati.

Program temelji na tem, da uporabnik sam odpre nov projekt, nastavi ime projekta, ga shrani. Tukaj se izvede prvi korak v programu AutoCAD, katerega mora uporabnik izvesti sam pred zagonom programa.

(27)

7 2.2.2 Risanje

Na sliki 3 lahko vidimo primer risanja. Odprta je privzeta risba, katera se izriše ob zagonu s klikom na Start Drawing, na njej pa vidimo primer izrisa varovalke tipa C16A.

Takšno risbo lahko izkušen uporabnik AutoCAD-a izriše v le nekaj korakih in z nekaj potezami, če pa smo začetnik na tem področju, nam to lahko vzame kar precej časa in muk. Pri izrisu tega elementa uporabimo funkcijo line, lahko jo vidimo tudi v levem skrajnem kotu, katera izriše črto. Prav nam prideta funkciji osnap, ter ortho (glej poglavje 2.3.3), ortho nam omogoča pravokotno in ravno risanje črt, med tem ko si z

osnap lahko izberemo referenco ali izhodišče za risanje. Ne pozabimo še na dolžine črt, katere lahko uredimo po pritisku z levim klikom za začetek risanja črte (glej poglavje 2.3.3). Po izrisu željenih črt nam manjka še besedilo. Tega lahko vnesemo s klikom na

text, kateri se nahaja zgoraj desno ali v ukazni vrstici text.

Slika 3: Primer risanja inštalacijskega odklopnika tipa C16A.

2.2.3 Model in layout

Ob zagonu risbe nam AutoCAD po navadi zažene tri zavihke, katere vidimo v spodnjem levem kotu. Prvi po vrsti se imenuje model v katerega rišemo, kličemo funkcije, bližnjice, skratka vso glavno delo opravimo v model-u. Končni produkt pride na vrsto v naslednjem zavihku, vsaj na področju elektrotehnike. Ta se imenuje layout, kar v dobesednem prevodu pomeni postavitev, vendar se bolj nanaša na načrt ali končni izdelek. Tukaj vidimo vso svojo risbo narisano v modelu, katero lahko dodatno manipuliramo, da pride vse skupaj do neke skupne celote, končnega izdelka. Izdelek s

(28)

8 področja elektroinštalacij, po navadi so to tlorisi in enopolne sheme nato iz layout-a

izvozimo v pdf datoteko. Slednjega lahko nato natisnemo v različnih oblikah, pri enopolnih shemah gre to po navadi za liste velikosti A4. Pri projektantskih podjetjih je še za zdaj fizična oblika glavni produkt, vendar se s časoma vedno bolj strmi k temu, da se bodo načrti izdajali le v digitalni obliki. [15]

Zaenkrat je program skonstruiran tako, da mora uporabnik po izrisu sam urediti in pripraviti izris v layout-u za nadaljnjo uporabo. Mogoče bom v prihodnosti to še spremenil.

2.2.4 Bližnjice

Opisal bom nekaj osnovnih uporabnih bližnjic, katere se nanašajo na moje izvajanje programa in so tudi nekakšna osnova risanja v AutoCAD-u. Vse bližnjice si lahko uporabnik spreminja sam. Se pravi, lahko izbere določeno tipko na tipkovnici, ukaz in to uporablja za klic določene funkcije ali izrisa nekega elementa. So tudi osnova za hitro in uporabno risanje. V kolikor želimo postati mojster AutoCAD-a, se moramo sprijazniti z bližnjicami in jih začeti uporabljati.

Slika 4: Osnovne bližnjice v AutoCAD-u.

(29)

9 Na sliki 4 lahko vidimo nekaj uporabnih bližnjic, katere si lahko uporabnih sam priredi po svojem okusu. Te bližnjice so avtomatsko nastavljene ob naložitvi programa na računalnik. Pri izbiri bližnjic z besedilom ali črko, npr. bližnjica črka M moramo še pritisniti Enter, da se bližnjica izvede. Pri bližnjicah kot sta F3 in F8 je dovolj že samo to da jih pritisnemo. [14]

Bližnjice katere sam najbolj pogosto uporabljam in so najbolj uporabne:

- F3 t. j. vklop osnap mode, kar pomeni, da ob risanju uporabniku pomaga speti dva različna elementa skupaj, ali pa si vzameš neko točko npr. konec črte za referenco, na katero se nanašaš ob risanju določenega elementa. Naj bo to bodisi druga črta, krog, zaporedje črt itd.

- F8 vklopi vertikalni in horizontalni ris, ta nam lahko pomaga npr. pri risanju ravne črte, katera se lahko razteza vertikalno ali vodoravno. Uporabimo jo lahko pri risanju vseh elementov, vendar se lahko le te premikajo pod kotom 90 stopinj ali pri rotaciji elementov, se pravi vertikalno gor ali dol in horizontalno levo ali desno, ter rotacijsko.

- Črka T, katera nam omogoči takojšni izris tekstovnega elementa.

- Črka O, katera nam lahko pomaga, predvsem v elektro inštalacijskih shemah.

Vklopi funkcijo offset, nato določimo vzporedno razdaljo npr. med dvema vodnikoma, ter tako narišemo na enaki vzporedni razdalji več različnih vodnikov.

- Črka X po angleško explode, kot že ime pove razbije elemente na manjše koščke, katere lahko nato podrobneje urejaš.

- C v tem primeru izriše krog, vendar si je uporabno nastaviti to bližnjico za kopiranje elementov, govorim iz lastnih izkušenj.

- Črka M iz angleškega prevoda move, premik elementa. Izbereš element katerega nameravaš premakniti, stisneš črko M + Enter. [14]

Na podlagi teh bližnjic in še mnogih drugih se izvaja moj program. Program temelji na manipulacij in uporabi določenih bližnjic v AutoCAD-u, katere povzame v neko skupno celoto.

3 Programski jezik Visual Basic for Aplications – VBA

V prejšnjem poglavju smo govorili o risanju modelov, elementov, tekstovnih opisih, risbah itd. in o samem programu AutoCAD, ki služi kot baza za risanje enopolne sheme.

V tem poglavju preidemo v programerske vode. V vsem kar smo govorili prej, bomo sedaj to avtomatizirali in prilagodili svojim željam s programsko kodo. VBA je manj poznan kot AutoCAD. Pojavlja se na področjih kjer imamo veliko različnih podatkov s katerimi moramo manipulirati in zato uporabimo programsko okolje VBA. Te podatki se predvsem nanašajo na vsem znano Microsoft Office opremo Excel. Temeljni program za uporabo vmesnika VBA je Excel, deluje pa tudi na vseh drugih Microsoft Office programih. Na področju mojega projekta sem ga izkoristil za samodejno risanje in manipulacijo z različnimi elementi in objekti v 2D obliki. Jezik kot sam podpira tudi 3D

(30)

10 risanje v AutoCAD-u, vendar za naše področje enopolnih shem elektro inštalacij to ni bilo potrebno. Na internetu sem v članku revije D!igitalist [17] zasledil zanimivo temo na okolje VBA. Naslov članka preveden iz angleščine v slovenščino je bil sledeč: Zakaj potrebujete vsaj enega VBA strokovnjaka v svoji ekipi, podjetju. Ta članek mi je vlil še dodaten elan, da se lotim programiranja v tem okolju. [16]

3.1 Osnovni princip VBA

VBA kot jezik ne more izvajati svojega programa, lahko izvaja samo programe, ki se nanašajo na njega ali znotraj gostiteljske aplikacije, v mojem primeru AutoCAD-a. Ima svoje vnaprej določene knjižnice, tako da jih ni treba posebej določiti, kot je to potrebno npr. pri jeziku C. Zanimivost je to, da je bil leta 2008 VBA določen kot zapuščina in je prejel zadnjo posodobitev leta 2010. Od takrat naprej se uporabljajo enake knjižnice, funkcije in sintakse. [16], [18]

3.2 Operatorji

Osnovni operatorji so večinoma isti kot pri drugih programskih jezikih, tako da pri začetku spoznavanja operatorjev jezika nisem imel večjih težav. V spodnjih tabelah bom podrobneje vpisal vsakega posebej. [19], [20]

(31)

11 3.2.1 Aritmetični operatorji

V naslednji tabeli (tabela1) so opisani aritmetični operatorji. Za primer sem podal še zraven rešitev za določen izraz. Predpostavimo, da imamo spremenljivki A in B.

Spremenljivka A ima vrednost 5, spremenljivka B pa ima vrednost 10. [19], [20]

Tabela 1: Tipi aritmetičnih operatorjev.

Operator Opis Primer A in B

+ Seštevanje A + B = 15

- Odštevanje A – B = -5

* Množenje A * B = 50

/ Deljenje B / A = 2

\ Deljenje vrne vrednost podatkovnega tipa integer B \ A = 2

^ Eksponent B ^ A = 100 000

3.2.2 Primerjalni operatorji

Za primerjalne operatorje lahko spet predpostavimo dve spremenljivki A in B. A ima vrednost 10, ter B ima vrednost 20. Na naslednji tabeli (tabela 2) lahko vidimo izpise stanja za posamezne operatorje. [19], [20]

Tabela 2: Tipi primerjalnih operatorjev.

Operator Opis Primer A in B

= Preveri ali sta vrednosti dveh spremenljivk enaki ali

ne, če sta, je stanje true. (A=B) je false

<> Preveri ali sta vrednosti dveh spremenljivk enaki ali

ne, če nista, je stanje true. (A<>B) je true

> Preveri ali je vrednost na levi strani operanda večja od desne, če je večja, je stanje true.

(A>B) je false

< Preveri ali je vrednost na levi strani manjša od desne, če je manjša, je stanje true.

(A<B) je true

>= Preveri ali je stanje na levi strani operanda večje ali enako desni, če je, je vrednost true.

(A>=B) je false

<= Preveri ali je stanje na levi strani operanda manjše ali enako desni, če je, je vrednost true.

(A<=B) je true

3.2.3 Logični operatorji

Zopet predpostavimo spremenljivki A in B. A ima vrednost 10, B pa ima vrednost 0.

Posamezne vrednosti logičnih operatorjev nam izpiše spodnja tabela (tabela 3). [19], [20]

(32)

12 Tabela 3: Tipi logičnih operatorjev.

Operator Opis Primer A in B

AND Preveri ali sta vrednosti dveh spremenljivk enaki ali

ne, če sta, je stanje true. (A=B) je false

OR Preveri ali sta vrednosti dveh spremenljivk enaki ali ne, če nista, je stanje true.

(A<>B) je true NOT Preveri ali je vrednost na levi strani operanda večja od

desne, če je večja, je stanje true.

(A>B) je false XOR Preveri ali je vrednost na levi strani manjša od desne,

če je manjša, je stanje true.

(A<B) je true

3.2.4 Operatorji združevanja

Kot v prejšnjih primerih predpostavimo spremenljivki A in B. A ima vrednost 5, ter B ima vrednosti 10. [19], [20]

Tabela 4: Tipi operatorjev združevanja.

Operator Opis Primer A in B

+ Sešteje dve vrednosti, če sta vrednosti numerični. A + B = 15

& Združi dve vrednosti. A & B = 510

Za naslednji primer predpostavimo, da je spremenljivka A = ''Diplomska'', spremenljivka B = ''Naloga''. Vrednosti spremenljivk sta pod apostrofoma, ker sta podatkovnega tipa

string. [19], [20]

Tabela 5: Tipi operatorjev združevanja.

Operator Opis Primer A in B

+

Sešteje dve vrednosti, v tem primeru zaradi podatkovnega tipa string, ju samo združi.

A + B = DiplomskaNaloga

& Združi dve vrednosti. A & B = DiplomskaNaloga

3.3 Spremenljivke

Uporaba in namen spremenljivk je enak kot pri ostalih programskih jezikih.

Spremenljivka je neka poimenovana vrednost, ki jo lahko spreminjamo skozi našo kodo.

[21]

Definiranje spremenljivke se izvede po naslednjem kopitu. Stavek za definiranje spremenljivke v programskem jeziku VBA se imenuje Dim. Za stavkom Dim pride ime spremenljivke, katerega določimo sami, nato še stavek As in na koncu tip spremenljivke.

(33)

13 Pozorni moramo biti pri definiranju tipa spremenljivke, saj to vpliva na izvajanje celotne naslednje kode, katera uporablja to spremenljivko. Spremenljivke so lahko globalne ali lokalne. Določiti jim moramo tudi tip. Naštel bom nekaj vrst spremenljivk, katere sem uporabljal ob pisanju mojega programa. [21]

3.3.1 Spremenljivka tipa integer

Spremenljivka tipa integer je v slovenskem prevodu celo število. Lahko shrani 32- bitno vrednost (4-byte) veliko celo število, katero se lahko razteza od -2,147,483,648 do 2,147,483,647. [21]

Integer mi je prišel prav pri definiranju for zank (glej poglavje 3.4) s katerimi sem si pomagal pri izrisu elementov v nekem logičnem zaporedju. V integer sem shranjeval npr. števila vrstic in stolpcev v Excel tabelah. Na sliki 5 lahko vidimo primer definiranja spremenljivke tipa integer. V tem primeru sem uporabil spremenljivko R tipa integer

za štetje vrstic iz Excel priloge.

Slika 5: Primer definicije spremenljivke tipa integer s projekta.

3.3.2 Spremenljivka tipa double

Double spremenljivka je skoraj najbolj pomembna pri programiranju AutoCAD avtomatskega risanja. S to spremenljivko lahko določimo koordinate v risbi.

Spremenljivka je lahko klasičnega tipa double in hrani eno vrednost. Privzeta vrednost

double je 0, katero lahko spremenimo mi z definiranjem, v kakšnem stavku ali zanki. Za razliko od podatkovnega tipa integer lahko double shrani realno število z decimalno vejico. [21] [22]

V projektu sem spremenljivke podatkovnega tipa double bolj ali manj uporabljal za definicije koordinat, katere sem nato med sabo povezoval, računal in manipuliral. Na sliki 6 vidimo primer definicije spremenljivke tipa double kot array s tremi vrednostmi. V tem primeru sem definiral spremenljivko TockaTxt za shranitev x, y in z koordinate.

Tukaj je podana samo definicija, v nadaljevanju pa je prikazano kako se tej spremenljivki dodajo tudi vrednosti. Na desni strani vidimo napis zelene barve, na takšen način se v VBA-ju pišejo komentarji. [22]

(34)

14 Slika 6: Primer definicije spremenljivke tipa double s projekta.

V nadaljevanju bomo definirali vsako posamezno koordinato posebej. V mojem primeru sem risal 2D risbo, se pravi sem upošteval samo x, y koordinati. Če bi risal 3D risbo, bi moral upoštevati še koordinato z, katera je v tem primeru 0. Slika 7 prikazuje primer definiranja dveh koordinat vsako posebej. Spremenljivka x tipa double in y tipa double

v kateri lahko shranimo celo število za točno določeno koordinato v AutoCAD risbi.

Slika 7:Primer definicij posameznih koordinat z spremenljivko double.

Sledi dodelitev posameznih vrednosti koordinat na točno določeno os x in y. Takšen primer vidimo na sliki 8. Osnovna operacija z operatorjem =, kateri dodeli vrednost vsaki posamezni x in y koordinati. Koordinata z je avtomatsko 0, zato je ne pišemo. Program bere decimalna števila z decimalno piko, zato moramo paziti da ne napišemo vejice za decimalno ločilo. [19]

Slika 8: Dodelitev vrednosti koordinat za posamezno os x in y.

Sedaj imata spremenljivki x in y dodeljeni vrednosti. Manjka le še to, da ju združimo v skupni array. To nam prikazuje slika 9. Prej definirana spremenljivka TockaTxt na sliki 9 je v obliki array-a, kateri ima 3 vrednosti x, y in z koordinato. Ta prvi dve vrednosti sedaj spremenimo z kodo na sliki 8. Koordinata z ostane še vedno enaka 0.

Spremenljivka TockaTxt je sedaj koordinata, katero lahko uporabljamo za vstavljanje elementov v našo risbo. Na sliki 9 lahko še opazimo lojtro #, katera nam je lahko samo v pomoč, če je koordinata, katero vnesemo v spremenljivko TockaTxt drugačnega podatkovnega tipa, npr. integer, ga nemudoma spremeni v double. [22]

Slika 9: Definicija definiranih koordinat na spremenljivko TockaText tipa array.

Bolj ali manj sem uporabljal spremenljivko double na takšen način. Kar je še prišlo tukaj prav so aritmetične operacije z različnimi spremenljivkami tipa double, se pravi seštevanje dveh različnih točk koordinat, odštevanje, množenje, deljenje itd.

(35)

15 3.3.3 Spremenljivka tipa string

V enopolnih shemah najdemo tudi veliko tekstovnih opisov, zato ni dovolj da shranjujemo podatke samo številčnih vrednosti s katerimi si pomagamo pri risanju načrta.

V načrt je bilo potrebno dodati veliko različnih tekstovnih opisov določenih elementov, faz, tokokrogov, električnih razdelilcev itd. Tukaj pridejo na vrsto podatki tipa string. [23], [24]

Kot že zgornje besedilo nakazuje na tekstovni del, lahko sklepamo, da je podatkovni tip

string namenjen vsem znakom, katere najdemo na tipkovnici. V mojem primeru sem v prvem primeru uporabljal tip string za črpanje besedila iz Excel datoteke, na podlagi katerega sem nato izrisal določene elemente z določenimi tekstovnimi lastnostmi. Na drugem primeru pa, da je na podlagi različnih sprememb elementov ali sprememb ob vnosu uporabnika stavek prebral vrednost in jo primerjal z uporabniško vrednostjo, na podlagi katere je nato vrisal tekst na risbo. [23], [24]

Da opišem še zadevo na primeru, lahko vidimo na sliki 10, kako definiramo spremenljivko z imenom TxtTokokrog s podatkovnim tipom string.

Slika 10: Definicije spremenljivke TxtTokokrog podatkovnega tipa string.

Spremenljivki tipa string je nato potrebno še dodati vrednost. V mojem primeru sem večinoma te vrednosti črpal iz Excel datoteke v kateri so bili tekstovni opisi za vsak določen element posebej. Na sliki 11 je primer, kako iz Excelove celice prebere vrednost in jo pripiše spremenljivki TxtTokokrog. Spremenljivka TxtTokokrog je bila v prejšnjem primeru (slika 10) definirana kot string. Spremenljivka R je definirana kot

integer, predpostavimo, da je v tem primeru vrednost spremenljivke R enaka 5. Se pravi podatek iz Excel tabele se nahaja v vrstici R, katera vrednost je enaka 5, ter v prvem stolpcu. S tem ukazom smo pripisali spremenljivki TxtTokokrog vrednost iz točno določene celice v Excel datoteki s katero lahko naprej manipuliramo. Za ta primer (slika 11) nam prebere podatek o tokokrogu porabnikov, katerega izpiše poleg točno določene veje.

Slika 11: Določitev vrednosti spremenljivki TxtTokokrog tipa string iz Excel tabele.

(36)

16 3.3.4 Spremenljivka tipa boolean

V programu sem si za sprotno preverjanje lokacije risanja pomagal z spremenljivko tipa

boolean. Programerjem je znana spremenljivka, katera nam vrne vrednost true ali false.

V VBA programiranju ni nič drugače. [25]

Na sliki 12 vidimo primer definiranja spremenljivke tipa boolean, katero sem nato uporabil v pomoč pri definiranju lokacije trenutnega risanja sheme.

Slika 12: Definicija spremenljivke tipa boolean.

Slika 13 prikazuje primer uporabe spremenljivke tipa boolean. Predpostavimo, da smo definirali spremenljivko boolean na sliki 12 z naslovom i. V kodi lahko opazimo klic funkcije PreveriKonec, if pogoj, ter zaključek while zanke (glej poglavje 3.4 in 3.5).

Kratko povedano, računalnik prebere vrednost i iz funkcije PreveriKonec in vstopi v if pogojni stavek. Če je i enak true, se izvede naslednja vrstica v zanki in program zapusti while zanko. Če je i enak false, program preprosto preskoči funkcijo.

Slika 13: Primer uporabe boolean spremenljivke v pogojnem stavku if.

3.4 Zanke in pogojni stavki

Vsem programerjem poznana izraza zanke ter pogojni stavki iz angleškega prevoda loop in decision statements. V programu bomo naleteli na dve različni zanki ter na if pogojni stavek. Vsako posebej bomo na kratko povzeli ter si nato v nadaljevanju pogledali na mojem primeru.

(37)

17 3.4.1 For zanka

V nekaterih primerih pridemo v programiranju do nekega dela kode, katerega želimo, da se izvaja in ponavlja v nekem zaporedju za točno določen čas. Npr. v primeru risanja enopolnih shem sem jo uporabil za risanje elementov, dokler ni program prišel do konca risbe in začel z risanjem na naslednjem listu načrta. Čas kako dolgo se naj zanka izvaja določimo sami ali pod nekimi pogoji - s tem skrajšamo program in je lahko tudi zelo v pomoč pri izvajanju kode. [26]

Slika 14 ponazarja prvi primer uporabe for zanke v mojem programu za izris glav načrtov. Za projekt sem se odločil, da bo vseboval v vsaki vrstici po šest načrtov, se pravi v vsaki vrstici po šest glav. Pri tem sem uporabil for zanko, katera zriše v eno vrstico po šest glav načrtov. Na začetku vidimo definiranje spremenljivke i, katera nam služi kot začetek štetja zaporedja do številke šest. V pomoč nam služi spremenljivka j katera zaključi for zanko. Od začetka spremenljivke i, katera je enaka 1 se izvaja program do konca spremenljivke j katera vsebuje vrednost 6. Se pravi koda v for zanki se izvede šestkrat. Vsebina kode v for zanki nam izriše glavo načrta na točno določeni koordinati x, y.

Slika 14: Primer uporabe for zanke za izris glav vsake sheme posebej.

(38)

18 3.4.2 While zanka

For zanka je lahko zelo uporabna na različne načine, kot smo videli na prejšnjem primeru. Pod določenimi pogoji nam for zanka ne pride več v pomoč. V mojem primeru sem preverjal lokacije koordinate x, zaradi nadaljnjega izrisa elementov pod določenimi pogoji. Na primer, če koordinata x pride v neko določeno območje, zanka skoči na konec in računalnik začne izvajati naslednje operacije. To nam pride prav ob preverjanju konca načrta, če risanje preide v območje, katero sega izven glave načrta, zapusti while zanko in nadaljuje z izvajanjem programa. [26]

Da razložimo še na primeru vidimo na sliki 15 primer while zanke. Zanka se začne z stavkom Do While, sledi definicija, območje v katerem se naj zanka izvaja, če je to območje pod ali nad določeno vrednostjo, se zanka ustavi. V tem primeru zanka bere vrednost spremenljivke x, katera se spreminja od 12 do 56. Dokler je x spremenljivka manjša od 12 se zanka še ne bo začela izvajati, ko bo večja kot 12 se zanka začne izvajati.

Izvajala se bo vse do vrednosti, ki je večja od 56, če je spremenljivka x tipa integer je to 57.

V tem določenem primeru vidimo da while zanka bere podatke iz Excel datoteke, kjer so spremenljivke TokZasc, DodatElem, ter PodTok podatkovnega tipa string. Sintaksa .Cells().Value kliče Excel datoteko z vnaprej določenim zavihkom tabel in priredi njeno vrednost določeni spremenljivki (glej poglavje 5.3.6). Tem spremenljivkam se priredijo vrednosti v točno določeni Excel celici. Spremenljivka R je bila v tem primeru definirana za držanje vrednoti vrstice v Excel datoteki.

Slika 15: While zanka se izvaja dokler je x na intervalu med številoma 12 in 56.

3.4.3 If pogojni stavek

Obe zanki for in while pa potrebujeta tudi pogoje pod katerimi se zanke končajo, preidejo v neko drugo stanje, priredijo spremenljivkam neke vrednosti itd. Pogojni stavki

(39)

19 nam omogočajo nadzor nad programom, brez njih si lahko zelo težko predstavljamo programski jezik. Tabela 6 nam nazorno opiše vse vrste pogojnega stavka if, kateri so tudi uporabljeni v programu. [27]

Tabela 6: Vrste pogojnega stavka if.

Zap. Št. Pogojni stavek if in opis 1 If stavek

If stavek vsebuje boolean izraz, se pravi na true se izvede naslednji del kode, kateri je pod stavkom if.

2 IfElse stavek

IfElse stavek vsebuje enako kot if boolean izraz. Če je vrednost enaka

true, se izvede del kode pod stavkom if, če je vrednost false, se izvede del kode pod izrazom false.

3 IfElse IfElse stavek

Začne se z stavkom if, kateremu sledi ''neomejeno'' izrazov ElseIf. Stavek

IfElse IfElse vsebuje boolean izraz, če so vrednosti pod If ali ElseIf

enake true, se izvede naslednja koda. Če so vrednosti enake false se izvede

Else stavek, katerega tudi ni potrebno dodati.

4 Ugnezden pogojni if stavek

Stavka If ali ElseIf lahko ugnezdimo v druga poljubna If ali Else stavka, ustvarimo podpogoje.

5 Switch

Stavek switchlahko preveri ali je neka določena spremenljivka enaka proti ostalim vrednostim, katere lahko preverjamo po zaporedju.

V programu je stavek if uporabljen velikokrat. Med risanjem prihaja do sprememb, katere je potrebno analizirati in izrisati pod nekimi pogoji.

Slika 16 prikazuje uporabljen primer if stavka ob izrisu načrta. Na začetku vidimo funkcijo PreveriKonec z parametri x, PodTok in i (glej poglavje 3.5), katera nam vrne spremenljivko tipa boolean i v obliki true ali false in spremenljivko x tipa

double v celoštevilski obliki realnega števila. Na podlagi teh dveh spremenljivk, program razbere ali se je risanje znašlo v območju, kjer se risanje premakne na naslednji

(40)

20 načrt. Spremenljivka i bere podatke za podtokokroge, kateri se rišejo malo drugače kot ostali del načrta, spremenljivka x pa se veča sproti ob izrisu vsake veje posebej. Slika 16 prikazuje dve if zanki. Prvi if pogojni stavek velja za spremenljivko i tipa boolean, drugi if pogojni stavek pa velja za spremenljivko x. Za prvi if stavek lahko rečemo, da ob pogoji, da je spremenljivka i enaka true, doda spremenljivki x vrednost 73.29, i

priredi nazaj na false, ter zapusti while zanko. Tako se risanje na naslednjem načrtu lahko nadaljuje. Za drugi pogojni stavek if velja, da se ob pogoju, da je spremenljivka x večja od števila 48 izvede. Če je ta pogoj izpolnjen, se spremenljivka x nastavi na vrednost 73.29, ter nato računalnik zapusti while zanko in nadaljuje z risanjem enopolne sheme z naslednjimi koraki. [27]

Slika 16: Primer klasičnega if stavka.

3.5 Funkcije

Funkcije nam v programiranju z VBA pridejo prav pri krajšanju kode, povečajo preglednost v kodi in vračanju vrednosti, katere nam vrnejo različne funkcije. Funkcija spada pod VBA stavke. Funkcijo definiramo z stavkom Function, zaključimo pa z stavkom End Function. Funkcija lahko sprejme spremenljivke in konstante s katerim lahko sama nato upravlja in jih lahko po končani izvedbi funkcije tudi vrne. [28]

Kako se definira funkcijo vidimo na sliki 17. Z stavkom Function, sledi ime funkcije, ter na koncu dodamo v oklepaje parametre s katerimi želimo da funkcija operira. V tem primeru so parametri tri različne spremenljivke x1, y1 in R1. Spremenljivki x1, ter y1 predstavljata koordinate, katere priredimo funkciji, spremenljivka R1 pa nam poda vrstico branja celic v Excel datoteki. Funkcija na podlagi teh parametrov začne risati elemente za razsvetljavo. [28]

(41)

21 Slika 17: Definicija funkcije s parametri x1, y1, ter R1.

Klic funkcije opravimo z stavkom call, ter zraven s presledkom ime funkcije. Na koncu še v oklepaje dodamo parametre s katerimi želimo, da funkcija opravlja. Slika 18 ponazarja primer klica funkcije z slike 17. Parametra x1 in y1 sta tipa double, s podatkom o koordinati za nadaljnje risanje. Spremenljivka R1 pa je tipa integer in vsebuje začetno vrednost vrstic za branje podatkov iz Excel tabele. Vidimo, da na tem primeru priredimo spremenljivki R1 vrednost 34, spremenljivki y1 pa vrednost 184.1628, spremenljivko x1 pa nam vrne funkcija z imenom MocnostniDelIzrisDrugoNad. Ta funkcija vrne konec risanja močnostnega dela, na podlagi katerega se nadaljuje risanje elementov razsvetljave. Konec risanja močnostnega dela se nahaja točno na koordinati spremenljivke x1. Med funkcijama za izris močnostnega dela in razsvetljave se nahaja tudi funkcija za izris tekstovnega opisa močnostnih elementov za drugo etažo. Ta funkcija nas v tem primeru ne zanima, saj ne vrne nobene vrednosti glede spremenljivk x1, y1, te R1. Sledi še klic funkcije RazsvetljavaIzris, katero smo definirali na sliki 17. Tej funkciji so pomembni parametri x1, y1 in R1. Funkcija nato začne izris razsvetljave v tem primeru za drugo etažo. Po koncu funkcije nam funkcija ne vrne nobenega parametra, saj za nadaljnji izris ne potrebujemo konca risanja razsvetljave, saj se ta začne v naslednji etaži na točno določeni koordinati.[28]

Slika 18: Klic funkcije RazsvetljavaIzris s parametri x1, y1 in R1.

S tem smo povzeli nekaj osnovnih sintaks katere sem uporabil v svojem programu.

Zaključujemo poglavja o primerih, sedaj se bomo lotili dejanskega programa. Vsi prejšnji primeri so bili izvzeti iz nadaljnjega programa. Sedaj bomo vse to skupaj povezali v skupno celoto.

4 Zagon programa

V nadaljevanju bom predstavil ozadje programa po korakih, sprotnimi primeri kode, ter vnosa uporabnika v Excel datoteko.

(42)

22 4.1 Povezava uporabnik – program 1. stopnja

Na začetku je bilo potrebno vzpostaviti povezavo med uporabnikom in programom.

Program mora brati vse potrebne podatke iz tekstovne datoteke. Za ta primer je najbolj primeren program Excel. Vsem poznan program Excel ima zelo uporabno strukturo za vnos podatkov iz uporabniške strani v računalnik.

Na področju elektro inštalacij so za inštalaterje in projektante pomembni naslednji podatki:

- tokokrogi,

- zaščitni elementi, - porabniki,

- prostori porabnikov,

- moči posameznih porabnikov, - tipi kablov.

Za vse zgornje podatke še obstajajo posamezne oznake.

4.1.1 Tokokrogi

Za tokokroge se načeloma uporablja oznaka z začetno črko W. V programu se inštalacija razdeli na dva dela:

- močnostni del, - razsvetljava.

Za močnostni del je bilo dogovorjeno, da se pišejo oznake tokokrogov po zaporedju: W- 1, W-2, W-3 itd. To velja za vse močnostne tokokroge, do maksimalnega števila 50.

Naslednje črke za črko W npr. WN-1 določi uporabnik sam, glede na aktualen projekt.

Oznake tokokrogov v objektu določi projektant, kar pomeni, da tu program izriše tokokroge na podlagi uporabniškega vnosa imena tokokrogov, kar prikazuje slika 19. Za vsako etažo določi uporabnik tudi električni razdelilec, katerega poljubno označi glede na aktualen projekt.

Slika 19: Primer podatka o tokokrogu v Excel datoteki.

Pri razsvetljavi je bilo dogovorjeno, da se tokokrogi pišejo od številke 51 naprej, na primer: W-51, W-52, W-53. Tukaj je bilo potrebno še upoštevati podtokokroge, te označujemo z dodatnim številom za poševnico. V nadaljevanju iz prejšnjega primera lahko nadaljujemo z označbami na naslednji način: W-54/1, W-54/2, W-54/3, W-54/4,

(43)

23 zadnja številka za pomišljajem, v tem primeru štiri pomeni, da imamo štiri podtokokroge.

Na primeru, ki se nanaša na program vidimo vnos podatkov za tokokroge razsvetljave na sliki 20. Enako kot pri močnostnem delu, ima uporabnik na voljo celice, da določi za vsako etažo določen električni razdelilec.

Slika 20: Primer vnosa podatka o tokokrogu razsvetljave.

4.1.2 Zaščitni elementi

Lahko rečemo najbolj pomemben člen elektro inštalacij kateri skrbi za varnost elektro inštalacije objekta. Poznamo tri osnovne elemente:

- nadtokovna zaščita, - FID zaščitno stikalo, - KZS stikalo.

Nadtokovna zaščita ščiti inštalacijo pred prevelikimi tokovi. Slednja bo ob prevelikem električnem toku izklopila del inštalacije, ki je pod njenim varovanjem.

FID zaščitno stikalo na diferenčni tok pa izklaplja kadar pride do napetosti na ozemljene površine. V primeru da fazni vodnik prebije na ozemljen prevodni del v objektu, bo moralo zaščitno stikalo izklopiti. Po navadi stikalo takšnega tipa, če ima takšne specifikacije - izklopi pri diferenčnem toku 30mA, kar je pri človeku lahko že smrtno nevarno. IEC/EN 61008 standard za FID stikala določa, da se morajo izklopiti, ko diferenčni tok dosega vrednost od 50% do 100%. [34]

Stikala KZS so zaščitna stikala na diferenčni tok z nadtokovno zaščito in tako združujejo lastnosti nadtkovne zaščite in FID zaščitnega stikala na diferenčni tok.

Slika 21 prikazuje vnos podatkov za zaščitne elemente. V prvem stolpcu program prebere podatek katerega tipa zaščitnega elementa smo vnesli, na podlagi katerega zriše pravilen tip na točno določeno lokacijo na shemi. V drugi stolpec vnesemo oznako varovalke, katero program prebere in izpiše tekstovni opis na risbo zraven željene prej definirane varovalke v prejšnjem stolpcu.

(44)

24 Slika 21: Primer vnosa uporabnika zaščitnih elementov v Excel tabeli.

Na sliki 21 so prikazani vsi tipi zaščitnih elementov, katere program prebere in izriše, te so: C16A, C10A, B10A, KZS16A30mA, C16A 3p (trofazni zaščitni element) ter zadnja C16A-R, katera je mišljena kot rezervna zaščitna elementa, se pravi je brez porabnika in tokokroga.

Primer na sliki 21 je narejen za močnostni del, pri razsvetljavi je drugače pri podtokokrogih, kjer moramo biti pozorni pri definiranju zaščitnega elementa. Predvsem moramo biti pozorni, da za podtokokroge velja, da vsak podtokokrog varuje le en zaščitni element. Na primer na primeru iz slike 22 vidimo, da zaščitni element C16A varuje vse štiri podtokokroge, kar moramo upoštevati ob vnašanju podatkov v Excel tabelo.

Podtokokroge W-54/1, W-54/2, W54/3, W54/4 varuje v tem primeru le zaščitni element C16A. Program riše tokovne zaščite na podlagi vnosa v tabelo, se pravi moramo obvezno pri definiranju varovalk za podtokokroge vnesti samo eno varovalko za vse skupne podtokokroge. V primeru, da za podtokokroge W-54/2, W-54/3, W-45/4 vnesemo po vsakemu še en zaščitni element, nam program zriše še dodatne tri nepotrebne zaščitne elemente.

Slika 22: Primer izbrisa dodatno izrisanih nepotrebnih zaščitnih elementov.

(45)

25 V tem primeru spet ni takšen problem, saj lahko uporabnik sam po izrisu sheme pobriše odvečne elemente, kar pa mu vzame le nekaj sekund časa, odvisno od velikosti projekta in sposobnosti risanja uporabnika v programu AutoCAD.

Slika 23: Napačni vnos podatkov zaščitnih elementov podtokokrogov.

4.1.3 Porabniki in dodatni elementi določeni po prostorih

Naslednja pomembna stvar v enopolnih shemah so porabniki, dodatni elementi, ter lokacije porabnikov po prostorih v objektu.

Program izvaja kodo na podoben način kot v prejšnjem primeru za izris zaščitnih elementov. Na prvem mestu preveri kakšen element, porabnik vsebuje določena Excel celica in nato izvede kodo za izris določenega porabnika. Zraven preveri, če je uporabnik dodal še kakšen dodatni element npr. časovnik. V inštalaciji ga lahko uporabimo kot npr.

kot zakasnitev izklopa ali vklopa določenega porabnika. Če dodamo dodaten element časovnik, ga program prebere in izriše zraven določenega porabnika. Prebere tudi tekstovni opis porabnika in lokacije porabnika, slednji nato izriše zraven na pravilno mesto.

Na sliki 24 vidimo tipičen primer vnosa podatka za izris porabnikov za močnostni del. V prvo celico vnesemo porabnik, element. Na sliki so izpisani vsi primeri porabnikov, katere je program sposoben narisati, se pravi vtičnico, eno fazni fiksni priključek, trofazni fiksni priključek, ter rezervo. Naslednja celica nam prebere dodatni element, na sliki 24 je uporabljen element časovnik. V tem primeru je mišljen časovnik, kot zamik izklopa ventilatorja v toaletah. Če imamo dodaten element, ga program prebere in ga zriše na sosednjega porabnika. V kolikor pustimo prazno celico, program nadaljuje z izvajanjem kode in preskoči celico. Na zadnje mesto pride tekstovni opis porabnika, ter prostora. V tem primeru imamo točno napisane porabnike, zraven pa prostor v katerem se porabniki nahajajo. V primeru, da se odločimo za rezervo, moramo drugi in tretji stolpec pustiti

(46)

26 prazen. Projektant mora tukaj smiselno določiti porabnike glede na prostor. Program tukaj prebere celico in izpiše prebran tekstovni objekt v AutoCAD risbo.

Slika 24: Definiranje elementov, dodatnih elementov, ter lokacije porabnikov.

Slika 25: Primer izrisa za podatke s slike 24.

Pri razsvetljavi se program izvaja na enak način, le da imamo tukaj samo en element, porabnik. Porabnik pri razsvetljavi je, kot je že samoumevno luč. Enako kot pri močnostnemu delu še določimo ali naj luč vsebuje časovnik za časovni vklop ali izklop, ter dopišemo porabnik, ter prostor.

Predstavimo še na primeru. Poglejmo si sliko 26. Na začetku v prvi celici definiramo element – porabnik. Tukaj program isto kot pri močnostnem delu prebere vrednost in se loti risanja luči. Preveri še dodaten element, če je prazen nadaljuje branje Excel celic, če je dodan časovnik, ga izriše. Na koncu pride še tekstovni opis porabnika, njegovo ime, ter njegova lokacija v objektu.

(47)

27 Slika 26: Vnos podatkov za razsvetljavo, ter vnos porabnikov po prostorih.

Slika 27: Primer izrisa sheme z slike 26.

4.1.4 Določitev faz, moči, ter vodnikov porabnikov

Na koncu nam še pri projektiranju elektro inštalacij preostane določitev faz, moči, ter vodnikov za vsakega posameznega porabnika posebej. Na podlagi izračunov za vsak porabnik posebej lahko določimo tudi prerazporeditev faz po porabnikih, moči, ter za vsak porabnik določen kabel z pravilnim presekom vodnika.

V programu je primer vnosa podatkov za faze, moči in vodnike predstavljen na sliki 28.

Vnos v Excelu je razdeljen na tri različne stolpce. Prvi stolpec je rezerviran za faze. Na primeru vidimo, da za vnos faz napišemo poljubno fazo za ta primer so faze poimenovane z L1, L2 in L3 za posamezne enofazne porabnike in za trofazne porabnike z vsemi tremi fazami L1, L2, ter L3. Program na podlagi tekstovnega vnosa faz prebere vrednosti, jih shrani v string in izpiše kot tekstovni objekt na risbi na točno določeni koordinati. Faze

(48)

28 se nahajajo na vrhu vsake veje posebej z prirejenim porabnikom in zaščitnim elementom.

Drugi stolpec opisuje moči porabnikov. Na podlagi izračunov ali specifikacij porabnikov ugotovimo posamezne moči porabnika. Tukaj vnesemo dobljene moči za točno določenega porabnika. Enako kot pri fazah, program prebere vrednost celice, jo shrani v

string in izriše na določeno lokacijo v načrtu. Moči se praviloma nahajajo pod samim porabnikom. Sledi še definicija vodnika, katerega določi projektant po izračunih s pomočjo tabel. Uporabnik ima na voljo ''drop down'' meni na podlagi katerega izbira točno določen vodnik za določenega porabnika. Program prebere vrednost, jo shrani v podatkovni tip string in izriše na načrt. Vodniki se pišejo zraven tokokrogov, tako da leži vzporedno z tokokrogi.

Slika 28: Vnos podatkov v Excel tabelo za fazo, moč in vodnik.

Slika 29: Primer izrisa opisa moči, ter tipa vodnika za primer z slike 28.

(49)

29 Razsvetljava deluje na podoben način, program bere podatkovne tipe string po istem zaporedju kot pri močnostnem delu. Tukaj moramo biti pozorni pri definiciji faz. Če imamo definiran podtokokrog, pomeni, da je celoten podtokokrog vezan na eno skupno fazo, se pravi za naslednje tokokroge ne pišemo faz v začetni stolpec. Slika 30 prikazuje primer definicije faz za podtokokroge. Zadnji stolpec nam opisuje število podtokokrogov v našem primeru je to število štiri, zato vidimo, da v naslednje tri vrstice ne pišemo faz.

Moč, ter vodniki so definirani na enak način kot pri močnostnem delu. Pozorni pa moramo biti na zadnji stolpec. Kar je tukaj pomembno je to, da dopišemo število želenih tokokrogov na začetku vsakega tokokroga. To lahko deluje tudi nam kot uporabniku v pomoč, ampak glavni namen je, da program bere to številsko vrednost podatkovnega tipa

integer in na podlagi tega števila določi, kako bo potekal nadaljnji izris načrta. V primeru na sliki 30 vidimo, da je na fazo L2 vezan podtokokrog s štirimi porabniki, kar pomeni, da moramo v zadnji stolpec napisati število štiri. Za zadnji porabnik, kateri je vezan na fazo L3 nima podtokokrogov, tako, da celico pustimo prazno.

Slika 30: Definicija faz, moči, vodnikov, ter števila podtokokrogov za razsvetljavo.

(50)

30 Slika 31: Primer izrisa podtokokroga za primer z slike 30.

S tem smo zaključili prvo stopnjo vnosa podatkov. Za vsako vrstico ali lahko rečemo tudi etaža za izris v AutoCAD risbi, najdemo v Excel datoteki svoja področja v katera lahko vnašamo zgoraj navedene podatke.

4.2 Poveza uporabnik - program 2. stopnja

4.2.1 Povezava AutoCad - Excel

Preden vse skupaj zaženemo, si moramo pripraviti AutoCAD risbo v katero želimo, da nam program izriše enopolne sheme. To naredimo tako, da odpremo AutoCAD, odpremo novo risbo ali že obstoječo risbo. AutoCAD je tako nared za izris in zagon programa.

Risbe niti ni potrebno shraniti, lahko jo pa tudi shranimo. Pomembno je, da imamo odprto samo eno AutoCAD okno, če ne, se bo program pri izrisu ustavil in ne bo nadaljeval

(51)

31 izvajanja. Ko odpremo AutoCAD, ga lahko minimiziramo in odpremo Excel datoteko, kjer lahko nadaljujemo z zagonom programa po nadaljnjih korakih.

4.2.2 Zagon programa v Excelu

Po doslednem pregledu in vnosu podatkov v Excel tabele, lahko začnemo z naslednjo stopnjo zagona programa. Ko odpremo Excel imamo v spodnjem delu pod zavihki tri različne zavihke: Močnostni del, razsvetljava, ter seznam elementov. Tukaj nam je pomemben zavihek razsvetljava, kjer najdemo gumb z naslovom ''Zazeni program''.

Gumb nam zažene prvo stopnjo programa, vidimo ga lahko na sliki 32. Nahaja se v zavihku razsvetljava, z začetkom na celici v stodvaindvajseti vrstici in v stolpcu D. Gumb je postavljen namenoma na to mesto, saj se kot projektant sprehodimo najprej skozi močnostni del, nato pa skozi razsvetljavo. Ko v prvem zavihku predelamo močnostni del in vnesemo vse potrebne podatke, preidemo v razsvetljavo, kjer dopolnimo potrebne celice. Gumb se nahaja na smiselnem mestu, ko končamo z vnosom podatkov za razsvetljavo, lahko zaženemo program kar se da hitro.

Slika 32: Gumb ''Zazeni program''.

4.2.3 Končni zagon programa

Po pritisku na gumb katerega vidimo na sliki 32 iz prejšnjega poglavja, se nam odpre naslednje uporabniško okence v katerega moramo vnesti naslednja podatka:

- Ali se v objektu nahaja prenapetostna zaščita?

- Kateri sistem napajanja želimo imeti v objektu?

Primer vnosa podatkov nam prikazuje slika 33. Uporabniško okence postavi nadaljnje ukaze programu za zagon. Na podlagi teh informacij, ter informacij iz Excel tabel program izriše načrte. To je zadnja stopnja, ki jo moramo kot uporabnik storiti za izris enopolnih shem. Po vseh zgoraj pravilno navedenih korakih, bi se program moral začeti izvajati. Povečamo si lahko odprto risbo v AutoCAD-u, kjer lahko vidimo postopek risanja programa. Tukaj je vse odvisno od zmogljivosti računalnika, zmogljivejši

Reference

POVEZANI DOKUMENTI

Gnuplot je nadvse primeren za risanje funkcij, saj lahko na enostaven naˇcin vnesemo razliˇcne funkcije, spreminjamo parametre funkcij in pa- rametre slike.. Kot smo videli

člena pravilnika o osebnih dohodkih in dru- gih denarnih prejemkih civilnih oseb v službi v Jugo- slovanski ljudski armadi (v nadaljnjem besedilu: pra- vilnik):

(2) Ne glede na določbe prvega odstavka tega člena pripada med delom na terenu, ki ga vojaške enote oziroma vojaške ustanove opravljajo v okviru rednega pouka in ki ne traja dalj

Ustanova po dohotku može kod Odeljenja za osi- guranje, uz saglasnost pretpostavljenog organa, da osi- gura sredstva kojima raspolaže, sopstvenu proizvodnju u toku i objekte

člen veljavnega za- kona, ki določa pravico do pogrebnine: omenjeno določilo je nepotrebno, saj je pravica do pogrebnine zagotovljena s predpisi o zdravstvenem varstvu

Gospodarska organizacija, ki doseže večji dohodek, kot znašajo delavcem izplačani osebni dohodki, mora odvesti iz dohodka, ki presega izplačane osebne dohod- ke, v rezervni

Izrazne možnosti risanja se razlikujejo glede na lastnosti orodja (svin č nika, peresa, tuša, oglja, č opi č a itd.) in na č ina potez roke. Risanje je neposredno in intimno

Za konec bi rada najprej strnila ugotovitve iz empiri č nega dela naloge. Na njihovi podlagi, na podlagi ugotovitev iz literature in prakti č nih primerov iz razli č nih