Miskolci Egyetem Gépészmérnöki és Informatikai Kar Alkalmazott Informatikai Tanszék 3515 Miskolc-Egyetemváros
NC program generátor és megmunkálás szimulátor karusszel esztergához Szakdolgozat
Szegedi Levente BVU4DB 3950 Sárospatak, Balassi Bálint út 38.
1. Bevezetés
Köszönetnyilvánítás Ezúton kiemelten szeretném megköszönni az értékes és önzetlen segítséget a dolgozat elkészítésénél témavezetőmnek, Dr. Dudás Lászlónak, a Miskolci Egyetem GÉIK Alkalmazott Informatikai Intézeti Tanszék vezetőjének. Mindemellett köszönettel tartozom az Alkalmazott Informatikai Intézeti Tanszék oktatóinak, családomnak és páromnak.
2
1. Bevezetés
Tartalomjegyzék 1. Bevezetés........................................................................................................................................ 5 2. Elméleti háttér ................................................................................................................................ 7 2.1 Karusszel eszterga .................................................................................................................... 8 2.1.1 Általános ismertetés ........................................................................................................... 8 2.1.2 A karusszel eszterga tengelyelrendezése ........................................................................... 9 2.1.3 A karusszel eszterga működése.......................................................................................... 9 2.1.4 A karusszel eszterga felhasználási területei ..................................................................... 10 2.2 CNC technológia .................................................................................................................... 11 2.2.1 Általános ismertetés ......................................................................................................... 11 2.2.2 CNC programozás ............................................................................................................ 13 3. Felhasznált eszközök .................................................................................................................... 20 3.1 Programnyelv.......................................................................................................................... 20 3.2 Fejlesztő környezet ................................................................................................................. 20 3.3 Egyéb felhasznált szoftverek .................................................................................................. 21 4. A program .................................................................................................................................... 22 4.1 Program követelmény specifikáció......................................................................................... 22 4.1.1 Funkcionális követelmények............................................................................................ 22 4.1.1.1 CNC program generátor ........................................................................................... 22 4.1.1.2 Megmunkálás szimulátor ......................................................................................... 23 4.1.1.3 Felhasználói felület .................................................................................................. 23 4.1.1.4 Egyéb funkciók ........................................................................................................ 24 4.1.2 Nem funkcionális követelmények .................................................................................... 25 4.1.3 Szakterületi követelmények ............................................................................................. 25 4.1.3.1 CNC program generátor ........................................................................................... 25 4.1.3.2 Megmunkálás szimulátor ......................................................................................... 27 4.2 Programszerkezet és működés ................................................................................................ 27 4.2.1 Struktúra........................................................................................................................... 27 4.2.2 A szoftver működése........................................................................................................ 29 4.3 A legfontosabb funkciók működése ....................................................................................... 33 4.3.1 CNC program generálás ................................................................................................... 33 4.3.1.1 Általános tudnivalók ................................................................................................ 33 4.3.1.2 Egyenes kontúrszakasz ............................................................................................. 35 4.3.1.3 Köríves kontúrszakasz.............................................................................................. 37 4.3.1.4 Geometriai adatok számítása a körív megmunkáláshoz ........................................... 39 3
1. Bevezetés
4.3.2 Megmunkálás szimuláció................................................................................................. 44 4.4 Felhasználói felület ................................................................................................................. 49 5. Működés demonstrálása ............................................................................................................... 53 5.1 A megmunkálni kívánt alkatrész ismertetése ......................................................................... 53 5.2 Az előgyártmány..................................................................................................................... 54 5.3 A szoftver használata .............................................................................................................. 54 5.3.1 Adatok bevitele, CNC program generálás ....................................................................... 54 5.3.1.1 Technológiai adatok bevitele.................................................................................... 54 5.3.1.2 A kontúr bevitele, CNC program generálás ............................................................. 55 5.3.2 Megmunkálás szimuláció................................................................................................. 57 Összegzés ......................................................................................................................................... 58 Summary .......................................................................................................................................... 59 Irodalomjegyzék ............................................................................................................................... 60 Ábrajegyzék ..................................................................................................................................... 61 Táblázatjegyzék................................................................................................................................ 63 Melléklet .......................................................................................................................................... 64
4
1. Bevezetés
1. Bevezetés A CNC programok előállítása a modern gyártástechnológiában általában kétféle eszközzel történhet. Az egyik ilyen eszköz valamely, a CAM szoftverek közé tartozó offline program generátor, amely a nyers előgyártmány és az elkészítendő munkadarab paraméterei alapján állítja elő a megmunkáló CNC programot. A másik lehetőség, a korszerűbb, online, intelligens CNC vezérlők használata, amelyek képesek automatikusan létrehozni a megmunkáló programot és elvégezni a megmunkálást. Egyes feladatok esetén természetesen lehetőség van egy személy által, ,,kézzel” előállított CNC programok használatára is. A feladatom első részében elkészítek egy offline CNC programgeneráló szoftvert, amely CNC vezérelt karusszel esztergára állít elő megmunkáló programokat, figyelembe véve a karusszel esztergák sajátosságait. Azért lehet hasznos egy ilyen program, mert manapság nagy számban vannak jelen a nem intelligens CNC vezérlésű karusszel esztergák az iparban. Ilyen esetben a legcélszerűbb egy offline rendszer által generált CNC program használata. Mindemellett a korszerűbb vezérlések esetén is hasznos lehet egy ilyen szoftver alkalmazása. A feladat második részében elkészítek egy megmunkálás szimulátort, amely grafikus, 2 dimenzióban
jeleníti
meg
a
programgenerátor
által
előállított
CNC
program
szerszámpályáját. A szimulátor segítségével elkerülhetők az ütközések és egyéb hibák a valós futtatás (megmunkálás) során. Végezetül a program tesztelését végzem el. Ehhez egy létező vasúti kerék alkatrészrajzát használom fel. Ezen kívül ismertetem a program használatát is. A fent említettek mellett nagy vonalakban ismertetem az esztergálást, a karusszel esztergát, annak felépítését, főbb tulajdonságait, a CNC vezérlőket, a CNC programozást és a teszteléshez használt vasúti kereket.
5
1. Bevezetés
Ismertetem a szoftver fejlesztése során használt programnyelvet (JAVA) és kiválasztok egy megfelelő fejlesztő környezetet. A szakdolgozat főbb fejezetei: 1. Elméleti háttér A nélkülözhetetlen fogalmak nagyvonalú ismertetése (CNC, karusszel eszterga stb.) 2. Felhasznált eszközök Programnyelv, fejlesztőkörnyezet és egyéb eszközök ismertetése. 3. Az NC programgenerátor Az elkészített szoftver szerkezetének és működésének részletes leírása. 4. Működés demonstrálása A szoftver gyakorlati alkalmazása egy alkatrészrajz felhasználásával. 5. Összefoglaló (Summary) Magyar és angol nyelvű.
6
2. Elméleti háttér
2. Elméleti háttér Az eszterga az anyagleválasztó vagy forgácsoló szerszámgépek csoportjába tartozik, a leggyakoribb forgácsoló eszköz. Használata forgástestek megmunkálását teszi lehetővé. A forgácsoló mozgást a munkadarab, míg az előtoló mozgást a szerszám (esztergakés) végzi. A megmunkálás általában három fázisban történik: 1. nagyolás 2. félsimítás 3. simítás. Nagyolás során kerül leválasztásra a legnagyobb anyagmennyiség, ekkor a felület minősége a véglegeshez képest durva. Félsimítás során általában a kívánt kontúrral párhuzamosan, adott ráhagyással történik a megmunkálás. Simítás során a munkadarabot meghatározó kontúron végighaladva történik a forgácsolás, a kész munkadarabot létrehozva. [1] A leggyakoribb típus a csúcseszterga, felépítése az 1. ábrán látható.
1. ábra Csúcseszterga felépítése
7
2. Elméleti háttér
Az esztergák főbb típusai
csúcseszterga revolvereszterga síkeszterga o karusszel eszterga o fejeszterga
A síkesztergák nagy átmérőjű, lapos alkatrészek forgácsolására használatosak. Manapság az összes típusból létezik NC vezérelt, automatizált változat, amelyek elterjedése növekvő tendenciát mutat.
2.1 Karusszel eszterga 2.1.1 Általános ismertetés Karusszel esztergának szokás nevezni az olyan síkesztergát, amelynek főorsója, azaz Z tengelye függőleges. Kialakításából adódóan alkalmas kivételesen nagyméretű és tömegű alkatrészek megmunkálására. A legnagyobb méretű és teljesítményű gépek esetében a munkadarab tömege elérheti a több száz tonnát is (2. ábra). Létezik manuális vezérlésű és NC vezérlésű változat. Manapság még gyakori a manuális vezérlésű karusszel esztergák használata, azonban nagy számban fellelhetők a felújított és NC vezérléssel ellátott, egykor manuális vezérlésű gépek. Ezek mellett természetesen egyre nagyobb számban vannak jelen az iparban a modern kivitelű, intelligens NC vezérléssel ellátott, magas technikai színvonalat képviselő karusszel esztergák (3. ábra).
8
2. Elméleti háttér
2. ábra Turbina megmunkálása
3. ábra NC vezérlésű karusszel eszterga
2.1.2 A karusszel eszterga tengelyelrendezése A főorsó függőleges, azaz a Z tengely a talajra merőleges, míg az X tengely vízszintes, a talajjal párhuzamos. (4. ábra).
4. ábra Karusszel eszterga tengelyelrendezése
2.1.3 A karusszel eszterga működése A karusszel eszterga működési elve lényegében megegyezik az 1. ábrán látható csúcsesztergáéval, a következők kivételével (5. ábra):
tengelyelrendezés 9
2. Elméleti háttér
a munkadarab síktárcsába fogható be
nincs szegnyereg
késtartó elhelyezkedés
a gépágy merőleges a főorsóra.
5. ábra Karusszel eszterga felépítése
A karusszel eszterga esetében a késtartó párhuzamos a főorsóval (Z tengely) és merőleges az X tengelyre, így elsősorban a homlokfelület megmunkálására alkalmas, de a pozíció általában változtatható. Elmondható, hogy a karusszel esztergával elvégezhető az összes művelet, amit egy hagyományos csúcseszterga képes elvégezni.
2.1.4 A karusszel eszterga felhasználási területei Felhasználása igen változatos: A síktárcsán elhelyezett pofák egymástól függetlenül állíthatók, így forgástestek mellett lehetőség van más, például sokszög, vagy aszimmetrikus keresztmetszetű munkadarab befogására. Egyik leggyakoribb felhasználási területe, a vasúti kerekek megmunkálása, de ezektől jóval nagyobb méretű alkatrészek is megmunkálhatók, mint például nagyméretű csapágyak, turbina lapátkerekek (2. ábra). [1] 10
2. Elméleti háttér
2.2 CNC technológia 2.2.1 Általános ismertetés A CNC (computer numeric control) vagy számjegyvezérlés, a korszerű gyártástechnológia nélkülözhetetlen elemét képezi. A számítógép vezérlésű szerszámgépeket nevezik CNC megmunkáló berendezéseknek. A technológia kifejlesztésének több jelentős oka volt. Néhány paraméter, amelyben jelentősen jobban teljesít egy CNC a manuális vezérléssel szemben:
pontosság
gyorsaság
mellékidő
rendelkezésre állás.
Ezen kívül, a számjegyvezérlés lehetővé teszi az egyszerre több tengely mentén történő mozgásokat, amelyek egyenestől eltérő pályát eredményezhetnek. Ez a kézi vezérlésű szerszámgépek esetén nem lehetséges. Összességében a CNC vezérlés precíz, gyors, megbízható, kis mellékidejű, közel napi 24 órás rendelkezésre állási idejű és alacsony selejtszámmal dolgozó megmunkálást tesz lehetővé a legtöbb szerszámgép esetében, legyen az eszterga, marógép, lézeres vágógép, vagy egyéb eszköz.
A CNC szerszámgépek felépítése
Lényegében két fő részből tevődik össze egy számjegyvezérelt megmunkáló eszköz. Az egyik a vezérlő számítógép, a másik a megmunkálást végző szerszámgép. A vezérlés és a szerszámgép közötti összeköttetést (a szenzorok jeleinek begyűjtése és a vezérelhető elemek vezérlése) a gyártók PLC eszközökkel szokták megoldani (6. ábra). Ezáltal egy-egy vezérlő igen sokféle működést tesz lehetővé. [2]
11
2. Elméleti háttér
6. ábra NC vezérlésű szerszámgépek felépítése
Általában a két eszköz külön gyártótól származik. CNC vezérlőkből igen sokrétű a kínálat. Néhány gyártó [3]
SIEMENS
NCT
FANUC
MILLTRONIC
MAZAK
Habár vannak széles körben elterjedt vezérlések, pl. SIEMENS SINUMERIK 840D, azonban a különböző szerszámgépek különböző felépítése, segédberendezései és tengelyelrendezése következtében nem jellemző a kompatibilitás.
12
2. Elméleti háttér
Működés: A megmunkáló berendezésen szenzorok és vezérelhető eszközök vannak elhelyezve. Szenzorok például az útmérők, fordulatszám mérők, végállás kapcsolók, vezérelhető eszközök például az előtolóművek, motorok, kenőberendezések. Ezen szenzorok és vezérelhető eszközök egy PLC ki és bemeneteit képezik. A számjegyes vezérlő ezen a PLC-n keresztül képes kommunikálni a szerszámgéppel, és elvégezni a kívánt feladatot.
2.2.2 CNC programozás Az automatizált szerszámgépek esetében a megmunkálás pontos menetét a CNC program definiálja. A vezérlőegységbe történő betöltés után, a programot futtatva történik a megmunkálás. Az ilyen program (CNC program) szimbólumokból és a hozzájuk kapcsolódó számjegyekből áll. A CNC programot a már elkészített, meglévő geometriai és technológiai információkat tartalmazó dokumentumok alapján lehet létrehozni. Geometriai és technológiai információkat tartalmazó dokumentumok:
az munkadarab műhelyrajza
az munkadarab felfogási terve
az munkadarab szerszámterve
a megmunkálás műveletterve
a műveletek mozgástervei.
Feltételezve a munkadarab geometriai modelljének meglétét, a megmunkálás a következőképpen zajlik: 1. Az NC program előállítása a geometriai modell alapján. Ezen folyamatot szokás külső adatfeldolgozásnak is nevezni. 2. Az NC programot alapul véve a vezérlés előállítja a pályavezérlés parancsait (belső adatfeldolgozás).
13
2. Elméleti háttér
3. A pályavezérlés mozgásparancsai alapján leképzik a mozgásokat az alacsonyabb szinten elhelyezkedő pozicionálást végző rendszerek, ezzel, megmunkálva az alkatrészt (mozgásleképzés). [4]
7. ábra NC megmunkálás folyamata
Szintaktika Az ISO NCL szabványú, assembly szintű nyelv 1968-ban lett elfogadva (ISO/R1057). A továbbiakban a SIEMENS SINUMERIC vezérlés specifikus programozás kerül bemutatásra. A vezérlés által támogatott fájltípusok: 1. táblázat Támogatott fájltípusok
kiterjesztés
angol megfelelő
magyar megfelelő
MPF
main program file
főprogram
SPF
subrutin program file
alprogram
TOF
tool offset file
szerszám adatok
POF
part offset file
nullpont eltolás
A következőkben a főprogram és a szubrutin felépítését ismertetem. Főprogram N05
program rövid leírása
N10
%MPF programnév
14
2. Elméleti háttér
//főmondat N15
szerszámcsere
N20
technológiai adatok
N25
pozicionálás
N30
paraméterek megadása
… N…
szubrutinhivatkozás (ha van szubrutin)
… N…
M02 (program vége)
A program mondatokból áll (egy sor egy mondat) a mondatok pedig szavakból állnak. A mondatokból tevődik össze a főmondat. A mondatok elején célszerű sorszámozást (NXXX) használni, de ez elhagyható. Célszerű a számozásnál figyelembe venni a későbbi módosítás lehetőségét, tehát érdemes nem egyesekkel növelni a sorszámokat, hanem ennél nagyobb értékkel, pl. 5-el, így egy új sor könnyen beszúrható. A sorszám után a mondatban a szavak találhatók meg. A szavak egy utasításból, és annak paraméteréből tevődnek össze (utasítás paraméter pl. G 01). A szavak szóközzel elválaszthatók a jobb áttekinthetőség érdekében, de a futás szempontjából mindegy, hogy van, vagy nincs szóköz. Szavak közti használható. Szubrutin N 05 a szubrutin rövid leírása N10
SPF szubrutinnév
N15
mondatok
N…
… 15
2. Elméleti háttér
N…
M17 (szubrutin vége)
A szubrutin mondatainak felépítése a főprograméval azonos. [5] Az ISO NCL féle utasításkészlet Az utasítások csoportosítása
2. táblázat Utasítások csoportjai
betűkód
csoport megnevezése
X,Y,Z
célponti koordináta, vagy növekmény nagysága
A,B,C
célponti szöghelyzet, vagy szögnövekmény nagysága
I,J,K
interpolációs paraméter (vektorok megadása)
N
sorszám (mondatszám)
F
előtolás sebességének megadása
S
fordulatszám nagyságának megadása
T
szerszám azonosító
G
előkészítő,megmunkálási mód utasítások
D
szerszám korrekció
M
programtechnikai/ technológiai utasítások
Az utasítások A fejezetben nem szerepel az összes ISO-NCL utasítás, csupán a leggyakrabban használt, nélkülözhetetlen utasítások. Programtechnikai utasítások %- program eleje MPF- főprogram azonosító SPF- szubrutinazonosító
16
2. Elméleti háttér
L- szubrutinhívás P- szubrutin végrehajtás száma N- mondatszám M 00- program stop M 01- feltételes stop M 02- főprogram vége M 17- szubrutin vége M 30- fájl vége
Geometriai utasítások X, Y, Z- célponti koordináta (G90, abszolút méretmegadás esetén): Használata esetén a szerszám az adott pozícióra áll. Tengelynév koordinátaérték (pl. X 100.2 Y102 Z 0) Ha egy koordináta aktuális értékét nem kívánjuk megváltoztatni, nem kötelező újból kiírni. Használata esetén az aktuális koordinátákhoz adódik a tengelyenként
megadott
koordináta. X, Y, Z- növekmény (G91, növekményes méretmegadás esetén): Z koordináta irányú növekmény értéke
(pl. Z 10)
Előkészítő/ megmunkálás módot választó utasítások: Pályautasítások G00- gyorsmenet (a koordináták egyszerre változnak, nincs köztük kapcsolat) G01- egyenes interpoláció (a koordináták egyszerre változnak, közöttük kapcsolat van, a pálya egyenes vonalú) G02/G03- körinterpoláció a fősíkban óramutató járása szerinti/ellentétes irányban. 17
2. Elméleti háttér
G33- menetvágás Méretmegadás G90- abszolút méretmegadás. G91- növekményes méretmegadás. Szerszámsugár korrekció megadása G40- korrekció törölve G41- sugárkorrekció jobbra G42- sugárkorrekció balra Nullponteltolás G53- nullponteltolás törlése G54- nullponteltolás G58- koordináta transzformáció Pozicionálás módja G60- pontos, sebességcsökkentett pozícionálás G62- pályavezérlés csökkentett hibával G63- menetfúrás G64- pályavezérlés sebességcsökkentés nélkül Mértékegység megadása G94- előtolás mm/min -ben. G95- előtolás mm/fordulat –ban. G96- állandó vágósebesség G97- állandó fordulatszám (1/min)
18
2. Elméleti háttér
G92- főorsó fordulatszám korlátozás G04- várakoztatás Technológiai utasítások F ..- előtolás sebességének megadása S ..- főorsó fordulatszám megadása T..- szerszámválasztás szerszámazonosító alapján (szerszámtároló
rekesz/szerszám)
M06- szerszámváltás M03- főorsó indul előre M04- főorsó indul hátra M05- főorsó leállítása M08- hűtés/kenés indítása M09- hűtés/kenés leállítása M15- szerszám ellenőrzés indítása M16- szerszám ellenőrzés leállítása [6]
19
3. Felhasznált eszközök
3. Felhasznált eszközök 3.1 Programnyelv Az általam elkészített karusszel CNC program generátor tervezésénél figyelembe vettem, hogy a különböző programkészítő helyeken különböző számítógépek lehetnek. Eltérhetnek egymástól processzor teljesítményben, memória méretben, az operációs rendszer fajtájában stb.. A fent említettek következtében mindenképp olyan szoftver kifejlesztése volt a cél, amely nem igényel bonyolult telepítési műveleteket, és több, a számítógépre előtelepített összetevőt, illetve a legtöbb operációs rendszer alatt futni képes. Egy másik követelmény az volt a számítógépi programnyelvvel szemben, hogy az teljesen objektumorientált legyen. A JAVA nyelv mellett döntöttem, mivel az megfelel a fenti követelményeknek. A futtatáshoz csak egy JAVA virtuális gépre van szükség, ami szinte az összes operációs rendszerhez elérhető, ingyenes. A JAVA nyelvet a Sun kezdte kifejleszteni az 1990-es évektől kezdődően, majd az Oracle vette át. Legfőbb tulajdonságai:
hordozható
objektumorientált
platform független
hálózati funkciók.
[7]
3.2 Fejlesztő környezet
20
3. Felhasznált eszközök
Egy olyan fejlesztőkörnyezet kiválasztása volt a cél, amely professzionális, megkönnyíti a hibák keresését és javítását stb., ezért én az Eclipse mellett döntöttem. Az Eclipse egy nyílt forráskódú, igen sokoldalú integrált fejlesztő környezet (8. ábra). [8]
8. ábra Eclipse fejlesztői környezet
3.3 Egyéb felhasznált szoftverek A CNC programgenerátor működésének teszteléséhez a CNCSimulator Pro nevű szoftvert használtam. Ebben lehetőség van a többi mellett esztergán történő megmunkálás szimulációra
is
kettő
illetve
három
dimenzióban
(9.
ábra).
A
program
a
http://cncsimulator.info honlapról szerezhető be. [9]
9. ábra CNCSimulator Pro
21
4. A program
4. A program 4.1 Program követelmény specifikáció Ebben a fejezetben kerül elemzésre, hogy az általam fejlesztett programnak milyen követelményeknek kell megfelelnie részben a feladatkiírás, részben saját döntéseim alapján. Ezen követelmények három nézőpontból kerülnek elemzésre: funkcionális, nem funkcionális és szakterületi szemszögből.
4.1.1 Funkcionális követelmények A cél egy olyan CAM szoftver kifejlesztése, amely CNC programokat képes létrehozni karusszel esztergán történő megmunkálásra a nyers munkadarab, a geometriai modell és a technológiai paraméterek megadása után. A programnak ezen kívül tartalmaznia kell még egy megmunkálás szimulátort, amely a már generált CNC programot képes szimulálni. A következőkben kerülnek ismertetésre a kidolgozandó programok funkciói. 4.1.1.1 CNC program generátor A CNC program generátor működése: A technológiai adatok megadása után a geometriai modellt leíró kontúr kontúrelemenként kerül megadásra, majd a teljes kontúr megadása után kezdődik a CNC program generálása. 1. A programnak rendelkeznie kell egy olyan űrlappal (technológiai adatok), ahol meg lehet adni a program nevét, technológiai paramétereit. 2. Lehetőséget kell biztosítani az űrlap mentésére, mentés után az értékek ne legyenek módosíthatók! 3. Az űrlap mentésekor ellenőrizni kell az adatok helyességét, hiba esetén hibaüzenetet kell megjeleníteni, és megnevezni az adott hibákat 4. A programnak tartalmaznia kell egy másik űrlapot (adatok), amely csak a technológiai adatok űrlap sikeres mentése után válik szerkeszthetővé. 22
4. A program
5. Ezen az űrlapon (adatok) lehet megadni a geometriai modellt leíró adatokat (X koordináta, Z koordináta, sugár, kontúrelem típus). 6. Az adatok űrlapon lenni kell három Rádió gombnak egy csoportban, amely megadja a kontúr típusát (egyenes, kör j, kör b). 7. Az adatok űrlapon lenni kell egy gombnak (kontúrszakasz hozzáadása), amely egy kontúrszakaszt felvesz. 8. Az adatok űrlapon lenni kell egy gombnak (megmunkálás szimuláció), amely a megmunkálás szimulátort futtatja (kikapcsolt). 9. Az adatok űrlapon lenni kell egy gombnak (program vége, generálás), ami lezárja a kontúrt, és elindítja a kontúr generálását, bekapcsolja a megmunkálás szimuláció nyomógombját. 10. A generált CNC programot a főablakon lévő szöveges mezőben kell megjeleníteni. 11. Az adatok űrlapon történő adatbevitelkor ellenőrizni kell az adatok helyességét, hibás adatok esetén hibaüzenetet kell megjeleníteni a hiba megnevezésével. 4.1.1.2 Megmunkálás szimulátor 1. Az adatok űrlapon lévő gombbal indítható, ha már megtörtént a CNC programgenerálás. 2. Indulás után a generált CNC programot soronként értelmezve meg kell jelenítenie a szerszámpályát 2 dimenzióban. 3. A pályaszakaszoknak a mozgás sebességétől függően különböző színben kell megjelenniük:
G01,G02,G03 : zöld
G00 : narancssárga
4. Meg kell jeleníteni a nyers munkadarab határait (kék vonallal). 5. A méretezésnek úgy kell történnie, hogy a függőleges méret állandó legyen. 6. A megmunkálás szimulátornak külön ablakban kell megnyílnia. 4.1.1.3 Felhasználói felület 1. A felhasználói felületnek tartalmaznia kell a következőket:
menüsáv i. nézet 23
4. A program
1. ablak színe 2. NC kód megjelenítés a. karakterszín b. háttérszín c. betűméret ii. fájl 1. MPF mentés 2. kilépés iii. súgó 1. névjegy 2. leírás
adatok bevitele (űrlap)
koordináták (xK, xV, zK, zV)
sugár (R)
kontúrelem típus
kontúrelem hozzáadása gomb
programgenerálás gomb
megmunkálás szimuláció gomb
technológiai adatok (űrlap)
programnév mező
technológiai adatok mezői (szakterületi követelmények)
beállít gomb
CNC kód megjelenítő mező.
4.1.1.4 Egyéb funkciók 1. A szoftvernek rendelkeznie kell súgóval. 2. A szoftvernek képesnek kell lenni a generált CNC programot *.MPF kiterjesztésű
fájlba menteni. 3. A CNC kód megjelenítési mező kinézete állítható: a. betűszín b. betűméret c. háttérszín
24
4. A program
4. Az ablak színe változtatható
4.1.2 Nem funkcionális követelmények 1. A szoftvert JAVA nyelven kell fejleszteni a maximális hordozhatóság érdekében. 2. A futtatásához csak JAVA futtatókörnyezetre legyen szükség. 3. Ne legyen túlzottan hardverigényes, az NC programkészítő munkahelyeken még fellelhető, elavultnak számító gépeken is elfogadható válaszidővel működjön. 4. A program memóriaigénye nem haladhatja meg a 256 MB –ot. 5. A felhasználói felülete áttekinthető, egyértelmű legyen. 6. A különféle fényviszonyok miatt, legyen állítható a kódmegjelenítés nézete, az ablak színe. 7. A felhasználói felület legyen kontrasztos és esztétikus.
4.1.3 Szakterületi követelmények 4.1.3.1 CNC program generátor A szoftver által generált CNC programmal szembeni legfőbb követelmények: 1. valós körülmények között futtatva: o Ne okozzon ütközést! o Ne okozzon egyéb balesetet! o Ne okozzon géphibát, károsodást! o A megmunkálás a programba beadott geometriai modellel minden esetben egyező munkadarabot eredményezzen. o Gazdaságos megmunkálást tegyen lehetővé. o Minimalizálja a mellékidőt. o A technológiai paraméterként megadott fogásmélységgel dolgozzon, ha csak lehet, de soha ne lépje túl! o A CNC programban legyen sorszámozás. 2. Jelenítsen meg hibaüzenetet a következők esetén a hiba megnevezésével: o A szerszámcsere-pont X koordinátája kisebb mint a munkadarab átmérő+50mm.
25
4. A program
o A
szerszámcsere-pont
Z
koordinátája
kisebb
mint
a
munkadarabhossz+50mm. o Ha a szerszámcsere-pont, vagy a fogásmélység, vagy a munkadarab paraméterek mezői üresek. o Ha a programnév mező üres. o Ha az xK, xV, zK zV, vagy körív kontúrelem esetén az R paraméterek mezői üresek. o Ha a sugár értéke túl kevés. o Ha hiba történik a futás közben. 3. Három megmunkálási fázissal történjen a programgenerálás: o nagyolás o fél simítás o simítás 4. A szükséges technológiai adatok: főorsó fordulat
főorsó forgásirány o óramutató járása szerint o óramutató járásával ellentétes
előtolás o nagysága o mértékegysége
mm/fordulat
mm/perc
állandó vágósebesség
Szerszámazonosító
szerszámsugár korrekció o jobbra o ballra o nincs
nullpont eltolás o kikapcsolva o bekapcsolva
sorszámozás 26
4. A program
o kezdőérték o növekmény
fogásmélység
szerszámcsere-pont o X koordináta o Z koordináta
nyersanyag méretek o hossza o átmérője
4.1.3.2 Megmunkálás szimulátor 1. A valós pályát kell megjelenítenie, eltérés nem megengedett. 2. Minden esetben jelenítse meg a pályaszakaszt, akkor is, ha pl. kívül esik a
munkadarabon. 3. A lassú és gyorsmeneti mozgásokat különböző színnel kell megjeleníteni. 4. A nyers munkadarabot is meg kell jeleníteni
4.2 Programszerkezet és működés 4.2.1 Struktúra A program JAVA nyelven került fejlesztésre, így objektumorientált és szerkezete az alkotó osztályokkal és azok kapcsolataival szemléletesen definiálható. Az általam elkészített karusszel CNC programgenerátor egy package-et (csomagot) tartalmaz. Ez a csomag tíz osztályt foglal magába, amelyek a következők: 1. FoAblak 2. NC 3. NCSor 4. KonturElem 5. KonturMegmunkal
27
4. A program
6. Kor 7. Interpolacio 8. Szimulacio 9. HibaUzenet 10. Help A szoftver struktúráját ábrázoló UML osztálydiagram a 10. ábrán látható. Az UML osztálydiagram létrehozásakor a cél az osztályok közötti kapcsolatok bemutatása volt, így csak néhány jellemző paraméter és metódus került feltüntetésre az osztályokban, a valódiak nagy terjedelme miatt.
10. ábra UML osztálydiagram A 10. ábrán lévő osztálydiagramon az osztályok közötti kapcsolatok is leegyszerűsítettek a jobb áttekinthetőség érdekében. A kapcsolatok leírását nem tartom célravezetőnek, a lényegi kapcsolatok megtekinthetők a 10. ábrán, a 4.2.1 Működés fejezetben részletesebben kifejtésre kerülnek.
28
4. A program
4.2.2 A szoftver működése Ebben a fejezetben a program teljes egészének működése ismerhető meg, a CNC kódgenerálás, megmunkálás szimuláció stb. részletes működése azonban kimarad, azok későbbi fejezetekben kerülnek ismertetésre. A program működése a sorrendiség figyelembevételével a következő: 1. A program indítása. 2. Indításkor egyetlen osztály, a FoAblak kerül példányosításra, amely a grafikus felhasználói felületet valósítja meg. 3. A FoAblak által megvalósított felhasználói felületen ekkor a menüsáv és a technológiai adatok fül alatt található űrlap elemein kívül minden kikapcsolt állapotban jelenik meg. 4. A program használatakor elsőként a technológiai adatok űrlapot kell kitölteni hibátlanul. Ellenkező esetben hibaüzenet jön létre a HibaUzenet osztály példányosításával a konkrét hiba megnevezésével. 5. Az űrlap helyes kitöltése után a beállít gomb (11. ábra): a. példányosítja az NC osztályt b. ha az NC osztály sikeresen példányosítva lett, bekapcsolja az adatok űrlap beviteli mezőit és a kontúrelem hozzáadása gombot.
11. ábra Technológiai adatok űrlap
6. Most már elkezdhető a kontúrt alkotó szakaszok bevitele az adatok űrlapon. Az első kontúrelem hozzáadása után bekapcsolásra kerül a program vége, generálás gomb. Kontúrelem hozzáadásakor (12. ábra UML szekvencia diagram): a. Vizsgálatra kerül, megfelelőek-e az űrlapba bevitt adatok. 29
4. A program
b. Ha nem megfelelőek az adatok, akkor hibaüzenet jön létre a hiba megnevezésével a HibaUzenet osztály példányosításával. c. Ha megfelelnek az adatok, akkor a már korábban példányosított NC osztálypéldány KonturElemek (ArrayList
) listájához adja az adott kontúrelemet az NC osztály kontúrelem hozzáadó metódusaival (egyenes és köríves kontúrelem hozzáadók).
12. ábra UML szekvencia diagram
7. Az utolsó kontúrelem bevitele után, a program vége, generálás gombbal lehet lezárni a kontúrt és elkezdeni a CNC program generálását. Ezzel egy időben bekapcsolásra kerül a megmunkálás szimuláció gomb (13. ábra).
13. ábra kontúrbeviteli űrlap
30
4. A program
8. A program vége, generálás gomb hatására az NC osztálypéldány létrehoz egy KonturMegmunkal osztálypéldányt, majd ezen osztálypéldány lekéri az NC osztály adattagjaként szereplő kontúrelemek listát, és e lista alapján végzi el a CNC programgenerálást. A folyamatot megjelenítő UML szekvencia diagram a 14. ábrán látható. A generálás folyamata a későbbi fejezetekben kerül ismertetésre.
14. ábra UML szekvencia diagram
9.
A programgenerálás során NCSor objektumok jönnek létre. Minden CNC program
sor egy-egy NCSor objektum. Az NCSor példányok az NC osztály NCSorok listájában (ArrayList) tárolódnak. A KonturMegmunkal osztály ehhez a listához adja a sorokat. 10. Az alkatrészprogram létrejötte után az NC osztály megjelenítést végző metódusa kiíratja a FoAblak kódmegjelenítő mezőjére a CNC programot (15. ábra) 11. A megjelenítést követően lehetőség van a generált programot tetszőleges helyre, *.MPF kiterjesztésű fájlként elmenteni. 12. A megjelenítést követően lehetőség van a generált program megmunkálás szimulációjának futtatására.
31
4. A program
15. ábra UML szekvencia diagram
13. A megmunkálás szimuláció gomb megnyomásával futtatható a szimuláció. 14. Szimuláció futtatása esetén a FoAblak osztályból kerül példányosításra a Szimulacio osztály. 15. A szimuláció osztály példányosítása után lekéri a statikus NC osztály NCSorok listáját (ArrayList), és azzal dolgozik tovább. 16. A lista elemein (CNC programsorokon) végighaladva, soronként végzi a szimulálást és jeleníti meg a szerszámpályát a grafikus felületen (16. ábra).
16. ábra UML szekvencia diagram 32
4. A program
17. A programban tetszőleges időben lehetőség van: a. Kilépni, a fájl menü kilépés menüpontjában. b. Ablakszínt változtatni. c. CNC kódmező megjelenését változtatni. d. Meglévő CNC programot fájlba menteni. e. Súgót előhívni.
4.3 A legfontosabb funkciók működése 4.3.1 CNC program generálás 4.3.1.1 Általános tudnivalók Programgenerálás akkor lehetséges, ha megelőzően megtörtént a kontúr (egy vagy több kontúrelem) beadása. A kontúrelemek a statikus NC osztály példányának KonturElemek listájában vannak eltárolva: private static ArrayList konturElemek = new ArrayList(); Kívülálló osztály számára getter metódussal adható át az értéke. A programgenerálás menete: 1. A program vége, generálás gomb akciója hatására az NC osztálypéldány megmunkalas() metódusa példányosítja a KonturMEgmunkal osztályt és ezzel kezdetét veszi a CNC program generálása. 2. A KonturMegmunkal osztály konstruktora lefutásakor átveszi a megfelelő technológiai paramétereket és elvégzi a megmunkálást. A konturMegmunkal osztály konstruktora: public KonturMegmunkal() { super(); this.elemek =NC.getKonturElemek(); this.xRef = NC.getRefX(); this.zRef = NC.getRefZ(); this.fogas =NC.getFogasMelyseg(); this.l = NC.getMunkaDarabHossz(); this.d = NC.getMunkaDarabAtmero(); megmunkal(); }
33
4. A program
A megmunkálás egyetlen metódus futása során történik meg: private void megmunkal(){}
A megmunkal() metódus Működése során CNC sorokat generál, melyet hozzáad az NC osztály NCSorok listájához. Attól függően, hogy egyenes vagy körív megmunkálásáról van szó, ez kétféleképp történhet: NC.sortHozzaad("G01","X",(d),"Z",(l),-1);
NC.korSortHozzaad("G03","X",(xV),"Z",(zV),"I",((kG02.getX()-xK))/2,"K",(kG02.getZ()zK),i.getAzonosito(),ks);
A sorhozzáadó metódusok egyes paraméterei a megmunkál metódusban kerülnek kiszámításra, a kontúrelemek lista tagjainak paraméterei alapján iterációkon keresztül. A megmunkal () metódusban végbenő folyamatok sorrendben: 1. Ráállás a nyers munkadarab legnagyobb koordinátáira, a megmunkálás elkezdéséhez: NC.sortHozzaad("G00","X",(d+5),"Z",(l+5),-1); NC.sortHozzaad("G01","X",(d),"Z",(l),-1);
2. Kontúrelemek nagyolása során a kontúrelemek megmunkálása for ciklusban történik: for(KonturElem i: this.elemek){} A ciklusban lezajlik: a. egyenes kontúrelemek nagyolása és félsimítása b. G02 (óramutató járásával egyező irányú körívek) nagyolása és félsimítása. c. G03 (óramutató járásával ellentétes irányú körívek) nagyolása és félsimítása. 3. Simítási CNC sorok beszúrása. 34
4. A program
Az egyes kontúrelem típusok megmunkálásai a következő fejezetekben kerülnek kifejtésre. A KonturMegmunkal osztály forráskódjának részlete a 17. ábrán látható.
17. ábra Forráskód részlet
4.3.1.2 Egyenes kontúrszakasz Az egyenes kontúrszakasz megmunkálása három fázisban történik: 1. nagyolás 2. félsimítás 3. simítás. Az egyenes kontúrelem megmunkálásának menete: 1. A fogásmélységből és kontúrelem X tengely menti kiterjedéséből meghatározásra kerül a fogások száma. A program ezt tekinti a hátralévő fogások számának. (16. ábra) 2. Meghatározásra kerül, hogy az egymás követő fogásokban a megmunkálás Z tengely menti hossza mennyiben tér el (double ZLépés) (18. ábra)
35
4. A program
18. ábra Forráskód részlet
3. Vizsgálat történik annak eldöntésére, hogy az adott „egyenes” kontúrelem kezdő és végpontjának Z koordinátája egyezik-e? 4. A 3. pontban említett vizsgálatnak megfelelően megtörténik az NC programsorok generálása és az NC osztály sorhozzáadó metódusával az NCSorok listához történő hozzáadása (19. ábra). 5. Az egyenes megmunkálás műveletei: a. nagyolás Nagyolás után egy lépcsőzetes kontúr jön létre. b. félsimítás. A félsimítás során a végleges kontúr és a félsimítási kontúr között a fogásmélység felével egyenlő a távolság. 6. A simítási művelet során a végleges kontúr kerül megmunkálásra. Ez az összes kontúrelem nagyolása és félsimítása után történik meg egyben, azaz egy menetben zajlik a munkadarab végleges kontúrjának simítása.
19. ábra: Egyenes kontúrmegmunkálás programkódjának részlete
36
4. A program
20. ábra: Egyenes kontúrelem megmunkálás különböző kezdő és végpontokkal
4.3.1.3 Köríves kontúrszakasz A köríves kontúrszakasz megmunkálása az egyenes kontúrszakasz megmunkáláshoz hasonlóan három fázisból áll: 1. nagyolás 2. félsimítás 3. simítás. A köríves kontúrelem megmunkálás menete:
Vizsgálat történik a kontúrelem típusára vonatkozóan annak érdekében, hogy kiderüljön, az adott kontúrelemhez tartozó körív az óramutató járásával egyező, vagy ellentétes irányú-e: if(i.getTipus().equals("G02"))
Ezen információ megléte után elkezdődik a kontúrszakaszhoz tartozó NC programsorok generálása.
Az Interpolacio osztály Kor visszatérési értékű kG02 és kG03 függvényei segítségével kiszámításra kerül az adott körívhez tartozó kör középpontjának két koordinátája (x,z), a kontúrszakasz kezdő és végpontja, illetve az ív sugara alapján. Ezen számítások elvégzése után a függvény visszatér egy Kor (kör) objektummal: Kor kG02 = interpolacio.korG02(i.getxK(),i.getzK(),i.getxV(),i.getzV(),i.getR());
A kör objektum tartalmazza: a. a kör középpontjának x és z koordinátáit 37
4. A program
b. a kör sugarát. A kör objektum létrehozását külön fejezet tárgyalja.
Kiszámításra kerül a fogásszám: int fogasSzam=(int) (((xK-(xV+fogas/2))/fogas)); int xHatraLevo=fogasSzam;
Egy for cikluson belül megtörténik a kontúrelem nagyolás, amely egy lépcsőzetes kontúrt eredményez: a. Fogásonként kiszámításra kerül a Z tengelyhez tartozó célponti koordináta, az
Interpolacio
osztály
masodFokuMegoldoG02
vagy
masodFokuMegoldoG03 függvényeinek segítségével.: zErtek=interpolacio.masodFokuMegoldoG02(u, v, (xK-j*fogas), kG02.getR());
Ezen függvények működése külön fejezetben kerülnek bemutatásra. b. Megtörténik azoknak az NC programsoroknak a generálása, amely a szerszámot az említett Z értékig, a végleges kontúrtól Z koordinátában a fogásmélység felével nagyobb értékre pozícionálja: NC.sortHozzaad("G01","X",(xK-(j*fogas)),null,0,i.getAzonosito()); NC.sortHozzaad("G01",null,0,"Z",(zErtek+fogas/2),i.getAzonosito());
c. A kiemelést végző NC programsorok is legenerálódnak: NC.sortHozzaad("G00","X",((xK-(j*fogas))+fogas/2),"Z",((zErtek+fogas/2) +fogas/2),i.getAzonosito()); NC.sortHozzaad("G00",null,0,"Z",l,i.getAzonosito());
A félsimítás során egy olyan körívet eredményező NC programsor kerül beszúrásra, amely távolsága a végleges kontúrhoz képest Z koordinátában (Ha mindkét kontúr azonos X koordinátáját vesszük.) a fogásmélység fele. Ezzel a művelettel eltűnnek a ,,lépcsők” a munkadarab felszínről: NC.korSortHozzaad("G03","X",(xV+fogas/2),"Z",(zV),"I",((kG02.getX()xK))/2,"K",(kG02.getZ()-zK)-fogas/2,i.getAzonosito(),ks);
A simítási művelet során a végleges kontúr kerül megmunkálásra. Ez az összes kontúrelem nagyolása és félsimítása után történik meg egyben, azaz egy menetben zajlik a munkadarab végleges kontúrjának simítása.
38
4. A program
21. ábra G02 és G03 körív megmunkálása
4.3.1.4 Geometriai adatok számítása a körív megmunkáláshoz A köríves kontúrelemek megmunkálása során esetenként összetettebb számítások elvégzésére van szükség, amelyek ráadásul ismétlődhetnek is, ennek érdekében lett létrehozva az Interpolacio osztály, amelyben a geometriai számításokat végző függvények találhatók meg:
korG02()
korG03()
masodFokuMegoldoG02()
masodFokuMegoldoG03().
A felsorolt függvények közül a korG03() és a masodFokuMegoldoG03() kerül bemutatásra, mivel a másik kettő ezekkel elvben egyezik.
A korG03() függvény A függvény képes arra, hogy egy körív szakaszának kezdő és végpontjából (x1,z1,x2,z2,), illetve a körívhez tartozó sugárból (R) kiszámítsa az adott kör középpontjának koordinátáit (x,z). A függvény visszatérési értéke egy Kor (kör) objektum, amely tárolja a kiszámított adatokat. A számítás menete: 39
4. A program
γ
α
22. ábra geometriai adatok a körív megmunkáláshoz
Adottak:
P1(x1,z1)
P2(x2,z2)
R
Ezekből kiszámítható: √
(1)
√
( )
(2)
A felezőpont koordinátái:
(
)
(3)
(4)
40
4. A program
(5) (6)
(7)
(8) √
(9)
A kör középpontjának koordinátái:
(
)
(10)
Végezetül a kör középpontjának koordinátáival és a kör sugarával példányosított Kor (kör) objektummal tér vissza a függvény.
23. ábra A kör középpont számítás implementációja
41
4. A program
A masodFokuMegoldoG02() és a masodFokuMegoldoG03() függvény A masodFokuMegoldoG02() és masodFokuMegoldoG03() függvények feladata az, hogy köríves kontúrelemek megmunkálása esetén a paraméterként megadott kör és X koordináta függvényében visszaadják a megfelelő Z célponti koordinátát „G02” és „G03” köríves kontúrelemek nagyolása során. A megmunkálás mellett a Szimulacio osztályban is fel van használva köríves pályaszakaszok megjelenítéséhez. Paraméter szignatúrája: masodFokuMegoldoG03(double u, double v, double x, double r)
Működése során a kör egyenletébe helyettesítve az u, v, x, r paraméterek értékeit, számíja ki az aktuális Z célponti koordinátát. Ezen kör egyenletét képezve: (11) (12) Az
alakú másodfokú egyenlet elemei (25.ábra): (13) (14) (15)
24. ábra: A masodFokuMegoldoG03() implementációjának kódrészlete.
42
4. A program
A másodfokú egyenlet megoldó képletébe helyettesítve: √
,
(18)
adódik a megfelelő Z célponti koordináta. Két valós gyök esetén logikai vizsgálat dönti el, melyik a megfelelő érték:
G02 körív esetén a kisebb érték,
G03 körív esetén a nagyobb érték.
43
4. A program
4.3.2 Megmunkálás szimuláció Az általam fejlesztett program rendelkezik egy megmunkálás szimulátorral, amely alkalmas arra, hogy az előzetesen generált NC programot soronként értelmezve megjelenítse az NC program által definiált szerszámpályát. A szimulátor futtatása csak akkor lehetséges, ha előzetesen megtörtént minden szükséges technológiai adat bevitele, a megmunkálandó kontúr bevitele és lezárása, a CNC program generálása. Tekintve, hogy a CNC programgenerátorom kéttengelyes (X és Z) karusszel esztergához készült, így a szerszámpályát is elegendő 2 dimenzióban ábrázolni. A lehetséges szerszámpálya-elemek:
egyenes
körív.
A megmunkálási módok függvényében különböző színekkel jeleníti meg a szerszámpályát:
G00: narancssárga
G01: zöld
G02: zöld
G03: zöld.
Az NC programgenerálás előtt megadott technológiai adatok alapján megjeleníti a nyers munkadarab kontúrját kék színnel. Megjeleníti az X és Z koordinátatengelyeket tartalmazó koordinátarendszert.
44
4. A program
25. ábra: A megmunkálás szimulátor ablaka Működés: A 26. ábrán lévő szekvencia-diagramon kékkel bekeretezve látható a szimuláció futásához szükséges néhány művelet és pirossal keretezve maga a szimuláció.
26. ábra UML szekvencia diagram
A szimuláció futtatása során: 1. Megnyílik a szimulátor ablak. 2. Megtörténik az ArrayList
(CNC programsorokat tartalmazó lista)
átadása a statikus NC osztály getNCSorok() metódusán keresztül. 45
4. A program
3. Megtörténik a méretezés beállítása. 4. Megjelenítésre kerül az úgynevezett munkadarab ablak, amely a megmunkálni kívánt nyers munkadarabot ábrázolja egy kék téglalapként. A munkadarab méreteit az NC osztály megfelelő getter metódusaival éri el. 5. Kirajzolódnak a koordináta tengelyek és a programazonosító felirat. 6. Kirajzolódik a szerszámpálya.
A szerszámpálya megjelenítése Mint azt már a dolgozatban korábban említettem, a megmunkálás szimulátor a CNC programot soronként értelmezve jeleníti meg a szerszámpályát. A megjelenítés értelemszerűen csak a G00, G01, G02 és G03 G-kódokat tartalmazó NC programsorokra érvényes. Az NC programsorok vizsgálata, és a szerszámpálya megjelenítés egy ciklusban zajlik: for(NCSor i: this.ncsorok){…}
Minden egyes NC programsor előtt logikai vizsgálat útján dől el, hogy milyen színnel jelenjen meg az aktuális sor szerszámpályája: if(i.getG().equals("G01")||i.getG().equals("G02")||i.getG().equals("G03")) g.setColor(Color.GREEN); else g.setColor(Color.orange);
A színbeállítás után újabb vizsgálat dönti el, hogy az adott NC sor egyenes, G02 körív, vagy G03 körívet definiál-e. Ahogy a valós futtatás esetében, úgy itt is, a megelőző szerszámpálya-szakasz végpontja a következő szerszámpálya-szakasz kezdőpontja lesz. A szerszámpálya első szakaszának kezdőpontja mindig a referencia pont. Ennek X és Z koordináta értékeit az NC osztály technológiai adataiból getter metódussal veszi át a Szimulacio osztály.
46
4. A program
Egyenes szerszámpálya megjelenítése Egyenes a pályaszakasz a G00 és G01 megmunkálási mód választó parancsokat tartalmazó NC programsorok esetén. A G00 és G01 parancsokat tartalmazó CNC programsorok nem mindig azonos formátumúak. Lehetséges formátumok:
X és Z célponti koordináták mindegyike szerepel
csak az X célponti koordináta szerepel
csak a Z célponti koordináta szerepel.
Például: N25 G01 X100.2 Z24 N30 G00 X120 N35 G01 Z34 A formátum vizsgálata után kerülnek kirajzolásra a pálya megfelelő szakaszai a formátumnak megfelelően a beépített drawLine függvény segítségével (27. ábra).
27. ábra Egyenes pályaszakasz ábrázolásának kódrészlete.
47
4. A program
Köríves szerszámpálya megjelenítése Köríves a pályaszakasz a G02 és G03 megmunkálási mód választó parancsokat tartalmazó NC programsorok esetén. A G02 és G03 parancsokat tartalmazó CNC programsorok az általam elkészített NC programgenerátor működéséből adódóan egyféle formátumúak, azaz mindig szerepel bennük az X és a Z célponti koordináta, illetve a hozzájuk tartozó I és K interpolációs paraméter is. Például: N1225 G03 X220 Z311 I51 K123 N1225 G02 X226 Z314 I5 K23 Köríves szerszámpálya-szakaszt definiáló NC programsor esetén vizsgálatra kerül, hogy G02-es vagy G03-as-e az adott ív, azaz, hogy az óra mutató járásával egyező vagy ellentétes
irányú-e,
ez
alapján
kétféleképp
történik
a
megjelenítés
(masodfokuMegoldoG02() és masodFokuMegoldoG03() használatával). Köríves pályaszakasz megjelenítésekor: 1. Kör objektum jön létre, melyhez rendelkezésre áll: a kör középpontja (I, K paraméterek által), a kör sugara (A kör középpontjának és a szakasz kezdő vagy végpontjának távolsága.). 2. Egy ciklus fut le annyiszor, ahány pixel található az X tengely a pályaszakasz által lefedett részén. A ciklus futása közben az X értékeket egyesével csökkentve (jobbról balra haladva) a masodFokuMegoldo függvények valamelyikébe behelyettesítve, a megfelelő értéteket konvertálva, kirajzolódnak a megfelelő Z értékek az X értétek függvényében. Az egyes értékek között egyenes szakaszok kerülnek kirajzolásra, ezzel véget ér a köríves pályaszakasz megjelenítése.
48
4. A program
28. ábra A köríves pályaszakasz megjelenítés implementációjának részlete
4.4 Felhasználói felület Az általam fejlesztett karusszel esztergához való CNC program generátor szoftver 5 ablakot tartalmaz: 1. Főablak 2. Megmunkálás szimulátor 3. Mentés 4. Súgó 5. Hibaüzenet. Főablak A főablak rendeltetése:
Technológiai adatok bevitele
Munkadarab kontúr bevitele
Generált NC program megjelenítése
Megmunkálás szimuláció indítása
Egyéb funkciók o Fájl menü
Kilépés
NC program fájlba mentése
o Nézet
Ablak színének beállítása
NC kód megjelenítés beállítása
49
4. A program
Karakterszín
Háttérszín
Betűméret
o Súgó
Súgó ablak megjelentése.
A főablak két panelt tartalmaz. A jobboldali az NC kód megjelenítést valósítja meg, míg a baloldali az adatbevitelt. A bal oldali panel további két konténert tartalmaz a technológiai adatok bevitelére illetve a kontúr szakaszainak a bevitelére (29. ábra).
29. ábra A főablak A mentés a JAVA előre elkészített komponensének felhasználásával történik (30. ábra).
30. ábra Mentés ablak
50
4. A program
A súgó a főablak fenti menüsávjának Súgó menüjének Súgó menüpontjában, illetve az F1 billentyű lenyomásával érhető el (31. és 32. ábra).
31. ábra Súgó menü
32. ábra Súgó ablak
A megmunkálás szimulátor ablak A megmunkálás szimuláció a főablak bal paneljének adatbeviteli füléhez tartozó konténerben lévő gombjával indítható (33. ábra).
33. ábra Megmunkálás szimuláció indítása
51
4. A program
A szimuláció ablaka nem tartalmaz semmilyen kezelőszervet, egyetlen funkciója a szerszámpálya megjelenítése (34. ábra). Az ablak tetszőlegesen átméretezhető, bezárható, bezárás után újra megnyitható.
34. ábra Megmunkálás szimuláció ablak
52
5. Működés demonstrálása
5. Működés demonstrálása 5.1 A megmunkálni kívánt alkatrész ismertetése Az általam megmunkálni kívánt munkadarab egy vasúti kerék részét képező abroncs. Az abroncs profilja a 35. ábrán megfigyelhető (A legnagyobb átmérő 850 mm). Az általam megmunkált kerékabroncshoz hasonló kerékabroncsok a 36. ábrán láthatók.
35. ábra Vasúti kerékabroncs
36. ábra Vasúti kerékabroncsok
53
5. Működés demonstrálása
5.2 Az előgyártmány A nyers előgyártmány egy D=855 mm átmérőjű és L=125mm hosszúságú acél gyűrű, melynek belső átmérője d=700mm. Az általam használt előgyártmányhoz hasonlók láthatók a 37. ábrán.
37. ábra Előgyártmány
5.3 A szoftver használata 5.3.1 Adatok bevitele, CNC program generálás 5.3.1.1 Technológiai adatok bevitele Az általam használt paraméterek (38. ábra):
programnév: KEREK
főorsó fordulatszám: 100 1/perc
főorsó forgásirány: óramutató járása szerinti
előtolás:800 mm/perc
szerszámsugár korrekció: balra
nullpont eltolás: bekapcsolva
fogásmélység: 0.4 mm
szerszámcsere pont: X1000 Z300
nyersanyag méretei: L=120 D=855.
54
5. Működés demonstrálása
38. ábra Technológiai adatok
5.3.1.2 A kontúr bevitele, CNC program generálás A kontúrt meghatározó szakaszok: 3. táblázat Kontúrszakaszok
X
Z
X
Z
kezdőkoordináta
kezdőkoordináta
végkoordináta
végkoordináta
R
G01
855
0
850
0
-
G01
850
0
850
5
-
G03
850
5
830
13
18
G01
830
13
810
17
-
G02
810
17
790
28
20
típus
55
5. Működés demonstrálása
G01
790
28
784.5
83
-
G01
784.5
83
779.7
107
-
G01
779.7
107
771.7
111
-
G01
771.7
111
695
111
-
A fenti táblázatban lévő pontokat kell bevinni a CNC programgenerátorba az adatok bevitele fül alatt található űrlapra, majd a ,,Program vége, Generálás” gombra kattintva megtörténik az NC program generálás (39.ábra). A generált program nagy terjedelme miatt a mellékletben tekinthető meg (II. melléklet).
39. ábra NC program generálás
56
5. Működés demonstrálása
5.3.2 Megmunkálás szimuláció Az 5.3.2.1-es fejezetben leírt NC program generálás eredményeképp létrejött alkatrészprogram megmunkálás szimulációja a 40. ábrán figyelhető meg.
40. ábra Megmunkálás szimuláció
57
Összegzés
Összegzés A CNC technológia és az esztergálás alapvető ismeretével már rendelkeztem a dolgozat elkészítése előtt korábbi tanulmányaim és szakmai gyakorlatom kapcsán. Irodalomkutatást végeztem a karusszel esztergák szerkezeti felépítésének és működésének megismerése céljából. Ismertettem a CNC technológiát, a CNC programozást. Kiválasztottam a Java programnyelvet a szoftverem megvalósításához, ezek után elkezdtem kidolgozni a részletes szoftver-specifikációt funkcionális, nem funkcionális és szakterületi szemszögből. Az
elkészült
szoftverkövetelmény-specifikáció
alapján
megterveztem
a
szoftver
struktúráját, bár a fejlesztés közben ez időnként módosult. A struktúra tervezete alapján elkezdtem implementálni a szoftvert lépésről lépésre. Elsőként a felhasználói felületet, majd a programom többi elemét. Kidolgoztam a program részletes működését. A feladat első részében a CNC program generátort, a másodikban a megmunkálás szimulátort. A fejlesztés közben felmerülő problémákat megoldottam. A funkciókat a fejlesztés után közvetlenül külön-külön, és egyben is teszteltem számos alkalommal. A tesztelések eredményei alátámasztották, hogy az általam fejlesztett karusszel esztergához való CNC program generátor megfelel a lefektetett szoftverkövetelmény-specifikációban definiált programnak a CNC programgenerátor és a megmunkálás szimulátor esetében is. A dolgozat végén, az 5. fejezetben röviden demonstráltam a szoftver működését egy példán keresztül. A szoftver felépítéséből adódóan alkalmas lehet további funkciók jövőbeni hozzáadására is. Ilyen lehet például a 3D megmunkálás szimulátor, a külső NC programok megmunkálás szimulációja, illetve komplexebb CNC programok generálása több szerszámos karusszel esztergákhoz váll mögötti esztergálással.
58
Summary
Summary I have had the basic knowledge of CNC technology and turning before the completion of my thesis, from my prior studies and traineeship. I researched the structure and operation of vertical lathe (carousel lathe). I reviewed the CNC technology and CNC programming. I chose the Java programming language, then I started to develop a detailed specification of the software in functional, non-functional and speciality perspective. I developed the structure of software based on the complete software requirements specification, although during development it modified sometimes. I started to implement the software step by step on the basis of the draft structure. First, the user interface, and then the other elements of the program. I worked out the detailed operation of the program. In the first part of the task the CNC program generator, in the second the machining simulator. I solved the problems during the development. I tested each function immediately after the development, and all the functions were tested at the same time, several times. The results of the tests confirmed that the developed carousel lathe CNC program generator meets the software requirements specification defined software for CNC program generating and machining simulator. At the end of my thesis, in Chapter 5, I demonstrated how the software works through an example in brief. Due the design of the software, it is suitable to add new functions in the future. For example: 3D machining simulation, machining simulation of external NC programs, and generating more complex CNC program for multi-tool carousel lathes, with behind shoulder turning.
59
Irodalomjegyzék
Irodalomjegyzék Sorszám Cím / URL
Dátum
[1]
http://hu.wikipedia.org/wiki/Eszterg%C3%A1l%C3%A1s
2014.02.22
[2]
http://hu.wikipedia.org/wiki/Computer_Numerical_Control
2014.02.22
[3]
http://www.cnc.hu/2012/04/cnc-vezerlok-es-gyartocegek
2014.02.23
[4]
Tóth Tibor - TERMELÉSI RENDSZEREK ÉS FOLYAMATOK 319. oldal
[5]
Sipos Imre – CNC 12. oldal
[6]
http://ait2.iit.unimiskolc.hu/oktatas/lib/exe/fetch.php?id=tanszek%3Aoktatas%3 Aszamitogepes_gyartasiranyitas%3Aszamitogepes_gyartasiranyitas& cache= cache&media=tanszek:oktatas:szamitogepes_gyartasiranyitas:sinuutr. pdf
[7]
2014.03.05
Rogers Cadenhead – Tanuljuk meg a JAVA programozási nyelvet 9. olda
2014.03.25
[8]
http://hu.wikipedia.org/wiki/Eclipse
2014.04.25
[9]
http://cncsimulator.info
2014.04.25
60
Ábrajegyzék
Ábrajegyzék Sorszám
Forrás
Dátum
1
http://hu.wikipedia.org/wiki/F%C3%A1jl:Csucseszterga01.jpg
2014.02.22
2
http://hu.wikipedia.org/wiki/F%C3%A1jl:Francis_Runner_InWorkshop_300.jpg
2014.02.22
3
http://www.ronmack.com.au/products/metal-work/by-application/cncmachinery/cnc-lathes/goodway-cnc-vertical-lathe-gv1200-gv1600.aspx
4
2014.02.28
http://www.directindustry.com/prod/imt-intermato/4-axis-cnc-vertical-lathes33377-465219.html
5
saját szerkesztésű ábra
6
saját szerkesztésű ábra
7
Tóth Tibor - TERMELÉSI RENDSZEREK ÉS FOLYAMATOK 319.oldal 11.7 ábra
8
saját képernyőkép
9
http://cncsimulator.info
10
saját szerkesztésű ábra
11
saját képernyőkép
12
saját szerkesztésű ábra
13
saját képernyőkép
14
saját szerkesztésű ábra
15
saját szerkesztésű ábra
16
saját szerkesztésű ábra
17
saját képernyőkép
18
saját képernyőkép
19
saját képernyőkép
20
saját képernyőkép
21
saját képernyőkép
22
saját szerkesztésű ábra
23
saját képernyőkép
24
saját képernyőkép
25
saját képernyőkép
26
saját szerkesztésű ábra
27
saját képernyőkép
28
saját képernyőkép
29
saját képernyőkép
30
saját képernyőkép
31
saját képernyőkép
32
saját képernyőkép
33
saját képernyőkép
2014.02.28
2014.03.05
2014.03.05
61
Ábrajegyzék
34
saját képernyőkép
35
saját szerkesztésű ábra
36
https://www.flickr.com/photos/ajvajv/5793305774/
37
http://trade.indiamart.com/details.mp?offer=5369111867
38
saját képernyőkép
39
saját képernyőkép
40
saját képernyőkép
2014.05.01 2014.05.01
62
Táblázatjegyzék
Táblázatjegyzék Sorszám
Forrás
1
Tóth Tibor - TERMELÉSI RENDSZEREK ÉS FOLYAMATOK 341. oldal, 11.6-os táblázat
2
Tóth Tibor - TERMELÉSI RENDSZEREK ÉS FOLYAMATOK 344. oldal, 11.9-es táblázat
3
saját szerkesztésű táblázat
63
Melléklet
Melléklet I. Melléklet: CD: tartalmazza a dolgozatot elektronikus formában, illetve az általam elkészített szoftvert, és annak forráskódját.
II. Melléklet: A dolgozat 5.3.2.1-es fejezetében generált CNC program: N5 %MPF KEREK N10 G94 S100 F800 N15 G54 G40 M03 N20 G00 X860.0 Z125.0 N25 G01 X855.0 Z120.0 N30 G01 X855.0 N35 G01 Z0.2 N40 G00 X855.4 Z0.4 N45 G00 Z120.0 N50 G01 X854.2 N55 G01 Z0.2 N60 G00 X854.6 Z0.4 N65 G00 Z120.0 N70 G01 X853.4 N75 G01 Z0.2 N80 G00 X853.8 Z0.4 N85 G00 Z120.0 N90 G01 X852.6 N95 G01 Z0.2 N100 G00 X853.0 Z0.4 N105 G00 Z120.0 N110 G01 X851.8 N115 G01 Z0.2 N120 G00 X852.1999999999999 Z0.4 N125 G00 Z120.0 N130 G01 X851.0 N135 G01 Z0.2 N140 G00 X851.4 Z0.4 N145 G00 Z120.0 N150 G01 X850.0 N155 G01 Z0.2 N160 G00 X850.4 Z0.4 N165 G00 Z120.0 N170 G01 X855.0 N175 G01 Z0.2 N180 G01 X850.0 Z0.2 N185 G00 Z120.0 N190 G01 X850.0 N195 G01 Z5.2 N200 G00 X850.4 Z5.2 N205 G00 Z120.0 N210 G01 X850.0 N215 G01 Z5.2 N220 G01 X850.0 Z0.2 N225 G00 Z120.0 N230 G01 X850.0 N235 G01 Z5.200000000001283 N240 G00 X850.4 Z5.400000000001283 N245 G00 Z120.0 N250 G01 X849.2 N255 G01 Z5.84732124298199 N260 G00 X849.6 Z6.04732124298199 N265 G00 Z120.0 N270 G01 X848.4 N275 G01 Z6.438983399578409 N280 G00 X848.8 Z6.638983399578409 N285 G00 Z120.0 N290 G01 X847.6 N295 G01 Z6.9840370663350315 N300 G00 X848.0 Z7.184037066335032 N305 G00 Z120.0 N310 G01 X846.8 N315 G01 Z7.489154625553817
64
Melléklet
N320 G00 X847.1999999999999 Z7.689154625553817 N325 G00 Z120.0 N330 G01 X846.0 N335 G01 Z7.959424502502739 N340 G00 X846.4 Z8.15942450250274 N345 G00 Z120.0 N350 G01 X845.2 N355 G01 Z8.398833002295536 N360 G00 X845.6 Z8.598833002295535 N365 G00 Z120.0 N370 G01 X844.4 N375 G01 Z8.810572085963193 N380 G00 X844.8 Z9.010572085963192 N385 G00 Z120.0 N390 G01 X843.6 N395 G01 Z9.197244346143034 N400 G00 X844.0 Z9.397244346143033 N405 G00 Z120.0 N410 G01 X842.8 N415 G01 Z9.561004314667048 N420 G00 X843.1999999999999 Z9.761004314667048 N425 G00 Z120.0 N430 G01 X842.0 N435 G01 Z9.903658749243688 N440 G00 X842.4 Z10.103658749243687 N445 G00 Z120.0 N450 G01 X841.2 N455 G01 Z10.226739592883346 N460 G00 X841.6 Z10.426739592883346 N465 G00 Z120.0 N470 G01 X840.4 N475 G01 Z10.531558199788815 N480 G00 X840.8 Z10.731558199788815 N485 G00 Z120.0 N490 G01 X839.6 N495 G01 Z10.819246395863301 N500 G00 X840.0 Z11.0192463958633 N505 G00 Z120.0 N510 G01 X838.8 N515 G01 Z11.09078808346827 N520 G00 X839.1999999999999 Z11.29078808346827 N525 G00 Z120.0 N530 G01 X838.0 N535 G01 Z11.347043922869831 N540 G00 X838.4 Z11.54704392286983 N545 G00 Z120.0 N550 G01 X837.2 N555 G01 Z11.588770856854225 N560 G00 X837.6 Z11.788770856854224 N565 G00 Z120.0 N570 G01 X836.4 N575 G01 Z11.8166377348045 N580 G00 X836.8 Z12.0166377348045 N585 G00 Z120.0 N590 G01 X835.6 N595 G01 Z12.031237945061951 N600 G00 X836.0 Z12.23123794506195 N605 G00 Z120.0 N610 G01 X834.8 N615 G01 Z12.233099723479144 N620 G00 X835.1999999999999 Z12.433099723479144 N625 G00 Z120.0 N630 G01 X834.0 N635 G01 Z12.422694635951705 N640 G00 X834.4 Z12.622694635951705 N645 G00 Z120.0 N650 G01 X833.2 N655 G01 Z12.600444610600634 N660 G00 X833.6 Z12.800444610600634 N665 G00 Z120.0 N670 G01 X832.4 N675 G01 Z12.766727806642285 N680 G00 X832.8 Z12.966727806642284 N685 G00 Z120.0
65
Melléklet
N690 G01 X831.6 N695 G01 Z12.921883541387524 N700 G00 X832.0 Z13.121883541387524 N705 G00 Z120.0 N710 G01 X830.8 N715 G01 Z13.066216448029971 N720 G00 X831.1999999999999 Z13.26621644802997 N725 G00 Z120.0 N730 G01 X830.0 N735 G01 Z13.2 N740 G00 X830.4 Z13.399999999999999 N745 G00 Z120.0 N750 G01 X850.4 N755 G00 Z5.0 N760 G02 X830.0 Z13.2 I-15.708997306605568 K-9.136246633257008 N765 G00 Z120.0 N770 G01 X830.0 N775 G01 Z13.2 N780 G00 X830.4 Z13.399999999999999 N785 G00 Z120.0 N790 G01 X829.2 N795 G01 Z13.358333333333333 N800 G00 X829.6 Z13.558333333333332 N805 G00 Z120.0 N810 G01 X828.4 N815 G01 Z13.516666666666666 N820 G00 X828.8 Z13.716666666666665 N825 G00 Z120.0 N830 G01 X827.6 N835 G01 Z13.675 N840 G00 X828.0 Z13.874999999999998 N845 G00 Z120.0 N850 G01 X826.8 N855 G01 Z13.833333333333332 N860 G00 X827.1999999999999 Z14.033333333333331 N865 G00 Z120.0 N870 G01 X826.0 N875 G01 Z13.991666666666667 N880 G00 X826.4 Z14.191666666666666 N885 G00 Z120.0 N890 G01 X825.2 N895 G01 Z14.15 N900 G00 X825.6 Z14.349999999999998 N905 G00 Z120.0 N910 G01 X824.4 N915 G01 Z14.308333333333334 N920 G00 X824.8 Z14.508333333333333 N925 G00 Z120.0 N930 G01 X823.6 N935 G01 Z14.466666666666667 N940 G00 X824.0 Z14.666666666666666 N945 G00 Z120.0 N950 G01 X822.8 N955 G01 Z14.625 N960 G00 X823.1999999999999 Z14.825 N965 G00 Z120.0 N970 G01 X822.0 N975 G01 Z14.783333333333333 N980 G00 X822.4 Z14.983333333333333 N985 G00 Z120.0 N990 G01 X821.2 N995 G01 Z14.941666666666666 N1000 G00 X821.6 Z15.141666666666666 N1005 G00 Z120.0 N1010 G01 X820.4 N1015 G01 Z15.1 N1020 G00 X820.8 Z15.299999999999999 N1025 G00 Z120.0 N1030 G01 X819.6 N1035 G01 Z15.258333333333333 N1040 G00 X820.0 Z15.458333333333332 N1045 G00 Z120.0 N1050 G01 X818.8 N1055 G01 Z15.416666666666666
66
Melléklet
N1060 G00 X819.1999999999999 Z15.616666666666665 N1065 G00 Z120.0 N1070 G01 X818.0 N1075 G01 Z15.575 N1080 G00 X818.4 Z15.774999999999999 N1085 G00 Z120.0 N1090 G01 X817.2 N1095 G01 Z15.733333333333333 N1100 G00 X817.6 Z15.933333333333332 N1105 G00 Z120.0 N1110 G01 X816.4 N1115 G01 Z15.891666666666666 N1120 G00 X816.8 Z16.091666666666665 N1125 G00 Z120.0 N1130 G01 X815.6 N1135 G01 Z16.05 N1140 G00 X816.0 Z16.25 N1145 G00 Z120.0 N1150 G01 X814.8 N1155 G01 Z16.208333333333332 N1160 G00 X815.1999999999999 Z16.40833333333333 N1165 G00 Z120.0 N1170 G01 X814.0 N1175 G01 Z16.366666666666667 N1180 G00 X814.4 Z16.566666666666666 N1185 G00 Z120.0 N1190 G01 X813.2 N1195 G01 Z16.525 N1200 G00 X813.6 Z16.724999999999998 N1205 G00 Z120.0 N1210 G01 X812.4 N1215 G01 Z16.683333333333334 N1220 G00 X812.8 Z16.883333333333333 N1225 G00 Z120.0 N1230 G01 X811.6 N1235 G01 Z16.841666666666665 N1240 G00 X812.0 Z17.041666666666664 N1245 G00 Z120.0 N1250 G01 X810.8 N1255 G01 Z17.0 N1260 G00 X811.1999999999999 Z17.2 N1265 G00 Z120.0 N1270 G01 X810.0 N1275 G01 Z17.2 N1280 G00 X810.4 Z17.2 N1285 G00 Z120.0 N1290 G01 X810.0 N1295 G01 Z17.2 N1300 G01 X830.0 Z13.2 N1305 G00 Z120.0 N1310 G01 X810.0 N1315 G01 Z17.200000000000134 N1320 G00 X810.4 Z17.400000000000134 N1325 G00 Z120.0 N1330 G01 X809.2 N1335 G01 Z17.39986259411079 N1340 G00 X809.6 Z17.59986259411079 N1345 G00 Z120.0 N1350 G01 X808.4 N1355 G01 Z17.611095778447762 N1360 G00 X808.8 Z17.81109577844776 N1365 G00 Z120.0 N1370 G01 X807.6 N1375 G01 Z17.834114716431642 N1380 G00 X808.0 Z18.03411471643164 N1385 G00 Z120.0 N1390 G01 X806.8 N1395 G01 Z18.069379982383182 N1400 G00 X807.1999999999999 Z18.26937998238318 N1405 G00 Z120.0 N1410 G01 X806.0 N1415 G01 Z18.317403849009715 N1420 G00 X806.4 Z18.517403849009714 N1425 G00 Z120.0
67
Melléklet
N1430 G01 X805.2 N1435 G01 Z18.57875781209356 N1440 G00 X805.6 Z18.77875781209356 N1445 G00 Z120.0 N1450 G01 X804.4 N1455 G01 Z18.854081660244773 N1460 G00 X804.8 Z19.054081660244773 N1465 G00 Z120.0 N1470 G01 X803.6 N1475 G01 Z19.14409449292696 N1480 G00 X804.0 Z19.34409449292696 N1485 G00 Z120.0 N1490 G01 X802.8 N1495 G01 Z19.44960822149614 N1500 G00 X803.1999999999999 Z19.649608221496138 N1505 G00 Z120.0 N1510 G01 X802.0 N1515 G01 Z19.771544271272585 N1520 G00 X802.4 Z19.971544271272585 N1525 G00 Z120.0 N1530 G01 X801.2 N1535 G01 Z20.110954463027223 N1540 G00 X801.6 Z20.310954463027223 N1545 G00 Z120.0 N1550 G01 X800.4 N1555 G01 Z20.46904742771451 N1560 G00 X800.8 Z20.66904742771451 N1565 G00 Z120.0 N1570 G01 X799.6 N1575 G01 Z20.847222461161653 N1580 G00 X800.0 Z21.047222461161653 N1585 G00 Z120.0 N1590 G01 X798.8 N1595 G01 Z21.247113556349053 N1600 G00 X799.1999999999999 Z21.447113556349052 N1605 G00 Z120.0 N1610 G01 X798.0 N1615 G01 Z21.670647630981296 N1620 G00 X798.4 Z21.870647630981296 N1625 G00 Z120.0 N1630 G01 X797.2 N1635 G01 Z22.1201229933449 N1640 G00 X797.6 Z22.3201229933449 N1645 G00 Z120.0 N1650 G01 X796.4 N1655 G01 Z22.598317394960446 N1660 G00 X796.8 Z22.798317394960446 N1665 G00 Z120.0 N1670 G01 X795.6 N1675 G01 Z23.108640606863595 N1680 G00 X796.0 Z23.308640606863595 N1685 G00 Z120.0 N1690 G01 X794.8 N1695 G01 Z23.655356300677024 N1700 G00 X795.1999999999999 Z23.855356300677023 N1705 G00 Z120.0 N1710 G01 X794.0 N1715 G01 Z24.243916213543553 N1720 G00 X794.4 Z24.443916213543552 N1725 G00 Z120.0 N1730 G01 X793.2 N1735 G01 Z24.88148521355856 N1740 G00 X793.6 Z25.081485213558558 N1745 G00 Z120.0 N1750 G01 X792.4 N1755 G01 Z25.577810749494315 N1760 G00 X792.8 Z25.777810749494314 N1765 G00 Z120.0 N1770 G01 X791.6 N1775 G01 Z26.34676188377647 N1780 G00 X792.0 Z26.54676188377647 N1785 G00 Z120.0 N1790 G01 X790.8 N1795 G01 Z27.20930429617415
68
Melléklet
N1800 G00 X791.1999999999999 Z27.40930429617415 N1805 G00 Z120.0 N1810 G01 X790.0 N1815 G01 Z28.2 N1820 G00 X790.4 Z28.4 N1825 G00 Z120.0 N1830 G01 X810.0 N1835 G00 Z17.2 N1840 G03 X790.4 Z28.0 I8.738796340541569 K17.789814855037772 N1845 G01 X790.0 Z28.2 N1850 G00 Z120.0 N1855 G01 X790.0 N1860 G01 Z28.200000000000003 N1865 G00 X790.4 Z28.400000000000002 N1870 G00 Z120.0 N1875 G01 X789.2 N1880 G01 Z37.333333333333336 N1885 G00 X789.6 Z37.53333333333334 N1890 G00 Z120.0 N1895 G01 X788.4 N1900 G01 Z46.46666666666667 N1905 G00 X788.8 Z46.66666666666667 N1910 G00 Z120.0 N1915 G01 X787.6 N1920 G01 Z55.6 N1925 G00 X788.0 Z55.800000000000004 N1930 G00 Z120.0 N1935 G01 X786.8 N1940 G01 Z64.73333333333333 N1945 G00 X787.1999999999999 Z64.93333333333334 N1950 G00 Z120.0 N1955 G01 X786.0 N1960 G01 Z73.86666666666667 N1965 G00 X786.4 Z74.06666666666668 N1970 G00 Z120.0 N1975 G01 X785.2 N1980 G01 Z83.0 N1985 G00 X785.6 Z83.2 N1990 G00 Z120.0 N1995 G01 X784.5 N2000 G01 Z83.2 N2005 G00 X784.9 Z83.2 N2010 G00 Z120.0 N2015 G01 X784.5 N2020 G01 Z83.2 N2025 G01 X790.0 Z28.2 N2030 G00 Z120.0 N2035 G01 X784.5 N2040 G01 Z83.2 N2045 G00 X784.9 Z83.4 N2050 G00 Z120.0 N2055 G01 X783.7 N2060 G01 Z87.96000000000001 N2065 G00 X784.1 Z88.16000000000001 N2070 G00 Z120.0 N2075 G01 X782.9 N2080 G01 Z92.72 N2085 G00 X783.3 Z92.92 N2090 G00 Z120.0 N2095 G01 X782.1 N2100 G01 Z97.48 N2105 G00 X782.5 Z97.68 N2110 G00 Z120.0 N2115 G01 X781.3 N2120 G01 Z102.24 N2125 G00 X781.6999999999999 Z102.44 N2130 G00 Z120.0 N2135 G01 X780.5 N2140 G01 Z107.0 N2145 G00 X780.9 Z107.2 N2150 G00 Z120.0 N2155 G01 X779.7 N2160 G01 Z107.2 N2165 G00 X780.1 Z107.2
69
Melléklet
N2170 G00 Z120.0 N2175 G01 X779.7 N2180 G01 Z107.2 N2185 G01 X784.5 Z83.2 N2190 G00 Z120.0 N2195 G01 X779.7 N2200 G01 Z107.2 N2205 G00 X780.1 Z107.4 N2210 G00 Z120.0 N2215 G01 X778.9000000000001 N2220 G01 Z107.62222222222222 N2225 G00 X779.3000000000001 Z107.82222222222222 N2230 G00 Z120.0 N2235 G01 X778.1 N2240 G01 Z108.04444444444445 N2245 G00 X778.5 Z108.24444444444445 N2250 G00 Z120.0 N2255 G01 X777.3000000000001 N2260 G01 Z108.46666666666667 N2265 G00 X777.7 Z108.66666666666667 N2270 G00 Z120.0 N2275 G01 X776.5 N2280 G01 Z108.88888888888889 N2285 G00 X776.9 Z109.08888888888889 N2290 G00 Z120.0 N2295 G01 X775.7 N2300 G01 Z109.31111111111112 N2305 G00 X776.1 Z109.51111111111112 N2310 G00 Z120.0 N2315 G01 X774.9000000000001 N2320 G01 Z109.73333333333333 N2325 G00 X775.3000000000001 Z109.93333333333334 N2330 G00 Z120.0 N2335 G01 X774.1 N2340 G01 Z110.15555555555555 N2345 G00 X774.5 Z110.35555555555555 N2350 G00 Z120.0 N2355 G01 X773.3000000000001 N2360 G01 Z110.57777777777778 N2365 G00 X773.7 Z110.77777777777779 N2370 G00 Z120.0 N2375 G01 X772.5 N2380 G01 Z111.0 N2385 G00 X772.9 Z111.2 N2390 G00 Z120.0 N2395 G01 X771.7 N2400 G01 Z111.2 N2405 G00 X772.1 Z111.2 N2410 G00 Z120.0 N2415 G01 X771.7 N2420 G01 Z111.2 N2425 G01 X779.7 Z107.2 N2430 G00 Z120.0 N2435 G01 X771.7 N2440 G01 Z111.2 N2445 G00 X772.1 Z111.4 N2450 G00 Z120.0 N2455 G01 X770.9000000000001 N2460 G01 Z111.2 N2465 G00 X771.3000000000001 Z111.4 N2470 G00 Z120.0 N2475 G01 X770.1 N2480 G01 Z111.2 N2485 G00 X770.5 Z111.4 N2490 G00 Z120.0 N2495 G01 X769.3000000000001 N2500 G01 Z111.2 N2505 G00 X769.7 Z111.4 N2510 G00 Z120.0 N2515 G01 X768.5 N2520 G01 Z111.2 N2525 G00 X768.9 Z111.4 N2530 G00 Z120.0 N2535 G01 X767.7
70
Melléklet
N2540 G01 Z111.2 N2545 G00 X768.1 Z111.4 N2550 G00 Z120.0 N2555 G01 X766.9000000000001 N2560 G01 Z111.2 N2565 G00 X767.3000000000001 Z111.4 N2570 G00 Z120.0 N2575 G01 X766.1 N2580 G01 Z111.2 N2585 G00 X766.5 Z111.4 N2590 G00 Z120.0 N2595 G01 X765.3000000000001 N2600 G01 Z111.2 N2605 G00 X765.7 Z111.4 N2610 G00 Z120.0 N2615 G01 X764.5 N2620 G01 Z111.2 N2625 G00 X764.9 Z111.4 N2630 G00 Z120.0 N2635 G01 X763.7 N2640 G01 Z111.2 N2645 G00 X764.1 Z111.4 N2650 G00 Z120.0 N2655 G01 X762.9000000000001 N2660 G01 Z111.2 N2665 G00 X763.3000000000001 Z111.4 N2670 G00 Z120.0 N2675 G01 X762.1 N2680 G01 Z111.2 N2685 G00 X762.5 Z111.4 N2690 G00 Z120.0 N2695 G01 X761.3000000000001 N2700 G01 Z111.2 N2705 G00 X761.7 Z111.4 N2710 G00 Z120.0 N2715 G01 X760.5 N2720 G01 Z111.2 N2725 G00 X760.9 Z111.4 N2730 G00 Z120.0 N2735 G01 X759.7 N2740 G01 Z111.2 N2745 G00 X760.1 Z111.4 N2750 G00 Z120.0 N2755 G01 X758.9000000000001 N2760 G01 Z111.2 N2765 G00 X759.3000000000001 Z111.4 N2770 G00 Z120.0 N2775 G01 X758.1 N2780 G01 Z111.2 N2785 G00 X758.5 Z111.4 N2790 G00 Z120.0 N2795 G01 X757.3000000000001 N2800 G01 Z111.2 N2805 G00 X757.7 Z111.4 N2810 G00 Z120.0 N2815 G01 X756.5 N2820 G01 Z111.2 N2825 G00 X756.9 Z111.4 N2830 G00 Z120.0 N2835 G01 X755.7 N2840 G01 Z111.2 N2845 G00 X756.1 Z111.4 N2850 G00 Z120.0 N2855 G01 X754.9000000000001 N2860 G01 Z111.2 N2865 G00 X755.3000000000001 Z111.4 N2870 G00 Z120.0 N2875 G01 X754.1 N2880 G01 Z111.2 N2885 G00 X754.5 Z111.4 N2890 G00 Z120.0 N2895 G01 X753.3000000000001 N2900 G01 Z111.2 N2905 G00 X753.7 Z111.4
71
Melléklet
N2910 G00 Z120.0 N2915 G01 X752.5 N2920 G01 Z111.2 N2925 G00 X752.9 Z111.4 N2930 G00 Z120.0 N2935 G01 X751.7 N2940 G01 Z111.2 N2945 G00 X752.1 Z111.4 N2950 G00 Z120.0 N2955 G01 X750.9000000000001 N2960 G01 Z111.2 N2965 G00 X751.3000000000001 Z111.4 N2970 G00 Z120.0 N2975 G01 X750.1 N2980 G01 Z111.2 N2985 G00 X750.5 Z111.4 N2990 G00 Z120.0 N2995 G01 X749.3000000000001 N3000 G01 Z111.2 N3005 G00 X749.7 Z111.4 N3010 G00 Z120.0 N3015 G01 X748.5 N3020 G01 Z111.2 N3025 G00 X748.9 Z111.4 N3030 G00 Z120.0 N3035 G01 X747.7 N3040 G01 Z111.2 N3045 G00 X748.1 Z111.4 N3050 G00 Z120.0 N3055 G01 X746.9000000000001 N3060 G01 Z111.2 N3065 G00 X747.3000000000001 Z111.4 N3070 G00 Z120.0 N3075 G01 X746.1 N3080 G01 Z111.2 N3085 G00 X746.5 Z111.4 N3090 G00 Z120.0 N3095 G01 X745.3000000000001 N3100 G01 Z111.2 N3105 G00 X745.7 Z111.4 N3110 G00 Z120.0 N3115 G01 X744.5 N3120 G01 Z111.2 N3125 G00 X744.9 Z111.4 N3130 G00 Z120.0 N3135 G01 X743.7 N3140 G01 Z111.2 N3145 G00 X744.1 Z111.4 N3150 G00 Z120.0 N3155 G01 X742.9000000000001 N3160 G01 Z111.2 N3165 G00 X743.3000000000001 Z111.4 N3170 G00 Z120.0 N3175 G01 X742.1 N3180 G01 Z111.2 N3185 G00 X742.5 Z111.4 N3190 G00 Z120.0 N3195 G01 X741.3000000000001 N3200 G01 Z111.2 N3205 G00 X741.7 Z111.4 N3210 G00 Z120.0 N3215 G01 X740.5 N3220 G01 Z111.2 N3225 G00 X740.9 Z111.4 N3230 G00 Z120.0 N3235 G01 X739.7 N3240 G01 Z111.2 N3245 G00 X740.1 Z111.4 N3250 G00 Z120.0 N3255 G01 X738.9000000000001 N3260 G01 Z111.2 N3265 G00 X739.3000000000001 Z111.4 N3270 G00 Z120.0 N3275 G01 X738.1
72
Melléklet
N3280 G01 Z111.2 N3285 G00 X738.5 Z111.4 N3290 G00 Z120.0 N3295 G01 X737.3000000000001 N3300 G01 Z111.2 N3305 G00 X737.7 Z111.4 N3310 G00 Z120.0 N3315 G01 X736.5 N3320 G01 Z111.2 N3325 G00 X736.9 Z111.4 N3330 G00 Z120.0 N3335 G01 X735.7 N3340 G01 Z111.2 N3345 G00 X736.1 Z111.4 N3350 G00 Z120.0 N3355 G01 X734.9000000000001 N3360 G01 Z111.2 N3365 G00 X735.3000000000001 Z111.4 N3370 G00 Z120.0 N3375 G01 X734.1 N3380 G01 Z111.2 N3385 G00 X734.5 Z111.4 N3390 G00 Z120.0 N3395 G01 X733.3000000000001 N3400 G01 Z111.2 N3405 G00 X733.7 Z111.4 N3410 G00 Z120.0 N3415 G01 X732.5 N3420 G01 Z111.2 N3425 G00 X732.9 Z111.4 N3430 G00 Z120.0 N3435 G01 X731.7 N3440 G01 Z111.2 N3445 G00 X732.1 Z111.4 N3450 G00 Z120.0 N3455 G01 X730.9000000000001 N3460 G01 Z111.2 N3465 G00 X731.3000000000001 Z111.4 N3470 G00 Z120.0 N3475 G01 X730.1 N3480 G01 Z111.2 N3485 G00 X730.5 Z111.4 N3490 G00 Z120.0 N3495 G01 X729.3000000000001 N3500 G01 Z111.2 N3505 G00 X729.7 Z111.4 N3510 G00 Z120.0 N3515 G01 X728.5 N3520 G01 Z111.2 N3525 G00 X728.9 Z111.4 N3530 G00 Z120.0 N3535 G01 X727.7 N3540 G01 Z111.2 N3545 G00 X728.1 Z111.4 N3550 G00 Z120.0 N3555 G01 X726.9000000000001 N3560 G01 Z111.2 N3565 G00 X727.3000000000001 Z111.4 N3570 G00 Z120.0 N3575 G01 X726.1 N3580 G01 Z111.2 N3585 G00 X726.5 Z111.4 N3590 G00 Z120.0 N3595 G01 X725.3000000000001 N3600 G01 Z111.2 N3605 G00 X725.7 Z111.4 N3610 G00 Z120.0 N3615 G01 X724.5 N3620 G01 Z111.2 N3625 G00 X724.9 Z111.4 N3630 G00 Z120.0 N3635 G01 X723.7 N3640 G01 Z111.2 N3645 G00 X724.1 Z111.4
73
Melléklet
N3650 G00 Z120.0 N3655 G01 X722.9000000000001 N3660 G01 Z111.2 N3665 G00 X723.3000000000001 Z111.4 N3670 G00 Z120.0 N3675 G01 X722.1 N3680 G01 Z111.2 N3685 G00 X722.5 Z111.4 N3690 G00 Z120.0 N3695 G01 X721.3000000000001 N3700 G01 Z111.2 N3705 G00 X721.7 Z111.4 N3710 G00 Z120.0 N3715 G01 X720.5 N3720 G01 Z111.2 N3725 G00 X720.9 Z111.4 N3730 G00 Z120.0 N3735 G01 X719.7 N3740 G01 Z111.2 N3745 G00 X720.1 Z111.4 N3750 G00 Z120.0 N3755 G01 X718.9000000000001 N3760 G01 Z111.2 N3765 G00 X719.3000000000001 Z111.4 N3770 G00 Z120.0 N3775 G01 X718.1 N3780 G01 Z111.2 N3785 G00 X718.5 Z111.4 N3790 G00 Z120.0 N3795 G01 X717.3000000000001 N3800 G01 Z111.2 N3805 G00 X717.7 Z111.4 N3810 G00 Z120.0 N3815 G01 X716.5 N3820 G01 Z111.2 N3825 G00 X716.9 Z111.4 N3830 G00 Z120.0 N3835 G01 X715.7 N3840 G01 Z111.2 N3845 G00 X716.1 Z111.4 N3850 G00 Z120.0 N3855 G01 X714.9000000000001 N3860 G01 Z111.2 N3865 G00 X715.3000000000001 Z111.4 N3870 G00 Z120.0 N3875 G01 X714.1 N3880 G01 Z111.2 N3885 G00 X714.5 Z111.4 N3890 G00 Z120.0 N3895 G01 X713.3000000000001 N3900 G01 Z111.2 N3905 G00 X713.7 Z111.4 N3910 G00 Z120.0 N3915 G01 X712.5 N3920 G01 Z111.2 N3925 G00 X712.9 Z111.4 N3930 G00 Z120.0 N3935 G01 X711.7 N3940 G01 Z111.2 N3945 G00 X712.1 Z111.4 N3950 G00 Z120.0 N3955 G01 X710.9000000000001 N3960 G01 Z111.2 N3965 G00 X711.3000000000001 Z111.4 N3970 G00 Z120.0 N3975 G01 X710.1 N3980 G01 Z111.2 N3985 G00 X710.5 Z111.4 N3990 G00 Z120.0 N3995 G01 X709.3000000000001 N4000 G01 Z111.2 N4005 G00 X709.7 Z111.4 N4010 G00 Z120.0 N4015 G01 X708.5
74
Melléklet
N4020 G01 Z111.2 N4025 G00 X708.9 Z111.4 N4030 G00 Z120.0 N4035 G01 X707.7 N4040 G01 Z111.2 N4045 G00 X708.1 Z111.4 N4050 G00 Z120.0 N4055 G01 X706.9000000000001 N4060 G01 Z111.2 N4065 G00 X707.3000000000001 Z111.4 N4070 G00 Z120.0 N4075 G01 X706.1 N4080 G01 Z111.2 N4085 G00 X706.5 Z111.4 N4090 G00 Z120.0 N4095 G01 X705.3000000000001 N4100 G01 Z111.2 N4105 G00 X705.7 Z111.4 N4110 G00 Z120.0 N4115 G01 X704.5 N4120 G01 Z111.2 N4125 G00 X704.9 Z111.4 N4130 G00 Z120.0 N4135 G01 X703.7 N4140 G01 Z111.2 N4145 G00 X704.1 Z111.4 N4150 G00 Z120.0 N4155 G01 X702.9000000000001 N4160 G01 Z111.2 N4165 G00 X703.3000000000001 Z111.4 N4170 G00 Z120.0 N4175 G01 X702.1 N4180 G01 Z111.2 N4185 G00 X702.5 Z111.4 N4190 G00 Z120.0 N4195 G01 X701.3000000000001 N4200 G01 Z111.2 N4205 G00 X701.7 Z111.4 N4210 G00 Z120.0 N4215 G01 X700.5 N4220 G01 Z111.2 N4225 G00 X700.9 Z111.4 N4230 G00 Z120.0 N4235 G01 X699.7 N4240 G01 Z111.2 N4245 G00 X700.1 Z111.4 N4250 G00 Z120.0 N4255 G01 X698.9000000000001 N4260 G01 Z111.2 N4265 G00 X699.3000000000001 Z111.4 N4270 G00 Z120.0 N4275 G01 X698.1 N4280 G01 Z111.2 N4285 G00 X698.5 Z111.4 N4290 G00 Z120.0 N4295 G01 X697.3000000000001 N4300 G01 Z111.2 N4305 G00 X697.7 Z111.4 N4310 G00 Z120.0 N4315 G01 X696.5 N4320 G01 Z111.2 N4325 G00 X696.9 Z111.4 N4330 G00 Z120.0 N4335 G01 X695.7 N4340 G01 Z111.2 N4345 G00 X696.1 Z111.4 N4350 G00 Z120.0 N4355 G01 X695.0 N4360 G01 Z111.2 N4365 G00 X695.4 Z111.4 N4370 G00 Z120.0 N4375 G01 X771.7 N4380 G01 Z111.2 N4385 G01 X695.0 Z111.2
75
Melléklet
N4390 G00 Z120.0 N4395 G00 X855.4 N4400 G00 Z0.2 N4405 G01 X855.0 Z0.0 N4410 G01 X850.0 Z0.0 N4415 G01 X850.0 Z5.0 N4420 G02 X830.0 Z13.0 I-15.508997306605579 K-9.136246633257008 N4425 G01 X810.0 Z17.0 N4430 G03 X790.0 Z28.0 I8.738796340541569 K17.98981485503777 N4435 G01 X784.5 Z83.0 N4440 G01 X779.7 Z107.0 N4445 G01 X771.7 Z111.0 N4450 G01 X695.0 Z111.0 N4455 G00 Z120.0 N4460 M02
76