Tiện ích OpenSCAD: Cube bo tròn cạnh (Edge Rounded Cube OpenSCAD Utility)
Module OpenSCAD giúp bo tròn (radius) từng cạnh của cube theo tuỳ chọn, bằng 2 vector 12 phần tử. Có bản đầy đủ kèm hướng dẫn và bản tokenised gọn nhẹ. Kèm routine test dựng mẫu “bar of soap”; nhớ kiểm tra mesh trước khi slice.
Mô tả
Mình cần thêm vài khối “cube” trong OpenSCAD vào một thiết kế, nhưng mỗi cạnh lại muốn bo (radius) khác nhau. Thế là mình rẽ ngang làm luôn một module tái sử dụng để bo tròn bất kỳ số lượng cạnh nào của một khối cube, mỗi cạnh theo bán kính tuỳ chọn.
Module ercstd.scad (edgeroundcube) có 2 phiên bản: bản chính thì viết đầy đủ, hơi dài dòng, kèm mô tả chi tiết cách dùng và chức năng. Nếu bạn thích file gọn nhẹ thì có erct.scad (edge rounded cube tokenised): toàn bộ biến đã được “tokenise” thành ký tự đơn, xoá hết comment và khoảng trắng, nhưng vẫn chạy y hệt.
Thật ra một “edge rounded cube” tự thân thì không có nhiều ứng dụng (trừ khi làm xúc xắc), nhưng khi là một thành phần trong mô hình phức tạp thì bạn có thể gọi nó với hai vector 12 phần tử, theo cú pháp:
edgeround(x,y,z,vector1,vector2);
Cả hai bản module đều có routine test, bạn có thể bỏ comment để dựng một mẫu “bar of soap” được bo tròn toàn bộ.
Các model trong hình gồm:
- một cube chỉ bo tròn 1 cạnh.
- một khối block bo tròn toàn bộ các cạnh đứng.
- một hình kiểu “smartphone” cho thấy rõ lỗi/hiện tượng artifact dạng tricuspid ở mỗi góc, khi các bán kính ở những cạnh gặp nhau không giống nhau.
- một block đã “fettle” với bán kính bo cạnh rất nhỏ; vì tất cả cùng một bán kính nên góc ra rất sạch.
- một “bar of soap” nơi mọi cạnh đều được bo lớn và giống nhau, nên các góc thành dạng 1/8 hình cầu (eighth-spherical) hoàn chỉnh.
Lưu ý: do trong quá trình dựng có rất nhiều phép trừ (subtractions), thường sẽ xuất hiện các artifact không mong muốn và có thể không nhìn thấy. Tất cả model nên được kiểm tra độ chính xác mesh và sửa lỗi trước khi đem đi slice.
File erc5.obj vẫn còn 8 cạnh hở (open edges). Các lỗi này thường có thể auto-correct được và có phần mềm để làm sạch mesh (nhưng PrusaSlicer không sửa được model 5).
Mình cũng cần cách tham chiếu đủ 12 cạnh của một “cube”. Để làm vậy thì phải tham chiếu được 8 đỉnh. Mình chọn khái niệm một cube đơn vị (one unit cube) để có thể ghi lại giá trị trục ở từng góc. Góc tại gốc toạ độ sẽ là 000, còn góc xa nhất là 111, rồi những góc còn lại suy ra theo đó.
Sau một lần đi sai hướng (mình đặt tên các cạnh theo hai đỉnh đầu-cuối, làm code cực khó đọc), mình chốt cách đánh số: 1 đến 4 cho các cạnh ở mặt đáy, 5 đến 8 cho các cạnh đứng, và 9 đến 12 cho các cạnh ở mặt trên. Để người dùng theo kịp cách làm này—đặc biệt để có thể chỉnh hai vector 12 phần tử—mình đã viết giải thích đầy đủ trong phần comment của bản scad “verbose”. Hy vọng giúp được bạn. Chúc vui …
Giấy phép
Tác phẩm này được cấp phép theo
Creative Commons — Attribution — Noncommercial — Share AlikeCC-BY-NC-SA
File mô hình
Chưa có bản in nào được khoe. Hãy là người đầu tiên!
Chưa có bình luận nào. Hãy là người đầu tiên!