chore(조사): 요구 255~261 분석 — 관 형상 · 종단 꼭짓점 · 초기화 · 설계중심 · 평면 겹침 · 종단 직선 판정 · 평면 이동 측점 · B05 형상 제어 · 계산 전체
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C6BNBFXFndbqYxu6sZuknK
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
# 요구 255~261 분석 — 관 · 종단 · 초기화 · 설계중심 · 평면 겹침 · B05 형상 제어 · 계산 전체
|
||||
|
||||
분석 = 브레인 + 클로드 에이전트(Opus 5.5 · 읽기 전용 · 재현은 저장소 코드를 scratchpad 에서 그대로 실행 · 저장소 · storage 안 고침). 앞 분석 = `2026-10-18_412_요구253_분석.md` · `2026-10-18_419_요구254_추천엔진.md`.
|
||||
|
||||
## 1. 관 길이 7.2 대 7.7 m — 형상 차 (255-1 · 257-1)
|
||||
|
||||
- 집수정 높이는 안 잃음 — 관 옵션에 저장 · 옮겨도 따라감 · 1.2 m 는 빈 칸 기본값(255 설명 틀림 · 바로잡음).
|
||||
- 형상 차의 유력 원인(계산 분석 · 추정 · 판정 = 348 m 초안 `peekSectionDetail` 한 번):
|
||||
- ① 옮긴 관 측점이 옛 측점의 설계 · 상단측을 그대로 이어받음 — 갈아끼울 때 `{...prior, ...place}` 에 `uphill_side` 없음(`B06_Section/logic/B06_Section_Station_Swap.ts:155-172`) · 다시 셈이 옛 `section_mode` · `ditch_side` · `ground_type` 씀(`B06_Section_Cross_Refresh.ts:393-401`) · 서버는 0.5 m 넘게 옮긴 행을 지우고 새 상단측 기본 설계(`B05_Profile_Repository.py:266-279` · `B06_Section_Router_Design.py:665-674`).
|
||||
- ② 노선 초안 중 좌측 「관 길이」가 다시 안 센 캐시 상세를 읽음(`A00_Common/design/design_page.ts:118-121`).
|
||||
- ③ 저장 노선 다시 셈 창구에 미교차 넓힘 없음(서버는 있음 · `B06_Section_Server_Calc_Prebuild.py:227`) → 노면 끝 · 면적 · 관 길이 차.
|
||||
|
||||
## 2. 관을 옮겼다 되돌리면 종단 계획선 꺾임점이 사라짐 (255-2 · 257-2)
|
||||
|
||||
- 「계획선」 = **종단** 계획선 · 「꺾임점」 = 종단 VIP.
|
||||
- 자동 계획선은 모든 측점을 꼭짓점으로 두고 원지반을 지나게 함(`B05_Profile_Engine_Grade_Profile.py:173-252`) · 관 · 구조물을 옮기면 그 측점 꼭짓점을 지우고 새 자리에 안 세움(`B05_Profile_Router_Confirm.py:204-292` `_follow_moved_stations` ↔ `common_util/common_util_structure_station.ts:346` `followMovedNodes`) → 351 m 가 원지반보다 1.26 m 깎인 채 굳음.
|
||||
- 「최소고 강제」(관 위 흙 0.5 m 하한 · 기본 꺼짐)와 무관.
|
||||
|
||||
## 3. [초기화] 빈틈 (255-3 · 257-3)
|
||||
|
||||
- 정상 = 구조물 · 관 목록 · 위치 · 옵션 · B06 메모까지 마지막 초기값으로 통째.
|
||||
- 빈틈 ① 스냅샷 없는 폴백이 `plus_stations.json` 안 지움(`common_util_initial_snapshot.py:246`) ② 스냅샷에 배수 폴더 없으면 관 편집 안 돌아감(`:155-156, 261, 271-273`) ③ M02 `templates/structures/` 사본 안 맞춤(추정) ④ B07 · B08 단계 STALE 안 함(추정).
|
||||
|
||||
## 4. 횡단 설계중심 ◀▶ (257-4 · 260)
|
||||
|
||||
- 한 번 = 평면 노선을 그 측점에서 0.1 m 실제로 고침(노드 이동 · IP 이동 · 노드 끼움 · `B05_Profile/logic/B05_Profile_RouteShift.ts:71-91`) · 종단 계획고 붙잡음(`holdGrade` · 옛 종단과 다른 모든 측점을 사용자 꼭짓점으로 박음 `:134-147`) · 최소 R 검사 없음 · 꼭짓점 · 곡선 측점 카드가 늘 수 있음.
|
||||
- 사용자 확정(260): 끔 · 좌우는 평면으로만.
|
||||
|
||||
## 5. B06 평면 겹침 패널 (258)
|
||||
|
||||
- 기존 평면 편집기 노드(`.b05-routeedit`)를 B06 위 겹침 패널로 옮겨 붙임(둘째 캔버스 X) · 편집기 = 페이지에 하나 · 숨김에도 그림 · 크기 0 → 첫 크기 때 그림 · 누름 · 휠은 캔버스에 붙어 따라감.
|
||||
- 자리 = 횡단 보기 center(`.design-page__center`) · z-index 4 · 높이 45 % 안 · 손잡이 = `createWorkflowPanelHandle("bottom","up","평면")` · 숨김(CSS) = 단추 줄 · 상태줄 · 범례 · 잰 값 · 오른쪽 횡단 판 · 등고선 자물쇠.
|
||||
- B06 카드 고름 → 평면 그 측점 법선 이미 됨 · 카드 편집 → 계획 줄 → 평면 다시 그림.
|
||||
- 평면 방향키가 마지막 누름이 평면 안이면 화살표를 다 먹음 → 겹침에서 팬한 뒤 카드 ◀▶ 키 죽음 → `_Keys.ts:108` · `_StructureMarks.ts:373` 를 `.b05-route__main .b05-routeedit` 로 좁힘.
|
||||
|
||||
## 6. 종단 직선화 · 자유지정 뒤 R 남음 · ▲▼ 어긋남 · 편집 측점 수 (259)
|
||||
|
||||
- 원인 둘(둘 다 재현 · 파이썬 = TS 같음):
|
||||
- ① 「직선인가」를 기울기 정확 비교(곡선 1e-9 · ▲▼ 축 · 직선 찾기 1e-6 · 표 1e-4 %)로 함 · 안쪽 꼭짓점 높이를 소수 여섯째 자리로 끊어(±1e-6 m) 측점 간격 1 m 안쪽(구조물 측점)에서 직선인데 R ≈ 19만 곡선 · ▲ 가 0.4 m 조각을 경첩으로 −22.8 % 톱니.
|
||||
- ② 범위 끝점이 꼭짓점 아닌 측점(관 · 구조물 · 덧 · MC 곡선 측점)이면 끝점 높이가 따라 바뀌어 직선이 다음 꼭짓점부터 → R 남음(R318 · 0.31 m 어긋남) · ▲ 축 어긋남.
|
||||
- 덧: 직선화 모드 고른 직선 ▲ 두 번째 안 올라감 · ▼ 0.2 m 한 번에(`B05_Profile/logic/B05_Profile_UI_Profile_Straighten.ts:213-214`) · 자유지정 꺾은 점 R 기억 → ▲▼ 로 거의 직선이 돼도 R 표에 남음.
|
||||
- 편집 측점 N개 = 높이 오프셋 저장된 측점 수(`B05_Profile_UI_Profile_Balance.ts:102-103`) · 직선화 · 자유지정 · ▲▼ 한 번에 범위 측점 전부 · 0 으로 돌아와도 안 지움 → 같은 뿌리 · 원인은 아님.
|
||||
|
||||
## 7. 평면 이동 뒤 「측점이 없는 구조물」 알림 (261)
|
||||
|
||||
- **이동 맞음**(같은 id · 개수 그대로) · 알림 = 저장 파일끼리 대조(`B06_Section_Router_Stations.py:107-136` · 0.006 m).
|
||||
- 노선 [저장] 때 서버가 저장 x · y 로 관을 따라가 그 자리에 측점을 세움 → 곧바로 화면이 자기 계산 누가거리로 관 목록을 덮음(`common_util_route_follow.ts:123` `rebasePipeDraft` · 410 뒤 모든 따라간 관을 「사용자가 옮김」으로 봄) → 관 PUT → 측점 다시 세우는 차례 없음(`design_save.ts:213-219`) → 두 계산이 1 m 어긋나면 측점 없는 관 · 옛 자리 카드 남아 둘로 보임.
|
||||
- 어긋남 까닭(추정): 출발점(저장 x · y 대 「옛 누가거리 · 옛 선」 — GET 이 x · y 안 줌 `B04_PreProcess_Router_Basins.py:118-119, 364-372`) · 선(원 CSV 대 다듬은 설계 노선) · 정수 m 반올림.
|
||||
- 새 세류선 교차 관 더하기(`B05_Profile_Route_Save_Parts.py:71-91`)는 설계대로이고 그 관은 측점이 섬.
|
||||
|
||||
## 8. B05 형상 제어 전체 (260)
|
||||
|
||||
규칙 지도 · 위험은 에이전트 보고 그대로(file:line):
|
||||
- 평면 하한 검사(새로 깨면 되돌림)는 교점 끌기 · 방향키에만 · 끼우기 · 지우기 · 손잡이(이웃) · 곡선 삭제 · 되돌리기 · 추천 적용 없음 · 곡선 삭제는 155° 미만도 허용.
|
||||
- R · 길이 고정이 [저장] 때 사라짐(`B05_Profile_UI_RouteEdit_Apply.ts:81-82`) · 서버는 눌린 R 만 곡선표에(`B05_Profile_Router_Replan.py:228-270`) → 다시 열면 눌린 R 굳음.
|
||||
- 스냅 끔 · 간격 바꿈이 계산 줄에 [저장] 전까지 안 감(추정 · `B05_Profile_UI_RouteEdit.ts:162-166`) · 끌기 놓을 때 맞춤 보고 없음.
|
||||
- 종단: 꼭짓점마다 L 15 m 곡선(주석 셋 엇갈림) · 법정 종단곡선(20 km/h R ≥ 100 m · L ≥ 20 m · `resources/knowledge/original/법률/…/별표2…md:187-195`) 검사 없음 · 기본 L 15 < 20 · 기울기 막기 기본 경고만 · 최소고 기본 꺼짐 · 경고 · 막기 기준 다름.
|
||||
- MC 곡선 측점 열쇠 `curve:<누가거리>` → MC 움직이면 B06 편집 「노선 밖」 버림(추정).
|
||||
|
||||
## 9. B05 계산 전체 (260)
|
||||
|
||||
- 계산 줄 한 벌 · 어긋남 뿌리 = 같은 식에 다른 입력 · 횡단 입력 모음 브라우저 두 벌(노선 초안 = 엔진 · 넓힘 있음 / 저장 노선 = 다시 셈 창구 · 넓힘 없음).
|
||||
- 위험(높은 차례): 1장 ①②③ · ④ 노선 [저장] 뒤 계획선 편집이 횡단 다시 셈 없이(추정 · `B05_Profile_Route_Save.py:454` · `design_save.ts:216`) · ⑤ 상단측 차례가 소단 · 깎기 경사 · 조절 값 지움(`B05_Profile_Router_Confirm.py:150-196`) · ⑥ 노선 초안이 분석 지형으로 셈 · ⑦ 새 교차 관이 초안 미리보기에 없음 · ⑧ 유토 브라우저 두 벌 · ⑨ 덧 측점이 계산 줄 입력 밖(추정) · ⑩ 곡선 하한 처리 차(드묾) · 그 밖 Node 실패 때 유토 = 브라우저 값 · [저장] 차례 넷 실패해도 넘어감.
|
||||
- 더할 시험: 옮긴 관 상단측 · 관 길이 브라우저 대 서버 거울 · 저장 노선 넓힘 · 초안 계획고 저장 뒤 횡단 높이 · 상단측 차례 뒤 값 유지 · 덧 측점 묶음.
|
||||
|
||||
## 10. 결정
|
||||
|
||||
정함(브레인 · 바꿀 수 있음):
|
||||
- 관 · 구조물 옮김 때 종단 꼭짓점 = 새 측점에 자동 계획선 규칙(원지반 지남)으로 새로 세움 · 사용자가 높이를 고친 꼭짓점은 높이째 옮김 → 되돌리면 처음 값.
|
||||
- 직선 판정 하나 = 높이 기준(이웃 둘 잇는 선에서 1e-5 m 안) · TS · 파이썬 · 표 · ▲▼ 축 · 직선 찾기 같은 함수 · 직선이 된 꼭짓점은 기억한 R 도 지움.
|
||||
- 「편집 측점 N개」 = 실제로 꺾인 편집 꼭짓점 수 · 0 으로 돌아온 오프셋 지움.
|
||||
- 평면 하한 검사 = 모든 평면 조작이 끌기와 같이(새로 깨면 되돌림 · 상태줄 까닭) · 곡선 삭제는 155° 미만이면 경고.
|
||||
- R · 길이 고정 · 넣은 R 을 곡선표에 저장(파이썬 · TS 짝).
|
||||
- B06 평면 겹침 = 보기 · 팬 · 휠 확대만(끌기 · 끼우기 · 지우기 막음 · 편집은 B05 평면에서) · 사용자 말 「보여주기만」.
|
||||
- 평면 이동 뒤 측점 = 관 PUT 끝에 서버가 측점 다시 세움(`put_plus_stations` 처럼 · 모든 부르는 길) · `rebasePipeDraft` 는 따라가기만 한 관은 서버 누가거리 · GET 이 x · y 줌 · 알림은 [저장] 뒤 다시 봄.
|
||||
- 종단곡선 법정 R/L = 위반 표시부터(짝) · 기본 L 값은 사용자 결정.
|
||||
|
||||
사용자 결정:
|
||||
1. 종단곡선 기본 길이 L — 지금 15 m · 법정 최소(20 km/h) 20 m 로 올릴지.
|
||||
Reference in New Issue
Block a user