OpenSCAD cukup keren
(nuxx.net)- Contoh yang mengeksplorasi konsep dasar CAD berbasis kode dengan merancang holder baterai sederhana menggunakan OpenSCAD
- Sebelumnya penulis membuat kotak terparameterisasi untuk baterai AA·AAA di Autodesk Fusion, lalu mengimplementasikannya ulang di OpenSCAD sebagai bagian dari proses belajar
- Dengan hanya mengubah variabel seperti
numRows,numColumns, danbatteryTypedi dalam kode, pengguna dapat membuat holder kustom, dan mendapatkan hasil yang sama tanpa software CAD mahal - Strukturnya menggunakan
difference()dantranslate()untuk membuat lalu menghapus kotak dan lubang secara berulang, pendekatannya sederhana tetapi efisien - Meski ada keterbatasan untuk model kompleks, alat ini dinilai berguna untuk membuat struktur geometri sederhana seperti spacer dan bearing drift
Merancang holder baterai dengan OpenSCAD
- Setelah merancang organizer berbentuk kotak dasar untuk baterai AA dan AAA di Autodesk Fusion, penulis mengimplementasikannya kembali di OpenSCAD
- Model Fusion sebelumnya memiliki struktur terparameterisasi yang memungkinkan ukuran baterai serta jumlah baris dan kolom diubah lewat penyesuaian variabel
- Model yang sudah selesai diunggah ke Printables
- OpenSCAD adalah alat CAD yang membuat objek 3D lewat penulisan kode, cocok untuk mempelajari model dengan struktur sederhana
- Penulis mengikuti sebagian tutorial OpenSCAD dan berlatih selama sekitar satu jam
- Hasilnya dibagikan sebagai file
battery_holder_generator.scad
Struktur kode dan cara kerjanya
- Variabel utama yang didefinisikan meliputi
AA,AAA,heightCompartment,thicknessWall,numRows,numColumns, danbatteryTypewidthBox,lengthBox, dandepthBoxdihitung dari kombinasi variabel-variabel tersebut
- Fungsi
difference()digunakan untuk membuat kotak dasar (cube), lalu lubang baterai di bagian dalam dipotong berulang kali- Posisi lubang dihitung dengan
forloop dantranslate(), lalu setiap lubang dibuat dengancube() - Penulis menyebut bagian yang mengharuskan
startColumndanstartRowdidefinisikan di dalam loop menggunakanlet()terasa membingungkan
- Posisi lubang dihitung dengan
Perbandingan OpenSCAD dan Fusion
- Model yang sama dibuat masing-masing di Fusion dan OpenSCAD lalu dibandingkan di slicer
- Hasil cetaknya pada dasarnya sama, dan OpenSCAD memungkinkan modifikasi cepat dengan pendekatan ringan berbasis kode
- Hasil dengan tingkat yang sama dapat diperoleh tanpa software CAD mahal
Kemungkinan pemanfaatan dan keterbatasan
- Tidak cocok untuk desain kompleks, tetapi sangat berguna untuk membuat struktur geometri sederhana seperti spacer dan bearing drift
- Kuat untuk mengotomatiskan pembuatan komponen sederhana yang sering dibutuhkan dalam kehidupan sehari-hari
- Pendekatan desain yang berpusat pada kode di OpenSCAD efisien untuk menghasilkan struktur yang berulang dan teratur
Kesimpulan
- OpenSCAD dinilai sebagai alat CAD berbasis kode yang dapat membuat model 3D sederhana dengan cepat
- Penulis menggambarkannya sebagai “hanya menggambar kotak dan melubangi bagian dalamnya, tetapi cukup keren”
- Untuk pekerjaan desain sederhana ke depan, OpenSCAD bisa lebih praktis daripada Fusion
2 komentar
Komentar Hacker News
OpenSCAD adalah alat CAD yang sangat cocok dengan pola pikir programmer
Semua elemen bisa dibuat parametris, jadi enclosure proyek yang sudah dibuat sekali bisa menghasilkan berbagai versi hanya dengan mengubah beberapa variabel
Jika backend Manifold diaktifkan pada build nightly terbaru, kecepatan rendering turun dari hitungan menit menjadi hitungan detik
Rilis resmi 2021 sudah terlalu tua sehingga sulit dipakai
Library BOSL2 menambahkan fitur seperti fillet, rounding, dan attachment, sehingga membuat OpenSCAD naik dari level mainan menjadi alat desain yang praktis
OpenSCAD juga sangat ramah Git, sehingga perubahan pada file .scad jauh lebih mudah dibandingkan file biner Fusion 360
Karena merasakan keterbatasan OpenSCAD, seseorang membuat sendiri library pembuat mesh 3D berbasis SDF(signed distance function) bernama sdf dengan Python
Dengan memanfaatkan logika Python yang fleksibel, model bisa disusun dan mesh 3D yang sudah ada bisa diimpor untuk melakukan operasi seperti erosi, ekspansi, pemotongan, dan hollowing
Masih banyak pekerjaan yang harus dilakukan di proyek ini, tetapi tampaknya bidang ini sangat menarik
STL menyimpan koordinat segitiga seperti bitmap, sedangkan STEP menyimpan perintah pembuatan model seperti vector art
Kebanyakan CAD GUI berbasis STEP sehingga kompatibilitasnya baik
Jika SDF hanya menghasilkan STL, dari sisi kompatibilitas dengan CAD GUI, mungkin lebih baik belajar Build123d atau CadQuery
Build123d memakai konsep membuat sketsa 2D lalu mengubahnya menjadi 3D seperti Fusion360 atau FreeCAD, sehingga nyaman untuk berpindah antara CAD GUI dan CAD berbasis kode
Alat seperti Meshlab pernah gagal karena pesan error-nya sulit dipahami, tetapi pendekatan ini tampaknya akan jauh lebih intuitif
Baru mulai memakai OpenSCAD belakangan ini, dan sementara kebanyakan CAD memaksa pengguna mempelajari sangat banyak fitur, OpenSCAD bisa dijelaskan dengan cheat sheet satu lembar A4
Jika memakai versi git master alih-alih rilis 2021, performanya jauh lebih cepat dan fitur-fiturnya lebih baru
Dengan library BOSL2, tidak perlu mengimplementasikan sendiri fitur rumit ala CAD tradisional, dan menyenangkan juga karena bisa melihat implementasi internalnya untuk belajar
Di CAD GUI, perubahan 0.25mm saja bisa membuat semua lubang dan cutout harus disesuaikan lagi, yang sangat membuat frustrasi, tetapi pendekatan berbasis kode menghindari masalah itu
Nilai default center origin di BOSL2 membuat pekerjaan transformasi jadi jauh lebih mudah
Sangat disayangkan OpenSCAD tidak punya konsep objek, sehingga pendekatan seperti box1.width tidak dimungkinkan
Sudah mencoba Build123d, tetapi bug-nya banyak dan dokumentasinya kurang. Semoga suatu hari membaik
Kelebihan OpenSCAD adalah mudah untuk memodelkan dengan menggabungkan bola, silinder, dan kubus secara matematis
Kekurangannya adalah batas pemodelannya juga ditentukan oleh kemampuan kombinasi matematis itu
Fork PythonSCAD yang mendukung Python dijadwalkan segera digabungkan ke rilis utama
Untuk membuat model seperti baut, tiap bagian harus dibuat terpisah lalu ditumpuk saling bertindihan
Untuk menyelaraskannya dengan komponen nyata, dibutuhkan banyak perhitungan manual, dan dimensi yang di-hardcode sulit diubah
Renderer versi beta terbaru jauh lebih cepat, jadi sangat layak dicoba
Lihat repositori GitHub
Saya suka kesederhanaan OpenSCAD sebagai pemodel 3D yang ringan
Alih-alih CAD GUI yang besar, model bisa dibuat hanya dengan bentuk dasar dan transformasi seperti pemrograman grafis
Meski membuka kembali kodenya setelah lama, beberapa baris saja biasanya cukup untuk langsung memahaminya
Untuk constraint yang memerlukan perhitungan matematis, fitur sketch di CAD GUI jauh lebih sederhana
Di CAD, kita bisa mundur langkah demi langkah sambil melihat strukturnya, jadi tidak perlu menafsirkan skrip
OpenSCAD bisa dipakai dengan editor eksternal alih-alih editor bawaannya
Saat menyimpan dari editor eksternal, preview akan diperbarui secara otomatis
Panduan pengaturan editor eksternal
Dulu pernah menulis tutorial pengantar OpenSCAD berjudul “10 konsep inti”
Tautan tutorial
Tips: variabel
$fnbisa diatur untuk mengontrol resolusi$fn = $preview ? 32 : 64;Yang penting adalah akurasi analisis, bukan kehalusan visual, jadi sekitar 32~64 sudah cukup
Secara realistis, membuat model yang benar-benar berguna memang butuh banyak kerja, tetapi sangat menarik bahwa model parametrik lengkap bisa direpresentasikan dalam file teks 2KB
Git diff juga tetap bermakna, dan model bisa disesuaikan seperti aplikasi lewat panel kustomisasi
Jauh lebih efisien dibanding file XML FreeCAD yang besar
Hanya saja fitur seperti chamfer atau rounding tidak tersedia secara bawaan, jadi harus diimplementasikan lewat operasi minkowski dengan cone atau sphere, yang cukup merepotkan
Saya sangat merekomendasikan FreeCAD