-->

iklan banner

Kopdar - 1 : Berguru Bareng Menciptakan Plugins/Extension Sketchup

OBROLAN KOPDAR-1

1. Pengertian Plugins

Apakah plugin itu?
Plugin yakni alat, tool, fitur tambahan atau perluasan. Istilah lainnya yakni Extension, Add-ons, dll

Baca Juga

Kaprikornus plugin SketchUp sanggup kita artikan bebas yakni sebuah alat/fitur tambahan yang dibentuk baik oleh SketchUp sendiri maupun yang dibentuk oleh developer / programmer pihak ke-3. Plugin ini berupa skrip/koding text dalam bahasa Ruby.

Saat kita pertama kali install SketchUp umumnya sudah disertakan plugin dasar tergantung dari versinya. Seperti sandbox, camera tools, dll.

Untuk melengkapi & membantu kita dalam modeling di SketchUp, terkadang kita membutuhkan plugin yang dibentuk oleh pihak ke-3. Seperti plugin KSI Ruang Otomatis, Auto Pushpull, Auto Tris,  dll... (Plugin sendiri neh...hehehe).   Tujuannya yakni semoga proses kerja kita ketika modeling lebih cepat, efektif & efisien.

SketchUp Ruby API

Supaya kita sanggup juga menciptakan plugin, maka kita memerlukan satu alat yang sudah di sediakan oleh SektchUp. Alat ini kita kenal dengan nama SketchUp Ruby API (Application Program Interface). API ini beris banyak koding/skrip dalam bahasa Ruby sebagai materi kita dalam proses menciptakan plugin.

SketchUp Ruby API memungkinkan kita sanggup berinteraksi dengan model SketchUp dan aplikasi SketchUp.
Plugin SketchUp hanya sanggup dijalankan di dalam sketchUp sendiri, ini berarti  tidak sanggup dijalankan jikalau kita tidak menginstall  SketchUp.

Kita sanggup memakai bahasa Ruby untuk memperluas & mengembangkan  SketchUp semoga kita sanggup melaksanakan lebih  dari fitur dasar yang disediakan oleh SketchUp.
 Kupas Tuntas Plugin KSI Ruang Otomatis  Kopdar - 1 : Belajar Bareng Membuat Plugins/Extension SketchUp
sumber gambar: https://developer.sketchup.com/en/content/welcome

Contohnya saya sanggup menciptakan tools tambahan fitur drawing Line dengan agresi ketika sudah terbentuk face(tertutup) eksklusif otomatis melaksanakan pushpull dengan nilai yang baku yg sudah di seting, atau dengan nilai lainnya.

Contoh lain yang lebih komplek adalah  plugin yang saya buat(KSI Ruang Otomatis) , saya sanggup menciptakan dinding sekaligus di pushpul, dilubangi untuk kusen pintu & jendela dalam satu langkah cepat. Bahkan dalam plugin yang saya buat ini sanggup dalam sekali klik terbetuk satu 3D Ruang lengkap dengan lubang-lubang kusen, roster, lantai, plafon..hehehe.

Lain halnya dengan SketchUp SDK, ini sanggup dijalankan secara mandiri. Hanya saja masih dalam bahasa C (SketchUp C API) yang jujur sy sendiri ajah masih mumet berguru bahasa ini. wkwkwk

2. Alat Tempur

Untuk menciptakan skrip/koding, bersama-sama tidak perlu spek PC/Lepi yang canggih. Karena skript ini sanggup dibentuk sekalipun dengan editor primitif notepad. Kita tingaal save skrip tersebut dengan ektensi *.rb.

Tapi untuk plugin yang fokus ke modeling tentu kita perlu  mencoba(debug) gimana jalannya skrip plugin yang udah kita buat eksklusif di SketchUp. Jika teman-teman pernah mencoba plugin round corner, akan terasa berat bahkan sanggup bugsplat ketika proses nge-round jalan. Ini sebab terlalu besar nilai yang di berikan, juga objek yang di-round terlalu banyak. Maka supaya lancar kita perlu spesifikasi hardware yang cukup memadai.

Hardware :
RAM 4 GB & VGA 1 GB (minimal) / 8GB & 2 GB (Rekomen)
(Mampu membaca file size SketchUp & tidak Lemot)

Software :
SketchUp 2013 - 2019
Code Editor:
RDE, Visual Code, Notepad++, Atom, dll)
Ruby 2.6 / teranyar
Referensi, Dokumentasi & Manual

Sebagai rujukan lengakap untuk mempelajari pembuatan sketchup, teman-taman sanggup eksklusif kunjungi eksklusif ke sumbernya.

SketchUp API
https://ruby.sketchup.com/_index.html 

Gudang Plugins (Externsion WareHouse)
https://extensions.sketchup.com

http://rhin.crai.archi.fr/rld/plugins_list_az.php

RUBY Programming
https://www.ruby-lang.org/id/documentation/

3. Struktur Model SketchUp

  • Model


Model yakni istilah yang dipakai SketchUp untuk menamai 3D objek gambar. Kaprikornus model juga berarti yakni satu file SketchUp (*.skp)/beberapa  yang di dalamnya berisi  informasi, bentuk visual 3D desain.
Contoh: Model Rumah, Model Interior, Model Mesin, dll

Dalam sebuah model SketchUp sanggup terdiri dari: 
  • Entities (Objek Entitas berupa Line, Cicrcle, Face, Endge, dst)
  • Layer
  • Material SketchUp (Warna & Tekture format bitmap)
  • Halaman Sceen
  • Definisi Objek (Group, komponen, dll)
  • Opsi-opsi yang tersimpan.

Dalam koding skrip ini mutlak untuk didefinisikan sebelum kita menciptakan objek entitas lainnya. 
Dalam koding skrip umumnya di deklarasikan sebagai berikut:
mod = Sketchup.active_model
mod : sebuah Variable. Bebas sanggup kita ganti dengan apa saja yang mengacu ke Model

Sketchup.active_model = Deklarasi model SketchUp
  • MODEL ENTITIES

Setiap objek 3D dalam SketchUp diwakili oleh Entitas atau subkelasnya.
Line, face, gambar, teks, grup, komponen,dll yakni pola dari subkelas sebuah entitas
Entities yakni kelas utama/superclassmod dari Sketchup.active_model
ents = mod.entities
ents = Sketchup.active_model.entities


 Kupas Tuntas Plugin KSI Ruang Otomatis  Kopdar - 1 : Belajar Bareng Membuat Plugins/Extension SketchUp
Entity Face

 Kupas Tuntas Plugin KSI Ruang Otomatis  Kopdar - 1 : Belajar Bareng Membuat Plugins/Extension SketchUp
Entity Group

 Kupas Tuntas Plugin KSI Ruang Otomatis  Kopdar - 1 : Belajar Bareng Membuat Plugins/Extension SketchUp
Entity Component


 Kupas Tuntas Plugin KSI Ruang Otomatis  Kopdar - 1 : Belajar Bareng Membuat Plugins/Extension SketchUp
Dari kiri Ke Kanan: Zulfi, Asep, Suwarto & Lukman

4. Dasar Bahasa Ruby

Ruby yakni bahasa pemograman yang sanggup dibilang gres menyerupai halnya phyton. Pembuat scripting ruby ini berjulukan Yukihiro Matsumoto. Ruby sanggup dijalankan di banyak platform, menyerupai Windows, Mac OS, Linux dan aneka macam versi UNIX. .

Yang sudah terbiasa dengan bahasa Java, Phyton, Perl mungkin tidak akan terlalu kesulitan dengan cara penulisan instruksi skrip(Syntac) Ruby. Lain halnya dengan saya yang gres kadang ngerasa jelimet dengan aturan-aturan cara penulisan.

Kaprikornus tutorial ini saya buat sesederhana & sesingkat mungkin  khusus bagi pemula yang belum pernah mengenal koding & berniat ingin mengenalnya, ya kita mulai ajah mengenal si Ruby ini..heheh. Ini sangat dasar sekali untuk membantu kita memahami konsep dari bahasa Ruby ini.

Baiklah, sebab tema kita utamanya yakni Plugin SketchUp. Maka kita akan manfaatkan fitur Ruby Console yang ada di SketchUp. Ikuti langkah berikut ini.
1. Buka SketchUp teman-teman, kemudian klik hidangan Windows > Ruby Console
2. Akan muncul jendela Ruby Console menyerupai dibawah ini. Bagian yang atas yakni untuk menampilkan output & serpihan bawah yakni untuk menginput instruksi ruby yang akan kita pelajari.
 Kupas Tuntas Plugin KSI Ruang Otomatis  Kopdar - 1 : Belajar Bareng Membuat Plugins/Extension SketchUp

3. Coba ketikan instruksi berikut ini kemudian ketik enter di tiap final selesai mengetik satu baris kode.

# - Kode Skrip latihan1.rb
puts "Hello Plugin Skp...!!!" 
2 + 8 
2 * 8
8 - 2
angka1 = 2 
angka2 = 8 
Puts angka1 angka2 
ksi = "Komunitas SketchUp Indonesia" 
ksi.upcase
ksi.downcase
ksi.reverse
puts "#{ksi} #{angka1 angka2 }" 

Gimana ? Praktis kan?
Oke lah kalo agak bingung, masuk akal ajah. Karena gres mulai ngoding... :)
Sekarang coba sy jelasakan secara sederhana saja dahulu beberapa baris instruksi di atas

Penjelasan Skrip:

  • puts adalah perintah/statemen ruby mengistilahkannya method adalah perintah untuk menampilkan text. Aturannya text yang akan di tampilkan harus diapit tanda petik dua "...." atau petik satu '....'
  • baris kedua s/d ke keempat tentu teman-teman faham kan maksudnya? Ya benar kalkulator gratisk kalo kata si om kasir mah.. :)
  • baris berikutnya (angka1 = 2, angka2 = 8), angka1 &  angka2 disebut variabel. Isi dari variable tersebut berupa data numerik/nomor yaitu 2 & 8
  • tulisan ksi juga disebut variable. Hanya saja isi datanya berupa text/tulisan istilah kodingnya data string
  • upcase, downcase & reverse disebut method juga yang berfungsi untuk merubah format text dari variabel ksi
  • baris terakhir yakni cara menampilkan variabel dalam tipe data string. Simbol pagar # & kurung kurawal { } adalah hukum yang diberikan Ruby semoga perintah puts bisa sukses. Variabel musti di tempatkan dalam kurung kurawal. 
Tips. 
  1. Coba blok semua baris instruksi diatas, copy kemudian pastekan di ruby console. Tekan Enter. Apa yang terjadi?
  2. Teman-teman juga sanggup menciptakan instruksi skrip tersebut dalam text editor. Beri nama dengan extension *.rb (misalnya latihan1.rb) untuk menandai bahwa file tersebut file Ruby.  
  3. Simpan file tersebut ke folder dimana semua plugin sketchup di simpan. Umumnya berada di folder  C:\user\namaUser\appdata\roaming\sketchup\versiSketchUp\plugin (sesuaikan text berwarna merah dengan foldernya)
  4. Kopikan file latihan1.rb ke folder tersebut. Lalu ketik di ruby console load "latihan1.rb" lalu tekan Enter.
  5. Pindahkan/Hapus file latihan1.rb tadi dari folder Plugin SketchUp sebab di versi tertentu akan selalu diload ketika kita pertama kali membuka SketchUp.
Selamat...!!! Jika skrip instruksi file latihan1.rb tadi sukses & ga ada error. Anggap saja itu yakni plugin sketchup pertama teman-teman semua...hehehe.

Tidak perlu gundah atau merasa susah dengan aturan2, kode2 diatas, nanti juga akan terbiasa jikalau sering latihan.

Baiklah sekian dahulu,  selanjutanya di point no 5 dibawah ini, nanti kita akan coba buat plugin sketchUp sungguhannya. Kalo yang ini cuma sekdar mengenalkan bahasa yang dipakai oleh SketchUp dalam membaca sebuah plugin.

5. Dasar Ruby API SketchUp

Kita lanjut pembahasan ini ke yang lebih spesifik, yaitu mengenai API SketchUp. Seperti yang sudah di uraikan di awal pembuka artikel ini, bahwa dengan API SketchUp memungkinkan kita sanggup berinteraksi dengan model SketchUp dan aplikasi SketchUp.
Ok, masih tetap di Ruby Console,  coba kita input koding dibawah ini. Boleh satu persatu semoga faham, boleh serpihan perbagian.

# - Kode Skrip latihan2.rb
# - Bagian-1 (Deklarasi Variable)
mod = Sketchup.active_model
ent = mod.active_entities
panjang = 8.m
lebar = 10.m
tinggi = 8.m

# - Bagian-2 (Deklarasi Variable Array pts)
pts = []
pts[0] = [0, 0, 0]
pts[1] = [panjang, 0, 0]
pts[2] = [panjang, lebar, 0]
pts[3] = [0, lebar, 0]

# - Bagian-3 (Method menciptakan objek "BatuBata")
face = ent.add_face(pts)  # bentuk face sesuai data array
face.reverse!             # balikan face
face.pushpull tinggi      # pushpull face sesuai variabel tinggi
grp = ent.add_group face.all_connected # buat jadi add_group    
grp.name = "BatuBata"         # berinama grup
vol = grp.volume/61023.74409473229 # deteksi volume grup
vol = vol.round(0)        # pembulatan desimal
view = Sketchup.active_model.active_view
new_view = view.zoom_extents # menzoom extend lembar kerja

# - Bagian-4 (menampilkan info objek BatuBata)
harga = 100
total = vol * harga
UI.messagebox "Material : #{grp.name}\n Dimensi(m): #{panjang} x #{lebar} x #{tinggi}\n Volume : #{vol}m3\n Harga/m3 : Rp#{harga}\n Total harga : Rp#{total}"

Penjelasan Skrip:

  • Bagian-1 (Deklarasi Variable). Pada serpihan skrip ini fungsinya yakni untuk mendeklarikan variabel utama. Variabel mod = Sketchup.active_model dan dan variabel ent = mod.active_entities disebut variable dalam bentuk kelas/class. Merupakan objek kelas paling tinggi (super class). Semua skrip berupa modeling atau apapun niscaya harus mendeklarasikan kedua variabel ini. 

  • Bagian-2 (Deklarasi Variable Array pts) Seperti kita fahami, bahwa untuk membentu 1 buah garis, maka butuh minimal 2 titik untuk menghubungkannya. Dalam skrip ini kita menyiapkan variable pts dalam bentuk array untuk menyimpan beberapa koordinat titik pada lembar kerja sketchUp. Begitu juga untuk membentuk sebuah bidang/face, minimal kita membutuhkan 3 buah garis yang saling terhubung/ketemu untuk membentuk sebuah objek gambar dasar segitiga. Segi empat butuh 4 garis, dst. Dalam array urutan index selalu dimulai dari 0, bukan dari satu. Contoh pts[0] = [0,0,0]. Maksudnya yakni variabel indek array pts ke-1 ([0]) kita isikan dengan data koordinat 3 dimensi [x,y,z] atau [0,0,0]. dst.

  • Bagian-3 (Method menciptakan objek "BatuBata") Pada serpihan ini, awalnya skrip akan bekerja membentuk sebuah face sesuai data dalam variable array pts. Kemudian baris skrip selanjutnya mempushpusll, mengrup,dst. Perhatikan semua keterangan(komen) dengan tag/simbol pagar # yang ada di sebelah kanan tiap baris koding. 

  • Bagian-4 (menampilkan info objek BatuBata) Ini skrip tambahan buat teman-teman yang selalu meminta saya untuk menciptakan plugin RAB... hehehe. Mungkin dasarnya sanggup kita awali dari baris instruksi skrip serpihan ini. Fungsinya yakni memperlihatkan data-data harga/m3 & mengkalkulasi total harga sesuai dengan volume objek yang sudah dibuat.
Simpan file latihan2.rb ini di folder tertentu. Misalnya Anda buat folder di C:\LatihanRuby.
Maka coba buka SketchUp, kemudian buka Ruby Console. Ketikan load "C:\LatihanRuby\latihan2.rb" Enter.

Kembali saya ucapkan selamat, sebab Anda telah berhasil membuat  plugin. Silahkan latihan dengan mengubah-ubah variabel semoga Anda lebih faham mengenai Ruby API ini.

6. Kupas Tuntas Plugin SketchUp KSI Ruang Otomatis

Ini yakni plugin pertama yang saya buat. Plugin ini terinspirasi dari plugin 1001bit & Dibac. Awalnya kodingnya saya jadikan satu dengan jumlah baris instruksi lebih dari 3300 baris. Namun kemudian sebab ada beberapa sahabat tertarik untuk mengetahui & memperlajari cara membuatnya. maka saya buat menjadi beberapa file semoga terstruktur dalam memahaminya.

Yang di tulis dibawah yakni hanya pokok & citra dasar dari struktur umum plugin. Kupas tuntas bersama-sama akan saya tulis eksklusif pada skrip berupa komen-komen penting.

Tujuan & Fitur Plugin

Tujuan saya menciptakan plugin ini yakni untuk membantu teman-teman yang tergabung dalam Komunitas SketchUp Indonesia, umumnya untuk pengguna SketchUp lainnya untuk mempermudah dalam menyiapkan sebuah ruang Arsitektektur. Bagi bagi mereka yang fokus di interior, maupun mereka yang fokus di exterior. Padahal faktanya saya yakni bergerak di bidang modeling alat uji. Walau pernah kuliah di bidang arsitektur, namun nasib membawanya ke rancang bangkit alat uji. hehehe

Fitur Plugin:
1. Membuat ruang secara otomatis lengkap dengan lubang kusen
2. Membuat kustom dinding yang sanggup di atur baik tinggi, tebal & model kusennya
3. Grid Ruang, menciptakan ruangan berdasarkan grid. Grid didapat dari panjang dinding yang di gambar
4. Menyediakan komponen dalam bentuk dasar sebagai pelengkap. Sperti atap, kusen, teras, hingga ke furniture
5. Dan fitur-fitur lainnya. :)

1. File "ncep_plugin.rb"

File ini berfungsi sebagai loader yang umum dipakai oleh para developer plugin sketchup. Fungsi utamanya meregistrasi plugin ke SketchUp. Berisi koding skrip dari kelas extension.rb
File ini harus di tempatkan dalam folder Plugin menyerupai sudah dijelaskan sebelumnya. 
Silahkan d0wnl0ad & pelajari kodingnya. Penjelasan ada dalam setiap baris perintah.

2. Folder "..\Plugins\ncep_studio"

Folder ini yakni folder utama yang biasa di pakai apabila plugin mempunyai serpihan skrip lainnya atau mempunyai ikon, UI/GU, petunjuk dalam format html, dll. Ini penting semoga Folder aseli daerah plugin di simpan bawaan SketchUp tetap rapih & terstruktur. Biasanya para developer menentukan nama-nama unik dalam penamaan  Folder ini. Begitu juga dalam penamaan file. Agar plugin yang satu & lainnya tidak terjadi konflik dalam meload. Contoh menyerupai su_sandbox, ams_library, tt_Lib2, Fredo6_curviloft, dll. Begitu juga penamaan plugin & folder saya ini, saya awali dengan ncep_ sebagi ciri unik semoga tidak bentrok dengan plugin lain yang mungkin setipe. Juga ... ya.. itung-itung promosi...hehehe.

3. File "ncep_ro.rb"

Ini yakni skrip utama plugin, disimpan dalam folder ...\Plugins\ncep_studio. Isinya sejumlah variable, konstanta, method/fungsi untuk menciptakan geometri. Didalamnya juga berisi penanganan kelas-kelas lainnya dari API SketchUp. Utamanya yakni kelas Tool, View & UI. 
Kelas tool berisi fungsi-fungsi khusus untuk penanganan mouse & keyboard. 

Kelas View berfungsi untuk penaganan viel lembar kerja. Seperti titik pointer mouse, penetuan titik-titik koordinat proses drawing line, circle, dll. Ini yang berdasarkan saya tersulit sebab harus memahami kelas-kelas lain, sebab satu sama lain saling keterkaitan.

Kelas UI cukup gampang difahami & tidak terlalu sulit. Karena fungsinya hanya untuk mendisain antar muka, obrolan box semoga user lebih gampang dalam memakai plugin ini. Saya lebih menentukan UI Dialog standar ketimbang dalam format UI Web obrolan dalam format Html. Ini untuk menjaga semoga plugin sanggup dipakai di semua versi & sistem windows. Karena format Web obrolan cenderung dipengaruhi oleh software IE & komponen lainnya. Seringkali tampilan UI Web obrolan tidak menampilkan view yang semestinya. Juga sebab dipengaruh CSS atau script lainnya menyerupai JSon atau lainnya. Tapi jikalau mereka yang menguasai skrip Web Disain dengan bahasa skripnya tentu tidak akan kesulitan untuk menciptakan UI dalam format html atau web dialog.

Sebenarnya masih banyak kelas-kelas turunan lainnya yang di gunakan dalam plugin ini. Tapi pada dasarnya fokus tersulit yakni dalam kelas-kelas tersebut di atas.

4. File "ncep_mntb.rb" 

Skrip file ini berisi method/fungsi untuk penanganan toolbar & hidangan bar. Juga untuk mengarahkan agresi dari ikon, hidangan ketika user mengklik atau mengaksesnya. Cukup sederhana & gampang difahami bagi anda yang sudah pernah menciptakan instruksi skrip.

5. File "ncep_lis.rb"

Sebenarnya ini diam-diam sih, sebab rencana saya jikalau plugin ini telah sukses banyak di gunakan di versi SketchUp & juga sanggup kompatibel dengan OS Windos lainnya, rencana ingin menjual atau mencari investor lain untuk membentuk teamword dalam membuatkan ke plugin yang lebih canggih. Ya.. emang mimpi sih, tapi saya optimis. Jika mereka para developer plugin handal yang udah usang pengalaman ajah bisa, kenapa kita tidak bisa. Walau terlambat, ga problem daripada tidak melaksanakan sama sekali...wkwkwk

File skrip ini yakni berisi utilitas untuk penanganan lisensi plugin & fungsi security pengaman plugin dari tindakan kopas, crack & h4ck. Isinya disamping tehnik mengenskripsi data, juga berisi beberapa fungsi lainnya yang menentukan. Ini juga merupakan serpihan koding tersulit sebab kuat ke sistem OS juga. Kendala ketika ini yakni selalu di cegah oleh level sekuritas windows & terkadang terdeteksi virus oleh sebagian anti virus. Padahal niat saya bukan mau menciptakan virus... hahaha.

6. File-File pendukung

File-file pendukung ini banyak macamnya dari mulai file icon, text, html, dll. Tujuannya yakni semoga plugin lebih interaktif & menarik.

Nah. Itu saja sebagi citra awal plugin KSI Ruang Otomatis


7. Cara Bikin SkecthuBOT


Sumber http://nceptutorial.blogspot.com

Related Posts

Berlangganan update artikel terbaru via email:

0 Response to "Kopdar - 1 : Berguru Bareng Menciptakan Plugins/Extension Sketchup"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel