From fe49284c7023c7d605ec8ad930c5770ef05f405a Mon Sep 17 00:00:00 2001 From: SPipe Engineering Date: Fri, 6 Nov 2026 15:08:01 +0900 Subject: [PATCH] =?UTF-8?q?README:=20=EB=8F=84=EB=A9=B4=20=EC=B6=9C?= =?UTF-8?q?=EB=A0=A5=20=EC=95=88=EB=82=B4=20=EC=B6=94=EA=B0=80=20(?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EA=B0=9C=EC=9A=94,=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=20=EA=B0=80=EC=9D=B4=EB=93=9C,=20API,=20=EC=84=9C=EB=B2=84=20?= =?UTF-8?q?=EB=B0=98=EC=98=81=20=EC=8B=9C=20npm=20install,=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=20=ED=95=B4=EA=B2=B0,=20=EC=A0=80=EC=9E=A5=EC=86=8C?= =?UTF-8?q?=20=EA=B5=AC=EC=A1=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- README.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 75bcc3c..4279ae8 100644 --- a/README.md +++ b/README.md @@ -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