BAB 2 TINJAUAN PUSTAKA Pada bab 2 ini akan dilakukan beberapa tinjauan pustaka dari beberapa hasil penelitian yang telah dipublikasikan. Tinjauan pustaka ini bertujuan untuk melihat sejauh mana aplikasi Inkscape pada mesin CNC diteliti. Hasil tinjauan pustaka ini akan digunakan sebagai komparasi dengan hasil simulasi yang nantinya dibuat. Tinjauan pustaka ini dibagi menjadi beberapa bagian: Inkscape, G-code, M-code, Gcodetools pada Inkscape, pemrograman AWK. Pengembangan Geometris dari lingkaran Transisi dan Desain dan Pengaturan Mesin CNC. Setiap tinjauan pustaka terdiri dari metodologi penelitian dan hasil penelitian. 2.1 Inkscape Inkscape adalah software open source untuk membuat gambar grafik dengan extension SVG (Scalable Vector Graphic). Lebih dari sekedar editor teks vector Inkscape memberikan penampilan WYSIWYG untuk manipulasi gambar vector, yang bertujuan untuk pengguna dapat mengekspresikan dirinya secara bebas. Meskipun software ini gratis tetapi tetap memiliki kemampuan yang sama pada software komersial. Inkscape menyediakan sebuah tampilan untuk secara langsung dapat memanipulasi gambar extension SVG, hal ini memungkinkan seseorang untuk memastikan bahwa kode sesuai dengan standar W3C (World Wide Web Consortium) (Joshua Facemyer, 2009). 2.1.1 Tampilan Inkscape Tampilan Inkscape dirancang untuk membuat memanipulasi gambar sederhana, harmonis dan kontekstual. 3 dan 4 Gambar 2.1 Tampilan Inkscape (Joshua Facemyer, 2009) Pada gambar 2.1 diperlihatkan tampilan Inkscape yang memiliki sembilan bidang utama pada Inkscape yaitu: 1. the Menu 2. the Commands Bar 3. the Snap Controls Bar 4. the Rulers, Guides and Grids 5. the Tool Controls Bar 6. the Toolbox 7. the Canvas 8. the Color Palette 9. the Status Bar 5 2.1.2 SVG SVG adalah singkatan dari (Scalable Vector Graphics) dan merupakan bentuk file baru dari web graphic yang telah direkomendasikan oleh W3C yang menampilkan grafik serta mendeskripsikan gambar dua dimensi dalam pengembangan web yang berbasis XML (Extensible Markup Language) (Widiatmoko & Wahid, 2006). Keuntungan dari SVG adalah sama seperti gambar vector, memberikan kualitas gambar yag halus, tajam, gambar kualitas tinggi dengan kemampuan untuk mengubah ke segala ukuran tanpa mengurangi kualitas, kemampuan yang tidak dimiliki gambar bitmap (ryan lerch, 2008). 2.2 G Codes G Codes telah digunakan secara luas di bagian pemrograman CNC selama bertahun-tahun, dan cukup presisi sebagai mesin geometri dasar, sebuah keterbatasan mendasar dari mesin CNC saat ini adalah bahwa interpolasi posisi alat yang terpisah sebagian besar linear dan melingkar, tetapi untuk segmen parabola jarang digunakan. Selain itu titik ‘referensi’ ini sesuai dengan waktu sampling path alat pada kecepatan tetap (feederate) sepanjang masing-masing segmen. Ini berarti bahwa bentuk tidak akan kompleks, dan secara cermat dirancang dalam sistem CAD (Computer-Aided design), yang tentunya dibutuhkan subject pada perkiraan agak kasar dan dataintensif sebelum mereka dimesinkan, dan variasi feedrate (yang mungkin diperlukan untuk mengontrol tekanan pemotongan, akurasi sebagian atau seluruh permukaan) (Koren, 1983). Dalam bahasa pemrograman G Codes, perintah mesin terdiri dari karakter dan nilai numeric dibangun dalam kata-kata dan blok. Terdiri dari alamat karakter diikuti dengan nilai numeric, dan blok adalah kumpulan katakata pada satu baris. Bagian dari program berisi urutan blok yang menggambarkan secara detail gerakan dan fungsi tambahan mesin CNC dan harus menjalankan sesuai urutan untuk membuat bagian tertentu. Bagian program sering dihasilkan otomatis oleh sistem CAD/CAM (Computer-Aided 6 Manufacturing), setelah bagian geometri telah sepenuhnya didefinisikan. (Farouki, Manjunathaiah, Yuan, 1997). Setiap bagian dari program berisi sejumlah kode yang berbeda, yang terpenting adalah kumpulan G dan M-code. Pada dasarnya bentuk bahasa ini adalah bahasa dasar yang digunakan untuk menggambarkan bagaimana komponen yang akan diproduksi, pada urutan pelaksanaan tugas mesin, ketika untuk mengubah alat, seberapa jauh untuk memotong bahan dan lain-lain (Denford). 2.2.1 Fungsi Feed Gerakan alat dengan kecepatan yang ditentukan untuk pemotongan di sebut feedrate. Feedrate didefinisikan menggunakan huruf F diikuti oleh nilai angka (Denford, 2014). 2.2.2 Fungsi Spindle Speed Kecepatan rotasi dari alat ini sehubungan dengan benda yang dipotong disebut spindle atau kecepatan memotong. Kecepatan spindle didefinisikan menggunakan huruf S diikuti oleh nilai angka menandakan poros RPM (revolutions per minute) (Denford, 2014). 2.2.3 Pengenalan G Codes G Codes adalah kode G yang digunakan untuk menentukan gerakan mesin atau bisa disebut gerakan geometri fungsinya untuk gerakan lurus, pemotongan lurus dan operasi pengeboran. G codes biasanya diprogram pada awal baris program. G codes didefinisikan huruf G dan diikuti dua digit angka sebagai bisa dilihat pada gambar 2.2 (Denford, 2014). Gambar 2.2 Bentuk G-code (Denford) 7 2.2.4 Daftar G Codes Gambar 2.3 Daftar G Code dan Fungsinya (Denford, 2014) 8 2.2.5 G Codes - G00 (Rapid Positioning/Traverse) Kode G00 mengeksekusi gerakan non cutting pada feedrate cepat ke posisi koordinasi tertentu dalam bidang kerja (beroperasi di bawah koordinat gerakan) yang diprogram. Bisa di lihat bentuk perintah G00 pada gambar 2.4 (Denford, 2014). Gambar 2.4 Bentuk G00 (Denford, 2014) Pada gambar 2.4 bisa dilihat instruksi untuk melakukan peritah G00, sumbu X, Y dan Z bergerak bersamaan dengan feedrate maksimal, perintah G00 telah menginstruksikan X dan Y untuk mulai bergerak, dengan feedrate maksimal. Ketika kedua sisi mulai bergerak alat akan bergerak untuk melintasi diagonal, gabungan dua sumbu yang akan bergerak bersama-sama. Ketika salah satu sumbu mencapai koordinat finishing yang lain akan terus bergerak menyelesaikan koordinatnya sendiri (Denford, 2014). sampai 9 Gambar 2.5 Pergerakan G00 (Denford) Gambar 2.5 adalah instruksi untuk melakukan peritah G00, tiga slide (sumbu X, Y dan Z) bergerak bersamaan dengan feedrate maksimal. Pada contoh diatas perintah G00 telah menginstruksikan X dan Y untuk mulai bergerak dengan feedrate maksimal, ketika kedua sisi mulai bergerak alat akan bergerak untuk melintasi diagonal, gabungan gerakan dua sumbu yang bergerak bersama-sama, ketika salah satu sumbu mencapai koordinat finishing, yang lain akan terus bergerak sampai menyelesaikan koordinatnya sendiri (Denford, 2014). 2.2.6 G Codes – G01 (Linear Interpolation) Kode G01 mengeksekusi gerakan memotong mengikuti garis lurus dengan memberikan nilai federate. Bisa dilihat bentuk perintah G01 pada gambar 2.6 (Denford, 2014). 10 Gambar 2.6 Bentuk Penulisan G01 (Denford) Nilai feedrate diprogram ke dalam G01, perintah G01 adalah feedrate untuk semua sumbu jalur pemotongan, bukan untuk feedrate pada setiap sisi sumbu yang bergerak sejajar dengan arah sumbu X, Y atau Z. Pada gerakan ketiga sumbu tersebut alat ini akan bergerak dalam garis lurus diagonal (Denford, 2014). Gambar 2.7 Gerakan G01 (Denford) Gambar 2.7 merupakan contoh pergerakan program G01 dengan contoh G-code program G01 X100 Y50 F150. 11 2.2.7 G Codes - G02 dan G03 (Linear Interpolation) Kode G02 mengeksekusi gerakan memotong mengikuti arah melingkar searah jarum jam, sedangkan kode G03 mengeksekusi gerakan memotong yang berlawanan dengan arah jarum jam, tetap pada koordinat yang sama. Bisa di lihat pada gambar 2.8 (Denford, 2014). Gambar 2.8 Sistem Koordinat G02 dan G03 (Denford, 2014) 2.2.8 G Codes – G20 dan G21 Kode G21 adalah pengontrol mesin yang dapat diprogram untuk memberikan nilai masukan yang ditetapkan dalam satuan inches atau millimeter (Denford, 2014). 2.3 M Codes M Codes adalah kode yang digunakan oleh mesin CNC untuk sinyal perintah on/off pada mesin, contoh fungsinya M05 - spindle berhenti dan lainlain untuk menghentikan pergerakan mesin. M codes biasanya diprogram pada awal blok. M Codes di definisikan huruf M dan dua digit, bisa dilihat pada gambar 2.9 (Denford, 2014). Gambar 2.9 Bentuk M Codes (Denford, 2014) 12 Gambar 2.10 Daftar M Codes dan Fungsinya (Denford, 2014) Gambar 2.10 memperlihatkan macam-macam M codes CNC, tetapi pada umumnya tidak semua M codes di gunakan pada mesin CNC. Ada juga M codes yang ditandai dengan * yang akan dijalankan pada akhir baris program, yaitu setelah sumbu gerakan selesai, dalam satu baris perintah hanya bisa memasukan satu perintah M codes, bila diberikan lebih dari satu maka yang akan dijalankan adalah M codes paling terakhir (Denford, 2014). 2.3.1 M Codes – M00 (Program Stop) Program yang sedang berjalan mendapatkan perintah M00 dalam suatu baris maka program akan dihentikan, jika ingin program dilanjutkan maka harus menekan tombol start secara manual (Denford, 2014). 13 2.3.2 M Codes – M02 (End Program) Kode ini menunjukkan akhir dari sebuah program dan melakukan fungsi reset pengontrol mesin secara umum, mesin CNC akan kembali pada keadaan awal (Denford, 2014). 2.3.3 M Codes – M03 (Spindle Forward) Kode M03 spindle Forward searah jarum jam dari poros yang sudah ditentukan (Denford, 2014). 2.3.4 M Codes – M05 (Spindle Stop) Kode M05 untuk menghentikan poros yang berputar, ini akan diaktifkan pada akhir baris program, setelah semua pergerakan sumbu selesai (Denford, 2014). 2.4 Gcodetools pada Inkscape Gcodetools merupakan salah satu subMenu pada Inkscape yang berguna untuk mengubah file gambar dalam bentuk SVG menjadi file dengan bentuk NGC (G Codes). Di dalam gcodetools inkscape terdiri dari macammacam tools untuk head khusus pada mesin CNC, berikut adalah jenis-jenis yang gcodetools: default, cylinder, code plasma, tangent knife, lathe cutter, dan graffiti (Nick, 2009). 2.5 Pemograman AWK Nama AWK berasal dari inisial desainer: Alfred V. Aho, Peter J. Weinberger, dan Brian W. Kernighan. Versi asli dari AWK ditulis pada tahun 1977, pada tahun 1985 versi baru dibuat dengan bahasa pemrograman yang telah disempurnakan. AWK adalah suatu bahasa pemrograman untuk menangani tugas memanipulasi data secara bersamaan dengan hanya menggunakan beberapa baris program, dengan pattern action dan sedikit mirip dengan bahasa C tetapi secara otomatis menangani input. AWK adalah bahasa pemrograman yang digunakan untuk memanipulasi teks (The AWK Manual, 1995). 14 Pemrograman AWK terdiri dari serangkaian aturan, secara syntak aturan terdiri pola diikuti dengan tindakan, tindakan ditutup dalam kurung kurawal untuk memisahkan dari pola, pengaturan pola biasanya dipisahkan oleh baris baru, oleh karena itu sebuah AWK di program seperti ini: Pola {aksi} Pola {aksi} … Contoh soal dalam BBS-list: camelot 555-0542 300 C core 555-2912 1200/300 C fooey 555-1234 2400/1200/300 B foot 555-6699 1200/300 B macfoo 555-6480 1200/300 A Perintah berikut ini untuk menjalankan program awk yang memiliki tujuan mencari input ‘BBS-list’ untuk karakter string ‘foo’. Awk ‘/foo/ {print $0}’ BBS-list Baris yang mengandung ‘foo’ yang ditemukan akan dicetak karena ‘print $0’ berarti mencetak baris ini, bisa dilihat bahwa garis miring ‘/’ mengelilingi string ‘foo’ dalam program AWK garis miring menunjukkan bahwa ‘foo’ adalah pola untuk mencari, berikut adalah hasil output dari program diatas (Piet van Oostrum, 1998). Fooey 555-1234 2400/1200/300 B Foot 555-6699 1200/300 B Macfoo 555-6480 1200/300 A 15 2.6 Pengembangan Geometris dari Transisi lingkaran Sebuah biarc terdiri dari dua busur lingkaran yang tangensial dimana mereka saling bertemu. Gambar 2.11 Garis Melengkung (Chandraputla & Osler , 2011) Pada gambar 2.11 diperlihatkan garis kurva memiliki titik belok pada B, C dan D. dalam pengembangan biarcs bisa diketahui titik-titik belok serta titik A pada awal dan titik E diakhir, ditarik garis tangent dari A sampai E, garis P, Q, R dan S didapat dari garis pinggir lengkungan, bisa dilihat bahwa disetiap segitiga APB, BQC, CRD, DSE memiliki jari-jari kelengkungan (Chandraputla & Osler, 2011). Gambar 2.12 Biarc pada Segitiga (Chandraputla & Osler , 2011) Pada gambar 2.12 diperlihatkan cara pengembangan biarc untuk bidang gambar sebuah segitiga. Bisa dilihat sudut CAB dilambangkan dengan α dan sudut CBA di lambangkan dengan β, yang harus di lakukan adalah menarik dua garis busur, garis busur pertama dari titik A yang memiliki tangent yaitu garis AC dan busur kedua dari titik B dan garis BC sebagai tangentnya dan T adalah garis bertemunya dua busur tersebut, dimana mereka memiliki garis tangent EF bisa dilihat T sebagai titik transisi. 16 Gambar 2.13 Geometri Biarc (Chandraputla & Osler , 2011) Pada gambar 2.13 bisa dilihat titik C1 dilihat dari lengkung AT, dimana garis AD memiliki posisi 90o terhadap garis AC, begitu juga dengan C2 dilihat garis lengkung BT, dimana garis BD memiliki posisi 90o terhadap garis BC, dilambangkan θ1 dan θ2 adalah garis tengah pada masing-masing garis lengkung, karena sudut ADB adalah α + β, dari segitiga DC1C2 di dapatkan persamaan sebagai berikut: θ1 + θ2 = α + β. 2.7 Desain dan Pengaturan Mesin CNC Komponen-komponen pendukung yang dibutuhkan dalam pengoperasian mesin CNC Jurusan Sistem Komputer Universitas Bina Nusantara yaitu cermin untuk memantulkan sinyal laser dari tabung laser, selain itu lensa fokus di ujung bidang laser untuk memberikan fokus sinar yang telah di pantulkan cermin tersebut, pengaturan meja potong juga di atur sesuai besar kebutuhan pemotongan. 17 Gambar 2.14 Pengaturan Sistem berbasis CO2 (Linggarjati & Hedwig, 2012) Pada gambar 2.14 bisa dilihat ada tiga set 20mm cermin berlapis emas, dan sebuah lensa 18mm (f=50.88mm) yang terpasang pada sumbu X, Y dan Z (Linggarjati & Hedwig, 2012). 18 Gambar 2.15 Bentuk Tampilan Mesin CNC Universitas Bina Nusantara (Linggarjati & Hedwig, 2012) Ukuran mesin CNC Universitas Bina Nusantara adalah 800mm x 700mm x1200mm seperti pada gambar 2.15 dan blok diagram dapat dilihat pada gambar 2.16 dengan ukuran bidang kerjanya adalah 500mm x 450mm. Mesin CNC ini memiliki tiga sumbu (X, Y, dan Z) dengan dua rak untuk menempatkan CPU di dalamnya. Sebagian besar mesin CNC menggunakan meja bergerak, sedangkan untuk desain meja ini tidak menggunakan meja bergerak sumbu (X dan Y), sebagai gantinya dua sumbu di dorong oleh motor servo DC (Tamagawa 200W) dan stepper motor (VEXTA ASM 66A – 1.7A – 100W), dalam rangka untuk memberikan gerakan yang sangat akurat, yang memegang pena, dipasang sepanjang sumbu Z. Hal ini juga didorong oleh motor (VEXTA ASD 13AA – 0.9A). 19 Gambar 2.16 Blok Diagram Dari Mesin CNC (Linggarjati & Hedwig, 2012)