라이노 Boolean 실패 해결 — 면이 합쳐지지 않을 때 원인과 대처법
라이노(Rhino)에서 Boolean은 가장 자주 쓰는 명령어 중 하나고, 가장 자주 실패하는 명령어이기도 하다. "아무 반응이 없다", "결과가 이상하다", "한쪽이 사라진다" 같은 증상이 나타난다. 기초 7편에서 Boolean 사용법을 다뤘고, 여기서는 실패 원인과 해결법에 집중한다.1. Boolean 실패 증상 유형
- ① 명령 실행 후 아무 변화 없음
- ② 한쪽 솔리드가 사라짐
- ③ 결과물이 열린 솔리드로 나옴
- ④ 예상과 반대 방향으로 작동
- ⑤ 커맨드 라인에 "Boolean failed" 메시지
증상마다 원인이 다르다. 순서대로 확인한다.
2. 가장 먼저 확인 — 닫힌 솔리드 여부
Boolean은 닫힌 솔리드(Closed Polysurface)에서만 정상 작동한다.
- 커맨드: What → 두 객체 모두 선택 → "Closed polysurface" 확인
- "Open polysurface"면 먼저 닫아야 함
열린 솔리드 닫는 방법
- 커맨드: ShowEdges → Naked edges 표시 → 빨간색 엣지 위치 확인
- 평면 구멍: Cap / 비평면 구멍: 커브 추출 → 서페이스 생성 → Join
3. 교차 여부 확인
두 솔리드가 실제로 겹쳐 있는지 확인한다. 면만 닿아 있거나 겹치지 않으면 Boolean이 실패한다.
- 커맨드: Intersect → 두 객체 선택
- 교차선이 생기면 겹쳐 있는 것 / 교차선이 없으면 겹치지 않는 것
겹치지 않으면 한쪽 객체를 이동해서 실제로 겹치게 만든 후 재시도한다.
> 실무 팁: Ghosted 모드에서 두 솔리드가 실제로 겹쳐 있는지 눈으로 먼저 확인한다. 면만 닿아 있는 경우 한쪽을 아주 조금 이동해서 겹치게 만들면 Boolean이 되는 경우가 많다.4. 서페이스 방향 확인
서페이스 법선 방향이 뒤집혀 있으면 Boolean이 반대로 작동하거나 실패한다.
- 커맨드: Dir → 두 솔리드 선택 → 법선 화살표가 바깥을 향하는지 확인
- 안쪽을 향하면 Flip
5. 동일 평면 면 충돌
두 솔리드의 면이 정확히 같은 위치에 있으면 Boolean이 어느 쪽을 남길지 판단하지 못한다.
- 증상: Boolean 실행 후 해당 면 부분이 사라지거나 이상하게 처리됨
- 해결: 한쪽 솔리드를 0.001mm 정도 이동시켜 면이 완전히 겹치지 않게 만든 후 재시도한다.
6. 교차 경계가 복잡할 때
두 솔리드의 교차 형상이 너무 복잡하거나 곡률이 심하면 Boolean이 실패한다.
- 해결 1 — 형상 단순화: FilletEdge가 적용된 경우 Fillet 반지름을 줄이거나, Fillet 제거 후 Boolean을 하고 나중에 다시 적용한다.
- 해결 2 — 공차 확인: Options → Document Properties → Units에서 절대 공차를 확인한다. (건축 0.01 / 제품 0.001 권장)
- 해결 3 — Intersect로 교차선 확인: 교차선이 닫혀 있지 않으면 Boolean이 실패한다. 교차 부분 형상을 수정해야 한다.
7. Boolean 대신 수동으로 처리
Boolean이 계속 실패하면 수동으로 같은 결과를 만드는 방법이 있다. 번거롭지만 복잡한 형상에서 가장 확실한 방법이다.
- Intersect — 두 솔리드의 교차선 추출
- Split — 교차선으로 각 솔리드 분할
- Delete — 필요 없는 부분 삭제
- Join — 남은 서페이스 합치기
- Cap — 열린 면 닫기
8. MeshBooleanUnion — 메시로 변환 후 Boolean
서페이스 Boolean이 계속 실패할 때 메시로 변환해서 처리하는 최후의 수단이다.
- 커맨드: MeshBooleanUnion / MeshBooleanDifference / MeshBooleanIntersection
순서
- 두 솔리드를 Mesh로 변환 (커맨드: Mesh)
- MeshBoolean 실행
- 결과 메시를 서페이스로 변환 (필요 시 커맨드: MeshToNURB)
※ 주의: MeshToNURB 결과는 품질이 떨어질 수 있으므로 신중히 사용한다.
9. Boolean 실패 예방 습관
- ① 모델링 중 항상 닫힌 솔리드 유지 (Cap/Join 활용)
- ② FilletEdge는 Boolean 후 마지막에 적용
- ③ 원점 근처에서 작업 (공차 오류 방지)
- ④ 작업 시작 전 단위와 공차 설정 확인
- ⑤ Intersect로 교차선 폐쇄 여부 미리 확인
10. 원인별 해결 요약
| 증상 / 원인 | 확인 방법 | 해결 방법 |
|---|---|---|
| 열린 솔리드 | What / ShowEdges | Cap / Join |
| 겹치지 않음 | Intersect | 객체 이동 후 재시도 |
| 법선 방향 뒤집힘 | Dir | Flip |
| 동일 평면 면 충돌 | 육안 확인 | 미세 이동 후 재시도 |
| 형상 너무 복잡 | Intersect 교차선 확인 | Fillet 제거 후 Boolean |
| 계속 실패 시 | — | 수동 Trim/Split/Join |
| 최후 수단 | — | MeshBoolean |
댓글 없음:
댓글 쓰기