- µcad adalah bahasa pemrograman untuk CAD open-source yang diimplementasikan dengan Rust, serta merupakan sistem geometri berbasis teks yang mendefinisikan sketsa 2D dan objek 3D lewat kode lalu mengekspornya ke STL·SVG
- Di pusat bahasanya terdapat objek geometri parametrik, dengan struktur yang menggabungkan bentuk dasar melalui operasi boolean untuk membuat bentuk kompleks dan merendernya ke format untuk pencetakan 3D·pemesinan CNC
- Menggunakan sistem tipe statis dan literal Quantity berbasis satuan untuk mendefinisikan model dengan nilai seperti
50mm, 10°, 50%, serta menyediakan sistem tipe yang menyusun pohon model geometri melalui tipe Models
- Melalui modul·fungsi·workbench
part·sintaks use, pustaka standar seperti std::geo2d·std::geo3d, serta fitur std::import untuk mengambil data TOML, µcad membangun kode desain yang dapat digunakan ulang dan pemodelan berbasis data
- Ini adalah proyek yang dapat dijadikan referensi oleh pengguna yang menginginkan alur kerja CAD bergaya pemrograman, dengan contoh·dokumentasi·materi live coding yang disediakan bersama
Ikhtisar µcad
- µcad adalah bahasa pemrograman CAD open-source untuk mendefinisikan dan membuat sketsa 2D serta objek 3D lewat kode
- Konsep intinya adalah pemodelan geometri parametrik
- Dengan menggabungkan bentuk dasar untuk membuat bentuk kompleks, hasilnya dapat dirender ke STL·SVG untuk digunakan dalam pencetakan 3D atau pekerjaan CNC
Desain bahasa dan pendekatan pemodelan
- µcad adalah bahasa pemodelan parametrik yang menyusun struktur model dengan definisi geometri berparameter sebagai pusatnya
- Bentuk dideklarasikan lewat kode, dan berbagai variasi dapat dibuat hanya dengan mengubah parameternya
Sphere, Cube, Cylinder dan lainnya dapat disintesis melalui kombinasi boolean, lalu membentuk geometri 3D melalui revolve, array, dan transformasi
- Melalui contoh seperti
CsgCube·Spirograph·Gears·Dome, µcad menunjukkan berbagai pola pemodelan seperti pembuatan 3D berbasis sketsa 2D, pembuatan struktur berulang, dan profil roda gigi
Sistem tipe dan literal satuan
- µcad menggunakan sistem tipe statis dan variabel bekerja secara immutable
- Melalui tipe Quantity, satuan seperti
mm, °, % dapat digunakan langsung untuk menyusun model
- Notasi seperti
10°·4m²·50% dapat dipakai apa adanya sebagai parameter model
- Tipe Models adalah struktur yang merepresentasikan pohon model geometri, memuat struktur node dari model CAD berbasis kode
Sistem modul dan pustaka standar
- Dengan komposisi modul menggunakan
mod, use, fn, part, rancangan besar dapat dipecah menjadi beberapa unit kode
- Pustaka standar seperti
std::geo2d, std::geo3d, std::math, std::ops mendukung operasi geometri·matematika·matriks·penyusunan sketsa
part digunakan sebagai unit untuk membuat dan mentransformasikan sketsa serta part 3D
Impor data dan debugging
- Dengan
std::import, parameter dapat diambil dari file TOML lalu diterapkan ke model
- Cara ini memudahkan memasukkan spesifikasi komponen siap pakai ke dalam model
- Nilai yang diimpor dapat diverifikasi menggunakan
std::debug::assert_eq dan sejenisnya
Toolchain dan instalasi
- Menjalankan dan merender model dilakukan dengan alat CLI berbasis Rust
microcad-cli
- Instalasi dengan
cargo install microcad-cli
- Saat ini masih berada pada tahap alpha dan fitur terus ditambahkan
- Hasil render dapat divisualisasikan melalui
microcad-viewer
- Pengembangan repositori berlangsung di codeberg.org dan distribusinya melalui crates.io
Contoh dan materi live coding
- Berbagai contoh seperti Spirograph, Lego Bricks, Gears, Dome dipublikasikan di blog resmi
- Menyediakan contoh penggunaan CAD pemrograman seperti pembuatan profil roda gigi, pemodelan spirograph, dan pembuatan struktur kubah
- Semua contoh disediakan bersama kode dan video live coding sehingga cara penggunaan bahasa dapat dipahami secara bertahap
Status proyek
- Proyek ini masih dalam tahap awal dan terus dikembangkan
- Dokumentasi “The µcad book” sedang disusun untuk menata keseluruhan bahasa secara sistematis
Belum ada komentar.