README: 도면 출력 안내 추가 (기능 개요, 사용 가이드, API, 서버 반영 시 npm install, 문제 해결, 저장소 구조)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
SPipe EngineeringandClaude Opus 5.5 committed 2026-11-06 15:08:01 +09:00
1 parent e3f386addf
commit fe49284c70
1 file changed
+46 -5
+46 -5
View File
@@ -12,7 +12,8 @@ EPANET 2.3.5 엔진으로 관망을 해석하고, GIS·DEM·자산 정보를 한
- 해석 결과 지도·그래프·종단·보고서, 실측 보정
- 분석 도구: 소화전 모의, 관로 중요도, 급수 구역, VSP, 등치선, 에너지 비용, 자동 보정, 펌프 운전 최적화
- GIS 연동: SHP·DXF·DGN·MIF·GML·KML·GPKG 불러오기·내보내기, 좌표계 변환, 도형 연산
- DEM 기반 절점 표고 입력·검증, 유역·하천 분석, 3D 보기
- DEM 기반 절점 표고 입력·검증, 유역·하천 분석, 등고선, 3D 보기
- 도면 출력: 수리 종단면도, 관망도(색인도 + 부분도, 절점 수압표) → PDF·DXF(AutoCAD 2018)·SVG
- 프로젝트 파일(.spipe), 시나리오, 자동 백업
## 웹 기반으로 만드는 이유
@@ -67,6 +68,8 @@ INP 불러오기 또는 GIS 레이어로 관망 만들기
↓
분석 도구로 검토 (중요도 · 급수 구역 · 소화전 · 최적화 ...)
↓
도면 출력 (수리 종단면도 · 관망도 → PDF · DXF · SVG)
↓
INP · SHP · 엑셀 · .spipe 로 저장·공유
```
@@ -235,6 +238,32 @@ INP 밖에 별도로 두는 것:
| 지형(DEM) | DEM 표고 입력·검증, 인터넷 90m 표고, TIN, 유역·하천, 3D |
| GIS 도구 | 레이어 좌표계·내보내기, 도형 연산, 밸브·계량기·소블록 반영 |
### 도면 출력
상단 [내보내기] > [도면 출력](종단면도는 결과 창 [시간별 종단] > [도면 출력]으로도 열림)에서 실무 도면 양식으로 내보냅니다. 표제란(발주처·개정란·설계사·사업명·도면명·설계/제도/검토/승인·축척·작성일·도면번호)에 넣을 내용은 창에서 입력하며 다음에도 기억합니다.
| 도면 | 내용 |
|---|---|
| 수리 종단면도 | 두 절점 사이 경로의 지반선·관저고·동수경사선(선택 시점·최대)·배수지 H.W.L, 경로 위 실제 밸브·펌프와 설정값. 하단 표: 측점·절점번호·거리·추가거리·지반고·관저고·동수두·수압(기준 미만 붉은 글씨)·관경·연장 |
| 관망도 (한 장) | 관망 전체를 용지 한 장에. 유속·수압 판정색 또는 관경색, 좌표 격자, 방위표, 축척 막대, 켜진 GIS 레이어 배경 |
| 관망도 (색인도 + 부분도) | A3 격자로 자동 분할(이웃 도면 6% 겹침, 관이 지나는 칸만). 색인도 1장 + 부분도 N장, 부분도마다 위치도와 상하좌우·대각선 접속도면 표시. 도면 번호는 일련번호(01, 02 …) 또는 격자(A-1, B-2 …) |
- 부분도 축척: 자동(절점 간격에 맞춤) 또는 1:500~1:10,000 직접 선택
- 수압표: 절점마다 원 안에 동수두/지반고, 옆에 수압(kg/cm² 또는 m)과 유출량. 해석 결과가 있어야 그려지며, 자리가 없는 수압표는 생략하고 개수를 안내 (축척을 키우면 더 표시)
- 관로 표기: 관경 / 관경+연장 / 관번호+관경+연장
- 범례: 표형(서울시 배관망도식) / 간단형 / 표시 안 함, 제목 띠 색 선택
- 색상 구성: 기본 / CAD 기본색 / 색약 배려(Okabe-Ito) / 흑백 인쇄용, 등급별 색 직접 지정
- 글꼴: HY울릉도M(기본) 또는 맑은 고딕. HY울릉도M은 유료 글꼴이라 저장소에 넣지 않으며, 없는 PC에서는 맑은 고딕(PDF)·CAD 대체 글꼴로 표시
- 저장 형식
| 형식 | 내용 |
|---|---|
| PDF | 인쇄 창에서 "PDF로 저장". 분할 출력은 전 장이 한 파일 |
| DXF | 해석 API(`/api/drawing/dxf`, ezdxf)가 AutoCAD 2018 형식으로 생성. mm 단위, 도면층·선 굵기·색 구분, 한글 UTF-8. 분할 출력은 전 장을 모형 공간에 옆으로 나란히. API에 연결할 수 없으면 간이 R12 DXF로 저장 |
| SVG | 보고 있는 장만 |
관련 구현 위치: 도면 모델·표제란·범례 `src/drawing.ts`, 종단면도 `src/profileDrawing.ts`, 관망도·자동 분할 `src/networkDrawing.ts`, 모델→도면 자료 `src/drawingData.ts`, 출력 창 `src/DrawingExportModal.tsx`, DXF 생성 `backend/drawing_dxf.py`
### 저장과 백업
프로젝트 메뉴에서 `.spipe`로 저장하면 관망·시나리오·레이어·보정 자료가 한 파일에 담깁니다. 수정 중에는 10분마다 브라우저에 자동 백업되며(최근 30개), 프로젝트 메뉴 > 백업 기록에서 복원합니다.
@@ -258,6 +287,8 @@ INP 밖에 별도로 두는 것:
| POST | `/api/dem/{id}/sample` | 지점 표고 (쌍선형 보간) |
| POST | `/api/dem/{id}/hydro` | 하천선 추출 / 유역 |
| POST | `/api/dem/from-points` | 점 표고로 DEM 생성 (TIN) |
| GET | `/api/dem-base` | 서버에 등록한 기본 DEM 목록 |
| POST | `/api/drawing/dxf` | 도면(JSON) → DXF (AutoCAD 2018, UTF-8 한글) |
해석 결과의 필드 정의는 `src/types.ts`의 `SimulationResult`를 기준으로 합니다. 오류는 `{"detail": "..."}` 형식입니다.
@@ -298,16 +329,20 @@ INP 밖에 별도로 두는 것:
### Windows 서버 PC (현재 운영 방식)
현재 배포본은 데모 v2 (2026-10-30, 이전 배포 데모 v1 2026-10-15)입니다. 변경 내역은 `docs/SPipe_패치내역_v2_2026-10-30.txt`를 확인하고, (시험)으로 표시된 기능은 기존 방식과 결과를 비교해 사용합니다.
현재 배포본은 데모 v2 (2026-10-30, 이전 배포 데모 v1 2026-10-15)에 도면 출력을 더한 2026-11-06 판입니다. 변경 내역은 `docs/SPipe_패치내역_v2_2026-10-30.txt`와 `docs/SPipe_패치내역_도면출력_2026-11-06.txt`를 확인하고, (시험)으로 표시된 기능은 기존 방식과 결과를 비교해 사용합니다.
저장소의 파일(또는 배포용 압축 파일 `SPipe_server_*.zip`)을 서버 PC의 SPipe 폴더에 덮어쓰고 다음 순서로 실행합니다. 기존 `.venv`, `node_modules`, `data`와 `.env.local`은 유지합니다. 최초 설치 절차는 `SERVER_SETUP.md`를 따릅니다.
1. 새 라이브러리 설치 (데모 v2에서 scipy, rasterio 등이 추가되어 반드시 실행)
1. 새 라이브러리 설치 (데모 v2에서 scipy, rasterio 등, 2026-11-06 판에서 ezdxf(DXF)·maplibre-contour(등고선)가 추가되어 반드시 실행)
```powershell
.\.venv\Scripts\python.exe -m pip install -r backend\requirements.txt
```
```powershell
npm install
```
2. 화면을 다시 빌드하면서 서버 실행 (`-Rebuild` 없이 실행하면 예전 화면이 남음)
```powershell
@@ -365,8 +400,9 @@ npm run build
3. 해석 오류는 메시지의 `Error 2xx` 줄(EPANET 입력 오류)을 먼저 확인합니다.
4. 지도가 엉뚱한 곳에 그려지면 상단 좌표계 설정과 GIS 레이어의 원본 좌표계를 확인합니다.
5. 새 기능이 화면에 안 보이면 `start-lan.ps1 -Rebuild`로 다시 빌드했는지 확인합니다.
6. DEM·GIS 기능이 서버 오류를 내면 `pip install -r backend\requirements.txt`를 다시 실행했는지 확인합니다.
7. 인터넷 표고(90m)·OSM 건물·배경지도만 실패하면 사용자 PC의 외부 인터넷 차단 여부를 확인합니다.
6. DEM·GIS·도면 DXF 기능이 서버 오류를 내면 `pip install -r backend\requirements.txt`를 다시 실행했는지 확인합니다. DXF가 "간이 R12"로 저장되면 해석 API에 연결되지 않은 상태입니다.
7. 도면 글꼴이 다르게 보이면 그 PC에 HY울릉도M이 설치되어 있는지 확인하거나, 도면 출력 창에서 글꼴을 맑은 고딕으로 바꿉니다.
8. 인터넷 표고(90m)·OSM 건물·배경지도만 실패하면 사용자 PC의 외부 인터넷 차단 여부를 확인합니다.
자료가 이상하다고 관망 파일이나 백업을 지우지 않습니다. 먼저 프로젝트 메뉴 > 백업 기록과 실행 취소로 되돌릴 수 있는지 확인합니다.
@@ -375,6 +411,7 @@ npm run build
- `SERVER_SETUP.md`: 다른 Windows PC를 사내 서버로 설치하는 절차
- `deploy/README.md`: Docker·nginx 배포
- `docs/SPipe_패치내역_v2_2026-10-30.txt`: 데모 v2 변경 내역 (공지·첨부용)
- `docs/SPipe_패치내역_도면출력_2026-11-06.txt`: 도면 출력 추가 변경 내역 (공지·첨부용)
- `public/EXAMPLE_NETWORKS.md`: 예제 관망 설명
- `_worklog.md`: 배포본 등록·변경 작업 기록
@@ -389,12 +426,16 @@ src/ React 웹 앱
Map.tsx 지도 표시·편집 (MapLibre)
*Section.tsx 분석 탭 화면 (편집 도구, DEM, GIS, 최적화 ...)
*Tools.ts 분석·편집·GIS 순수 로직 (Node 테스트 대상)
drawing.ts 도면 모델(mm), 표제란·범례, SVG·간이 DXF 출력
profileDrawing.ts, networkDrawing.ts 수리 종단면도, 관망도(자동 분할)
DrawingExportModal.tsx 도면 출력 창
backend/ FastAPI 해석 API
main.py API 진입점
epanet.py EPANET DLL ctypes 바인딩
batch.py, jobs.py 일괄 해석 프레임워크와 분석 Job
gisio.py, gisops.py GIS 입출력·연산 (GDAL)
dem.py DEM 보관·표고·지형 타일·유역
drawing_dxf.py 도면 → DXF (AutoCAD 2018, ezdxf)
blocksys/ 블록 분할 CLI
tests/ pytest
64bit/ EPANET 2.3.5 DLL