개요
일반적으로 우리는 선과 아크 그리고 폴리라인 객체를 이용하여 시설물을 표현한다. 여기서, 시설물이란 인간이 인간 다운 생활을 영위하기 위한 구조물로서 건물, 교량, 도로, 철도, 상하수도, 항만, 역사등 모든 건축물을 포괄한다.
건축물을 시공하기 위한 도면을 샵 드로잉(Shop Drawing)이라 하고 시공 도면은 상세 치수와 면적을 기반으로 하는 수량을 계산하고 이를 토대로 개략적인 공사비를 산출하여 건축물의 타당성을 판단한다.
최외곽 바운더리 찾기 알고리즘은 상세 설계에서 수량을 계산하기 위해 반드시 구현되어야 할 기능으로 Boundary Region을 통해 여러 가지 객체가 하나의 부재를 이루고 이 부재들이 이루고 있는 경계들을 모아서 바운더리를 계산하여 면적을 산출한다.
Linked List 구성
Line, Arc, Polyline 객체를 대상으로 리스트를 구성한다. 이 때 입력 데이터의 중복이 발생하는 지 검사하여 사전에 데이터가 균일 하도록 조정한다.
리스트 멤버
- 사용자가 영역을 계산하기 위해 선택한 객체를 Polyline으로 구성한 후 리스트 자료구조로 저장
- Line, Arc, Polyline, Spline, EllipseArc 지원
- 저장된 리스트의 Polyline을 이용하여 Edge 리스트를 구성
알고리즘
- Normalize : Dangling Vertex와 Dangling Edge를 사전에 파악하여 제거한다.
- Edge List 생성
사용자가 영역을 계산하기 위해 선택한 객체들의 서로 간의 교차 유무를 판별하여 교차가 발생한 점과 기존 Vertex 점을 기준으 로 Edge 리스트를 구성한다.

- Region 구성
최외곽 바운더리를 찾기 위한 핵심 알고리즘은 다음과 같다.
- 시작 Edge 선정 : 정답은 없지만, 외곽 바운더리를 효율적으로 구성하기 위해 좌 하단 Edge를 시작으로 함.
- 한 개의 Vertex가 여러 개의 Edge와 공유 될 때 외곽 찾는 알고리즘
- B점에서 A점으로 가는 방향의 Edge의 CCW 각도 계산
- B점에서의 Candidate Edge 추출 (4개 추출됨)
- 0번 Edge를 제외한 1, 12, 13번 Edge가 대상
- B점(시작점)에서 A점(끝점) Edge를 기준으로 하고 CCW인 Edge 중 가장 각도가 작은 Edge 선택
- 교차점이 나올 때 위 알고리즘을 반복

4. Make Region
최외곽 바운더리를 찾아 폐합 영역을 구성하는데 있어서 가장 핵심은 분기점이 나왔을 때 분기점 Edge의 역방향 Edge를 CCW 각을 구하고 이 역방향 Edge를 기준으로 가장 작은 각을 구성하는 Edge 찾아서 진행하면 최외곽 Edge들로 구성된 폐합 영역을 찾을 수 있다.
시연

맺으며
최외곽 바운더리는 엔지니어가 물량을 산출하고 싶을 때 선택한 객체들의 최외곽 바운더리를 계산하여 빠르게 영역을 추출하고 영역의 넓이를 계산한다.
PS: 사용하시다가 개선 사항이나 추가 요청 사항이 있으시면 댓글로 알려 주시면 감사하겠습니다.
좋은 하루 되세요~

최외곽 바운더리
명령 : mbr
'AutoCAD 3rdParty' 카테고리의 다른 글
| [CAD] 치수 스타일 설정 함수 (0) | 2026.03.24 |
|---|---|
| [CAD] 치수 속성창 값을 사용자가 변경한 경우 유지되는 메커니즘 (1) | 2026.03.18 |
| [CAD] ObjectARX Wizard 만들기 (0) | 2026.03.08 |
| [CAD] 평면 잘라내기 (부분 상세도 만들기) (0) | 2026.02.22 |
| [CAD] 자동 치수선 생성 (auto dimension) (3) | 2026.02.08 |