chore(sync): 공유 docs 파일 담음 — 기준 커밋과 같은 내용

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FJqWQpoB1RE7hiaQ2wH8qV
This commit is contained in:
2026-10-06 16:49:13 +09:00
co-authored by Claude Opus 5.5
parent 6912246fb0
commit 43e5e6ecc7
34 changed files with 607 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
---
trigger: always_on
description: Consult the graphify knowledge graph at graphify-out/ for codebase and architecture questions.
---
## graphify
This project has a graphify knowledge graph at graphify-out/.
Rules:
- For codebase or architecture questions, when `graphify-out/graph.json` exists, first run `graphify query "<question>"` (CLI) or `query_graph` (MCP). Use `graphify path "<A>" "<B>"` / `shortest_path` for relationships and `graphify explain "<concept>"` / `get_node` for focused concepts. These return a scoped subgraph, usually much smaller than `GRAPH_REPORT.md` or raw grep output.
- If graphify-out/wiki/index.md exists, navigate it instead of reading raw files
- Read graphify-out/GRAPH_REPORT.md only for broad architecture review or when query/path/explain do not surface enough context
- After modifying code files in this session, run `graphify update .` to keep the graph current (AST-only, no API cost)
+10
View File
@@ -0,0 +1,10 @@
---
name: graphify
description: Turn any folder of files into a navigable knowledge graph
---
# Workflow: graphify
Follow the graphify skill installed at ~/.gemini/config/skills/graphify/SKILL.md to run the full pipeline.
If no path argument is given, use `.` (current directory).
+24
View File
@@ -0,0 +1,24 @@
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "C:\\Users\\umsan\\AppData\\Local\\Programs\\Python\\Python312\\Scripts\\graphify.EXE hook-guard search"
}
]
},
{
"matcher": "Read|Glob",
"hooks": [
{
"type": "command",
"command": "C:\\Users\\umsan\\AppData\\Local\\Programs\\Python\\Python312\\Scripts\\graphify.EXE hook-guard read"
}
]
}
]
}
}
+22
View File
@@ -0,0 +1,22 @@
{
"permissions": {
"allow": [
"Read(//c/Program_coding/임도설계 및 견적자동화 프로그램 개발/**)",
"Bash(python -c \"import aiomysql; print\\('ok'\\)\")",
"Bash(python -c \"import pymysql; print\\('pymysql ok'\\)\")",
"Bash(python -c \"import mysql.connector; print\\('mysql.connector ok'\\)\")",
"Bash(\"/c/Program_coding/임도설계 및 견적자동화 프로그램 개발/venv/Scripts/python.exe\" \"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\claude\\\\c--Program-coding----------------------docs\\\\57bf1f9e-714c-482d-9caa-a113bdc0a8d6\\\\scratchpad\\\\inspect_db.py\")",
"Bash(\"/c/Program_coding/임도설계 및 견적자동화 프로그램 개발/venv/Scripts/python.exe\" \"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\claude\\\\c--Program-coding----------------------docs\\\\57bf1f9e-714c-482d-9caa-a113bdc0a8d6\\\\scratchpad\\\\inspect_db2.py\")",
"Read(//c/Program_coding/임도설계 및 견적자동화 프로그램 개발/A01_Home/**)",
"Bash(cd \"c:\\\\Program_coding\\\\임도설계 및 견적자동화 프로그램 개발\\\\A01_Home\" && ls -la)",
"Read(//c/Program_coding/�ӵ����� �� �����ڵ�ȭ ���α׷� ����/**)",
"Read(//c/Program_coding/임도설계 및 견적자동화 프로그램 개발/A00_Common/**)",
"Read(//c/Program_coding/�ӵ����� �� �����ڵ�ȭ ���α׷� ����/docs/wiki/**)",
"Bash(find \"c:\\\\Program_coding\\\\임도설계 및 견적자동화 프로그램 개발\" -name \"*locale*\" -type f 2>/dev/null | head -5)",
"Read(//c/Program_coding/�ӵ����� �� �����ڵ�ȭ ���α׷� ����/docs/wiki/pages/**)",
"Read(//c/Program_coding/임도설계 및 견적자동화 프로그램 개발/A06_Login/**)",
"Read(//c/Program_coding/임도설계 및 견적자동화 프로그램 개발/ui_template/**)",
"Read(//c/Program_coding/임도설계 및 견적자동화 프로그램 개발/A07_Register/**)"
]
}
}
+15
View File
@@ -0,0 +1,15 @@
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "C:\\Users\\umsan\\AppData\\Local\\Programs\\Python\\Python312\\Scripts\\graphify.EXE hook-check"
}
]
}
]
}
}
+3
View File
@@ -0,0 +1,3 @@
{
"promptDelete": false
}
+1
View File
@@ -0,0 +1 @@
{}
+1
View File
@@ -0,0 +1 @@
[]
+33
View File
@@ -0,0 +1,33 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"footnotes": false,
"properties": true,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": true,
"bases": true,
"webviewer": false
}
+22
View File
@@ -0,0 +1,22 @@
{
"collapse-filter": false,
"search": "",
"showTags": true,
"showAttachments": true,
"hideUnresolved": true,
"showOrphans": true,
"collapse-color-groups": false,
"colorGroups": [],
"collapse-display": false,
"showArrow": false,
"textFadeMultiplier": 0,
"nodeSizeMultiplier": 1,
"lineSizeMultiplier": 1,
"collapse-forces": false,
"centerStrength": 0.518713248970312,
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 0.7003715382344561,
"close": true
}
+271
View File
@@ -0,0 +1,271 @@
{
"main": {
"id": "99c9496f9af0d35f",
"type": "split",
"children": [
{
"id": "34e9ffa4ccc78d90",
"type": "tabs",
"dimension": 56.82302771855011,
"children": [
{
"id": "41ded8d7baed12f5",
"type": "leaf",
"state": {
"type": "graph",
"state": {},
"icon": "lucide-git-fork",
"title": "그래프 뷰"
}
}
]
},
{
"id": "23dcd189ca429a1a",
"type": "tabs",
"dimension": 43.17697228144989,
"children": [
{
"id": "ba0eee70a4b40379",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "wiki/architecture/project_map.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "project_map"
}
},
{
"id": "a632970c50a7a55e",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "wiki/ingest/verification_2026_07.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "verification_2026_07"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "1fdf49368d0b8d12",
"type": "split",
"children": [
{
"id": "286216e41ef17318",
"type": "tabs",
"children": [
{
"id": "bf4a66eeb6ba12b7",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-folder-closed",
"title": "파일 탐색기"
}
},
{
"id": "d69b070685f35c13",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "검색"
}
},
{
"id": "f48a2962a3eee224",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "북마크"
}
}
]
}
],
"direction": "horizontal",
"width": 200
},
"right": {
"id": "47e841f62a2c8446",
"type": "split",
"children": [
{
"id": "ed0c1ac6b73a8ced",
"type": "tabs",
"children": [
{
"id": "9eee98dc05d3fde2",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "백링크"
}
},
{
"id": "1e0ba87b26453941",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "나가는 링크"
}
},
{
"id": "aea498d48aaa60a0",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "태그"
}
},
{
"id": "dde952791b603350",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-archive",
"title": "모든 속성"
}
},
{
"id": "2daeda4e90730082",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "개요"
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"canvas:새 캔버스 만들기": true,
"graph:그래프 뷰 열기": false,
"switcher:빠른 전환기 열기": true,
"daily-notes:오늘의 일일 노트 열기": true,
"templates:템플릿 삽입": true,
"command-palette:명령어 팔레트 열기": true,
"bases:새 베이스 생성하기": true
}
},
"active": "41ded8d7baed12f5",
"lastOpenFiles": [
"wiki/concepts/completed_2026-08-29.md",
"wiki/graphify-out/2026-09-10/manifest.json",
"wiki/graphify-out/2026-09-10/graph.json",
"wiki/graphify-out/2026-09-10/cost.json",
"wiki/graphify-out/2026-09-10/GRAPH_REPORT.md",
"wiki/concepts/design_data_lifecycle.md",
"raw/verification/2026-09-10_계획서_e_f_g_이관_교차검증.md",
"raw/plans/2026-08-13_plan_rainfall_wamis_station.md",
"raw/plans/2026-08-18_plan_B05_sidebar_ui_page_improvements.md",
"wiki/graphify-out/cache/ast/v0.9.12/f9ba53d937aa3d2e502fc976096f58f6671fe27c5529f52ef6044ffbc784862e.json",
"wiki/graphify-out/cache/ast/v0.9.12/cf5183db8137ee3c2c8cef6fd3be395b4b85a83c3f4717a1bf054b7ee6a702c1.json",
"wiki/graphify-out/cache/ast/v0.9.12/0489582c6e1820a05b10a55cc165ce0f4edeb1407c6161876dbc5de3c1014709.json",
"wiki/graphify-out/cache/ast/v0.9.12/56000e954dc3088e72f1b346511bee73a2328868f4e835e165857118f5ebed1c.json",
"wiki/graphify-out/cache/ast/v0.9.12/f7cb9eaa4aaca14f928852ace24b0735c46a4f8115b5c7502093b2e31e82bbc8.json",
"wiki/graphify-out/cache/ast/v0.9.12/2f9bba4bbf05240f2f639495a7d9a4f2641825e576c5440395aa5b95986b7544.json",
"wiki/graphify-out/cache/ast/v0.9.12/80835802ae68203adcb24943f96b1845160622a7d86361c4c0b5bfb7e73a5c8d.json",
"wiki/pages/B06_Section/B06_cross_design_ui_2026_09.md",
"wiki/pages/B05_Profile/B05_profile_interaction_2026_09.md",
"wiki/pages/B04_PreProcess/B04_compass_crs_2026_09.md",
"wiki/pages/B03_FileInput/B03_upload_ui_2026_09.md",
"wiki/concepts/completed_2026-09-03_additional.md",
"raw/plans/2026-09-03_plan_completed_items_2.md",
"wiki/pages/B08_DesignDetail/B08_cad_delivery_2026_09.md",
"wiki/pages/B06_Section/B06_masshaul_culvert_2026_09.md",
"wiki/pages/B05_Profile/B05_masshaul_structure_2026_09.md",
"wiki/pages/B04_PreProcess/B04_drainage_compass_crs.md",
"wiki/pages/B03_FileInput/B03_route_snapshot_crs.md",
"wiki/concepts/completed_2026-09-03.md",
"wiki/architecture/workflow_data_flow.md",
"wiki/graphify-out/memory/query_20260821_101018_임도_기술정보db에서_집수정의_형태정보는_어떤게_있는지_확인해줘.md",
"wiki/architecture/project_map.md",
"wiki/pages/B05_Profile/B05_Profile_plan_2026-08-19.md",
"wiki/pages/B06_Section/B06_culvert_set.md",
"wiki/pages/B05_Profile/B05_structures.md",
"raw/verification/2026-08-16_verify_B05_구조물_수동추가_교차검증.md",
"raw/plans/2026-08-16_plan_B05_구조물_수동추가.md",
"raw/law/original/임도기술교본/그림/그림 3-24 노선의 계곡부와 산등부분 계획.png",
"raw/law/original/임도기술교본/그림/그림 3-23 기존 작업도로의 지반과 계획고.png",
"raw/law/original/임도기술교본/그림/그림 3-21 분묘 통과 측량 평면.png",
"raw/law/original/임도기술교본/그림/그림 3-22 분묘 주변의 횡단 계획 및 구조물 배치도.png",
"raw/law/original/임도기술교본/그림/그림 3-20 BOX암거 설치 단면도.png",
"raw/law/original/임도기술교본/그림/그림 3-18 세월교 설치 종단도.png",
"raw/law/original/임도기술교본/그림/그림 3-19 BOX암거 설치 종단도.png",
"raw/law/original/임도기술교본/그림/그림 3-17 물넘이포장 설치 횡단도.png",
"raw/law/original/임도기술교본/그림/그림 3-16 물넘이포장 단면 조사.png",
"raw/law/original/임도기술교본/그림/그림 3-15 유출구 주계곡 유수 흐름의 방해가.png",
"무제 4.canvas",
"무제 3.canvas",
"무제 2.canvas",
"무제 1.canvas",
"무제.canvas"
]
}
@@ -226,3 +226,101 @@ B05에서 3D 영역의 상단 버튼들 중 원근으로, 직교로 버튼의
(10-6 사용자)
횡단 카드 폭과 종단 하단 패널(테이블, 유토곡선, 배수유역도 포함) 둘다 너의 제안대로 반영해줘. 반영해주면 내가 직접 검증하겠음
(10-6 사용자 · 배관 기본값)
관 컨테이너 관경 배수유역에 의해 자동설정 값, 사용자에 의해 변경 가능
관길이 횡단도의 관 보호공의 위치에 의해 결정, 사용자 변경 불가
관 보호공(공통) 구조 집수정
관 보호공(유입)_집수정 구조 집수정 일 경우
형태 L형
높이 1.5
관 보호공(유입)_흙막이 구조 흙 막이 일 경우
형태 돌 쌓기(찰)
길이 10
높이 1.5
기준측점 전 5
기준측점 후 5
관 보호공(유출)_흙막이 구조 흙막이 일 경우(구조 선택지 하나밖에 없음)
형태 돌 쌓기(찰)
길이 10
높이 1.5
기준측점 전 5
기준측점 후 5
추가 흙막이 단 0
연동 TRUE(활성화 될 경우)
경사 TRUE(활성화 될 경우)
추가 흑막이 구조 흙막이 일 경우(구조 선택지 하나밖에 없음)
형태 돌 쌓기(찰)
길이 10
높이 1.5
기준측점 전 5
기준측점 후 5
연동 TRUE(활성화 될 경우)
경사 TRUE(활성화 될 경우)
* 사면안정 구조물 군의 흙막이도 동일함, 일원화
* 연동과 경사는 공간이 부족하여 줄바꿈처리됨. 글자를 조금 줄여서 줄바꿈 안되게 반영하거나 글자 주변 여유를 조금 줄일것
(10-6 사용자)
횡단도의 노폭과 노견 확장에 대한 정보를 횡단도 중심에 있는데 이걸 아래로 X 축라벨 상단으로 빼는게 좋겠어.
(10-6 사용자)
구조물군 변경시에 횡단도 하이라이트 초기화 안됨
(10-6 사용자)
다음 배관과 흙막이의 선택지에 대한의견임. 선택 안함 항목들은 그냥 값이 없어야함. 기본 값이 아니라.
(10-6 사용자)
1. 관 보호공 유입에서 연동과 경사 옵션은 결국 종단방향의 길이가 있는 것들에만 들어가는 옵션이야.
2. 집수정 옵션에서 내공이라는 옵션이 나오는데 의미가 뭔지 모르겠음. 필요없는 정보로 보임.
(10-6 사용자)
3. 연동과 경사 버튼의 높이를 추가 흙막이의 + 버튼의 높이와 같게 이건 구조물 배치 컨테이너의 하위 컨테이너 내부의 항목들 공통임. 템플릿으로 만들어서 반영. 그렇다고 삭제, 리셋 버튼까지 바꿀필요는 없음.
(10-6 사용자)
기본값은 비워져 있을때 대체해서 넣어주는 값이아니라 그냥 프론트엔드에 그냥 값을 넣은 상태로 보여줬으면 해.
(10-6 사용자)
돌쌀기(메)의 경우 형상이 원지반에 붙어서 연장됨. 형상 정보에 대해 재정리 하겠음.
1. 관보호공의 흙막이, 사면보호의 흙막이, 옹벽, 추가 흙막이 등은 전부 같은 로직으로 형상을 횡단도에 그려지고 동작해야함
2. 관보호공의 흙막이는 배관에 연동되에 위치제어만 제약이 생김.(배관은 m 단위로 떨어져야 함으로)
3. 형태에 따라 다른건 내부 그림의 형태만 변경을 함.
4. 각각의 형태별로 원지반을 침투하는 리밋과 높이 리밋이 존재하는데 이부분은 삭제(사용자에게 선택권을 주겠음.)
5. 단 노면위로 올라오는건 방지.
(10-6 사용자)
빈칸은 그냥 빈칸이야. 별도의 안내는 필요없어. 기본 값 XX 라 흐린 글씨로 작성하지 말고 기본값을 사용자가 넣은 것 처럼. 기본값을 입력하면 된다는 말이야. 그리고 필수로 집수정이낭 흙막이처럼 필수로 필요한 정보에는 선택안함 선택지 자체가 없어야해.
(10-6 사용자)
기존 프로젝트에서 존재하는 예전 데이터 때문에 검증이 어려운것같은데 쉽게 데이터를 초기화하고 신규로직으로 적용되게 하는 방법은 없어?
B 방향이 맞겠네. 새 프로젝트를 만드는건 문제없어보여. 이때 개별 워크트리들이 검증할수 있는 프로젝트를 각각지정해주는게 좋겠어. 그리고 추가로 엄상준과 박동철 프로젝트도 같이 만들어줘. 같은회사 검증자 들이야. 이 사람들도 본인의 프로젝트로 검증할거야.
이전 프로젝트는 그냥 삭제해
전부 다 손대도 상관없음 프로젝트 전역 초기
(10-6 사용자)
그런데 이전 프로젝트를 삭제할때 대시보드에서 리스트가 나오는데 정리해줘.
(10-6 사용자)
내가 원지반 제약에의 구조물 형상 생성 및 제어 제약에 대해 락을 풀어달라고 했는데 반영이 안된것 같아. 확인해봐.
(10-6 사용자)
다음으로 종단 패널의 종단도에서 알약선택시 나오는 선택정보 창에서 내용은 옵션 제목은 필요없고 구분기호 하나 넣고 옵션값만 구조물 이름 행과 2행은 옵션값만으로 표현해도 됨
(10-6 사용자)
횡단도에서 형상의 제약조건이 어떤게 있는지 확인 좀 해줘. 배관과 흙막이, 옹벽관련 내용들만 일단 찾아줘.
(10-6 사용자)
다음으로 좌측 패널에서 서브 컨테이너의 항목을 선택/변경/생성 할 경우에 횡단도에서 선택한것처럼 이동되어야할것같아.
(10-6 사용자)
추가로 배관의 도수로/돌붙임의 경우에는 복수 값이 아니야. 생성이 되었다면 추가 버튼이 없어져야함.
(10-6 사용자)
1. 종단도의 구조물 알약의 이름이 구조물군의 종류 값과 매칭이 안됨. 같은 값을 보게 개선.
2. 종단도에서 배관이 선택한 상태에서 다른 지점에 옹벽을 추가하기 위해 마우스 오른쪽 버튼을 클릭후 사면안정을 눌렀더니 하위 리스트는 안보이고 리셋된 상태가 됨. 확인
(10-6 사용자)
1. 도수로 돌붙임에는 컨테이너 제목에 1과 2 같은 정보는 필요없어보임.
2. 구조물의 높이 선택에 따라 제약이 발생한 경우 토스트 메세지 발생. 이것도 흙막이, 집수정, 옹벽, 관 보호공에서 높이 제약을 풀어줘. 사용자가 선택하게 할거야. 이건 이전에 요청했던 내용이야.
(10-6 사용자)
다음부터는 이제 워크트리별로 작업영역을 지정해서 진행하자. 지금 프로그램 폴더기준으로 M02, B05/B06 구조물 배치 패널, B06 횡단도 형상 제어, B07 상세 설계, B08 수량산출 페이지에 대해 분리하여 워크트리를 나눠서 너가 지시했으면 해. 이 방식은 한시적으로만 운영할 생각임.
@@ -0,0 +1,19 @@
# 54-44 새 검증 프로젝트 13
원본 입력 = 랩탑_보조(936be972…) · 새 로직 자동설계: 검증_랩탑메인 · 검증_sub1 · 검증_sub7 / 나머지 10 = 검증_랩탑메인 복제(tools_clone_project)
| 이름 | 소유 user | 프로젝트 id | 상태 | B05 (구조물 · 관 · 첫 관 기본값) |
| --- | --- | --- | --- | --- |
| 검증_랩탑메인 | 3 | 226fc805-26c8-4f5a-9956-bacb200e10a5 | WF3_ANALYZING | 구조물 0 · 관 11 · 첫 관 options {"pipe_diameter_mm": 1000, "pipe_kind": "파형강관", "inlet_type": "집수정", "inlet_basin_length_m": 2, "inlet_basin_before_m": 1, "inlet_basin_after_m": 1, "inlet_basin_height_m": 1.5, "inlet_revet_form": "돌쌓기(찰)", "inlet_revet_length_m": 10, "inlet_revet_before_m": 5, "inlet_revet_after_m": 5, "inlet_revet_height_m": 1.5, "outlet_type": "기슭막이", "outlet_revet_form": "돌쌓기(찰)", "outlet_revet_length_m": 10, "outlet_revet_before_m": 5, "outlet_revet_after_m": 5, "outlet_revet_height_m": 1.5, "inlet_structure": "L"} |
| 검증_sub1 | 3 | 7e420ed6-f940-4d12-a1a5-39cdcf70a391 | WF3_ANALYZING | 구조물 0 · 관 11 · 첫 관 options {"pipe_diameter_mm": 1000, "pipe_kind": "파형강관", "inlet_type": "집수정", "inlet_basin_length_m": 2, "inlet_basin_before_m": 1, "inlet_basin_after_m": 1, "inlet_basin_height_m": 1.5, "inlet_revet_form": "돌쌓기(찰)", "inlet_revet_length_m": 10, "inlet_revet_before_m": 5, "inlet_revet_after_m": 5, "inlet_revet_height_m": 1.5, "outlet_type": "기슭막이", "outlet_revet_form": "돌쌓기(찰)", "outlet_revet_length_m": 10, "outlet_revet_before_m": 5, "outlet_revet_after_m": 5, "outlet_revet_height_m": 1.5, "inlet_structure": "L"} |
| 검증_sub7 | 3 | 6d3b2812-6d5a-4168-a932-40e4ae303d5a | WF3_ANALYZING | 구조물 0 · 관 11 · 첫 관 options {"pipe_diameter_mm": 1000, "pipe_kind": "파형강관", "inlet_type": "집수정", "inlet_basin_length_m": 2, "inlet_basin_before_m": 1, "inlet_basin_after_m": 1, "inlet_basin_height_m": 1.5, "inlet_revet_form": "돌쌓기(찰)", "inlet_revet_length_m": 10, "inlet_revet_before_m": 5, "inlet_revet_after_m": 5, "inlet_revet_height_m": 1.5, "outlet_type": "기슭막이", "outlet_revet_form": "돌쌓기(찰)", "outlet_revet_length_m": 10, "outlet_revet_before_m": 5, "outlet_revet_after_m": 5, "outlet_revet_height_m": 1.5, "inlet_structure": "L"} |
| 검증_sub2 | 3 | c9fcb148-00e9-45fb-80b9-685e36bc694b | WF3_ANALYZING | 구조물 0 · 관 11 · 첫 관 options {"pipe_diameter_mm": 1000, "pipe_kind": "파형강관", "inlet_type": "집수정", "inlet_basin_length_m": 2, "inlet_basin_before_m": 1, "inlet_basin_after_m": 1, "inlet_basin_height_m": 1.5, "inlet_revet_form": "돌쌓기(찰)", "inlet_revet_length_m": 10, "inlet_revet_before_m": 5, "inlet_revet_after_m": 5, "inlet_revet_height_m": 1.5, "outlet_type": "기슭막이", "outlet_revet_form": "돌쌓기(찰)", "outlet_revet_length_m": 10, "outlet_revet_before_m": 5, "outlet_revet_after_m": 5, "outlet_revet_height_m": 1.5, "inlet_structure": "L"} |
| 검증_sub3 | 3 | 1f93a515-df0a-4975-a8ba-daaa7672b123 | WF3_ANALYZING | 구조물 0 · 관 11 · 첫 관 options {"pipe_diameter_mm": 1000, "pipe_kind": "파형강관", "inlet_type": "집수정", "inlet_basin_length_m": 2, "inlet_basin_before_m": 1, "inlet_basin_after_m": 1, "inlet_basin_height_m": 1.5, "inlet_revet_form": "돌쌓기(찰)", "inlet_revet_length_m": 10, "inlet_revet_before_m": 5, "inlet_revet_after_m": 5, "inlet_revet_height_m": 1.5, "outlet_type": "기슭막이", "outlet_revet_form": "돌쌓기(찰)", "outlet_revet_length_m": 10, "outlet_revet_before_m": 5, "outlet_revet_after_m": 5, "outlet_revet_height_m": 1.5, "inlet_structure": "L"} |
| 검증_sub4 | 3 | 269f0a78-bac2-4eff-b8ed-c96cf9327839 | WF3_ANALYZING | 구조물 0 · 관 11 · 첫 관 options {"pipe_diameter_mm": 1000, "pipe_kind": "파형강관", "inlet_type": "집수정", "inlet_basin_length_m": 2, "inlet_basin_before_m": 1, "inlet_basin_after_m": 1, "inlet_basin_height_m": 1.5, "inlet_revet_form": "돌쌓기(찰)", "inlet_revet_length_m": 10, "inlet_revet_before_m": 5, "inlet_revet_after_m": 5, "inlet_revet_height_m": 1.5, "outlet_type": "기슭막이", "outlet_revet_form": "돌쌓기(찰)", "outlet_revet_length_m": 10, "outlet_revet_before_m": 5, "outlet_revet_after_m": 5, "outlet_revet_height_m": 1.5, "inlet_structure": "L"} |
| 검증_sub5 | 3 | bec7fe41-83e7-4df7-86a3-fdddaa1f8fec | WF3_ANALYZING | 구조물 0 · 관 11 · 첫 관 options {"pipe_diameter_mm": 1000, "pipe_kind": "파형강관", "inlet_type": "집수정", "inlet_basin_length_m": 2, "inlet_basin_before_m": 1, "inlet_basin_after_m": 1, "inlet_basin_height_m": 1.5, "inlet_revet_form": "돌쌓기(찰)", "inlet_revet_length_m": 10, "inlet_revet_before_m": 5, "inlet_revet_after_m": 5, "inlet_revet_height_m": 1.5, "outlet_type": "기슭막이", "outlet_revet_form": "돌쌓기(찰)", "outlet_revet_length_m": 10, "outlet_revet_before_m": 5, "outlet_revet_after_m": 5, "outlet_revet_height_m": 1.5, "inlet_structure": "L"} |
| 검증_sub6 | 3 | 2a505e36-591f-462a-8240-23ea655a6a91 | WF3_ANALYZING | 구조물 0 · 관 11 · 첫 관 options {"pipe_diameter_mm": 1000, "pipe_kind": "파형강관", "inlet_type": "집수정", "inlet_basin_length_m": 2, "inlet_basin_before_m": 1, "inlet_basin_after_m": 1, "inlet_basin_height_m": 1.5, "inlet_revet_form": "돌쌓기(찰)", "inlet_revet_length_m": 10, "inlet_revet_before_m": 5, "inlet_revet_after_m": 5, "inlet_revet_height_m": 1.5, "outlet_type": "기슭막이", "outlet_revet_form": "돌쌓기(찰)", "outlet_revet_length_m": 10, "outlet_revet_before_m": 5, "outlet_revet_after_m": 5, "outlet_revet_height_m": 1.5, "inlet_structure": "L"} |
| 검증_sub8 | 3 | 1bb0f876-983f-4ca5-9cc7-f59ee1f77e0a | WF3_ANALYZING | 구조물 0 · 관 11 · 첫 관 options {"pipe_diameter_mm": 1000, "pipe_kind": "파형강관", "inlet_type": "집수정", "inlet_basin_length_m": 2, "inlet_basin_before_m": 1, "inlet_basin_after_m": 1, "inlet_basin_height_m": 1.5, "inlet_revet_form": "돌쌓기(찰)", "inlet_revet_length_m": 10, "inlet_revet_before_m": 5, "inlet_revet_after_m": 5, "inlet_revet_height_m": 1.5, "outlet_type": "기슭막이", "outlet_revet_form": "돌쌓기(찰)", "outlet_revet_length_m": 10, "outlet_revet_before_m": 5, "outlet_revet_after_m": 5, "outlet_revet_height_m": 1.5, "inlet_structure": "L"} |
| 검증_데스크탑메인 | 3 | 3e331b49-05e7-43f8-b464-bf06e05d9516 | WF3_ANALYZING | 구조물 0 · 관 11 · 첫 관 options {"pipe_diameter_mm": 1000, "pipe_kind": "파형강관", "inlet_type": "집수정", "inlet_basin_length_m": 2, "inlet_basin_before_m": 1, "inlet_basin_after_m": 1, "inlet_basin_height_m": 1.5, "inlet_revet_form": "돌쌓기(찰)", "inlet_revet_length_m": 10, "inlet_revet_before_m": 5, "inlet_revet_after_m": 5, "inlet_revet_height_m": 1.5, "outlet_type": "기슭막이", "outlet_revet_form": "돌쌓기(찰)", "outlet_revet_length_m": 10, "outlet_revet_before_m": 5, "outlet_revet_after_m": 5, "outlet_revet_height_m": 1.5, "inlet_structure": "L"} |
| 검증_데스크탑서브 | 3 | b97e52f4-a649-4be0-92cc-27b2f9458b2a | WF3_ANALYZING | 구조물 0 · 관 11 · 첫 관 options {"pipe_diameter_mm": 1000, "pipe_kind": "파형강관", "inlet_type": "집수정", "inlet_basin_length_m": 2, "inlet_basin_before_m": 1, "inlet_basin_after_m": 1, "inlet_basin_height_m": 1.5, "inlet_revet_form": "돌쌓기(찰)", "inlet_revet_length_m": 10, "inlet_revet_before_m": 5, "inlet_revet_after_m": 5, "inlet_revet_height_m": 1.5, "outlet_type": "기슭막이", "outlet_revet_form": "돌쌓기(찰)", "outlet_revet_length_m": 10, "outlet_revet_before_m": 5, "outlet_revet_after_m": 5, "outlet_revet_height_m": 1.5, "inlet_structure": "L"} |
| 엄상준_검증 | 10 | d2245e3b-0468-4a90-ac5c-50b2adcb56e7 | WF3_ANALYZING | 구조물 0 · 관 11 · 첫 관 options {"pipe_diameter_mm": 1000, "pipe_kind": "파형강관", "inlet_type": "집수정", "inlet_basin_length_m": 2, "inlet_basin_before_m": 1, "inlet_basin_after_m": 1, "inlet_basin_height_m": 1.5, "inlet_revet_form": "돌쌓기(찰)", "inlet_revet_length_m": 10, "inlet_revet_before_m": 5, "inlet_revet_after_m": 5, "inlet_revet_height_m": 1.5, "outlet_type": "기슭막이", "outlet_revet_form": "돌쌓기(찰)", "outlet_revet_length_m": 10, "outlet_revet_before_m": 5, "outlet_revet_after_m": 5, "outlet_revet_height_m": 1.5, "inlet_structure": "L"} |
| 박동철_검증 | 9 | f1277414-39a7-476c-9dce-ab27e0b11cba | WF3_ANALYZING | 구조물 0 · 관 11 · 첫 관 options {"pipe_diameter_mm": 1000, "pipe_kind": "파형강관", "inlet_type": "집수정", "inlet_basin_length_m": 2, "inlet_basin_before_m": 1, "inlet_basin_after_m": 1, "inlet_basin_height_m": 1.5, "inlet_revet_form": "돌쌓기(찰)", "inlet_revet_length_m": 10, "inlet_revet_before_m": 5, "inlet_revet_after_m": 5, "inlet_revet_height_m": 1.5, "outlet_type": "기슭막이", "outlet_revet_form": "돌쌓기(찰)", "outlet_revet_length_m": 10, "outlet_revet_before_m": 5, "outlet_revet_after_m": 5, "outlet_revet_height_m": 1.5, "inlet_structure": "L"} |
@@ -0,0 +1,55 @@
# 54-45 횡단 형상 제약표 — 배관 · 흙막이 · 옹벽
범위: 관 · 집수정 · 관 보호공 흙막이(유입·유출) · 추가 흙막이(다단) · 사면안정 흙막이 · 옹벽. 화면 = 서버(같은 TS 를 Node 번들로 돎 — `config/server_calc_node`). 줄 번호는 B06_Section 기준.
## 풂
| # | 무엇 | 어디 | 값 | 처리 |
|---|---|---|---|---|
| 1 | 관 유출 흙막이 — 원지반에 묻히면 위로 0.05m씩 되돌림(매몰-무교차 자리 금지) | 옛 `Culvert_Solve.ts:400` `requireCrossing` · 화면/서버 | 3도 절토선 교차 없으면 금지 | 이번에 풂 |
| 2 | 독립 기슭막이 유입 벽 — 1과 같은 되돌림 | 옛 `Culvert_Geom.ts:224` · 화면/서버 | 같음 | 이번에 풂 |
| 3 | 관 유입 흙막이 ▼ — 유출 벽이 원지반에 못 서면 유입도 못 내려감 | 옛 `Culvert_Solve.ts:436` `outletReceivable` · `placeInletWall` 가드 | 0.05m씩 되돌림 | 이번에 풂 |
| 4 | 사면안정 흙막이 · 옹벽 — 묻히는 자리면 위 · 안쪽으로 되돌림 | 옛 `Cross_Revetment.ts:209` `placeable` | 3도 절토선 교차 없으면 금지 | 이번에 풂 |
| 5 | 추가 흙막이 — 묻히는 자리면 d · x 되돌림 | 옛 `Culvert_Extra.ts:320` `placeable` | 이음선 위 지반 · 0.5m 이상 매몰 금지 | 이번에 풂 |
| 6 | 추가 흙막이 — 시작점이 원지반 아래면 다단 끊음 | 옛 `Culvert_Extra.ts:241` | 단 수 줄어듦 | 이번에 풂(`Culvert_Extra.ts:241`) |
| 7 | 추가 흙막이 — 남은 성토 0.7m 미만이면 다단 끊음 | 옛 `Culvert_Extra.ts:244` | 0.7m | 이번에 풂 |
| 8 | 추가 흙막이 — 앉을 지형 없으면 단 안 세움 | 옛 `Culvert_Extra.ts:296` | 지형 높이 0.05m 미만 | 이번에 풂 — 시작점 바로 밖에 섬(`Culvert_Extra.ts:295`) |
| 9 | 「좌우 이동 지형에 막힘」 값(`shiftBlockedM`) | 옛 `Culvert_Extra.ts:383` | 요청 − 적용 | 이번에 풂 — 막힘이 없어 안 나옴 |
| 10 | 형태별 높이 한도(메 2.0 · 찰 3.0 · 콘크리트 5.0) 자르기 | 54-42 지움 | — | 54-42 풂 |
| 11 | 추가 흙막이 원지반 맞춤 늘이기 | 54-42 지움 | — | 54-42 풂 |
## 남김
| # | 무엇 | 어디 | 값 | 남긴 까닭 |
|---|---|---|---|---|
| 12 | 벽 윗면 노면 위 금지 | `Cross_Wall.ts:70` · `Culvert_Solve.ts:388`(d 하한) · `Cross_Revetment.ts:212`(d ≥ 0) | 노면 표고에서 멈춤 | 브레인 규칙 ① |
| 13 | 관 길이 m 단위 — 유출 흙막이 자리 = 관 끝 | `Culvert_Geom.ts:248` · `:435` | 올림 정수 m | 브레인 규칙 ② |
| 14 | 최소 토피 — 유입 관 끝 ≤ 노면 − 관경 − 토피 | `Culvert_Geom.ts:128` · `Culvert_Const.ts:14` | 0.5m | 관 규칙(노면 기준 · 원지반 아님) |
| 15 | 역경사 금지 — 유출 관 끝 ≤ 유입 관 끝 · 유출 흙막이 ▲ 한도 | `Culvert_Geom.ts:240` · `:401` · `Culvert_Solve.ts:390` | 실측 440.2: ▲ −5 요청 → d 0.5 | 물 흐름(관 규칙) · 유입이 원지반 자동값이면 간접으로 걸림 |
| 16 | 관 시작 관 끝 자동값 = 원지반(토피 상한 안) | `Culvert_Geom.ts:129` · `:186` | 자동 자리만 | 벽을 움직이면 벽 자리를 따라감 — 잠금 아님 |
| 17 | 관 흙막이 최소 높이 | `Culvert_Const.ts:142` | 관경 + 1.0m | 관이 벽 위로 · 바닥으로 안 나오게 |
| 18 | 흙막이 좌우 노견 안쪽 금지 | `Culvert_Solve.ts:393` · `Cross_Revetment.ts:208` | x ≥ 0 | 원지반 무관 · 도로 안으로 못 들어감 |
| 19 | 성토선 1:1.2 각도 유지 — 선반 하한 | `Culvert_Extra.ts:317` · `Cross_Revetment.ts:210` | x ≥ 1.2·d(실측 d 3 → x 3.6) | 원지반 무관 · 성토 물매 |
| 20 | 다단 관통 금지 — 아랫단 윗면 ≤ 윗단 바닥 | `Culvert_Extra.ts:300` | 실측 d 0 요청 → 0.5~0.9 | 벽끼리 규칙 |
| 21 | 다단 수 | `Cross_Structure_Panel.ts:340` | 0~9 | 화면 칸 한도 |
| 22 | 벽 최저 높이 | `Culvert_Extra.ts:253` · `Cross_Revetment.ts:184` | 근입 + 0.1 = 0.6m | 형상이 안 무너지게 |
| 23 | 근입 깊이 고정 | `Culvert_Const.ts:76` | 0.5m | 기하 기준선 |
| 24 | 벽 두께 | `Culvert_Const.ts:17` | 0.45m | 기하 기준 |
| 25 | 전면 기울기 = 표준경사 표(형태 무관) | `Cross_Lean.ts:22` | 단면유형 × 설치 측 × 높이 | 54-42 결정 |
| 26 | 집수정 I형 벽 바닥 원지반까지 묻음 | `Culvert_Basin.ts:244` | 지반 − 부재두께 | 집수정 — 54-45 벽 범위 밖 · 사용자 확인 필요 |
| 27 | 집수정 ㄴ·ㄷ 기본 판정(절토선 없으면 I) | `Culvert_Basin.ts:51` | 기본값만 | 고른 값은 그대로 · 잠금 아님 |
| 28 | 집수정 내공 | `Cross_Structure_Panel.ts:309` | 1~2m | 화면 칸 한도 |
| 29 | 집수정 좌우 노견 안쪽 금지 | `Cross_View_Structure.ts:134` | ≥ 0 | 원지반 무관 |
| 30 | 사면안정 흙막이 · 옹벽 설치 측 빈 칸 = 성토 쪽 · 양측 절토면 안 그림 | `Cross_Revetment.ts:175` | — | 단면유형 규칙(원지반 아님) |
| 31 | 성토사면 5m 초과 경고 | `Culvert_Const.ts:180` · `Cross_Culvert.ts:114` | 5m | 경고만 · 잠금 아님 |
| 32 | 바닥 원지반 이격 경고 | `Cross_Culvert.ts:186` · `Cross_Revetment.ts:372` | 이격 m | 경고만 · 잠금 아님 |
| 33 | 유입 흙막이 선택지 판정(`revetAllowed`) | `Culvert_Basin.ts:417` | 원지반 > 토피 상한 | 계산만 · 쓰는 곳 없음 — 잠금 아님 |
## 확인 수치(검증_sub7 · 화면 eval = 서버 번들)
- 440.2 · 85.1 · 720.4 관 — 유출 d 8 · x 1 그대로(깊게) · x 9 그대로(멀리 · 이격 4.3~7.2m) · 다단 2단 d 3 그대로
- 옹벽(성토 측점에 붙임) — d 6 그대로 · ▲ −3 → 0(노면 멈춤) · 3단 중 3단
- 440.2 유출 흙막이 ▼ 8번 누름 → 캐시 d 10 남음(되돌림 없음)
- 서버 면적 = 화면 9건 전부 같음(절토 · 성토 ㎡ 소수 넷째 자리)
제약 33(남김 22)
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
C:\Users\umsan\AppData\Local\Programs\Python\Python312\python.exe
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long