68
UNIVERZA V MARIBORU FAKULTETA ZA STROJNIŠTVO Zoran POSINKOVIĆ IZDELAVA MSC ADAMS VTIČNIKA ZA SINTEZO MEHANIZMOV Diplomsko delo visokošolskega strokovnega študijskega programa 1. stopnje Strojništvo Maribor, avgust 2018

À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

UNIVERZA V MARIBORU

FAKULTETA ZA STROJNIŠTVO

Zoran POSINKOVIĆ

IZDELAVA MSC ADAMS VTIČNIKA ZA SINTEZO MEHANIZMOV

Diplomsko delo

visokošolskega strokovnega študijskega programa 1. stopnje

Strojništvo

Maribor, avgust 2018

- X -

Page 2: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

IZDELAVA MSC ADAMS VTIČNIKA ZA SINTEZO

MEHANIZMOV

Diplomsko delo

Študent: Zoran POSINKOVIĆ

Študijski program: visokošolski strokovni študijski program 1. stopnje Strojništvo

Smer: Konstrukterstvo

Mentor: izr. prof. dr. Karl GOTLIH

Somentor: asist. Timi KARNER

Maribor, avgust 2018

- X -

Page 3: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique
Page 4: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

I

I Z J A V A

Podpisani Zoran Posinković izjavljam, da:

je diplomsko delo rezultat lastnega raziskovalnega dela,

predloženo delo v celoti ali v delih ni bilo predloženo za pridobitev kakršnekoli izobrazbe

po študijskem programu druge fakultete ali univerze,

so rezultati korektno navedeni,

nisem kršil avtorskih pravic in intelektualne lastnine drugih,

soglašam z javno dostopnostjo diplomskega dela v Knjižnici tehniških fakultet ter

Digitalni knjižnici Univerze v Mariboru v skladu z Izjavo o istovetnosti tiskane in

elektronske verzije zaključnega dela.

Maribor, avgust 2018 Podpis:

Page 5: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

II

ZAHVALA

Iskreno se zahvaljujem vsem, ki so bili vpleteni v

proces izdelave diplomskega dela.

Posebej bi se rad zahvalil somentorju asist. Timiju

Karnerju, asist. dr. Simonu Krašni in Marijani Hadžić za

pomoč, podporo in potrpežljivost.

Diplomsko nalogo posvečam svojim staršem.

Page 6: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

III

IZDELAVA MSC ADAMS VTIČNIKA ZA SINTEZO MEHANIZMOV

Ključne besede: Burmester, sinteza mehanizma, Adams View, pozicijska sinteza, MSC Adams

ukazni jezik

UDK: 621.837.7(043.2)

POVZETEK

Diplomsko delo obravnava MSC Adams vtičnik, namenjen sintezi štiriročičnih mehanizmov.

Algoritem skriptnega programa temelji na grafični rešitvi pozicijske sinteze štiriročičnih

mehanizmov, ki jo je predstavil Ludwig Burmester leta 1888. Sam program je napisan v

ukaznem jeziku MSC Adams okolja.

Page 7: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

IV

CONSTRUCTION OF THE MSC ADAMS PLUG-IN FOR THE SYNTHESIS OF

MECHANISMS

Key words: Burmester, mechanism synthesis, Adams View, position synthesis, MSC Adams

command language

UDK: 621.837.7(043.2)

ABSTRACT

This graduation thesis deals with the MSC Adams plug-in intended for the synthesis of four-bar

mechanisms. The program algorithm is based on a graphical solution for the position synthesis

of the four-bar mechanisms presented by Ludwig Burmester in 1888. The program itself is

written in the MSC Adams command language.

Page 8: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

V

KAZALO VSEBINE

1 UVOD ....................................................................................................... 1

1.1 Opredelitev problema ........................................................................ 1

1.2 Cilji, predpostavke in omejitve diplomskega dela ............................... 1

1.3 Struktura dela .................................................................................... 1

2 OSNOVE MEHANIZMOV ........................................................................... 3

2.1 Kratka zgodovina mehanizmov ........................................................... 3

2.2 Štiriročični mehanizem ....................................................................... 6

2.2.1 Grashofov kriterij .......................................................................................................... 7

2.3 Vezja in veje v mehanizmu ................................................................. 9

2.4 Mrtva lega ........................................................................................ 11

3 SINTEZA RAVNINSKEGA GIBANJA MEHANIZMA ...................................... 15

3.1 Kinematična sinteza mehanizma ...................................................... 15

3.2 Sinteze gibanja štiri-ročičnega mehanizma v primeru štirih pozicij ... 16

3.2.1 Pol premika ......................................................................................................... 17

3.2.2 Postopek iskanja središčnih točk ........................................................................ 18

3.2.3 Postopek iskanja krožnih točk ............................................................................ 19

3.3 Problemi sinteze ............................................................................... 20

3.4 Sinteza za primer treh in petih pozicij ............................................... 21

4 OSNOVE PROGRAMIRANJA V MSC ADAMS VIEW OKOLJU ...................... 22

4.1 Uvod................................................................................................. 22

4.1.1 Command Navigator in Command Window....................................................... 23

4.1.2 Database Navigator ............................................................................................ 26

4.1.3 Function Builder ................................................................................................. 29

4.1.3.1 Operandi .................................................................................................................... 30

4.1.3.2 Operatorji .................................................................................................................. 33

4.2 Pisanje funkcij .................................................................................. 33

4.3 Makroukazi ...................................................................................... 34

4.3.1 Zapis in aktivacija ................................................................................................ 34

4.3.2 Parametri ............................................................................................................ 35

Page 9: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

VI

4.3.3 Pogojni stavki in zanke........................................................................................ 37

4.3.4 Spremenljivke ..................................................................................................... 38

4.3.5 Skupine ............................................................................................................... 40

4.4 Dialog Box Builder ............................................................................ 41

4.5 Menijska vrstica ............................................................................... 44

4.6 Izdelava vtičnika ............................................................................... 45

4.6.1 Build.cmd ............................................................................................................ 46

4.6.2 Vtičnik ................................................................................................................. 46

5 LINKAGE DESIGN VTIČNIK, NAVODILA ZA UPORABO .............................. 49

5.1 Aktivacija vtičnika ............................................................................ 49

5.2 Pogovorno okno Four positions synthesis ......................................... 50

5.3 Pogovorno okno FB Controller .......................................................... 51

5.4 Sinteza.............................................................................................. 53

6 SKLEP ..................................................................................................... 56

7 VIRI ........................................................................................................ 57

Page 10: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

VII

KAZALO SLIK

Slika 2.1: Osnovne naprave ........................................................................................................ 4

Slika 2.2: Kinematične verige [4] ................................................................................................ 5

Slika 2.3: Štirizgibni mehanizem z oznakami .............................................................................. 6

Slika 2.4: Grashofovi mehanizmi ................................................................................................ 7

Slika 2.5: Nihajno-nihajni mehanizem (Triple rocker) ................................................................ 8

Slika 2.6 PG mehanizem (Special Grashof) ................................................................................. 9

Slika 2.7 Vezje mehanizma ....................................................................................................... 10

Slika 2.8 Veji mehanizma .......................................................................................................... 10

Slika 2.9: Kombinirani mrtvi legi ............................................................................................... 12

Slika 2.10: Mrtve lege ............................................................................................................... 13

Slika 3.1: Vrste kinematičnih sintez .......................................................................................... 16

Slika 3.2: Sinteza gibanja kot geometrijski problem ................................................................. 16

Slika 3.3: Pol premika in kot premika ....................................................................................... 17

Slika 3.4: Iskanje operativne dvojice ........................................................................................ 17

Slika 3.5: Kot s središčno točko ................................................................................................ 18

Slika 3.6: Polovični kot premika ................................................................................................ 18

Slika 3.7: Središčne točke ......................................................................................................... 19

Slika 3.8: Burmestrova krivulja ................................................................................................. 19

Slika 3.9: Iskanje krožne točke .................................................................................................. 20

Slika 3.10: Slika rešitev ............................................................................................................. 20

Slika 4.1: Adams View delovno okolje ...................................................................................... 22

Slika 4.2: Command Navigator ................................................................................................. 24

Slika 4.3: Command Window ................................................................................................... 25

Slika 4.4: Database Navigator ................................................................................................... 27

Slika 4.5: Shranjene knjižnice ................................................................................................... 27

Slika 4.6: Sled do objektov menijske vrstice ............................................................................. 28

Slika 4.7: Function Builder ........................................................................................................ 29

Slika 4.8: Primer napačne izbire Function Builder-ja ................................................................ 30

Slika 4.9 Klicanje vrednosti objektov ........................................................................................ 32

Slika 4.10: Uvažanje makroukaza ............................................................................................. 35

Slika 4.11: Primer pogovornega okna ....................................................................................... 36

Slika 4.12: Shramba $_self spremenljivke ................................................................................ 39

Slika 4.13 Podrejeni objekti pogovornega okna ....................................................................... 41

Slika 4.14 Sprememba knjižnice ............................................................................................... 42

Slika 4.15 Dialog Box Builder .................................................................................................... 42

Slika 4.16: Sestavni elementi pogovornega okna ..................................................................... 44

Slika 4.17: Novi meni ................................................................................................................ 45

Slika 4.18: Zapis v binarno obliko ............................................................................................. 47

Slika 4.19: Spremenljivka okolja ............................................................................................... 48

Slika 4.20: Plug-in Manager ...................................................................................................... 48

Slika 5.1: Primer štirih pozicij.................................................................................................... 49

Slika 5.2: Four position synthesis ............................................................................................. 50

Page 11: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

VIII

Slika 5.3: Sinteza mehanizma in krivulj ..................................................................................... 51

Slika 5.4: FB Controller ............................................................................................................. 52

Slika 5.5: Nihajno nihajni mehanizem ...................................................................................... 54

Slika 5.6: Grashofov rotirajoče-nihajni mehanizem ................................................................. 54

Slika 5.7: Nihajno-nihajni mehanizem ...................................................................................... 55

Slika 5.8:: Grashofov rotirajoče-nihajni mehanizem ................................................................ 55

Page 12: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

1

1 UVOD

1.1 Opredelitev problema

MSC Adams View (Adams v nadaljevanju) trenutno velja za najmočnejši program pri analizi,

simulaciji in optimizaciji dinamičnih modelov. Vendar pa v programu ne najdemo orodij za

sintezo mehanizmov. V praksi se tako pričakuje, da v Adams uvozimo že ustvarjeni kinematični

model, kar pomeni, da opravimo vse stopnje sinteze v drugih programskih okoljih. Tak pristop

je zamuden, saj moramo za vsak malo večji popravek v začetnih pogojih preskakovati med

programi, namesto da bi celoten ciklus sinteze in analize opravili v enem programskem okolju.

1.2 Cilji, predpostavke in omejitve diplomskega dela

Cilj diplomskega dela je realizacija vtičnika za program Adams, s katerim bi na preprost način

prišli do mehanizma, upoštevaje zastavljene omejitve. Za vrsto sinteze sem izbral geometrijsko

sintezo gibanja štiriročičnega mehanizma. Sam algoritem pa sem zgradil na geometrijskem

postopku sinteze, do katerega se je dokopal Ludwig Burmester že davnega leta 1888.

Namen vtičnika je ponuditi uporabniku Adamsa inženirsko orodje pri razvoju in raziskovanju

mehanizmov. Zato mora biti vtičnik preprost in praktičen za uporabo. Oblikovanje take vrste

programskega orodja pa je mogoče le pod pogojem, da Adams podpira pisanje makroukazov

in vsebuje dovolj kompleksen skriptni jezik, da omogoči fleksibilnost pri razvoju programske

opreme.

1.3 Struktura dela

Diplomsko delo je razdeljeno na sedem poglavij. Prvo poglavje je uvodno. V drugem poglavju

predstavim zgodovino mehanizmov in naprav ter prikažem dejavnike, ki so v času industrijske

revolucije pripeljali do razvoja sinteznih postopkov. V nadaljevanju poglavja opišem osnove

štirizglobnih mehanizmov, njihovo razvrstitev in lastnosti. Poznavanje osnov nam bo kasneje

olajšalo razumevanje načina delovanja sinteznega programa. V tretjem poglavju opišem

sintezne postopke in poglobljeno razčlenim geometrijsko sintezo gibanja v primeru štirih

Page 13: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

2

pozicij. V četrtem poglavju se lotim osnov programiranja v Adamsu, predstavim sintakso

ukaznega jezika in obdelam glavne vrste prilagoditev, ki jih lahko dosežemo z makroukazi. Peto

poglavje služi predstavitvi vtičnika Linkage Design, kjer na konkretnem primeru predstavim

način uporabe. Sedmo poglavje je sklepno.

Page 14: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

3

2 OSNOVE MEHANIZMOV

2.1 Kratka zgodovina mehanizmov

Človeško telo je v primerjavi z drugimi velikimi plenilci nerodno, okorno in šibko. Prvo mesto

v prehranski verigi smo si zagotovili predvsem z iznajdljivo uporabo različnih orodij. Kasneje

so se iz orodij razvile kompleksnejše naprave, s katerimi so človeške skupnosti zgradile in

vzdrževale prve civilizacije.

Antična Grčija nam postreže s prvimi pisnimi viri, ki obravnavajo naprave in mehanizme.

Najstarejše tovrstno besedilo (uvrščeno v tretje stoletje pr. n. št.) poznamo pod imenom

Mxhanika, pripisujejo pa ga Aristotelu [1]. V njem predstavljene naprave so sicer zgolj nosilec

geometričnega problema, ki ga mora učenec rešiti, besedilo sámo pa nam nakazuje, da so Grki

že v tretjem stoletju pr. n. št. dobro poznali osnovne naprave in principe njihovega delovanja.

Pod osnovne naprave so Grki šteli kolo, zagozdo, škripec, vijak, vzvod in klanec. Sámo

dojemanje osnovnih elementov teh naprav je bilo močno pogojeno s takratnim razumevanjem

naprave kot orodja za usmerjanje in ojačitev sile. S tega vidika so analizo mehanizma

zreducirali na statični preračun, problem dinamike in dela pa so zanemarili.

Empirizem je bil takratnim filozofom načeloma tuj, potencialno aplikativne vede, kot sta

matematika in geometrija, pa so bile uporabljene večinoma le pri obravnavi abstraktnih

problemov. Seveda najdemo tudi v antični dobi izjeme. Arhimed (3. stoletje pr. n. št.), sicer

znan po svojih matematičnih delih, je razvijal tudi naprave, namenjene dvigovanju težkih

bremen in prenosu tekočin (Arhimedov vijak), ter za vojaške potrebe. Drugi tak primer je

Heron iz Aleksandrije, ki ga nekateri štejejo med prve fizike, saj je močno poudarjal pomen

izkustva. Poleg osnovnih naprav je raziskal in opisal naravo tekočin ter svoje znanje apliciral v

domiselne naprave (parni stroj-aeolipile, gasilni aparat, orgle na veter, vodne črpalke) [2].

Po propadu rimskega imperija so antično zapuščino prevzeli Arabci, jo dograjevali in, kar je

najpomembnejše, ohranili marsikateri antični tekst, ki je kasneje priromal v renesančno

Evropo. Najvidnejši predstavnik arabske zlate dobe je izumitelj in matematik Ismail al-Jazari,

Page 15: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

4

ki v svojem delu Knjiga znanja o veleumnih mehaničnih napravah (1206) opiše več kot sto

naprav [3].

V srednjem veku je Evropa resda kulturno nazadovala, je pa premik od sužnjelastniškega

sistema v fevdalni dobi ustvaril močno potrebo po razvoju tehnologije, ki bi olajšala

poljedelska in obrtniška dela. Poleg mlinov na vodo je v tem času prišlo do prve množične

izrabe vetra kot primarnega vira energije. Rojstvo obrtniških cehov pa pripomore k razvoju

tehnologije in praktičnega znanja, iz katerega kasneje črpajo navdih renesančni inženirji.

Slika 2.1: Osnovne naprave

Dva izuma v dobi renesanse pripomoreta k pospešenemu razvoju naprav in mehanizmov;

uporaba perspektive in merila omogoči natančnejše načrte, iznajdba tiska pa pripomore k

intenzivnejšemu širjenju idej po Evropi. Znanost in tehnologija tako pridobita strateško

vrednost v političnem prostoru tedanje Evrope, temu pa sledijo večja vlaganja v razvoj naprav

tako v vojaške kot civilne namene. Pri analizi mehanizmov ter odkrivanju konceptov njihove

dinamike in delovanja ostajajo antični teksti referenčna točka, vključno z dojemanjem

mehanizma kot sklopa osnovnih naprav. V rokodelski praksi pa lahko v tem času že opazimo

premik s koncepta osnovnih naprav na strojne elemente, kot jih poznamo danes. V zapisih

Leonarda da Vincija (1452-1519), zbranih v delu Codex Madrid, so med drugim dokumentirane

vse kinematične dvojice, ki jih Franz Reuleaux v 19. stoletju vključi v svojo kinematično teorijo.

Žal so ostali zapisi Leonarda da Vincija neobjavljeni, in kot taki predstavljajo bolj kroniko

tehnologije tistega časa, kot da bi imeli resnejši vpliv na področju tehnike [4].

Page 16: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

5

Po obdobju renesanse se večina vidnega razvoja s praktičnega področja prenese na področje

znanstvenih ved. Isaac Newton in Gottfried Leibniz razvijeta diferencialni račun, Leonhard

Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo,

namenjeno razvoju tehničnega kadra, Ecole Polytechnique (1794). Navkljub naglemu razvoju

znanosti v času industrijske revolucije prihaja do prebojev v tehnologiji še vedno v delavnicah.

James Watt, kot najvidnejši predstavnik te dobe, predstavi leta 1781 izboljšano različico

Newcomenovega parnega stroja. Nov parni stroj ima izrazito manjše izgube in koristi ojnico

pri prenosu premega gibanja v krožno.

V 19. stoletju se primarna obravnava mehanizma dokončno usmeri s sile na spremembo

gibanja. Več kot pol stoletja pa mora še miniti, da akademska sfera postreže z novim atlasom

mehanizmov, ki ne le da bolje klasificira vse dotedanje mehanizme, ampak prispeva tudi k

razvoju sinteznih postopkov [5]. To delo opravi nemški inženir in profesor Franz Reuleaux

(1829-1905). Njegova Kinematika strojev (1875) je knjiga, ki vzpostavi temelje moderne

kinematike in zavrže tedanji model strojev, po katerem so bili mehanizmi razvrščeni na

podlagi načina spremembe gibanja. Po Reuleauxjevem modelu je treba mehanizem razumeti

kot kinematično verigo, sestavljeno iz medsebojno povezanih kinematičnih dvojic. Našteje

šest osnovnih kinematičnih verig (ročična, krivuljna, vijačna, zaporna, zobniška in jermenska)

in dvaindvajset osnovnih gradnikov mehanizma [4].

Slika 2.2: Kinematične verige [4]

Page 17: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

6

Reuleaux razstavi napravo na topološke enote, kar po eni strani povzroči abstrahiranje

mehanizma in lociranje istih kinematičnih principov na vizualno različne naprave, po drugi

strani pa omogoči sintezo novih mehanizmov z uporabo inverzije, sestavljenih verig in

topoloških deformacij. Reuleauxovi učenci in sodobniki iz njegove zapuščine razvijejo različna

orodja, tako analize kot sinteze mehanizmov: Ludwig Burmester predstavi grafične postopke

sinteze, Martin Grubler razvije teorem mobilnosti, Pafnuty Chebyshev razvije polinome za

aproksimacijo ojnične krivulje. V stoletju, ki sledi, se iz grafičnih postopkov razvijejo

matematična orodja sinteze, ki se z razvojem računalnikov vedno bolj izpopolnjujejo in

prestopajo iz analitičnih metod v optimizacijske algoritme. K samemu razvoju pripomorejo

tudi nove veje matematike, kot so teorija grafov, vijačna teorija in teorija mrež. [4]

2.2 Štiriročični mehanizem

Najosnovnejši ročični mehanizem, ki nam še omogoča prenos gibanja, je štiriročični

mehanizem. Sestavljen je iz treh gibljivih in ene nepremične ročice, ki so med seboj povezane

z rotacijskimi zglobi, kar ga uvršča v družino zaprtih kinematičnih verig. V kolikor je sistem

sploh možno sestaviti, mora biti najdaljša ročica (L) krajša od skupnega seštevka najkrajše

ročice (S) in ostalih dveh ročic (P,Q);

𝐿 < (𝑆 + 𝑃 + 𝑄) (2.1)

Slika 2.3: Štirizgibni mehanizem z oznakami

Page 18: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

7

Pri tej vrsti mehanizma z eno prostostno stopnjo se prenos gibanja iz pogonske ročice prenese

prek ojnice (vezne ročice) na gnano ročico. Gnana ročica lahko kroži ali pa zgolj niha. Isto velja

tudi za pogonsko ročico, vendar ta v primeru nihanja potrebuje dodaten gnani člen, ki zagotovi

nihanje ročice v primernem razponu.

2.2.1 Grashofov kriterij

Z Grashofovim kriterijem določimo kinematične lastnosti mehanizma, tako da primerjamo

seštevek dolžin najkrajše in najdaljše ročice s seštevkom dolžin ostalih dveh ročic. Iz tega

pogoja dobimo tri družine mehanizmov, Grashofove mehanizme, nihajno-nihajne mehanizme

in posebne Grashofove mehanizme (v nadaljevanju PG mehanizmi) [6].

Grashofovi mehanizmi

Slika 2.4: Grashofovi mehanizmi

Page 19: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

8

O Grashofovem mehanizmu govorimo takrat, ko je izpolnjen sledeči pogoj:

𝐿 + 𝑆 < 𝑃 + 𝑄 (2.2)

V tem primeru dobimo mehanizem, kjer je vsaj ena ročica sposobna kroženja. S kinematično

inverzijo mehanizma dobimo štiri skupine mehanizmov, katerih značaj je pogojen z lego

najkrajše ročice. V prvem primeru s slike 2.4 je ročica S gonilna, gnana ročica pa zgolj niha. V

drugem primeru doseže polno rotacijo samo ojnica, in še to le v primeru, da je pogon

nameščen v zglobu A ali zglobu B. Tretji primer je podoben prvemu s to razliko, da tokrat gnana

ročica kroži, vendar v praksi potrebuje tovrstni mehanizem še vztrajnik, da ohrani ročica

rotacijo. V zadnjem primeru je ročica S vpeta v tla, ostale tri ročice pa opravijo polni krog.

Nihajno-nihajni mehanizmi

Slika 2.5: Nihajno-nihajni mehanizem (Triple rocker)

Pri nihajno-nihajnem mehanizmu je neenakost obrnjena;

𝐿 + 𝑆 > 𝑃 + 𝑄 (2.3)

Seštevek dolžin najkrajše in najdaljše ročice je v tem primeru večji od seštevka dolžin ostalih

ročic, zaradi česar so vse tri ročice mehanizma sposobne zgolj nihanja, ne glede na

kinematično inverzijo.

Page 20: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

9

PG mehanizmi

V tej družini imamo šest skupin. Za prve štiri skupine PG mehanizmov veljajo podobni pogoji

in ugotovitve kot pri Grashofovih mehanizmih (položaj najkrajše ročice zaznamuje

kinematične lastnosti mehanizma), s to razliko, da imajo PG mehanizmi singularno točko. V tej

točki so vse štiri ročice kolinearne, in nadaljnjo gibanje gnane ročice postane nepredvidljivo.

Spodnja formula opisuje pogoj, ki ga izpolnjuje vseh šest skupin.

𝐿 + 𝑆 = 𝑃 + 𝑄 (2.4)

Za peto skupino velja še dodaten pogoj, in sicer da imajo ročice paroma enako dolžino. Kar

mehanizmu doprinese še eno singularno točko.

Slika 2.6 PG mehanizem (Special Grashof)

Paralelogramski mehanizem prenaša kotno hitrost na gnano ročico. Če v singularni točki gnana

ročica spremeni smer, dobimo anti-paralelogramski mehanizem. V osnovi pa oba mehanizma

štejemo kot dvojno rotirajoči mehanizem. V zadnji skupini so dolžine ročice štirizglobnega

mehanizma med seboj enake.

2.3 Vezja in veje v mehanizmu

Rotirajoče-nihajni mehanizem lahko sestavimo na dva načina. V obeh primerih bo gonilna

ročica pognala gnano ročico v nihanje; razlika bo le v tem, da bosta ročici nihali v različnih

položajih (slika 2.7).

Page 21: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

10

Slika 2.7 Vezje mehanizma

V tem primeru govorimo, da ima mehanizem dve vezji. Z geometrijskega stališča zglob B

doseže tako zgornji lok kot spodnjega, vendar je potrebno za ta premik mehanizem razstaviti

in ga ponovno sestaviti.

V naslednjem primeru (slika 2.8) pa imamo opravka z dvema vejama v mehanizmu. Pri

štirizglobnem mehanizmu se tak primer pojavi , ko je pogonska ročica nihajna. Iz svoje skrajne

lege se lahko premakne na dva načina. Če je gnana ročica nihajna, dobimo spet dva različna

kinematična loka, če pa je rotirajoča, obstaja možnost, da ročica zamenja smer vrtenja in tako

obhodi obe veji mehanizma.

Slika 2.8 Veji mehanizma

Page 22: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

11

2.4 Mrtva lega

Z mrtvo lego označimo skrajni legi nihajne ročice, ko le-ta predstavlja pogonski člen

mehanizma. Pogoj za mrtvo lego je kolinearnost ojnice in gnane ročice. V kolikor je v mrtvi legi

razdalja med točko A in točko O4 (glej sliko 2.9) enaka vsoti dolžin ojnice in gnane ročice,

govorimo o mrtvi legi brez prekrivanja, ko pa je razdalja med točko A in točko O4 enaka razliki

dolžin ojnice in gnane ročice, govorimo o mrtvi legi s prekrivanjem. Štirizgibne mehanizme

lahko na podlagi vrste mrtve lege razdelimo v štiri razrede. V nadaljevanju bo z L1 označena

nepremična ročica, L2 pogonska ročica, L3 ojnica in L4 gnana ročica.

Mehanizmi, omejeni z mrtvima legama brez prekrivanja

Pogoja za tovrstne mehanizme:

𝐿1 + 𝐿2 > 𝐿3 + 𝐿4 (2.5)

|𝐿1 − 𝐿2| ≥ |𝐿3 − 𝐿4| (2.6)

Pri takšni vrsti mehanizma leži središče loka delovnega območja na premici, ki povezuje vpetji

mehanizma s podlago (slika 2.10). Polovični kot delovnega območja dobimo s sledečo

formulo:

α/2 = acos(𝐿12+𝐿2

2−(𝐿3+𝐿4)2

2∗𝐿1∗𝐿2) (2.7)

V to skupino mehanizmov sodijo nihajno-nihajni mehanizmi, PG nihajno-rotirajoči mehanizmi

in PG dvojno-nihajni mehanizmi.

Mehanizmi, omejeni z mrtvo lego brez prekrivanja in z mrtvo lego s prekrivanjem

Pogoja za tovrstne mehanizme:

𝐿1 + 𝐿2 > 𝐿3 + 𝐿4 (2.8)

|𝐿1 − 𝐿2| < |𝐿3 − 𝐿4| (2.9)

Page 23: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

12

Pri tej vrsti mehanizma gonilna nihajka zavzame izmenično mrtvo lego brez prekrivanja in

mrtvo lego s prekrivanjem (slika 2.9). Formula za kot delovnega območja se glasi:

α = acos (𝐿12+𝐿2

2−(𝐿3+𝐿4)2

2∗𝐿1∗𝐿2) − acos(

𝐿12+𝐿2

2−(𝐿3−𝐿4)2

2∗𝐿1∗𝐿2) (2.10)

V to skupino mehanizmov sodijo Grashofovi nihajno-rotirajoči mehanizmi in Grashofovi

dvojno-nihajni mehanizmi.

Slika 2.9: Kombinirani mrtvi legi

Mehanizmi, omejeni z mrtvima legama, ki se prekrivata

Pogoja za tovrstne mehanizme:

𝐿1 + 𝐿2 ≤ 𝐿3 + 𝐿4 (2.11)

|𝐿1 − 𝐿2| < |𝐿3 − 𝐿4| (2.12)

Enako kot pri mehanizmih z mrtvima legama, ki se ne prekrivata, leži središče loka delovnega

območja na premici, ki povezuje vpetji mehanizma s podlago (slika 2.10). S to razliko, da v tem

primeru delovno območje leži na zunanji strani navideznega lika, ki ga tvorita mrtvi legi.

Formula za polovični kot delovnega območja je sledeča:

α/2 = 180° − acos(𝐿12+𝐿2

2−(𝐿3−𝐿4)2

2∗𝐿1∗𝐿2) (2.13)

Page 24: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

13

V to skupino mehanizmov sodijo nihajno-nihajni mehanizmi in PG dvojno-nihajni mehanizmi.

Slika 2.10: Mrtve lege

Mehanizmi s krožnim gibanjem

Pogoja za tovrstne mehanizme:

𝐿1 + 𝐿2 ≤ 𝐿3 + 𝐿4 (2.14)

|𝐿1 − 𝐿2| ≥ |𝐿3 − 𝐿4| (2.15)

V to skupino sodijo mehanizmi, katerih pogonska ročica zmore opraviti polni krog. Med te

mehanizme sodijo tako Grashofovi kot PG, rotirajoče-nihajni mehanizmi in dvojno-rotirajoči

mehanizmi.

Page 25: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

14

Page 26: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

15

3 SINTEZA RAVNINSKEGA GIBANJA MEHANIZMA

3.1 Kinematična sinteza mehanizma

Kinematična sinteza se ukvarja s sistematičnimi postopki odkrivanja mehanizmov, ki

omogočajo izvedbo želenega gibanja. Pri konstruiranju mehanizmov izvedemo v prvem koraku

topološko sintezo. Izberemo vrsto mehanizma (zobniški, ročični, sledilni ...), za katerega

domnevamo, da najbolje izpolnjuje dane zahteve, mu določimo število in vrsto elementov,

prostostno stopnjo in medsebojno povezanost elementov. Sledi dimenzijska sinteza, kjer na

podlagi želenega gibanja določimo geometrijo elementov, začetno pozicijo, prestavno

razmerje ipd. Pri ročičnih mehanizmih razlikujemo tri vrste dimenzijske sinteze: funkcijsko

sintezo, sintezo poti in sintezo gibanja [6].

Funkcijska sinteza

Pri tej vrsti sinteze skušamo določiti izhodni kot (ali razdaljo v primeru prizmatične vezi)

v odvisnosti od premika pogonske ročice.

Sinteza poti

Pri sintezi poti želimo s pomočjo mehanizma slediti želeni krivulji. Točka, ki zarisuje

krivuljo, je pritrjena na ojnici, sama usmeritev točke pa v tem primeru ne igra vloge.

Tovrstno sintezo lahko kombiniramo tudi s funkcijsko, ko želimo doseči časovno

pogojene pozicije.

Sinteza gibanja

Za razliko od sinteze poti tokrat upoštevamo tudi orientacijo točke, vezane na ojnico.

V praksi določimo pozicije, za katere želimo, da jih mehanizem obhodi v svojem ciklu.

Pri štiri-ročičnem mehanizmu je možno z grafičnimi in analitičnimi postopki določiti

mehanizem za največ pet pozicij.

Page 27: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

16

Slika 3.1: Vrste kinematičnih sintez

3.2 Sinteza gibanja štiri-ročičnega mehanizma v primeru štirih pozicij

Z geometrijskega stališča je sinteza gibanja obravnavana kot problem, kjer moramo za vsako

pozicijo poiskati tako točko, da dobimo štiri enake trikotnike, hkrati pa morajo te točke ležati

na isti krožnici. Z geometrijskim postopkom, ki ga bom opisal v nadaljevanju, najprej poiščemo

središčno točko (točko, na kateri vpnemo mehanizem na podlago), na podlagi središčne točke

pa potem poiščemo krožno točko (točko vpetja med ročico in ojnico). Postopek ponovimo za

drugo dvojico točk, tako da dobimo pozicije štirih zglobov mehanizma. Na sliki 3.2 sem

središčno točko označil s Tc, krožno točko pa z oznakami T1, T2, T3 in T4.

Slika 3.2: Sinteza gibanja kot geometrijski problem

Geometrijski postopek, ki sem ga uporabil, je prvi opisal Ludwik Burmester v svoji knjigi o

kinematiki leta 1888 [7].

Čeprav so se postopki sinteze v letih po Burmesterju močno izpopolnili, ostaja nemški profesor

vodilna referenca, ko govorimo o tej vrsti sinteze. Pri samem postopku so t. i. poli premika

ključnega pomena, saj dobimo z njihovo pomočjo célo množico rešitev za središčne in krožne

točke.

Page 28: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

17

3.2.1 Pol premika

Slika 3.3: Pol premika in kot premika

Pol premika dobimo s presečiščem dveh simetral daljic, ki povezujeta sorodni točki dveh

pozicij. Kot premika s pozicije Si na Sj bomo označili s φij, pol premika pa označimo s Pij. Z

nasprotnim polom bomo označili dvojico polov, ki si ne delita nobene pozicije premika [8]. Pri

štirih pozicijah imamo tako na razpolago šest polov (P12, P13, P14, P23, P24, P34), iz katerih dobimo

tri pare nasprotnih polov (P12-P34, P13-P24, P14-P23). Za potrebe sinteze izberemo par nasprotnih

polov [9]. Izbrane štiri pole povežemo v nove dvojice, ki jih imenujemo operativne dvojice.

Podobno kot pri izbiri nasprotnih polov tudi v tem primeru ni pomembno, kateri par

operativnih dvojic izberemo (slika 3.4).

Slika 3.4: Iskanje operativne dvojice

Naslednji dve značilnosti polov premika sta ključni pri postopku lociranja središčnih in krožnih

točk [8].

Page 29: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

18

Poljubni par operativnih dvojic oklepa s središčno točko (Ac) isti kot (α).

Slika 3.5: Kot s središčno točko

Po definiciji tako pol Pij kot središčna točka Ac ležita na isti simetrali daljice (Ai-Aj)

poljubnih dveh pozicij i-j. Daljici Ai-Pij in Ac-Pij oklepata polovični kot premika, φij/2.

Slika 3.6: Polovični kot premika

3.2.2 Postopek iskanja središčnih točk

Iz štirih pozicij poiščemo dva para nasprotnih polov (P13-P24, P14-P23), z daljicami povežemo

operativni dvojici in skozi njiju potegnemo simetrali. Na izbrani simetrali izberemo poljubno

točko (T1), odčitamo kot P13T1P14 (β) in zarišemo krog, ki seka pola in ima središče v točki T1.

Na drugi simetrali poiščemo tako točko, ki s točkama P23 in P24 oklepa kot β, in podobno kot v

prejšnjem koraku zarišemo nov krog. Presečišče krogov predstavlja pozicijo središčne točke,

saj s to točko oba para polov oklepata isti kot - β/2 [9].

Page 30: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

19

Slika 3.7: Središčne točke

V zgornjem primeru smo dobili dve središčni točki AC1 in AC2. Če se s točko T1 sprehodimo po

simetrali, dobimo množico središčnih točk, ki tvorijo Burmestrovo krivuljo.

Slika 3.8: Burmestrova krivulja

3.2.3 Postopek iskanja krožnih točk

Vsaki središčni točki (AC) priredimo eno krožno točko (A), vezano na izbrano pozicijo Si. Točko

AC povežemo s polom, ki deli izbrano pozicijo (Pij), in narišemo premico, ki seka pol in oklepa

z daljico AC-Pij polovični kot premika pola Pij (φij/2). Isti postopek ponovimo z drugim polom,

ki deli isto pozicijo (pozicijo i). Presečišče premic nam pokaže lokacijo krožne točke A v odnosu

do pozicije Si [9].

Page 31: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

20

Slika 3.9: Iskanje krožne točke

Ko vsem središčnim točkam priredimo krožno točko, dobimo še eno Burmestrovo krivuljo,

krivuljo krožnih točk. Na krivulji središčnih točk izberemo dve poljubni točki in njima prirejeni

krožni točki. Središčna točka predstavlja vpetje ročice na podlago, krožna točka pa zglob med

ročico in ojnico mehanizma.

Slika 3.10: Slika rešitev

3.3 Problemi sinteze

Z opisanim postopkom dobimo neskončno število rešitev. Ni pa nujno, da bo vsak na ta način

sintetizirani mehanizem v praksi zadostil pogojem delovanja. Poleg dinamičnih anomalij

(prevelik pospešek, neprimeren sunek, premajhen prenosni kot) vsebuje velik del

mehanizmov kinematične anomalije. Poljuben mehanizem, izbran iz množice rešitev, je sicer

zmožen zavzeti vse štiri položaje, dokler pa ne opravimo kinematične analize, iz izbrane rešitve

ne moremo sklepati o naravi gibanja med pozicijami.

Page 32: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

21

Poznamo tri vrste kinematičnih anomalij [6]:

Anomalija veje

Mehanizem doseže vse zadane položaje, samo če obhodi obe veji gibanja. V tem

primeru smo primorani dodati pomožni mehanizem, ki poskrbi za menjavo veje.

Anomalija števila

V tem primeru dobimo mehanizem, ki sicer obhodi vse pozicije, vendar ne v želenem

vrstnem redu.

Anomalija vezja

Pri anomaliji vezja moramo mehanizem razstaviti in sestaviti v alternativno obliko, če

želimo, da obhodi vse pozicije.

V praksi se izkaže, da pri tovrstni sintezi večina rešitev vsebuje eno od opisanih anomalij, kar

zahteva določeno intuicijo pri postavljanju samih pozicij v želji, da dobimo čim večji nabor

uporabnih rešitev.

3.4 Sinteza za primer treh in petih pozicij

V primeru treh pozicij ni predpisanega postopka za iskanje središčne točke, saj lahko pozicijo

poljubno izberemo kjerkoli v ravnini mehanizma. Ko izberemo primerno mesto za središčne

točke in določimo pole premika (tri v tem primeru), se poslužimo istega postopka iskanja

krožnih točk, kot smo to storili v primeru štirih pozicij [8].

Pri sintezi mehanizma za predpisanih pet pozicij uporabimo isti postopek kot za primer štirih

pozicij. Od predpisanih petih pozicij poljubno izberemo štiri ter izrišemo krivuljo središčnih

točk in krivuljo krožnih točk. Postopek ponovimo še za drugo kombinacijo štirih pozicij. Točka

vpetja mehanizma leži na presečišču krivulj središčnih točk, obenem pa mora njej prirejena

krožna točka ležati na presečišču krivulj krožnih točk [10]. Na ta način pridobljeni mehanizem

v praksi najverjetneje ne bo deloval, saj obstaja velika možnost anomalij.

Page 33: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

22

4 OSNOVE PROGRAMIRANJA V MSC ADAMS VIEW OKOLJU

4.1 Uvod

Adams je programsko okolje, namenjeno modeliranju in dinamični simulaciji sistemov teles,

povezanih s kinematičnimi vezmi. Uporabniku v osnovi omogoča gradnjo in simulacijo gibljivih

delov mehanskih sistemov, testiranje modela v realnih pogojih delovanja, dopolnitev modela

z realno geometrijo, fleksibilnimi deli in krmiljem ter lociranje ključnih parametrov sistema in

njihovo optimizacijo [11].

Slika 4.1: Adams View delovno okolje

Adams se med drugim ponaša z odprto arhitekturo programa, kar nam omogoča, da si

prilagodimo delovno okolje po svoji meri. Na voljo imamo štiri področja prilagoditve:

izdelavo funkcij;

avtomatizacijo dela z makroukazi;

implementacijo grafičnega vmesnika (meni vrstica, pogovorna okna);

izdelavo vtičnika.

Page 34: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

23

Prilagoditve lahko v celoti napišemo v urejevalniku besedila z uporabo ukaznega jezika Adams,

datoteke shranimo v ustreznem formatu in jih uvozimo v Adams. V samem programu pa

imamo na voljo tudi aplikacije, ki nam marsikdaj olajšajo tovrstno delo. V meniju Tools

najdemo programe za upravljanje s prikaznimi okni, menijsko vrstico, tračnim menijem in

makroukazi.

Prilagajanje Adams okolja velja za napredno snov, zato se od uporabnika - preden se loti te

tematike - pričakuje osnovno znanje Adamsa (poglavje, ki ga bomo sicer preskočili) in

podrobnejše poznavanje štirih orodij, Command Navigator, Command Window, Database

Navigator in Function Builder.

4.1.1 Command Navigator in Command Window

Command Navigator (Tools->Command Navigator) je orodje, ki nam omogoča neposredno

aktivacijo ukazov in vpogled v knjižnico ukazov. Za običajnega uporabnika poznavanje tega

orodja sicer ni potrebno, saj ima večina ukazov dodeljen namenski uporabniški vmesnik. Pri

napredni uporabi s pomočjo Command Navigatorja [11]:

dobimo dostop do ukazov, ki jim ni dodeljen namenski grafični vmesnik;

lahko direktno prikličemo posamezni ukaz;

s pomočjo hierarhije razberemo ukazni niz, potreben za aktivacijo ukaza;

imamo vpogled v hierarhijo lastnih ukazov.

Na sliki 4.2 vidimo primer aktivacije ukaza, ki nam ustvari nov marker. Adams nam v tem

primeru priredi generično pogovorno okno, v katerem naniza vse vhodne parametre, ki

pogojujejo izvedbo ukaza. V praksi obvelja, da ni potrebno definirati vseh parametrov, saj je

za večino predpisana privzeta vrednost. V našem primeru je obvezen parameter zgolj ime

markerja. Hierarhija ukaza pogojuje ime ukaznega niza. Iz našega primera lahko vidimo, da je

ukaz create shranjen pod mapo »marker«, zato se začetek ukaznega niza glasi marker create.

Page 35: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

24

Slika 4.2: Command Navigator

Poleg grafičnega vmesnika in Command Navigatorja lahko ukaz zaženemo tudi s pomočjo

orodja Command Window (View->Command Window). V njem vnašamo ukaze ročno,

upoštevaje sintakso ukaznega jezika Adams. Okno orodja je sestavljeno iz dveh polj. Spodnje

polje služi za vnos ukaza. V zgornjem polju okna pa orodje samo izpiše vneseni ukaz ali pa, v

primeru napačne sintakse, sporoči napako. Poleg ročno vpisanih ukazov se v zgornjem polju

izpišejo tudi drugi ukazi, od najbolj trivialnih (klik miške na delovno polje, povečava, premik),

do ukazov, izpeljanih s pomočjo uporabniškega vmesnika. Lastnost, ki je več kot dobrodošla,

ko želimo razbrati zaporedje ukazov določene operacije. Prenekatera operacija, izpeljana s

pomočjo grafičnega vmesnika, je dejansko sestavljena iz zaporedja več osnovnih ukazov. Za

modeliranje osnovne ročice je, denimo, potrebnih šest ukazov. Pri pisanju makroukazov je ta

lastnost zelo dobrodošla, saj lahko v Command Windowu razberemo sosledje ukazov,

potrebnih za določeno operacijo.

Page 36: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

25

Slika 4.3: Command Window

Pri ročnem vnašanju ukazov najprej zapišemo ukazni niz, nato pa definiramo vhodne

parametre. Ukaz je lahko zapisan v eni vrstici, lahko pa ga razbijemo na več vrstic.

marker create & ! ukazni niz

marker_name = MARKER_1 & ! parameter1 = vrednost1

location = 100,100,100 & ! parameter2 = vrednost2

orientation = 30,60,90 ! parameter3 = vrednost3

Poznamo šest vrst vrednosti (DATA TYPES), ki jih lahko vnašamo v parametre; cela števila

(INTEGER), realna števila (REAL), znakovne nize (STRING), objekte (OBJEKT), tabele (ARRAY) in

matrike (MATRIX). Sledi seznam nekaterih splošnih pravil sintakse ukaznega jezika Adams [12].

Ukaz lahko skrajšamo, v kolikor ostaja enolično definiran.

marker create marker_name=MARKER_1

mar cre mar=MARKER_1

ma cre mar=MARKER_1 ! napaka, ukaz ne bo izveden

prvi in drugi ukaz sta z vidika Adamsa dojeta kot isti ukazni niz, pri tretjem ukaznem

nizu pa bo program sam javil napako, saj ne bo vedel, ali začetek ukaza ma pomeni

marker, material, makro ali mail.

Velike začetnice ne igrajo vloge. To velja tako za vnašanje ukazov kot za vnašanje imen.

V prejšnjem primeru ukaza, namenjenega tvorbi novega markerja, bo le-ta sicer

Page 37: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

26

shranjen pod imenom MARKER_1, vendar bo priklican, tudi ko ga označimo kot

marker_1.

Ukaz lahko razbijemo na več vrstic z uporabo & znaka. Ni pa mogoče razbiti ukaznega

niza, znakovnega niza ali izraza.

mar cre mar=marker_1 &

loc = 100,100,100 &

ori = 90,60,30

Za komentarje uporabimo klicaj (!).

mar cr m = marker_1 !prikazana je najbolj zgoščena verzija ukaza

Vrstni red parametrov ni pomemben.

4.1.2 Database Navigator

V prejšnjem poglavju smo videli, kako s pomočjo Command Navigatorja dobimo vpogled v

knjižnico ukazov in iz hierarhije razberemo ukazne nize. Z orodjem Database Navigator vrstici

(Tools-> Database Navigator) pa dobimo vpogled v knjižnice objektov in njihovo sled

(.model_1.ground.marker_1) [11].

V oknu lahko brskamo po objektih trenutnega modela, grafičnih vmesnikih, vtičnikih in lastnih

knjižnicah. V načinu prikazovanja lahko poleg možnosti brskanja (Browse) izberemo še opcije,

kot so preimenovanje, vnašanje komentarjev, prikaz topologije, prikazovanje informacij ipd.

Page 38: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

27

Slika 4.4: Database Navigator

Pri pisanju makroukazov in funkcij je modro shranjevati novooblikovane objekte v lastno

knjižnico. V primeru, da želimo shranjevati makroukaze in funkcije ločeno v lastnih knjižnicah,

podrejenih knjižnici z imenom Shramba, uporabimo sledeče ukaze:

library create library_name = .Shramba

library create library_name = funkcije

library create library_name = .Shramba.makro

Slika 4.5: Shranjene knjižnice

Pri prvem ukazu smo uporabili piko pred imenom knjižnice (.Shramba), zato je Adams ustvaril

knjižnico na vrhu hierarhije. V drugem primeru smo izpustili piko pred imenom, zato je Adams

shranil našo knjižnico v zadnjo ustvarjeno knjižnico. V zadnjem ukazu smo izpisali celotno sled,

saj smo knjižnico makro želeli shraniti neposredno pod knjižnico Shramba.

Page 39: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

28

Isto načelo velja tudi pri drugih opravilih: Adams jemlje za privzeto vrednost vsake skupine

objektov zadnji ustvarjeni/aktivirani objekt te družine.

Med drugim Database Navigator vsebuje tudi knjižnico grafičnih vmesnikov (GUI). V tej

knjižnici so shranjeni tisti Adamsovi vmesniki, ki jih lahko spreminjamo.

Slika 4.6: Sled do objektov menijske vrstice

Na sliki 4.6 je prikazana pot, ki nas vodi do menijske vrstice. Z ukaznim jezikom Adams jo lahko

poljubno preurejamo ali dopolnjujemo.

interface menu create &

menu_name=.gui.main.mmenu_menu.mbar_refresh.mojmeni &

label='Meni test'

V zgornjem primeru kode smo z ukaznim nizom interface menu create ustvarili dodaten meni

z imenom Meni test, ki je v objektni knjižnici shranjen kot mojmeni. V njem lahko nadalje

shranjujemo razne menijske objekte (gumbi, ločevala, pod-meniji ...), za katere želimo, da so

prikazani v Meni test meniju.

Page 40: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

29

4.1.3 Function Builder

Function Builder je vsestransko orodje (Tools->Function Builder), s katerim ustvarjamo in

spreminjamo različne funkcijske izraze in parametriziramo vrednosti različnih objektov

(markerji, sile, spremenljivke …).

Poznamo dva načina dela, v obeh se odpre rahlo prilagojeni Function Builder [13].

Run-time način

Vpisani izrazi bodo aktivirani samo v času simulacije. V tem načinu imamo dostop do

run-time funkcij.

Expression način

Vpisani izrazi in funkcije so namenjeni za postavitev modela. V simulaciji so izključeni,

so pa aktivni v procesu optimizacije in iskanja vzročnih parametrov modela (Design

Study). V tem načinu dela imamo dostop do design-time funkcij.

Slika 4.7: Function Builder

V nadaljevanju bomo obravnavali samo Expression način delovanja Function Builderja.

Page 41: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

30

Na tem mestu je treba opozoriti, da nam Adams samodejno priredi pravi način delovanja,

pogojen z naravo objekta, ki ga hočemo parametrizirati. Lahko pa se zgodi, da se znajdemo v

napačnem načinu in v tem primeru se funkcijski izraz ne aktivira.

Iz naslednjega primera je razvidno, da imamo možnost parametrizacije gibanja tudi v načinu

Expression. V kolikor ga izberemo, se model v simulaciji pač ne bo premikal.

Slika 4.8: Primer napačne izbire Function Builder-ja

4.1.3.1 Operandi

Elemente funkcijskega niza ločimo na operande in operatorje. Operandi so lahko neposredno

vnesene vrednosti ali pa posredno dobljene vrednosti iz simbolov, objektov in funkcij. Delimo

jih na konstante, simbolične konstante, objektne vrednosti in funkcije [13].

Konstantne:

Pod konstante štejemo vse vrednosti (DATA TYPES), ki smo jih omenili v poglavju 1.1.1.

KONSTANTA PRIMER

Cela števila (INTEGER) 4

Realna števila (REAL) 4.0

Znakovni nizi (STRING) "asd2"

Objekti (OBJECT) .model_1.marker_2

Page 42: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

31

Matrice (tabele niza) {"x","y"}

Matrice (tabele realnih št.) {[22,1],[4,0]}

Simbolične konstante:

KONSTANTA VREDNOST

pi 3,1415

TRUE/YES/ON 1

FALSE/NO/OFF 0

RTOD 180/π

DTOR π/180

NONE nična vrednost

NONE je zanimiv operand. Uporabimo ga, ko moramo izpolniti določen parameter, a ga hkrati

nočemo definirati, ali pa z njim spreminjamo vrsto vrednosti drugih operandov, saj se vrednost

NONE operanda prilagaja naravi operatorja. Vsakič, ko Adams naleti na nekompatibilne

elemente, jih skuša združiti, če je le to mogoče.

10 + NONE = 10 NONE v tem primeru prevzame vrednost realnega števila

NONE//2 = "2" NONE nastopa kot prazen niz "". Operand 2 se iz

numerične vrednost spremeni v znakovni niz

NONE + "10" = 10 NONE kot numerična vrednost

Vrednosti lahko pridobimo tudi od različnih objektov, ki jih uporabimo v funkcijskem nizu.

Vsak objekt vsebuje vrednosti, ki ga definirajo (ime, masa, lokacija, odvisnosti …). V ta namen

je v Function Builderju vgrajen iskalnik objektnih podatkov (Data Dictionary), ki nam pomaga

pri iskanju zapisa določene vrednosti, vezane na izbrani objekt.

Na sliki 4.9 imamo primer, kako lahko s pomočjo iskalnika najdemo zapis, ki predstavlja

koordinate markerja marker_2. V kolikor v delovnem modelu obstaja samo en marker z

imenom marker_2, lahko zapis v delovnem oknu skrajšamo (enak princip velja pri pisanju

Page 43: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

32

ukazov). Je pa res, da v tem primeru Adams potrebuje več časa, da med vsemi objekti v svoji

knjižnici najde prav objekt z imenom marker_2.

marker_2.loc ! skrajšan in bolj priročen zapis

Slika 4.9 Klicanje vrednosti objektov

Vlogo operanda imajo tudi različne v Adams vgrajene funkcije. V načinu Expression nam tako

ponuja več kot dvesto funkcij design-time, razdeljenih v sedem kategorij [13]:

matematične funkcije;

orientacija/lokacija;

modeliranje;

matrice, niz;

znakovni nizi;

podatkovna baza;

mešano.

Za vsako funkcijo obstaja določena oblika vnosa in vrsta vrednosti, ki jo je treba vnesti. Če na

seznamu označimo funkcijo, se nam ta informacija izpiše v levem kotu spodaj. Za podrobnejši

opis funkcije pa si pomagamo s priročnikom Function Builder.

Page 44: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

33

4.1.3.2 Operatorji

Z operatorji določamo vrsta operacij, ki jih želimo izvesti z operandi. Operatorji se ne

razlikujejo kaj dosti od tistih, ki jih uporabljamo v drugih programih (Excel, recimo). Nekaj izjem

sicer obstaja, na primer znak za eksponent (**), izraz za logični operaciji IN (&&) in ALI (II) ter

znak za združevanje znakovnih nizov in tabel (//).

Do sedaj smo spoznali nekatera osnovna orodja, s katerimi smo se seznanili s hierarhično

lestvico ukazov in objektov, z različnimi načini aktivacije ukazov, uporabo funkcij in s pisanjem

funkcijskih nizov. V nadaljevanju bom opisal štiri sklope Adamsovih prilagoditev. Začel bom z

najbolj preprostim, in sicer z zapisi funkcij.

4.2 Pisanje funkcij

Najbolj elementarna prilagoditev, ki jo lahko izvedemo v Adamsu, je pisanje lastnih funkcij.

Hkrati pa ta korak predstavlja osnovo, na kateri kasneje gradimo zahtevnejše makroukaze. Za

pisanje funkcij se odločimo v primeru, ko nam same Adamsove funkcije ne zadoščajo več ali

pa želimo poenostaviti upravljanje predolgih funkcijskih izrazov. Format ukaza je sledeč [12]:

function create ukazni niz

function_name= ime funkcije in knjižnice, v kateri bo shranjena

text_of_expression= zapis funkcijskega izraza

argument_names= neodvisne spremenljivke, ki bodo uporabljene v izrazu

type= vrsta izhodne vrednosti

comments= komentar, ki se izpiše v Function Builderju

category= pod katero kategorijo želimo, da se funkcija shrani (User, String, Math,

Modelling, Loc_ori, Matrix_array, database_object, Misc)

Od naštetih vhodnih parametrov so samo prvi trije obvezni. V nadaljevanju imamo funkcijo, ki

nam na podlagi dveh lokacij izračuna tretjo, ki leži na sredini razdalje med prvo in drugo

lokacijo. S polnim zapisom imena smo poleg samega imena določili še knjižnico, v kateri bo

Page 45: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

34

funkcija shranjena. Funkcija je sicer enostavna, sem jo pa dejansko uporabil v kompleksnejši

funkciji, jo poenostavil in tako naredil bolj pregledno.

function create function=.Shramba.funkcije.MIDDLEP &

argument_names='L1','L2' &

text_of_expression='(L1+L2)/2' &

comments='MIDDLEP(ARRAY,ARRAY)' &

category=loc_ori

Za vhodna parametra funkcije MIDDLEP lahko neposredno vstavimo tabelo s tremi

numeričnimi vrednostmi ali pa dobimo vrednost s pomočjo objekta. Podobno prožnost

vnašanja parametrov zasledimo tudi pri drugih funkcijah.

middlep({100,200,100},{150,200,300})

middlep(marker_1.loc,marker_2.loc)

4.3 Makroukazi

V Adamsu uporabljamo makroukaze v različne namene. Lahko avtomatiziramo rutinske

postopke, ustvarjamo celotne modele z enim ukazom ali pa različne variacije istega

mehanizma ipd. Makro je lahko zgolj niz ukazov, lahko pa ga parametriziramo in uporabimo

za kompleksnejše naloge. V tem poglavju bom na začetku predstavil postopek uvažanja in

testiranja makroukaza, zatem pa še opisal osnovne gradnike, ki sestavljajo algoritem. V

vsakem kompleksnejšem makroukazu določimo vhodne parametre, uporabimo logične zanke

ter operiramo s spremenljivkami in skupinami.

4.3.1 Zapis in aktivacija

Za pisanje makroukazov imamo v Adamsu na voljo orodje Create/View Macro (Tools->Macro-

>Edit->New), vendar se pri daljših zapisih izkaže za sila nepraktičnega, zato sam uporabljam

urejevalnik besedila Notepad++. Ko smo z napisanim makroukazom zadovoljni, ga shranimo

kot ukazno datoteko (*.cmd) in uvozimo v Adams s pomočjo grafičnega vmesnika Macro Read

(Tools->Macro->Read).

Page 46: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

35

Slika 4.10: Uvažanje makroukaza

Ko je v Adams vnesen makro, ga aktiviramo s Command Navigatorjem in dobimo generično

pogovorno okno. Posebno pri testiranju novih makroukazov je vmesnik Macro Read zelo

priročen, saj je dovolj, da pritisnemo na gumb Apply, in že je koda makroukaza osvežena. To

načelo pa ne velja za pogovorna okna. Če v makroukazu spremenimo kodo vhodnih

parametrov, želimo pa, da se nam v pogovornem oknu osvežijo spremembe, moramo v

Adamsu sami zbrisati grafični vmesnik (Tools->Dialog Box->Delete) in ga ponovno aktivirati

v Command Navigatorju.

4.3.2 Parametri

Vhodni parametri so prvo, kar zapišemo v makroukazu, in jim s kvalifikatorji (T, c, D) določimo

lastnosti.

!$Marker_A1: T=marker: c=1

!$Marker_B2: T=marker: c=1

!$faktor: T=real: c=1: D=10

!$spread_point: T=real: c=1: D=0.1

!$Mechanism_synthesis: T=list(yes,no):D=yes

!$Center_curve_color: T=list(Violet,Peach,Red,Silver,Yellow):

D=Violet

Na podlagi tega zapisa nam Command Navigator ustvari grafični vmesnik, prikazan na sliki

4.11.

Page 47: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

36

Slika 4.11: Primer pogovornega okna

Z znakom $ označimo, da gre za vhodni parameter, sledijo ime parametra in kvalifikatorji.

Klicaj (!) sicer služi pisanju komentarjev, v tem primeru pa nam omogoči, da določimo

kvalifikatorje vhodnim parametrom.

S kvalifikatorji določimo značilnosti vhodnega parametra, delimo pa jih v štiri sklope [11]:

Type (vrsta)

Poznamo osnovne vrste parametra (real, integer, location, orientation, string,

function, list /str1, str2 …/, file) in podatkovne vrste (marker, new_marker ...).

Range (razpon)

Razpon določi maksimalno in/ali minimalno mejo parametra.

Count (števnik)

S števnikom določimo število parametrov, ki jih moramo vnesti.

Defaults (privzeto)

S privzeto vrednostjo omogočimo, da uporabniku ni treba določiti želenega parametra.

S kvalifikatorji omejimo izbiro in dobimo nadzor nad pravilnim vnosom parametrov. Če je,

denimo, parameter definiran kot celo število (integer), nam Adams ne dovoli izvedbe ukaza,

če je v izbirno polje parametra vpisana druga vrsta vrednosti.

Page 48: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

37

4.3.3 Pogojni stavki in zanke

Ukazni jezik Adams vsebuje tudi ukaze za pisanje pogojnih stavkov in zank [12]:

IF/ELSEIF/ELSE/END

WHILE/END

FOR/END

BREAK, CONTINUE, RETURN

Namen in način uporabe teh ukazov je enak kot v drugih programskih okoljih, se pa seveda

sintaksa malenkost razlikuje.

if condition=(DB_EXISTS ("MAR1"))

marker modify marker=mar1 location=200,0,0

else

marker create marker=mar1 location=200,0,0

end

V primeru kode z zgornjega primera smo uporabili funkcijo DB_EXISTS, ki nam vrne vrednost

1, v kolikor objekt z iskanim imenom obstaja. V tem primeru nam zgornja zanka spremeni

vrednosti iskanega markerja, v nasprotnem primeru pa ustvari novi marker z imenom mar1.

For variable_name=tempreal start_value=1 increment_value=2

end_value=10

marker create marker_name=(eval("MAR" // RTOI(tempreal))) &

location=(eval(tempreal-1)), 0, 0

end

Pri zanki FOR določimo spremenljivko (variable_name), začetno vrednost (start_value), korak

(increment_value) in končno vrednost (end_value). V zgornjem primeru dobimo pet markerjev

(MAR1, MAR2 ...) s spreminjajočo lokacijo po osi x. V drugi vrstici je ime markerja sestavljeno

iz niza 'MAR' in spremenljivke tempreal, ki je s pomočjo funkcije RTOI spremenjena v celo

število. Ker smo uporabili operator // dobimo izhodno vrednost v obliki niza. EVAL funkcija

spremeni spremenljivko v konstanto. Če za lokacijo ne bi uporabili funkcije EVAL, bi vsi

markerji delili skupno lokacijo (zadnjo preračunano lokacijo zanke FOR).

Page 49: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

38

variable create variable_name=ip integer_value=0

while condition=(ip < 5)

variable modify variable_name=ip integer_value=(eval(ip+1))

if cond=(ip == 3)

continue

end

marker create marker_name=(eval("MAR"//ip)) &

location=(eval(ip-1)),0,0

end

variable delete variable_name=ip

Za razliko od zanke FOR je treba pri zanki WHILE ustvariti spremenljivko (ip v zgornjem

primeru) pred začetkom zanke in jo po koncu zanke tudi izbrisati. V tem primeru dobimo štiri

markerje (MAR1, MAR2, MAR4, MAR5). V zanki imamo ugnezdeno zanko CONTINUE, ki nam

preskoči tretji korak. V primeru, da bi namesto CONTINUE uporabili zanko BREAK, bi se celotna

zanka prekinila in nas pustila samo z dvema novima markerjema.

4.3.4 Spremenljivke

Osnovni zapis ukaza se glasi [12]:

variable create variable_name=var1 integer_value=5,4,2

Pri vpisovanju vrednosti (value) izbiramo med sledečimi parametri: integer_value, real_value,

object_value, string_value. V sam parameter lahko vpišemo več elementov istega tipa, ni pa

možno dodajati novih elementov v že obstoječo spremenljivko. Adams samodejno shrani

spremenljivko v delovnem modelu (tj. modelu, ki je trenutno odprt). Spremenljivke pa lahko

shranimo tudi v drugih knjižnicah. Predpostavimo, da je naslednji ukaz bil izveden z

makroukazom z imenom .Shramba.makro.MAKRO_PRIKAZ:

var cre var=$_self.model

object=(eval(db_default(.system_defaults,'model')))

Zapis $_self predstavlja makroukaz (.Shramba.makro.MAKRO_PRIKAZ. v našem primeru). To

pomeni, da se je spremenljivka model shranila neposredno pod objektom MAKRO_PRIKAZ. V

Command Navigatorju je to lepo razvidno:

Page 50: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

39

Slika 4.12: Shramba $_self spremenljivke

Začasne spremenljivke, ki jih na koncu kode preprosto zbrišemo z ukazom (var del var=

$_self.*) v praksi shranjujemo pod $_self..

Zgoraj predstavljena spremenljivka model je tiste vrste univerzalna spremenljivka, ki jo sam

vpišem v prav vsak makroukaz. V izrazu uporabljena funkcija DB_DEFAULT poišče ime

trenutnega modela, v katerem delamo, kar nam omogoči bolj generično ustvarjanje novih

elementov. V spodnjem makroukazu (MAKRO_2) je uporaba te spremenljivke prikazana bolj

nazorno. V tem primeru nam zapisana koda omogoča, da izbranim markerjem zamenjamo

nadrejeni element.

!$marker: t=marker: c=1,0

!$novi_nadrejeni: t=part

var cre var=$_self.model

object=(eval(db_default(.system_defaults,'model')))

for variable=zanka object=$marker type=marker

mar modify mar=(zanka) &

new_mar name= &

.(eval($_self.model).($novi_nadrejeni.name).(zanka.object_value

.name)

end

var del var=$_self.* !zbrišemo vse $_self. Spremenljivke

V prvi vhodni parameter vpišemo obstoječe markerje. Kvalifikator Count (c=1,0) določi, da

lahko vstavimo enega ali več elementov. V drugi parameter vstavimo nov nadrejeni element.

Ko vnesemo potrebne parametre, se nam zanka FOR sprehodi skozi vse elemente

spremenljivke $marker, jim dodeli novo ime in posledično nov nadrejeni element. Novo ime

je sestavljeno iz treh členov:

Page 51: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

40

$_self.model - predstavlja trenutni model (.model_1);

$novi_nadrejeni.name – s končnico .name smo dobili ime objekta (.part_3);

zanka.object_value.name – tako kot smo v zgornjem členu dobili zapis imena objekta,

dobimo v tem primeru oznako spremenljivke (marker_5).

Če sestavimo člene z danimi primeri, dobimo zapis = .model_1.part_3.marker_5.

4.3.5 Skupine

Kot smo videli, v spremenljivkah ne gre dodajati ali odstranjevati elementov. V ta namen

uporabimo skupino (Groups). Enako kot velja za spremenljivke, Adams skupino samodejno

shrani pod delovni model, prikaže pa jo v drevesu modela pod zavihkom Groups. Spodnji

primeri prikažejo, kako se skupina ustvari, kako prikličemo elemente v skupini ter kako

dodajamo in odstranjujemo elemente [12].

group create & !izdelava nove skupine

group_name=skupina1 &

objects in group= marker_1,marker_2,marker_3,marker_4

model_1.skupina1.objects !izpiše nam vse elemente skupine

model_1.skupina1.objects[2] !izpiše nam drugi element, marker_2

(model_1.skupina1.objects)[1:3] !izpiše prve tri elemente skupine

group objects add & !skupini dodamo elemente

group=skupina1 &

objects=marker_7

var cre var=st_vrstic & ! spremenljivka, ki vsebuje

int=(rows(skupina1.objects)) ! število vrstic skupine

group objects remove & ! skupini odstranimo elemente

group=skupina1 &

objects=(skupina1.objects)[(st_vrstic-2):st_vrstic]

! odstrani zadnje tri elemente

Za klicanje izbranih elementov iz tabel in matric se oglati oklepaji uporabljajo na isti način.

Page 52: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

41

4.4 Dialog Box Builder

Pri preprostih makroukazih nam povsem zadošča generično ustvarjeno pogovorno okno.

Makroukaz iz prejšnjega poglavja smo shranili pod isto knjižnico kot MAKRO_PRIKAZ. Ukazni

niz, ki smo mu ga določili, se glasi Shramba macro_2. Ko ga v Command Navigatorju

aktiviramo, Adams ustvari pogovorno okno in ga samodejno shrani v .gui knjižnico

(.gui.shr_macro_2 v našem primeru). Če v Database Navigatorju označimo opcijo No sort v

levem kotu spodaj, se nam grafični vmesnik pokaže na koncu seznama .gui knjižnice.

Slika 4.13 Podrejeni objekti pogovornega okna

S slike 4.13 je razvidno, da je naše pogovorno okno sestavljeno iz sedmih podrejenih objektov,

treh gumbov (Ok, Apply in Cancel), dveh besedilnih polj (f_marker, f_novi_nadrejeni) in dveh

oznak (l_marker, l_novi_nadrejeni).

Lastna pogovorna okna začnemo graditi, ko želimo doseči večjo preglednost vhodnih

parametrov, bolj sofisticiran izgled in ko želimo uvesti dodatne funkcionalnosti, ki jih v samem

makroukazu ne moremo izvesti.

Lahko sicer začnemo graditi pogovorno okno od začetka, vendar je preprosteje in bolj

praktično, če spremenimo že izdelano okno svojega makroukaza in si ga prilagodimo po svoji

meri. V prvem koraku premestimo knjižnico, pod katero je naše generično okno shranjeno.

Page 53: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

42

Korak sicer ni nujen, omogoča pa boljšo preglednost nad lastnimi objekti in možnost, da bo

objekt deloval tudi v novejših različicah Adamsa. V menijski vrstici izberemo Rename (Edit-

>Rename) ter vnesemo v pogovorno okno novo ime in knjižnico, v kateri bo pogovorno okno

shranjeno.

Slika 4.14 Sprememba knjižnice

V naslednjem koraku izberemo ukaz za spreminjanje pogovornih oken (Tools->Dialog Box-

>Modify). Izberemo svoj grafični vmesnik (okno_macro_2). Odpre se nam Dialog Box Builder.

V njem upravljamo lastnosti vmesniških objektov (interface objects).

Slika 4.15 Dialog Box Builder

Polje Aktivni objekt sporoča, s katerim objektom trenutno operiramo: z glavnim (pogovorno

okno) ali njemu podrejenimi objekti (gumbi, meniji, polji …). Podrejene objekte delimo na

operativne objekte (vse tiste, ki operirajo ali vsebujejo določene vrednosti) in pasivne objekte

(služijo estetskemu izgledu pogovornega okna in podajanju informacij).

Page 54: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

43

Izbranemu objektu določimo dimenzije, ime, položaj in ukazni niz, ki ga sprožimo neposredno

(s pritiskom gumba, če operiramo s to vrsto objekta) ali posredno (s pomočjo drugega

vmesniškega objekta).

Na sliki 4.15 imamo primer ukaza, ki je vgrajen neposredno v pogovorno okno in ga sprožimo

z gumbom OK/Apply. V samem ukazu smo navedli samo, v katere objekte vstavljamo

parametre makroukaza:

Shramba macro_2 ! ukazni niz makrota

'marker = $f_marker' ! paramter 1

'novi_nadrejeni = $f_novi_nadrejeni' ! parameter 2

Z izrazom $f_marker prikličemo vrednost objekta (konkretno ime markerja, ki smo ga vnesli v

polje). Na ta način lahko v različnih objektih manipuliramo z vrednostmi drugih objektov

pogovornega okna. V primeru glavnega objekta (pogovorno okno) lahko napišemo ukazne nize

za tri vrste sprožilcev:

prikaz okna (Start)

Ukaz se sproži, ko odpremo pogovorno okno. V tej situaciji po navadi določimo

spremenljivke, ki nam bodo služile v kasnejših ukaznih nizih.

aktivacija okna (Execution)

Ukaz se sproži posredno s pomočjo gumba OK/Apply. Ukaz je namenjen aktivaciji

makroukaza.

zaprtje okna (Finish)

To polje izkoristimo za brisanje delovnih spremenljivk ali pa v njem sprožimo novo

pogovorno okno.

Page 55: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

44

Slika 4.16: Sestavni elementi pogovornega okna

Ko smo s svojim izdelkom zadovoljni, ga izvozimo iz programa (Dialog Box->Export->Command

File) v obliki ukazne datoteke, shranjene v mapi, kjer je shranjen tudi trenutni delovni model.

4.5 Menijska vrstica

Menijsko vrstico si prilagodimo, ko želimo bolj neposreden dostop do svojih makroukazov in

pogovornih oken. V tem primeru ustvarimo gumbe za priklic, ki jih shranimo v že obstoječe ali

svoje lastne menije.

V uvodnem poglavju smo prikazali sled v Database Navigatorju, ki vodi do objektov menijske

vrstice, in preprost ukaz, ki doda nov meni v menijsko vrstico. Ponovimo: s sledečim ukazom

ustvarimo nov objekt mojmenu, ki je prikazan v menijski vrstici pod imenom Meni test.

interface menu create &

menu_name=.gui.main.mmenu_menu.mbar_refresh.mojmeni &

label='Meni test'

Ko smo si ustvarili nov meni, mu vstavimo aktivacijska gumba za naša makroukaza.

Page 56: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

45

interface push_button create &

push_button_name=.gui.main.mmenu_menu.mbar_refresh.mojmeni.macro_1 &

label='MACRO PRIKAZ' &

commands='interface command_builder command_prefix=\'shramba

macro_prikaz\''

interface separator create & !s tem ukazom ustvarimo ločevalo

separator_name=.gui.main.mmenu_menu.mbar_refresh.mojmeni.sep1

interface push_button create &

push_button_name=.gui.main.mmenu_menu.mbar_refresh.mojmeni.macro_2 &

label='MACRO 2' &

commands='interface command_builder command_prefix=\'shramba

macro_2\''

Iz ukaznih nizov razberemo, da so bili vsi objekti shranjeni neposredno pod menijski objekt

mojmeni. Vsakemu gumbu je prirejen še ukazni niz, ki prikliče ustrezni makroukaz.

Slika 4.17: Novi meni

4.6 Izdelava vtičnika

Do zdaj smo spoznali, kako lahko ustvarimo štiri vrste ukaznih datotek: datoteko s shranjenimi

funkcijami, datoteke z makroukazi, datoteke s pogovornimi okni in datoteko z menijskimi

bližnjicami. Vendar je uvažanje posameznih datotek ob začetku vsakega novega projekta

zamudno, zato lahko ta proces poenostavimo. V nadaljevanju bom predstavil dva načina

tovrstne poenostavitve, in sicer z datoteko Build in vtičnikom. Datoteke je mogoče uvažati tudi

s pomočjo zagonskih datotek, vendar bom ta postopek preskočil.

Page 57: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

46

4.6.1 Build.cmd

Build datoteka je ukazna datoteka, v kateri so zapisani ukazi, ki prikličejo druge ukazne

datoteke (z izjemo ukaznega niza za ustvarjanje knjižnic, ki ga napišemo neposredno v

datoteko Build). V ta namen uporabimo ukazna niza macro read in file command read.

var set var=dir & !spremenljivka, ki vsebuje datotečno pot

string= C:\Users\Jaka\Desktop\Adams\build_files

!ustvarjanje potrebnih knjižic

library create library_name=.shramba

library create library_name=.shramba.makro

!nalaganje novih funkcij

file command read file=(eval(dir)//'/funkcije.cmd')

!nalaganje makro datoteke

macro read file=(eval(dir)//'/macro_prikaz.cmd') &

macro=.shramba.makro.macro_prikaz & !lokacija knjižnice v kateri bo

shranjen

user='shramba macro_prikaz' !ukazni niz za aktivacijo makroukaza

!nalaganje pogovornega okna

file command read file =(eval(dir)//'/okno_macro_2.cmd')

!nalaganje meni popravka

file command read file=(eval(dir)//'/meni_test.cmd')

var del var = dir !brisanje spremenljivke

Ko smo spisali datoteko Build, jo uvozimo na enak način kot ostale ukazne datoteke, vendar s

to razliko, da ukazna datoteka v tem primeru izvede celotno posodobitev Adamsa.

4.6.2 Vtičnik

Vtičnik začnemo graditi, ko želimo svoje prilagoditve deliti z drugimi uporabniki, saj so vse

posodobitve zbrane v eni datoteki in ni treba prenašati celotnega sklopa ukaznih datotek z

enega računalnika na drugega. Pa tudi zagon posodobitev je preprostejši kot zagon z datoteko

Build.

Page 58: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

47

Na začetku ustvarimo dva dodatna makroukaza z imeni Load in Unload in ju shranimo v svoji

knjižnici z makroukazi. Ko se vtičnik naloži, Adams naloži shranjeno knjižnico in poišče Load

makro ter ga izvrši. V njem zapišemo ukazne nize za izdelavo menijske vrstice. Podobno je z

Unload makroukazom. Ko vtičnik izključimo, Adams zbriše knjižnico in aktivira Unload ukaz. V

njem shranimo vse ukazne nize, ki zbrišejo menijsko vrstico in funkcije, ki so bile dodane s

pomočjo vtičnika.

Nato poiščemo ukazni niz File Binary Write v Command Navigatorju in ga aktiviramo. V njem

izberemo knjižnico z makroukazi, ki jo Adams nato izvozi v binarno datoteko.

Slika 4.18: Zapis v binarno obliko

V naslednjem koraku ustvarimo datoteko v formatu XML z istim imenom, kot ga ima binarna

datoteka (v našem primeru synth_plg.xml – synth.bin). Vanjo z uporabo značk zapišemo

splošne podatke (avtorstvo, ime vtičnika, razne komentarje ipd.), Adamsu pa hkrati

sporočimo, naj prepozna binarno datoteko kot vtičnik.

<Plugin>

<Name>Synth</Name>

<Description>

<![CDATA[Testni vtičnik za prakticno demonstracijo.]]>

</Description>

<Version>Adams 2013.2</Version>

<Author>Zoran Posinkovic</Author>

<Type>Public</Type>

<LicenseFeature></LicenseFeature>

<ValidWith>aview:acar</ValidWith>

<NotValidWith>ppt</NotValidWith>

</Plugin>

Page 59: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

48

Ko smo ustvarili obe datoteki, ju shranimo v mapo, v kateri Adams shranjuje ostale vtičnike

(C:\MSC.Software\Adams_x64\2013_2\win64 v primeru verzije Adams 2013.2).

Slika 4.19: Spremenljivka okolja

Datoteki pa lahko shranimo v poljubno datoteko in v Oknih ustvarimo novo spremenljivko

okolja. Na kontrolni plošči (Control panel) izberemo sistemske nastavitve (System), na levi

strani okna aktiviramo napredne nastavitve (Advanced System Settings), zatem pa izberemo

opcijo spremenljivka okolja (system variable). Pod to opcijo ustvarimo novo uporabniško

spremenljivko, v katero vnesemo ime mdi_user_plugin_dir in ustrezno pot do mape.

Ko smo namestili datoteki v ustrezno mapo, odpremo Adams in vključimo svoj vtičnik (Tools-

>Plugin Manager).

Slika 4.20: Plug-in Manager

Page 60: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

49

5 LINKAGE DESIGN VTIČNIK, NAVODILA ZA UPORABO

Za potrebe programa za sintezo štirizgibnega mehanizma na podlagi štirih pozicij (v

nadaljevanju program za sintezo) sem napisal deset funkcij, tri makroukaze (eden glavni in dva

pomožna) in zgradil dva grafična vmesnika. Program za sintezo deluje tako, da uporabnik

izpolni vhodne parametre za štiri položaje in definira lastnosti krivulj. Na podlagi podanih

parametrov program izriše Burmestrovi krivulji in mehanizem, ter sproži novo pogovorno

okno. Z novim oknom lahko uporabnik poljubno premika mehanizem vzdolž krivulje središčnih

točk in po potrebi sproži simulacijo gibanja; tako izvede vizualni pregled kinematike

mehanizma.

5.1 Aktivacija vtičnika

Celoten paket skript je zapakiran v vtičnik Linkage design. Ko vtičnik namestimo in ga v Adamsu

aktiviramo, se pojavi dodaten meni v menijski vrstici (Linker). V tem meniju najdemo različne

skripte za sintezo mehanizmov, med drugim tudi program za sintezo Synthesis for 4 positions.

Slika 5.1: Primer štirih pozicij

Na začetku procesa določimo štiri pozicije. To storimo tako, da ustvarimo štiri enako dolge

člene (Link), vezane na podlago (Ground). Vezava na podlago nam omogoči, da med simulacijo

Page 61: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

50

členi ostanejo na svojem mestu. Prav tako moramo biti pozorni, da so členi definirani zgolj na

x-y ravnini. V kolikor ima vsaj en marker člena koordinato z različno od nič, program za sintezo

ne bo deloval. Pri vstavljanju parametrov vrstni red pozicij ni pomemben. Glede na to, da

program za sintezo operira s poli P13, P14, P23 in P24, poziciji 3 ali 4 ne smeta biti vzporedni s

pozicijo 1 ali 2.

Na sliki 5.1 je primer pozicij, s katerimi bomo preizkusili sintezni program. Na levi strani slike

so pozicije označene z imeni markerjev, na desni strani pa so točke pozicij označene z imeni

vhodnih parametrov. Sosledje pozicij ne vpliva na rezultat sinteze.

5.2 Pogovorno okno Four positions synthesis

Ko določimo pozicije, vstopimo v meni Linker in odpremo program Synthesis for 4 positions.

Odpre se nam pogovorno okno Four positions synthesis, sestavljeno iz dveh zavihkov, Basic

(osnovno) in Advanced (napredno).

Slika 5.2: Four position synthesis

V zavihku Basic so nanizani vhodni parametri pozicij. Vanje vnesemo markerje začetnih točk

(A1, A2, A3 A4) in en marker za končno točko prve pozicije (B1).

V zavihku Advanced imamo tri polja, ločena z ločevaloma. V prvem polju izberemo barvo

krivulj. V drugem polju določimo gostoto točk (Points density) in dolžino krivulje središčnih

točk (Faktor). Med drugim lahko v tem polju izberemo tudi opcijo, da nam sintezni program

Page 62: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

51

izriše samó krivulji, brez mehanizma. To opcijo izberemo v primeru sinteze mehanizma za pet

pozicij, saj lahko izrišemo več krivulj in nato poiščemo njihovo presečišče. V tretjem polju

imamo gumb (Reset curves no.), ki ga aktiviramo z dvojnim klikom miške. S tem gumbom

izbrišemo Burmestrovi krivulji. Iskanje mehanizma za predpisane štiri pozicije z analitičnim

postopkom je iterativen proces. V kolikor ne najdemo zadovoljive rešitve za predpisane

pozicije, zbrišemo krivulje, spremenimo pozicije in ponovimo postopek. Ko smo z nastavitvami

zadovoljni, stisnemo gumb Ok. Sintezni program nam izriše krivulji, sestavi štirizglobni

mehanizem in odpre novo pogovorno okno.

Slika 5.3: Sinteza mehanizma in krivulj

5.3 Pogovorno okno FB Controller

S pomočjo okna FB Controller preizkušamo kinematiko različnih mehanizmov, ki jih dobimo s

premikanjem vpetij vzdolž krivulje. S simulacijo mehanizma poleg vizualne analize preverimo

tudi prisotnost kinematičnih anomalij. V praksi se izkaže, da večina rešitev vsebuje vsaj eno

izmed treh anomalij, poseben izziv pa predstavlja iskanje prave kombinacije vpetij, ki nam

postreže s primerno rešitvijo. To okno se deli na šest polj.

Page 63: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

52

Slika 5.4: FB Controller

V prvem polju upravljamo simulacijo in gibanje mehanizma. Oznaki M1 ali M2 pomenita, da je

pogon na zglobu, ki povezuje drugo ali četrto ročico s podlago. Z gumbom Simulation

poženemo simulacijo, z gumbom Sim reset pa jo prekinemo. Izbirna gumba C1 in C2 nam

omogočata, da preklopimo med dvema vezjema mehanizma. Z aktivacijo preklopnega gumba

Toggle on dobimo gibanje, ki obhodi obe veji mehanizma.

V drugem polju imamo gumba (Previous point(a) in Next point(d)), s katerima premikamo

ročico mehanizma vzdolž krivulje središčnih točk. Med dvema gumboma imamo okno, v

katerem določimo korak premika. Skripta, ki jo sprožimo s pritiskom na gumb, ne poskrbi zgolj

za premik ročice, temveč vsakič znova preračuna vrsto mehanizma na podlagi Grashofovega

kriterija. Ta informacija se nato izpiše v besedilnem oknu četrtega polja. Skripta na podlagi

vrste mehanizma predpiše pogonu mehanizma ustrezen funkcijski zapis. Podobno velja za

tretje polje, vendar v tem primeru premikamo drugo ročico mehanizma.

V četrtem polju imamo besedilno okno, ki izpiše vrsto mehanizma, s katerim imamo trenutno

opraviti. Izpiše se nam lahko šest kategorij. To so:

Grashof M1 crank

Rotirajoče-nihajni mehanizem; pogon M1 zagotavlja rotacijo ročice.

Page 64: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

53

Grashof M2 crank

Enak mehanizem kot v prejšnji kategoriji, vendar pogon M2 tokrat zagotavlja polno

rotacijo.

Grashof Double rocker

Dvojno-nihajni mehanizem.

Grashof Double crank

Dvojno-rotirajoči mehanizem. V tem primeru dobimo polno rotacijo mehanizma tako

na pogonu M1 kot M2.

Triple rocker

Nihajno-nihajni mehanizem.

Special Grashof

Posebni Grashofov mehanizem. Možnosti, da naletimo na ta mehanizem, so zelo

majhne.

V petem polju lahko z dvojnim klikom na gumb Save Mechanism shranimo ključne parametre

mehanizma, s katerimi lahko kasneje sestavimo shranjeni mehanizem za morebitne nadaljnje

analize. V polju Matrix name izberemo ime matrice, v kateri želimo shraniti parametre

mehanizma.

V šestem polju imamo gumb Delete Mechanism, s katerim lahko mehanizem in njemu

prirejene spremenljivke zbrišemo.

5.4 Sinteza

V nadaljevanju bom predstavil štiri potencialne rešitve za podane položaje s slike 5.1.

Na sliki 5.5 imamo primer nihajno-nihajnega mehanizma, ki v prvem primeru ne obhodi vseh

pozicij, ker ostane gibanje ojnice omejeno na eno vejo. V primeru pa, da mehanizem obhodi

obe veji, obhodi tudi vse pozicije. Beli krivulji na slikah predstavljata pot, ki ju točki, pritrjeni

na ojnico mehanizma (C in D), obhodita v enem ciklu premika.

Page 65: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

54

Slika 5.5: Nihajno nihajni mehanizem

Na sliki 5.6 je prikazan Grashofov rotirajoči mehanizem, ki v vsakem vezju obhodi dvojico

pozicij.

Slika 5.6: Grashofov rotirajoče-nihajni mehanizem

Page 66: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

55

Na naslednjih dveh slikah sta prikazana mehanizma brez anomalij gibanja.

Slika 5.7: Nihajno-nihajni mehanizem

Slika 5.8:: Grashofov rotirajoče-nihajni mehanizem

Page 67: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

56

6 SKLEP

V diplomskem delu sem predstavil delovanje programa za sintezo štirizglobnega mehanizma

in postopek razvijanja skriptnih programov v okolju MSC Adams View. Sam program za sintezo

izpolnjuje cilje, ki sem si jih zastavil. Je enostaven za uporabo in praktičen, saj uporabniku nudi

neposreden dostop do kinematičnega delovanja posamezne rešitve. Ko pa sem začel

uporabljati program za sintezo, sem kmalu trčil ob njegove omejitve. Ker je program analitične

narave, nudi zelo ozko polje rešitev za vpetje mehanizma. V primeru, da vpetje določene

rešitve ustreza zastavljenim pogojem, se pogosto zgodi, da tovrstni mehanizem vsebuje vsaj

eno izmed treh kinematičnih anomalij. Zato se od uporabnika pričakuje velika mera intuicije

pri postavljanju začetnih pozicij, če želi dobiti praktične rešitve za zastavljeni problem.

Page 68: À} - COnnecting REpositories · Euler postavi temelje kinematike, rodi se opisna geometrija in v Franciji ustanovijo prvo šolo, namenjeno razvoju tehničnega kadra, Ecole Polytechnique

Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo

57

7 VIRI

[1] NELSON, T., 2007. The Mechanical Problems in the Corpus of Aristoteles. University of

Nebraska-Lincoln. Dosegljivo:

https://digitalcommons.unl.edu/cgi/viewcontent.cgi?article=1067&context=classicsfacpub

[Datum dostopa: 3.8.2018]

[2] ROSSI, C., RUSSO, F., 2017. Ancient Engineeer‘s Inventions: Precursors of the Present,

Second Edition. Switzerland: Springer

[3] Ibn al-Razzaz al-Jazari, 1973. The Book of Knowledge of Ingenious Mechanical Devices:

(Kitāb fī ma 'rifat al-ḥiyal al-handasiyya). USA: D. Reidel

[4] MOON, C., F., 2007. The Machines of Leonardo da Vinci and Franz Reuleoux: Kinematics

of Machines from Renaissance to the 20th Century. USA: Springer

[5] Hartenberg, R., Denavit, J., 1964. Kinematic Synthesis in Linkages. USA: McGraw-Hill

[6] NORTON, R., 2009. Kinematics and Dynamics of Machinery. Singapore: McGraw-Hill.

[7] Burmester,L., 1886: Lehrbuch der Kinematik, Verlag Von Arthur Felix, Leipzig, Germany

[8] KAUFMAN, R., 2007. Burmester Notes Part 1. Dosegljivo:

https://www2.seas.gwu.edu/~kaufman1/Burmester/Burmester%20Notes%20Part%201.PDF

[Datum dostopa: 3.8.2018]

[9] KAUFMAN, R., 2007. Burmester Notes Part 2. Dosegljivo:

https://www2.seas.gwu.edu/~kaufman1/Burmester/Burmester%20Notes%20Part%202.PDF

[Datum dostopa: 3.8.2018]

[10] RUSSELL, K., SHEN, Q., in SODHI R., 2014. Mechanism Design: Visual and Programmable

Approaches. USA: CRC Press

[11] Adams View Help (for Adams 2017) [online]. Dosegljivo:

https://simcompanion.mscsoftware.com/infocenter/index?page=content&id=DOC11201&

[Datum dostopa: 3.8.2018]

[12] Adams View Command Language Help (for Adams 2017). Dosegljivo:

https://simcompanion.mscsoftware.com/infocenter/index?page=content&id=DOC11204&

[Datum dostopa: 3.8.2018]

[13] Adams/View Function Builder help – MSC Adams 2010 [online]. Dosegljivo:

https://simcompanion.mscsoftware.com/infocenter/index?page=content&id=DOC9

390&actp=LIST [Datum dostopa: 3.8.2018]