# P&ID 설비 연결 정보 추출 분석 보고서

**파일**: `src/Web/uploads/pid/plant-10100-only.dxf`
**분석일**: 2026-05-06
**목적**: DXF 파일에서 설비 노드 및 연결 관계 추출 가능성 분석

---

## 1. DXF 파일 구조 분석

### 1.1 기본 정보

- **DXF 버전**: AutoCAD 형식 (ezdxf 정상 읽기 가능)
- **총 엔티티 수**: 6,655개

### 1.2 엔티티 통계

| 엔티티 타입 | 수 | 설명 |
|-------------|-----|------|
| LINE | 4,934 | 선분 (파이프, 심볼 경계) |
| TEXT | 761 | 단일 줄 텍스트 |
| CIRCLE | 334 | 원 (밸브, 심볼) |
| ARC | 219 | 호 (밸브, 심볼) |
| MTEXT | 76 | 다중 줄 텍스트 |
| LWPOLYLINE | 33 | 경량 폴리라인 |
| HATCH | 31 | 해칭 (심볼 채움) |
| ELLIPSE | 27 | 타원 |
| SOLID | 16 | 고체 도형 |
| POINT | 8 | 점 |
| SPLINE | 7 | 스플라인 |
| LEADER | 1 | 리더 라인 |

### 1.3 레이어 목록

| 레이어명 | 용도 |
|----------|------|
| 0 | 기본 레이어 (설비 태그, 일반 텍스트) |
| PROCESS LINE | 공정 파이프 라인 |
| INSTRUMENT | 계기/계측기 정보 |
| LINENO | 파이프 라인 번호 |
| VALVE NO | 밸브 번호 |
| STEAM LINE | 스팀 라인 |
| WATER | 물 라인 |
| ELECTRIC SIGNAL | 전기 신호 라인 |
| UTIL | 유틸리티 |
| TEXT | 일반 텍스트 |
| 건축 | 건축 요소 |
| PSV | 안전 밸브 |
| DM | 다이어프램 메터 |
| ECT-FITTINGS | 피팅 |
| 1-SYMBOL | 심볼 |
| 8-치수선 | 치수선 |
| TITLE | 제목 블록 |
| VA NO | 밸브 액추에이터 번호 |
| REV.UPDATE | 수정 이력 |
| SH1 | 시트 정보 |
| 기타 | Defpoints, C, 1, 0-BAS 등 |

### 1.4 블록 정의

- **사용자 정의 블록 없음** - 설비 심볼이 블록이 아닌 개별 엔티티(LINE, CIRCLE, ARC)로 직접绘制됨

---

## 2. 설비 노드 정보 추출 분석

### 2.1 텍스트 기반 설비 태그 추출 결과

DXF 파일의 TEXT/MTEXT 엔티티에서 설비 태그 패턴을 추출한 결과:

| 설비 타입 | 태그 수 | 예시 |
|-----------|---------|------|
| P- (펌프/프로세스) | 60+ | P-10101, P-10114, P-10118 |
| PSV- (안전밸브) | 11 | PSV-10101, PSV-10111, PSV-10119A |
| E- (히터/교환기) | 1 | E-10119 |
| SC- (스크러버) | 4 | SC-10128, SC-9128 |
| BV- (버튼밸브) | 2 | BV-10100, BV-10101 |

### 2.2 계기/계측기 정보 (INSTRUMENT 레이어)

총 180개 텍스트에서 추출 가능한 계기 정보:

| 계기 타입 | 설명 | 예시 태그 |
|-----------|------|-----------|
| FCV | 유량 제어 밸브 | FCV-10101 |
| FICQ | 유량 지시 제어기(누적) | FICQ-10101 |
| FIT | 유량 변환기 | FIT-10101 |
| TICA | 온도 지시 제어 알람 | TICA-10111 |
| TIA | 온도 지시 알람 | TIA-10111 |
| TI | 온도 지시 | TI-10117 |
| PICA | 압력 지시 제어 알람 | PICA-10111 |
| PIA | 압력 지시 알람 | PIA-10111 |
| PCV | 압력 제어 밸브 | PCV-10113 |
| PRV | 압력 감압 밸브 | PRV-10113 |
| TCV | 온도 제어 밸브 | TCV-10111 |
| XV | 온/오프 밸브 | XV-10111 |
| PG | 압력 게이지 | PG-10101 |
| TG | 온도 게이지 | TG-10100 |
| LG | 수위 게이지 | LG-10101 |
| LT | 수위 전송기 | LT-10101 |
| FI | 유량 지시 | FI-10111 |
| LICA | 수위 지시 제어 알람 | LICA-10113 |
| LIA | 수위 지시 알람 | LIA-10111 |
| LI | 수위 지시 | LI-10100 |
| TE | 온도 요소 | TE-10103 |
| PT | 압력 전송기 | PT-10111 |
| FIT | 유량 변환기 | FIT-10101 |

### 2.3 파이프 라인 정보 (LINENO 레이어)

총 118개 파이프 라인 번호 추출 가능:

| 라인 번호 | 규격 | 등급 | 재질 |
|-----------|------|------|------|
| P-10138 | 600A | F2A | H100 |
| P-10143 | 32A | F1A | n |
| P-10127 | 65A | F2A | n |
| VG-10441 | 200A | F1A | n |
| CWS-10612 | 200A | S2A | n |
| CWR-10622 | 200A | S2A | n |
| N2-10701 | 25A | F1A | n |

### 2.4 밸브 정보 (VALVE NO 레이어)

총 128개 밸브 번호 추출 가능:

| 밸브 ID | 연결 설비 |
|---------|-----------|
| E10115BA-01 | E-10115 |
| C10111BA-01 | C-10111 |
| D10113BA-01 | D-10113 |
| VP10117BA-01 | V-10117 |
| SP10601BA-01 | S-10601 |
| HD10114BA-01 | H-10114 |
| P10114BA-06 | P-10114 |
| T10100BA-07 | T-10100 |

### 2.5 추출 가능성 평가

| 항목 | 추출 가능 | 신뢰도 | 비고 |
|------|-----------|--------|------|
| 설비 태그 (P-, E-, SC-) | ✅ 예 | HIGH | 텍스트 패턴 명확 |
| 계기 태그 (FCV, FICQ 등) | ✅ 예 | HIGH | INSTRUMENT 레이어 분리 |
| 파이프 라인 번호 | ✅ 예 | HIGH | LINENO 레이어 분리 |
| 밸브 번호 | ✅ 예 | HIGH | VALVE NO 레이어 분리 |
| 설비 한글 명칭 | ❌ 아님 | - | DXF에 한글 설명 없음 |
| 설비 타입 분류 | ⚠️ 부분적 | MEDIUM | 태그 접두사로 추론 가능 |

---

## 3. 연결 관계 추출 분석

### 3.1 파이프 라인 연결 (PROCESS LINE 레이어)

- **LINE 엔티티**: 351개
- **좌표 기반 연결 추적 가능**: LINE 엔티티의 시작/끝 좌표가 인접하게 연결되어 파이프 경로 추적 가능
- **예시**: `(1812.0, 1726.9) → (1810.5, 1726.9)` 와 같은 짧은 선분들이 연결되어 파이프 경로 형성

### 3.2 다른 라인 레이어

| 레이어 | LINE 수 | 용도 |
|--------|---------|------|
| STEAM LINE | 69 | 스팀 라인 |
| WATER | 22 | 물 라인 |
| ELECTRIC SIGNAL | 42 | 전기 신호 라인 (제어 신호) |
| UTIL | 48 | 유틸리티 |

### 3.3 연결 관계 추출 방법

1. **텍스트 위치 기반**: 설비 태그 TEXT 엔티티의 좌표와 파이프 LINE 엔티티의 좌표를 비교하여 인접한 설비 간 연결 추론
2. **라인 연결 추적**: PROCESS LINE 레이어의 LINE 엔티티들을 시작/끝 좌표로 연결하여 파이프 경로 구성
3. **레이어별 분리**: 공정 라인, 스팀 라인, 전기 신호 라인을 레이어별로 분리 처리

### 3.4 추출 가능성 평가

| 항목 | 추출 가능 | 신뢰도 | 비고 |
|------|-----------|--------|------|
| 파이프 경로 추적 | ⚠️ 부분적 | MEDIUM | 좌표 기반 연결 추적 필요 |
| 설비-파이프 연결 | ⚠️ 부분적 | LOW | 텍스트-라인 거리 계산 필요 |
| 제어 신호 연결 | ⚠️ 부분적 | LOW | ELECTRIC SIGNAL 레이어 분석 필요 |
| 흐름 방향 | ❌ 아님 | - | 화살표 심볼이 텍스트로 없음 |
| 정확한 연결점 | ❌ 아님 | - | 심볼과 라인의 연결점이 명시적이지 않음 |

---

## 4. 부족 정보 및 한계점

### 4.1 DXF에 없는 정보 (추출 불가)

| 필요한 정보 | DXF 존재 여부 | 대체 방법 |
|-------------|---------------|-----------|
| 설비 한글 명칭 | ❌ 없음 | 외부 매핑 테이블 필요 |
| 흐름 방향 (화살표) | ❌ 없음 | 파이프 라인 번호 규칙으로 추론 |
| 심볼-라인 연결점 | ❌ 명시적 아님 | 거리 기반 매칭 필요 |
| 설비 사양 (용량, 크기) | ❌ 없음 | 외부 문서 참조 필요 |
| 제어 로직 상세 | ❌ 없음 | 계기 태그로만 유추 가능 |

### 4.2 주요 한계점

1. **설비 명칭 부재**: DXF에는 "P-10101" 같은 태그만 있고, "원료 펌프" 같은 한글 설명이 없음
2. **블록 미사용**: 설비 심볼이 블록이 아닌 개별 도형으로绘制되어 심볼 인식 어려움
3. **연결점 불명확**: 파이프 라인과 설비 심볼의 연결 좌표가 정확히 맞지 않음
4. **방향 정보 부재**: 화살표가 별도 심볼로 존재하지 않아 흐름 방향 판단 어려움

### 4.3 추가 필요한 정보

- [ ] **설비 정의서**: 태그별 한글 명칭 및 사양
- [ ] **P&ID 범례(Legend)**: 심볼별 의미 정의
- [ ] **파이프 클래스 테이블**: 라인 번호별 재질/규격 정의
- [ ] **계기 데이터시트**: 계기별 제어 로직 및 연결 정보

---

## 5. 결론

### 5.1 추출 가능 vs 불가능 요약

| 항목 | 추출 가능 | 방법 |
|------|-----------|------|
| 설비 태그 목록 | ✅ HIGH | 텍스트 패턴 매칭 |
| 계기 태그 목록 | ✅ HIGH | INSTRUMENT 레이어 |
| 파이프 라인 번호 | ✅ HIGH | LINENO 레이어 |
| 밸브 번호 | ✅ HIGH | VALVE NO 레이어 |
| 설비 한글 명칭 | ❌ | 외부 데이터 필요 |
| 파이프 연결 경로 | ⚠️ MEDIUM | 좌표 기반 추적 |
| 흐름 방향 | ❌ | 화살표 정보 부재 |
| 제어 신호 연결 | ⚠️ LOW | ELECTRIC SIGNAL 레이어 분석 필요 |

### 5.2 샘플과 비교

| 샘플 항목 | DXF 추출 결과 |
|-----------|---------------|
| P-101A (펌프) | P-10101, P-10114, P-10118 추출 가능 (한글 명칭 없음) |
| E-101 (프리히터) | E-10119 추출 가능 |
| C-101 (분리탑) | 직접적인 C- 태그 없음 (VALVE NO에서 C10111BA 참조) |
| V-101 (탱크) | T-10100, T-10101 추출 가능 |
| FCV-101 | FCV + 10101 조합으로 추출 가능 |
| PCV-101 | PCV + 10113 조합으로 추출 가능 |
| XV-101 | XV + 10111 조합으로 추출 가능 |
| 연결 관계 | 좌표 기반 부분적 추적 가능 |

### 5.3 최종 판단

**DXF 파일만으로는 샘플 수준의 완전한 설비 연결 정보 추출이 불가능합니다.**

- **추출 가능한 부분**: 설비/계기/밸브/파이프 태그 목록 (HIGH 신뢰도)
- **한계**: 한글 명칭, 흐름 방향, 정확한 연결 관계는 외부 정보 없이 추출 불가
- **권장**: DXF 텍스트 추출 + 외부 설비 정의서 매핑 + 좌표 기반 연결 추론을 조합한 하이브리드 접근 필요
