라이노 Boolean 연산 — Union / Difference / Intersection 사용법과 실패 해결
라이노(Rhino)에서 Boolean 연산은 두 개 이상의 솔리드를 합치거나, 빼거나, 겹치는 부분만 남기는 작업이다. CAD의 3D 솔리드 편집과 같은 개념이다. 라이노에서 Boolean은 자주 쓰이는 만큼 실패도 잦다. 기본 사용법과 실패 원인, 해결법까지 함께 정리한다.1. Boolean 세 가지
명령어에 따라 결과와 용도가 확실히 구분된다.
| 명령어 | 결과 | 용도 |
|---|---|---|
| BooleanUnion | 합집합 | 두 솔리드를 하나로 합치기 |
| BooleanDifference | 차집합 | 한 솔리드에서 다른 솔리드 빼기 |
| BooleanIntersection | 교집합 | 겹치는 부분만 남기기 |
2. BooleanUnion — 합집합
[캡쳐 넣기] 커맨드: BooleanUnion (Alias: BU)사용 방법
- BooleanUnion 실행
- 합칠 솔리드 모두 선택 → Enter
두 솔리드가 하나로 합쳐지고 내부 경계면은 사라진다.
조건
- 두 솔리드가 반드시 겹쳐 있어야 한다
- 면만 닿아 있는 경우(접촉만 하는 경우)는 실패할 수 있다
- 두 객체 모두 닫힌 솔리드여야 한다
3. BooleanDifference — 차집합
[캡쳐 넣기] 커맨드: BooleanDifference (Alias: BD)사용 방법
- BooleanDifference 실행
- 기준 솔리드(남길 것) 선택 → Enter
- 빼낼 솔리드(도구) 선택 → Enter
기준 솔리드에서 빼낼 솔리드 형태가 잘려나간다. 빼낼 솔리드는 기본적으로 삭제된다.
옵션
- DeleteInput — 빼낼 솔리드 삭제 여부 → No로 설정하면 도구 솔리드가 남음
4. BooleanIntersection — 교집합
[캡쳐 넣기] 커맨드: BooleanIntersection사용 방법
- BooleanIntersection 실행
- 첫 번째 솔리드 선택 → Enter
- 두 번째 솔리드 선택 → Enter
두 솔리드가 겹치는 부분만 남고 나머지는 삭제된다.
5. BooleanSplit — 분할
커맨드: BooleanSplitBooleanDifference는 빼낸 부분을 삭제하지만, BooleanSplit은 잘린 두 부분을 모두 남긴다. 솔리드를 특정 형상으로 나눠야 할 때 쓴다.
6. Boolean 실패 원인과 해결법
Boolean은 라이노에서 가장 실패가 잦은 명령어다. 원인별로 해결 방법이 다르다.① 닫히지 않은 솔리드
Boolean은 닫힌 솔리드(Closed Polysurface)에서만 정상 작동한다.
- What — 객체 정보 확인 → "Closed polysurface"면 정상 / "Open polysurface"면 Boolean 실패
열린 서페이스는 ShowEdges로 열린 엣지를 찾아 닫아야 한다.
- ShowEdges → Naked edges 표시 → 열린 부분 확인 후 Cap / Join으로 닫기
② 서페이스 방향 불일치
서페이스 법선 방향이 뒤집혀 있으면 Boolean이 실패하거나 반대로 작동한다.
| 명령어 | 설명 |
|---|---|
| Dir | 법선 방향 확인 |
| Flip | 방향 뒤집기 |
| UnifyMeshNormals | 전체 방향 통일 |
③ 교차면이 공차 범위를 벗어남
두 솔리드의 교차 경계가 너무 복잡하거나 공차 범위를 벗어나면 실패한다.
- 공차 설정 확인 (Options → Document Properties → Units)
- 교차 부분 형상 단순화
- Intersect 명령으로 교차선 미리 확인
④ 중복 면 / 동일 평면 면
두 솔리드의 면이 정확히 같은 위치에 있으면 Boolean이 어느 쪽을 남길지 판단하지 못한다.
- 한쪽 솔리드를 아주 조금 이동 후 재시도
- 또는 MoveEdge로 면 위치 미세 조정
7. Boolean 대안 — 수동으로 처리하기
Boolean이 계속 실패하면 수동으로 처리하는 방법도 있다. 번거롭지만 복잡한 형상에서 Boolean이 실패할 때 가장 확실한 방법이다.- Intersect — 두 솔리드의 교차선 추출
- Trim / Split — 교차선으로 각 서페이스 자르기
- Delete — 불필요한 면 삭제
- Join — 남은 면 합치기
정리
| 명령어 | 기능 | 비고 |
|---|---|---|
| BooleanUnion | 합집합 | 겹침 필수 |
| BooleanDifference | 차집합 | DeleteInput 옵션 확인 |
| BooleanIntersection | 교집합 | 겹치는 부분만 남김 |
| BooleanSplit | 분할 | 양쪽 모두 남김 |
| 실패 시 | ShowEdges → 수동 Trim/Join | 최후 수단 |
댓글 없음:
댓글 쓰기