Bài viết Kỹ thuật By Kỹ Thuật Công Nghiệp Ánh Dương

Bài viết Kỹ thuật By Kỹ Thuật Công Nghiệp Ánh Dương

Boolean Union, Difference, Intersection Trong Rhino: Cộng Trừ Giao Khối (Có Bài Tập)

Khi bạn đã dựng được các khối cơ bản, cách kết hợp chúng thành hình dạng phức tạp là dùng các phép Boolean: cộng khối (Union), trừ khối (Difference) và lấy phần giao (Intersection). Đây là cách tạo lỗ, rãnh, hốc và gộp chi tiết nhanh nhất. Bài viết này hướng dẫn bạn gõ lệnh nào, chọn khối theo thứ tự ra sao, kèm một bài tập dựng chiếc đế có lỗ hoàn chỉnh với số liệu cụ thể để bạn làm theo và ra kết quả ngay.

Boolean gồm Union (hợp), Difference (trừ), Intersection (giao)
Boolean gồm Union (hợp), Difference (trừ), Intersection (giao)

Boolean là gì?

Các phép Boolean là những thao tác kết hợp hai hay nhiều khối kín. BooleanUnion gộp các khối thành một khối liền. BooleanDifference trừ một khối khỏi khối khác, tạo lỗ hoặc hốc. BooleanIntersection chỉ giữ lại phần thể tích chung của hai khối. Ba phép này là công cụ nền tảng để tạo các chi tiết cơ khí có lỗ, rãnh và hình dạng phức tạp.

Điều kiện tiên quyết: mọi khối tham gia Boolean phải là khối kín (closed polysurface). Bạn có thể kiểm tra bằng lệnh SelClosedPolysrf — nếu khối được chọn nghĩa là nó kín hợp lệ.

BooleanUnion: chọn các khối rồi Enter để gộp thành một
BooleanUnion: chọn các khối rồi Enter để gộp thành một

BooleanUnion – hợp khối

BooleanUnion rồi Enter. Rhino hỏi “Select surfaces or polysurfaces to union” — bạn chọn tất cả các khối cần gộp rồi nhấn Enter. Các khối chồng lấn sẽ được hợp thành một khối liền duy nhất, xóa các mặt bên trong giao nhau. Đây là cách bạn ghép nhiều khối cơ bản thành một chi tiết hoàn chỉnh, ví dụ ghép thân bàn với các chân đã dựng riêng.

BooleanDifference: chọn khối giữ trước, khối trừ sau - thứ tự quan trọng
BooleanDifference: chọn khối giữ trước, khối trừ sau – thứ tự quan trọng

BooleanDifference – trừ khối

Đây là phép được dùng nhiều nhất. Gõ BooleanDifference rồi Enter. Rhino hỏi hai câu: đầu tiên “Select polysurfaces to subtract FROM” — chọn khối bạn muốn giữ lại rồi Enter; sau đó “Select polysurfaces to subtract WITH” — chọn khối dùng để khoét đi rồi Enter. Kết quả là khối đầu bị khoét theo hình khối thứ hai. Thứ tự chọn cực kỳ quan trọng, chọn ngược sẽ cho kết quả hoàn toàn khác.

BooleanIntersection: chỉ giữ phần thể tích chung của hai khối
BooleanIntersection: chỉ giữ phần thể tích chung của hai khối

BooleanIntersection – lấy phần giao

BooleanIntersection rồi Enter. Rhino hỏi hai nhóm khối; bạn chọn nhóm thứ nhất, Enter, rồi nhóm thứ hai, Enter. Kết quả chỉ giữ lại phần thể tích chung của hai khối, xóa mọi phần không giao. Phép này ít dùng hơn nhưng rất hữu ích khi cần tạo hình dạng là giao của hai khối, ví dụ vát một khối theo biên dạng của khối khác.

Trong Difference, thứ tự chọn quyết định khối nào bị khoét
Trong Difference, thứ tự chọn quyết định khối nào bị khoét

Thứ tự chọn trong Difference

Với BooleanDifference, hãy nhớ nguyên tắc: khối chọn trước là khối được giữ, khối chọn sau là khối bị trừ đi. Nếu bạn có một hộp và một trụ, chọn hộp trước rồi trụ sau sẽ cho hộp có lỗ; chọn ngược lại sẽ cho một mẩu trụ bị khoét. Vì vậy luôn xác định rõ khối nào cần giữ trước khi thao tác. Khối trừ sẽ bị xóa sau khi thực hiện, nên nếu cần dùng lại, hãy sao chép nó trước.

Bài tập: Box 100x60x40, khoét lỗ trụ R12 xuyên qua
Bài tập: Box 100x60x40, khoét lỗ trụ R12 xuyên qua

Bài tập thực hành: dựng đế có lỗ

Hãy dựng một chiếc đế có lỗ tròn xuyên qua. Bước 1: gõ Box, nhập góc 0,0,0, gõ 100,60, rồi gõ 40 để có khối đế 100x60x40mm. Bước 2: gõ Cylinder, nhập tâm đáy 50,30,-10 (đặt dưới đế 10mm để trụ nhô ra hai đầu), gõ bán kính 12, rồi gõ chiều cao 60 — trụ này cao hơn đế nên xuyên qua hoàn toàn.

Các bước dựng đế có lỗ bằng BooleanDifference
Các bước dựng đế có lỗ bằng BooleanDifference

Hoàn thiện bài tập và kiểm tra

Bước 3: gõ BooleanDifference. Bước 4: khi Rhino hỏi khối giữ, click vào Box rồi Enter. Bước 5: khi hỏi khối trừ, click vào Cylinder rồi Enter — Rhino khoét một lỗ tròn R12 xuyên qua đế. Chuyển sang view Perspective để thấy lỗ. Cuối cùng, gõ SelClosedPolysrf để kiểm tra: nếu đế được chọn nghĩa là nó vẫn là khối kín hợp lệ sau khi khoét. Bạn cũng có thể dùng lệnh Section để cắt xem lỗ bên trong.

Ứng dụng của các phép Boolean trong dựng khối
Ứng dụng của các phép Boolean trong dựng khối

Ứng dụng của Boolean

Các phép Boolean có ứng dụng rộng: khoét lỗ, rãnh, hốc trên khối; gộp nhiều khối thành một chi tiết; cắt khối theo hình dạng của khối khác; và tạo các giao tuyến phức tạp. Hầu hết các chi tiết cơ khí đều được dựng bằng cách tạo khối phôi rồi khoét đi các phần thừa bằng BooleanDifference. Kết hợp với khối nguyên thủy, bạn có thể dựng gần như mọi chi tiết cứng.

Lỗi thường gặp với Boolean
Lỗi thường gặp với Boolean

Các lỗi thường gặp

Lỗi phổ biến gồm: một trong các khối bị hở (không kín) nên Boolean thất bại hoặc cho kết quả lạ; hai khối không thực sự giao nhau nên không có gì để cộng/trừ; và với Difference, chọn nhầm thứ tự khối giữ và khối trừ. Cách khắc phục là luôn kiểm tra các khối kín bằng SelClosedPolysrf trước khi thao tác, đảm bảo chúng chồng lấn nhau, và xác định rõ thứ tự chọn trong Difference.

Quy trình 6 bước dùng Boolean
Quy trình 6 bước dùng Boolean

Quy trình 6 bước và checklist

Tóm tắt quy trình: (1) dựng các khối kín; (2) đặt chúng giao nhau; (3) gõ lệnh Boolean phù hợp; (4) chọn khối theo đúng thứ tự; (5) nhấn Enter để thực hiện; (6) kiểm tra kết quả. Trước khi thao tác, hãy rà lại: mọi khối đều kín, các khối thực sự giao nhau, với Difference chọn đúng thứ tự giữ/trừ, sao lưu khối trừ nếu cần dùng lại, và kiểm tra kết quả vẫn là khối kín.

Checklist trước khi thực hiện phép Boolean
Checklist trước khi thực hiện phép Boolean

Kết luận

Các phép Boolean Union, Difference và Intersection là công cụ kết hợp khối mạnh mẽ nhất trong Rhino, cho phép tạo lỗ, rãnh và gộp chi tiết dễ dàng. Quan trọng nhất là bạn đã học được rằng khối phải kín và thứ tự chọn trong Difference quyết định kết quả, cùng một bài tập đế có lỗ hoàn chỉnh với số liệu cụ thể để tự làm theo. Hãy dựng lại chiếc đế này, rồi thử BooleanUnion để ghép hai khối, và BooleanIntersection để lấy phần giao. Tham khảo thêm constructive solid geometry để hiểu bản chất.