34
BAB III
ALGORITMA PENAMBAHAN FEATURE DAN METODA PENCAHAYAAN
Pada pemodelan produk berbasis feature, produk didefinisikan sebagai benda kerja yang memiliki satu atau lebih feature yang terasosiasi pada benda kerja tersebut. Semakin banyak feature yang dimiliki benda kerja maka akan semakin kompleks bentuknya. Produk yang tidak memiliki feature sama sekali akan memiliki bentuk yang sama dengan bentuk awal benda kerja.
Produk yang dimaksud dibuat dengan melakukan proses pemesinan.
Penelitian ini hanya akan membahas mengenai metoda penambahan seperti yang telah disebutkan pada batasan masalah. Dengan demikian, harus dilakukan penambahan volume benda kerja sedikit demi sedikit hingga tercapai bentuk produk yang dikehendaki. Besar dan bentuk volume hasil penambahan tersebut dimodelkan sebagai feature.
Dalam penelitian ini akan dilakukan proses pemodelan produk berbasis feature dengan menggunakan Bahasa Pemrograman Java. Hal-hal yang akan dibahas adalah pendefinisian benda kerja berikut feature-featurenya dan pembahasan berupa algoritma penambahan yang berkaitan dengan pemodelan produk berbasis feature. Algoritma penambahan ini tidak hanya terdiri atas satu algoritma saja tetapi diperlukan beberapa macam algoritma untuk mempermudah pembuatan algoritma penambahan tersebut. Pada akhir dari bab ini akan dibahas mengenai metoda pencahayaan pada pemodelan ini. Hal ini berkaitan langsung dengan kemampuan Bahasa Pemrograman Java yang telah menyediakan class untuk hal tersebut.
3.1 Pendefinisian Benda Kerja dan Feature 3.1.1 Pendefinisian Benda Kerja
Seperti yang telah dijelaskan pada pembatasan masalah bahwa benda kerja yang dibuat hanya dibatasi pada benda kerja awal berbentuk balok. Balok tersebut memiliki informasi yang berguna untuk pemodelan produk berbasis feature.
35
Informasi-informasi yang berguna tersebut diantaranya adalah dimensi balok, titik-titik sudut pada balok, dan sisi balok. Data informasi tersebut akan dijelaskan secara lebih rinci pada sub bab berikut.
3.1.1.1 Dimensi Benda Kerja
Pada pemodelan ini dimensi balok dinyatakan dalam tiga besaran dan tiga arah tertentu. Gambar 3.1 menggambarkan pemodelan dimensi pada benda kerja.
Tiga besaran tersebut adalah dimensi panjang (dinyatakan dalam simbol p) dengan arah dalam sumbu X, dimensi lebar (dinyatakan dalam simbol l) dengan arah dalam sumbu Y, dan dimensi tinggi (dinyatakan dalam simbol h) dengan arah dalam sumbu Z. Pada pembuatan software ini dibutuhkan tiga buah input untuk membentuk suatu benda kerja, yaitu:
1. Panjang/length 2. Lebar/width 3. Tinggi/height
Gambar 3.1 Dimensi Benda Kerja
3.1.1.2 Titik Sudut Benda Kerja
Balok pada dasarnya memiliki 8 buah titik sudut. Gambar berikut menunjukkan penamaan dan posisi untuk setiap titik sudut.
Gambar 3.2 Titik Sudut Balok
36 Titik sudut benda kerja:
O1 = (x0,y0,z0) O5 = (x0,y0,z1) O2 = (x1,y0,z0) O6 = (x1,y0,z1) O3 = (x1,y1,z0) O7 = (x1,y1,z1) O4 = (x0,y1,z0) O8 = (x0,y1,z1)
3.1.1.3 Sisi/Bidang Benda Kerja
Sisi benda kerja berbentuk balok pada dasarnya terdiri dari 6 buah sisi.
Penamaan untuk setiap sisi dibuat berdasarkan pada titik koordinat yang telah dijelaskan di atas. Berikut ini adalah penamaan untuk setiap sisi setiap benda kerja:
• Bidang yang dibentuk oleh O1 O2 O3 O4 (sumbu X dan Z dengan nilai sumbu Y = 0) adalah Bidang Bottom.
• Bidang yang dibentuk oleh O5 O6 O7 O8 (sumbu X dan Z dengan nilai sumbu Y > 0) adalah Bidang Top.
• Bidang yang dibentuk oleh O1 O2 O6 O5 (sumbu X dan Y dengan nilai sumbu Z = 0) adalah Bidang Front.
• Bidang yang dibentuk oleh O2 O6 O7 O3 (sumbu Y dan Z dengan nilai sumbu X > 0) adalah Bidang Right.
• Bidang yang dibentuk oleh O4 O3 O7 O8 (sumbu X dan Y dengan nilai sumbu Z > 0) adalah Bidang Back.
• Bidang yang dibentuk oleh O1 O4 O8 O5 (sumbu Y dan Z dengan nilai sumbu X = 0) adalah Bidang Left.
3.1.2 Pendefinisian Feature
Jenis feature yang digunakan dalam pemodelan adalah prisma dengan bentuk dasar rectangular/segiempat. Informasi-informasi yang berguna di dalam pemodelan feature ini adalah titik sudut feature, sisi feature, posisi dan orientasi feature terhadap benda kerja, dan dimensi feature.
37 3.1.2.1 Titik Sudut Feature
Balok pada dasarnya memiliki 8 buah titik sudut. Gambar 3.3 berikut menunjukkan penamaan dan posisi untuk setiap titik sudut pada feature pada Bidang Top dari benda kerja. Perlu diketahui bahwa posisi titik sudut F1, F2, F3, dan F4 selalu berada pada permukaan dimana feature menempel pada bidang kerja.
Gambar 3.3 Titik Sudut Feature Kasus Top
3.1.2.2 Sisi Feature
Sisi feature selalu berjumlah 5 (lima) pada metoda penambahan feature.
Hal ini menyebabkan pembuatan bidang selalu berjumlah 5 untuk kasus feature penambahan. Gambar 3.4 berikut menyatakan sisi-sisi untuk feature. Penamaan sisi feature dinyatakan sebagai berikut:
• Bidang yang dibentuk oleh F5 F6 F7 F8 adalah Bidang Face.
• Bidang yang dibentuk oleh F1 F2 F6 F5 adalah Bidang Lower.
• Bidang yang dibentuk oleh F2 F3 F7 F6 adalah Bidang Right.
• Bidang yang dibentuk oleh F4 F3 F7 F8 adalah Bidang Upper.
• Bidang yang dibentuk oleh F4 F1 F6 F8 adalah Bidang Left.
Gambar 3.4 Sisi Feature
38 3.1.2.3 Dimensi Feature
Pada pemodelan ini dimensi feature dinyatakan dalam tiga besaran dan tiga arah tertentu. Tiga besaran tersebut adalah dimensi panjang dengan arah dalam sumbu X, dimensi lebar dengan arah dalam sumbu Y, dan dimensi tinggi dengan arah dalam sumbu Z. Adapun input untuk pembuatan feature , yaitu:
1. Panjang/length 2. Lebar/width 3. Tinggi/height
3.1.2.4 Posisi dan Orientasi Feature Terhadap Benda Kerja
Pada peletakan posisi feature terhadap benda kerja diperlukan besar dan arah feature relatif terhadap benda kerja. Penempatan penampang feature pada benda kerja menggunakan cara ‘snap’ seperti yang dipakai dalam software Autocad. Snap merupakan cara penempatan suatu objek dengan memanfaatkan titik yang sudah ada dengan menggunakan koordinat relatif. Gambar 3.5 berikut menjelaskan pemosisian dan orientasi feature terhadap benda kerja. Pada penulisan ini letak titik snap selalu berada pada sudut kiri-bawah dari feature dan benda kerja. Penjelasan sebelumnya menyatakan bahwa titik F1 selalu berada pada penampang benda kerja dan terletak pada titik sudut kiri-bawah dari feature.
Akan tetapi titik sudut kiri-bawah benda kerja selalu berubah-ubah tergantung pada orientasi feature terhadap benda kerja. Oleh karena itu, ada 6 (enam) kemungkinan titik sudut benda kerja yang mungkin untuk meletakkan feature terhadap benda kerja. Posisi relatif feature dalam arah horisontal dinyatakan dengan arah u sedangkan arah vertikal dinyatakan dengan arah v.
Gambar 3.5 Posisi dan Orientasi Feature terhadap Benda kerja
39
Posisi relatif feature terhadap benda kerja tergantung pada orientasi feature terhadap benda kerja. Gambar 3.6 berikut ini memperlihatkan titik snap untuk setiap orientasi.
• Orientasi Top memiliki titik snap pada titik O5.
• Orientasi Front memiliki titik snap pada titik O1.
• Orientasi Left memiliki titik snap pada titik O1.
• Orientasi Bottom memiliki titik snap pada titik O1.
• Orientasi Back memiliki titik snap pada titik O4.
• Orientasi Right memiliki titik snap pada titik O2.
Gambar 3.6 Posisi dan Orientasi Feature Terhadap Benda Kerja untuk Setiap Bidang Benda Kerja
3.2 Flow Chart Pembentukan Body (Benda kerja) dan Feature 3 Dimensi Gambar 3.7 berikut ini menjelaskan diagram alir untuk pembentukan body 3D dan feature 3D. Pembuatan 3 dimensi ini diawali dengan proses pemasukan input dari benda kerja yaitu panjang, lebar dan tinggi benda kerja yang kemudian digunakan untuk memperoleh titik-titik yang digunakan sebagai variable koordinat. Variable koordinat ini akan digunakan sebagai titik-titik untuk membuat suatu bidang ialah bidang persegi. Sesudah terbentuk benda kerja, kemudian dimulai pembentukan feature 3 dimensi. Input panjang, lebar, tinggi, dan orientasi dari feature dimasukkan kemudian diolah sampai akhirnya diperoleh variable koordinat. Sampai tahap ini kemudian dibentuk grid-grid untuk pembuatan bentuk benda kerja yang baru sesudah ditambahkan feature dan
40
akhirnya terbentuklah benda kerja dan feature 3 dimensi. lebar dan tinggi.
Informasi mengenai dimensi.
Gambar 3.7 Flow Chart Pembentukan Body dan Feature 3 Dimensi
3.3 Algoritma Feature Penambahan
3.3.1 Pembentukan Variabel Pengolah Data Dimensi (Variabel Koordinat) Seperti yang telah diketahui, untuk membentuk suatu bidang diperlukan titik-titik dengan jumlah minimum adalah 3 buah titik. Untuk membentuk suatu bidang persegi yang akan membentuk suatu balok diperlukan 4 buah titik. Titik- titik ini dapat dibuat dari input panjang, lebar dan tinggi benda kerja sedangkan untuk feature perlu disertai dengan posisi dan orientasi feature terhadap benda kerja. Subbab berikut akan menjelaskan secara rinci mengenai variable pengolah data dimensi baik untuk benda kerja maupun feature.
41 3.3.1.1 Variabel Koordinat benda kerja
Pembentukan variable koordinat benda kerja membutuhkan data dimensi dari benda kerja yaitu panjang, lebar, dan tinggi. Panjang searah dengan sumbu X, lebar searah dengan sumbu Y dan tinggi searah dengan sumbu Z. titik-titik yang dibutuhkan untuk membentuk suatu bidang dapat diperoleh dengan mengolah data dimensi tersebut. Gambar 3.8 berikut memperlihatkan letak titik variable koordinat benda kerja yang diberi nama x0, x1, y0, y1, z0, z1. Variable koordinat ini dapat diperoleh dengan menyatakan bahwa letak titik pusat dari benda kerja berada di tengah dari benda kerja seperti terlihat pada gambar. Tabel 3.1 berikut ini ialah formula untuk memperoleh setiap variable koordinat tersebut.
Tabel 3.1 Formula untuk Memperoleh Variabel Koordinat Benda Kerja Variabel Koordinat
x0 = -panjang/2
x1 = x0 + panjang
y0 = -lebar/2
y1 = y0 + lebar
z0 = -tinggi/2
z1 = z0 + tinggi
Gambar 3.8 Variabel Koordinat Benda Kerja
3.3.1.2 Variabel Koordinat Feature
Pembentukan variable koordinat benda kerja membutuhkan data dimensi dari benda kerja yaitu panjang, lebar, tinggi dan arah serta orientasi dari feature terhadap benda kerja. Pemberian nama variable koordinat pada feature adalah
42
Fx0, Fx1, Fy0, Fy1, Fz0, dan Fz1. Variabel-variabel tersebut dapat diperoleh nilainya dari data-data yang telah diperoleh seperti dinyatakan pada tabel 3.2 berikut.
Tabel 3.2 Formula Variabel Koordinat untuk Orientasi Top Variabel Koordinat
Fx0 = x0 + u
Fx1 = Fx0 + panjang feature
Fy0 = y0 + v
Fy1 = Fy0 + lebar feature
Fz0 = z1
Fz1 = Fz0 + tinggi feature
Posisi untuk setiap variable koordinat tersebut dapat dilihat pada gambar.
Gambar ini adalah contoh untuk feature yang diletakkan pada orientasi Top pada permukaan benda kerja. Gambar 3.9 menjelaskan letak setiap variabel koordinat pada bidang 2 (dua) dimensi untuk memudahkan pembaca mendapatkan setiap titik variabel koordinat.
Gambar 3.9 Letak Variabel Koordinat Feature Pada Orientasi Top
43
Ketika suatu feature diletakkan pada sisi benda kerja yang lain tentunya variabel koordinat akan mendapatkan nilai yang lain karena pada orientasi tertentu maka akan memiliki bidang dengan sumbu yang tertentu juga. Seperti contoh di atas, untuk orientasi Top maka sumbu X akan sesuai dengan panjang feature, sumbu Y akan sesuai dengan lebar feature dan sumbu Z akan sesuai dengan tinggi feature. Hal ini akan berbeda-beda jika feature diletakkan pada orientasi yang berbeda juga. Tabel 3.3 Memperlihatkan formula untuk setiap variabel pada setiap orientasi yang berbeda. Pada orientasi bottom maka sumbu X akan sesuai dengan lebar feature, sumbu Y dengan panjang feature dan sumbu Z dengan tinggi feature. Pada orientasi front sumbu X akan sesuai dengan panjang feature, sumbu Y dengan tinggi feature dan sumbu Z dengan tinggi feature. Pada orientasi back sumbu X akan sesuai dengan lebar feature, sumbu Y dengan tinggi feature dan sumbu Z dengan panjang feature. Pada orientasi left sumbu X akan sesuai dengan tinggi feature, sumbu Y dengan lebar feature dan sumbu Z dengan panjang feature. Pada orientasi right sumbu X akan sesuai dengan tinggi feature, sumbu Y dengan panjang feature dan sumbu Z dengan lebar feature.
Tabel 3.3 Formula Variabel Koordinat untuk Setiap Orientasi
Variabel Koordinat
Bidang Benda Kerja
TOP BOTTOM FRONT BACK LEFT RIGHT
Fx0 x0 + u x0 + V x0 + u x0 + v x0 x1
Fx1
Fx0+ panjang feature
Fx0+lebar feature
Fx0+panjang feature
Fx0+lebar feature
Fx0-tinggi feature
Fx0+ tinggi feature
Fy0 y0 + v y0 + u y0 y1 y0 + v y0 + u
Fy1
Fy0 + lebar feature
Fyo+panjang feature
Fy0 – tinggi feature
Fy0+ tinggi feature
Fy0+ lebar feature
Fy0+panjang feature
Fz0 z1 z0 z0 + v z0 + u z0 + u z0 + v
Fz1
Fz0 + tinggi feature
Fz0–tinggi feature
Fz0 + lebar feature
Fz0 + panjang feature
Fz0+panjang feature
Fz0 + lebar feature
44
3.3.2 Pembentukan Body (Benda Kerja) 3 Dimensi
Pembentukan body 3 dimensi dibuat berdasarkan pada variabel koordinat yang telah diperoleh. Beberapa langkah yang diperlukan untuk membentuk dan menggambar body pada bentuk 3 dimensi ialah:
1. Pengkoleksian data-data body dan feature (variabel koordinat) ke dalam kontainer. Kontainer adalah suatu kumpulan variabel koordinat yang berada pada sisi/bidang yang sama. Pada bentuk primitif balok tentunya akan ada 6 (enam) buah sisi yang harus dibentuk. Kontainer ini terdiri dari 3 jenis, yaitu: Grid Horisontal, Grid Vertikal, dan Batas Feature.
Kontainer ini selalu ada pada setiap sisi dari benda kerja sesuai dengan syarat yang ditentukan untuk setiap sisi. Seperti telah dijelaskan bahwa untuk membentuk suatu bidang persegi maka dibutuhkan 4 buah titik.
Berikut ini akan diberikan satu buah contoh kasus pada orientasi top untuk memberikan kemudahan gambaran kepada para pembaca. Gambar 3.10 berikut memperlihatkan titik variabel koordinat dari permukaan benda kerja setelah diberikan feature pada Bidang Top dari permukaan benda kerja tersebut. Pada Bidang Top maka bidang/sisi yang akan dibuat berada pada sumbu X dan sumbu Y dengan syarat FZ0=Z1. Oleh karena itu, maka semua titik variabel yang berada pada syarat tersebut akan dimasukkan ke dalam kontainer untuk Bidang Top. Berdasarkan gambar 3.10 maka kita dapat menguraikannya ke dalam kontainer sebagai berikut:
Grid horisontal : x0, x1, Fx0, Fx1. Grid vertikal : y0, y1, Fy0, Fy1. Batas feature : Fx0, Fx1 dan Fy0, Fy1.
Gambar 3.10 Variabel Koordinat Pada Kasus Top
45
2. Pengurutan data kontainer mulai dari nilai yang terkecil hingga nilai yang terbesar. Sesudah semua data dimasukkan ke dalam kontainer maka langkah selanjutnya ialah melakukan pengurutan data. Hal ini berguna untuk membuat bidang grid pada bidang-bidang benda kerja yang memiliki feature pada sisi bidang benda kerja tersebut. Berdasarkan contoh kasus top di atas maka pengurutan data pada kontainer dapat dinyatakan seperti berikut.
Sebelum dilakukan pengurutan data:
Grid horisontal : x0, x1, Fx0, Fx1. Grid vertikal : x0, y1, Fy0, Fy1. Sesudah dilakukan pengurutan data:
Grid horisontal : x0, Fx0, Fx1, x1. Grid vertikal : y0, Fy0, Fy1, y1.
Pada tahap ini, batas feature tidak perlu dilakukan pengurutan dari nilai terkecil hingga terbesar karena nilainya selalu berurutan untuk setiap batas feature.
3. Pembuatan grid dan pembuatan ID untuk setiap grid. Pada pembuatan grid, maka data dari setiap variabel koordinat yang sudah dilakukan proses pengurutan data dibuat di dalam bidang koordinat. Setiap variabel koordinat tersebut akan membentuk suatu grid pada bidang 2 Dimensi.
Gambar 3.11 menggambarkan penempatan titik dari setiap variabel koordinat tersebut.
Gambar 3.11 Titik Variabel Koordinat yang Membentuk Suatu Grid
46
Setelah semua titik variabel koordinat tersebut berada pada bidang maka langkah selanjutnya ialah membentuk bidang-bidang dari setiap grid yang ada pada bidang 2 dimensi tersebut. Gambar 3.12 Menggambarkan setiap bidang yang mungkin terbentuk untuk contoh kasus di atas. Pada contoh ini maka akan terbentuk 9 bidang grid pada Bidang Top dari benda kerja.
Gambar 3.12 Bidang Grid
Pada tahap selanjutnya ialah diperlukan ID untuk setiap bidang grid. ID grid diperlukan agar pengecekan terhadap letak bidang grid lebih teratur dan menghindari proses pengecekan berulang pada bidang grid yang sama.
Gambar 3.13 menjelaskan tahap pembuatan ID grid, pada tahap ini pembuatan ID grid dimulai dari kiri bawah ke kanan sampai akhirnya semua bidang grid mendapatkan ID masing-masing. Gambar 3.13 di bawah akan memperlihatkan lebih jelas cara pemberian ID grid untuk contoh kasus top di atas. Pada gambar terlihat adanya garis putus-putus yang menandakan batas feature.
Gambar 3.13 Cara Pemberian ID Grid
47
4. Pengecekan titik tengah grid dan penggambaran bidang grid. Pada tahap pengecekan grid dibutuhkan 2 buah syarat baik pengecekan dalam arah horisontal maupun dalam arah vertikal. Cara pengecekan tersebut ialah sebagai berikut:
Pengecekan bidang grid 1:
• Apakah Fx0 < (x0 + Fx0)/2 < Fx1 ? Tidak.
• Apakah Fy0 < (y0 + Fy0)/2 < Fy1 ? Tidak.
Pengecekan bidang grid 2:
• Apakah Fx0 < (Fx0 + Fx1)/2 < Fx1 ? Ya.
• Apakah Fy0 < (y0 + Fy0)/2 < Fy1 ? Tidak.
Pengecekan bidang grid 3:
• Apakah Fx0 < (Fx1 + x1)/2 < Fx1 ? Tidak.
• Apakah Fy0 < (y0 + Fy0)/2 < Fy1 ? Tidak Pengecekan bidang grid 4:
• Apakah Fx0 < (x0 + Fx0)/2 < Fx1 ? Tidak.
• Apakah Fy0 < (Fy0 + Fy1)/2 < Fy1 ? Ya.
Pengecekan bidang grid 5:
• Apakah Fx0 < (Fx0 + Fx1)/2 < Fx1 ? Ya.
• Apakah Fy0 < (Fy0 + Fy1)/2 < Fy1 ? Ya.
Pengecekan bidang grid 6:
• Apakah Fx0 < (Fx1 + x1)/2 < Fx1 ? Tidak.
• Apakah Fy0 < (Fy0 + Fy1)/2 < Fy1 ? Ya Pengecekan bidang grid 7:
• Apakah Fx0 < (x0 + Fx0)/2 < Fx1? Tidak.
• Apakah Fy0 < (Fy1 + y1)/2 < Fy1 ? Tidak Pengecekan bidang grid 8:
• Apakah Fx0 < (Fx0 + Fx1)/2 < Fx1 ? Ya.
• Apakah Fy0 < (Fy1 + y1)/2 < Fy1 ? Tidak.
Pengecekan bidang grid 9:
• Apakah Fx0 < (Fx1 + x1)/2 < Fx1 ? Tidak.
• Apakah Fy0 < (Fy1 + y1)/2 < Fy1 ? Tidak.
48
Berdasarkan hasil pengecekan di atas maka bidang grid 5 berada di dalam batas feature karena kedua syaratnya menyatakan bahwa titik tengah bidang grid 5 berada di dalam batas feature yang telah ditentukan baik horisontal maupun vertikal. Setelah mengetahui bahwa bidang grid 5 berada di dalam batas feature maka dilakukan tahap penggambaran. Tahap ini dapat dilakukan dengan mencari bidang grid selain bidang grid 5. Oleh karena itu hanya bidang grid 1, 2, 3, 4, 6, 7, 8, dan 9 yang akan dilakukan prosesn penggambaran. Gambar 3.14 memperlihatkan proses penggambaran pada bidang grid yang telah ditentukan tersebut. Pada gambar tersebut terlihat bahwa bidang grid 5 tidak digambar.
Gambar 3.14 Penggambaran Bidang Grid
3.3.3 Pembentukan Feature 3 Dimensi
Pembentukan bidang-bidang 3 dimensi pada feature penambahan akan selalu menghasilkan 5 buah bidang. Pada setiap orientasi feature terhadap bidang benda kerja manapun syarat ini akan tetap sama yaitu menghasilkan 5 (lima) buah bidang. Bidang-bidang yang akan dibentuk ialah Sisi Face, Sisi Lower, Sisi Right, Sisi Upper, dan Sisi Left. Pada penulisan ini akan diberi contoh kasus top untuk mempermudah pembaca mengerti tentang pembentukan feature 3 dimensi ini.
Gambar 3.15 menggambarkan sisi untuk kasus top tersebut. Sisi-sisi yang ditunjukkan merupakan sisi-sisi yang dilihat tegak lurus terhadap Sisi Face. Garis antara Sisi Left dan Sisi Upper, Sisi Upper dan Sisi Right, Sisi Right dan Sisi Lower, dan Sisi Lower dan Sisi Left merupakan garis khayal jika dilihat tegak lurus terhadap Sisi Face.
49
Gambar 3.15 Sisi Feature
Pada pembentukan suatu sisi feature maka akan selalu membutuhkan 4 (empat) buah titik. Pada feature penambahan ini maka akan selalu dihasilkan 20 buah pasangan titik koordinat untuk membentuk lima sisi feature tersebut. Tabel 3.16 memperlihatkan titik koordinat untuk setiap sisi. Gambar 3.16 memperlihatkan letak titik koordinat 1, titik koordinat 2, titik koordinat 3, dan titik koordinat 4 pada setiap sisi.
Gambar 3.16 Letak Titik Koordinat
Tabel 3.4, tabel 3.5, tabel 3.6, tabel 3.7 dan tabel 3.8 memperlihatkan pasangan variabel koordinat untuk setiap titik koordinat pada orientasi front, back, left, right, dan bottom. Setiap orientasi akan menunjukkan pasangan variabel koordinat seperti yang dinyatakan pada masing-masing tabel.
50
Tabel 3.4 Pasangan Variabel Koordinat untuk Orientasi Front Orientasi
Front Koordinat 1 Koordinat 2 Koordinat 3 Koordinat 4 FACE (Fx0,Fy1,Fz0) (Fx1,Fy1,Fz0) (Fx1,Fy1,Fz1) (Fx0,Fy1,Fz1)
LOWER (Fx0,Fy0,Fz0) (Fx1,Fy0,Fz0) (Fx1,Fy1,Fz0) (Fx0,Fy1,Fz0)
RIGHT (Fx1,Fy0,Fz0) (Fx1,Fy0,Fz1) (Fx1,Fy1,Fz1) (Fx1,Fy1,Fz0)
UPPER (Fx1,Fy0,Fz1) (Fx0,Fy0,Fz1) (Fx0,Fy1,Fz1) (Fx1,Fy1,Fz1)
LEFT (Fx0,Fy0,Fz1) (Fx0,Fy0,Fz0) (Fx0,Fy1,Fz0) (Fx0,Fy1,Fz1)
Tabel 3.5 Pasangan Variabel Koordinat untuk Orientasi Back Orientasi
Back Koordinat 1 Koordinat 2 Koordinat 3 Koordinat 4 FACE (Fx0,Fy1,Fz0) (Fx0,Fy1,Fz1) (Fx1,Fy1,Fz1) (Fx1,Fy1,Fz0)
LOWER (Fx0,Fy0,Fz0) (Fx0,Fy0,Fz1) (Fx0,Fy1,Fz1) (Fx0,Fy1,Fz0)
RIGHT (Fx0,Fy0,Fz1) (Fx1,Fy0,Fz1) (Fx1,Fy1,Fz1) (Fx0,Fy1,Fz1)
UPPER (Fx1,Fy0,Fz1) (Fx1,Fy0,Fz0) (Fx1,Fy1,Fz0) (Fx1,Fy1,Fz1)
LEFT (Fx1,Fy0,Fz0) (Fx0,Fy0,Fz0) (Fx0,Fy1,Fz0) (Fx1,Fy1,Fz0)
Tabel 3.6 Pasangan Variabel Koordinat untuk Orientasi Right Orientasi
Right Koordinat 1 Koordinat 2 Koordinat 3 Koordinat 4 FACE (Fx1,Fy0,Fz0) (Fx1,Fy1,Fz0) (Fx1,Fy1,Fz1) (Fx1,Fy0,Fz1)
LOWER (Fx0,Fy0,Fz0) (Fx0,Fy1,Fz0) (Fx1,Fy1,Fz0) (Fx1,Fy0,Fz0)
RIGHT (Fx0,Fy1,Fz0) (Fx0,Fy1,Fz1) (Fx1,Fy1,Fz1) (Fx1,Fy1,Fz0)
51 Tabel 3.6 Lanjutan
UPPER (Fx0,Fy1,Fz1) (Fx0,Fy0,Fz1) (Fx1,Fy0,Fz1) (Fx1,Fy1,Fz1) LEFT (Fx0,Fy0,Fz1) (Fx0,Fy0,Fz0) (Fx1,Fy0,Fz0) (Fx1,Fy0,Fz1)
Tabel 3.7 Pasangan Variabel Koordinat untuk Orientasi Left Orientasi
Left Koordinat 1 Koordinat 2 Koordinat 3 Koordinat 4 FACE (Fx1,Fy0,Fz0) (Fx1,Fy0,Fz1) (Fx1,Fy1,Fz1) (Fx1,Fy1,Fz0)
LOWER (Fx0,Fy0,Fz0) (Fx0,Fy0,Fz1) (Fx1,Fy0,Fz1) (Fx1,Fy0,Fz0)
RIGHT (Fx0,Fy0,Fz1) (Fx0,Fy1,Fz1) (Fx1,Fy1,Fz1) (Fx1,Fy0,Fz1)
UPPER (Fx0,Fy1,Fz1) (Fx0,Fy1,Fz0) (Fx1,Fy1,Fz0) (Fx1,Fy1,Fz1)
LEFT (Fx0,Fy1,Fz0) (Fx0,Fy0,Fz0) (Fx1,Fy0,Fz0) (Fx1,Fy1,Fz0)
Tabel 3.8 Pasangan Variabel Koordinat Untuk Orientasi Bottom Orientasi
Bottom Koordinat 1 Koordinat 2 Koordinat 3 Koordinat 4 FACE (Fx0,Fy0,Fz1) (Fx0,Fy1,Fz1) (Fx1,Fy1,Fz1) (Fx1,Fy0,Fz1)
LOWER (Fx0,Fy0,Fz0) (Fx0,Fy1,Fz0) (Fx0,Fy1,Fz1) (Fx0,Fy0,Fz1)
RIGHT (Fx0,Fy1,Fz0) (Fx1,Fy1,Fz0) (Fx1,Fy1,Fz1) (Fx0,Fy1,Fz1)
UPPER (Fx1,Fy1,Fz0) (Fx1,Fy0,Fz0) (Fx1,Fy0,Fz1) (Fx1,Fy1,Fz1)
LEFT (Fx1,Fy0,Fz0) (Fx0,Fy0,Fz0) (Fx0,Fy0,Fz1) (Fx1,Fy0,Fz1)
52 3.3.4 Pengecekan Interaksi Feature
Pada batasan masalah telah dinyatakan bahwa algoritma ini hanya digunakan untuk feature-feature yang tidak saling berpotongan dan bersinggungan. Oleh karena itu, diperlukan adanya syarat-syarat pengecekan interaksi antar feature agar algoritma ini dapat diaplikasikan. Berikut ini adalah syarat-syarat dimana feature dikatakan mengalami interaksi dengan feature lainnya, yaitu:
1. Fx0 1 Fx0 2 Fx11 2. Fx0 1 Fx12 Fx11
3. Fx0 1 Fx0 2 dan Fx11 Fx12 4. Fx0 1 Fx0 2 dan Fx11 Fx12 5. Fy0 1 Fy0 2 Fy11
6. Fy0 1 Fy12 Fy11
7. Fy0 1 Fy0 2 dan Fy11 Fy12 8. Fy0 1 Fy0 2 dan Fy11 Fy12 9. Fz0 1 Fz0 2 Fz11
10. Fz0 1 Fxz12 Fz11
11. Fz0 1 Fz0 2 dan Fz11 Fz12 12. Fz0 1 Fz0 2 dan Fz11 Fz12
Apabila salah satu syarat di atas dipenuhi maka proses pembentukan feature tidak dapat dilanjutkan.
3.4 Metoda Pencahayaan
Pencahayaan pada pemodelan ini sangat bergantung pada posisi cahaya, vektor cahaya, dan vektor normal dari bidang. Java 3D API telah menyediakan kelas untuk setiap metoda pencahayaan yang telah dijelaskan sebelumnya pada teori dasar [2.5.3]. Kelas-kelas cahaya yang digunakan pada pemodelan ini ialah Kelas Ambient Light, Kelas Directional Light, Kelas Point Light, dan Kelas Spot Light. Berikut ini akan dijelaskan secara rinci parameter-parameter tersebut untuk setiap model pencahayaan.
53 3.4.1 Posisi Sumber Cahaya
Posisi sumber cahaya pada pemodelan 3D ini dinyatakan dalam arah U, V, dan W. Gambar 3.17 memperlihatkan posisi U, V, dan W dalam arah positif.
Gambar 3.17 Posisi Sumber Cahaya
3.4.2 Vektor Cahaya
Vektor cahaya pada pemodelan ini hanya menentukan arah cahaya.
Gambar 3.18 memperlihatkan arah vektor cahaya pada pemodelan ini. Pada pemodelan ini arah yang ditentukan ada 3 macam arah, yaitu:
Arah Alpha : arah ini searah dengan arah sumbu X pada pemodelan body dan feature. Arah positif ini menyatakan arah cahaya menuju ke arah kanan atau arah sumbu X positif pada benda kerja dan feature.
Arah Beta : arah ini searah dengan arah sumbu Z pada pemodelan body dan feature. Arah positif ini menyatakan arah cahaya menuju ke arah atas atau arah sumbu Z positif pada benda kerja dan feature.
Arah Gamma : arah ini searah dengan arah sumbu Y pada pemodelan body dan feature. Arah positif ini menyatakan arah cahaya menuju ke arah user (keluar monitor) atau arah sumbu Y negatif pada benda kerja dan feature.
Gambar 3.18 Arah Vektor Cahaya
54 3.4.3 Vektor Normal Bidang
Vektor normal bidang menyatakan bidang yang akan memperoleh pencahayaan. Apabila arah vektor normal bidang menuju keluar dari bidang maka bidang ini akan memperoleh pencahayaan. Sebaliknya, jika arah vektor normal bidang menuju ke arah dalam maka tidak akan memperoleh pencahayaan. Pada pemodelan ini, vektor normal bidang dapat ditentukan seperti pada gambar 3.19 di bawah ini. Ketika variabel koordinat dimulai dari titik 1 sampai akhirnya menuju ke titik 4 maka arah loop yang dibentuk berlawanan dengan arah jarum jam. Java 3D API telah menetapkan arah vektor normal bidang menuju keluar seperti pada gambar apabila loop yang dibentuk berlawanan dengan arah jarum jam. Hal ini dinyatakan pada pemodelan untuk body maupun feature.
Gambar 3.19 Arah Vektor Normal Bidang
3.4.4 Spread Angle
Parameter ini menunjukkan sudut bukaan untuk suatu cahaya. Pada teori dasar telah dijelaskan bahwa parameter ini hanya digunakan untuk kelas spot light. Gambar 3.20 Memperlihatkan spread angle untuk sudut bukaan tertentu.
Berdasarkan gambar 3.20 maka ketika diberi nilai 0, hal ini menyatakan tidak ada sudut bukaan untuk cahaya sedikitpun. Hal ini berarti benda tidak mendapatkan pencahayaan. Sebaliknya jika sudut bukaan diberi nilai 180 tentu akan menyebabkan benda terkena cahaya.
Gambar 3.20 Spread Angle
55
3.5 Scene Graph Algoritma Penambahan Feature
Berdasarkan penjelasan yang telah diperoleh dari teori dasar (subbab 2.5.2) scene graph adalah susunan objek Java 3D dalam bentuk struktur pohon yang menjelaskan isi virtual universe dan cara menampilkannya. Oleh karena itu, pada algoritma ini tentunya akan memiliki scene graph yang tertentu sesuai dengan kelas-kelas yang dipakai dan diciptakan pada pembuatan algoritma ini. Gambar 3.21 berikut ini menyatakan scene graph yang diperoleh pada pembuatan algoritma penambahan ini. Selain itu, kelas pencahayaan juga termasuk dalam kelas-kelas pada scene graph. Pada gambar terlihat adanya beberapa kelas yang termasuk dalam transform group dan beberapa kelas yang berada di luar transform group. Kelas-kelas yang termasuk di dalam kelas transform group adalah Kelas Feature 3D, Kelas Body 3D dan Kelas Axis 3D. Semua kelas-kelas ini akan mengalami transformasi ketika objek tersebut diperintahkan untuk melakukan suatu fungsi transformasi. Kelas-kelas lain yang berada di luar Kelas Transform Group tidak dapat mengalami fungsi transformasi.
Gambar 3.21 Scene Graph