6 poin oleh GN⁺ 2025-12-22 | 2 komentar | Bagikan ke WhatsApp
  • 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, dan batteryType di dalam kode, pengguna dapat membuat holder kustom, dan mendapatkan hasil yang sama tanpa software CAD mahal
  • Strukturnya menggunakan difference() dan translate() 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
Iklan

Struktur kode dan cara kerjanya

  • Variabel utama yang didefinisikan meliputi AA, AAA, heightCompartment, thicknessWall, numRows, numColumns, dan batteryType
    • widthBox, lengthBox, dan depthBox dihitung 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 for loop dan translate(), lalu setiap lubang dibuat dengan cube()
    • Penulis menyebut bagian yang mengharuskan startColumn dan startRow didefinisikan di dalam loop menggunakan let() terasa membingungkan

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
Iklan

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

 
GN⁺ 2025-12-22
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

    • Penasaran apa perbedaannya dengan alat pemodelan berbasis Python lain seperti Build123d atau CadQuery
      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
    • Ada harapan library ini mungkin bisa menyelesaikan masalah heliks bertirus dengan pitch variabel
    • PythonSCAD juga mendukung SDF melalui libfive — cari “sdf” di sekitar bagian tengah halaman contoh
    • Yang paling mengesankan adalah betapa mudahnya mengimplementasikan blending gaya metaball(blobby)
    • Kemampuan mengimpor file STL yang sudah ada untuk melubangi atau menggabungkannya dengan objek lain terasa menarik
      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

    • Saya juga mendapatkan presisi desain 3D printing berkat OpenSCAD
      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
    • Versi git master memiliki kecepatan rendering puluhan kali lebih cepat daripada versi lama
    • Ada yang meminta tautan cheat sheet
    • Namun masih ada keterbatasan, misalnya pekerjaan seperti menghilangkan sudut tajam tetap sulit
    • BOSL2 benar-benar library yang kuat dan berguna
  • 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

    • OpenSCAD berbasis koordinat absolut sehingga sulit mengekspresikan penempatan relatif atau hubungan antar solid
      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
    • OpenSCAD juga punya hull dan penjumlahan Minkowski, jadi kalau dikuasai bisa menjadi alat yang sangat kuat
    • Ada juga versi JavaScript yang berjalan di browser, OpenJSCAD
      Lihat repositori GitHub
    • Bowler Studio berbasis Java juga direkomendasikan. Dukungan Clojure dan fitur simulasi fisika sudah terpasang di dalamnya
    • Bentuk kompleks juga bisa dibuat dengan mendefinisikan koordinat titik secara langsung, tetapi urutannya rumit sampai terasa seperti tes MENSA
  • 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

    • Dulu sering memakai OpenSCAD, tetapi dalam praktiknya CAD tradisional sering terasa lebih intuitif
      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 $fn bisa diatur untuk mengontrol resolusi
    $fn = $preview ? 32 : 64;

    • Namun saat mengekspor untuk analisis FEM, nilai $fn yang terlalu tinggi bisa menurunkan kinerja mesh
      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

    • Saya terutama sering melakukan modifikasi komponen tunggal atau variasi, dan dengan Python pekerjaan berulang seperti ini jadi jauh lebih mudah
    • Mendeskripsikan model secara matematis terasa lebih alami bagi saya
      Hanya saja fitur seperti chamfer atau rounding tidak tersedia secara bawaan, jadi harus diimplementasikan lewat operasi minkowski dengan cone atau sphere, yang cukup merepotkan
 
ahwjdekf 2025-12-22

Saya sangat merekomendasikan FreeCAD