From 0f969c5a4dfbbf4df09cea2ece85999e0489af94 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sun, 18 Oct 2026 22:38:37 +0900 Subject: [PATCH] =?UTF-8?q?chore(=EC=9A=94=EA=B5=AC):=20=EC=9A=94=EA=B5=AC?= =?UTF-8?q?=20271-1~3=20=EB=B6=84=EC=84=9D=20=E2=80=94=20=EC=A7=81?= =?UTF-8?q?=EC=84=A0=ED=99=94=20=EB=B6=89=EC=9D=80=20=EA=B0=95=EC=A1=B0=20?= =?UTF-8?q?=EC=A0=95=EC=B2=B4=20=C2=B7=20=EB=81=9D=20R=20=EA=B8=B0?= =?UTF-8?q?=EB=B3=B8=20L=20=C2=B7=20=EC=98=81=EC=97=AD=20=EC=8B=A4?= =?UTF-8?q?=EC=8B=9C=EA=B0=84=20=EB=9D=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01C6BNBFXFndbqYxu6sZuknK --- .../조사/2026-10-18_461_요구271_직선화영역.md | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 docs/raw/조사/2026-10-18_461_요구271_직선화영역.md diff --git a/docs/raw/조사/2026-10-18_461_요구271_직선화영역.md b/docs/raw/조사/2026-10-18_461_요구271_직선화영역.md new file mode 100644 index 000000000..03958bb67 --- /dev/null +++ b/docs/raw/조사/2026-10-18_461_요구271_직선화영역.md @@ -0,0 +1,61 @@ +# 요구 271-1~3 — 종단 직선화 붉은 강조 · 끝 R 기본 L · 영역 실시간 띠 + +분석 = 클로드 에이전트(Opus 5.5 · 읽기만 · 진짜 TS node 재현 · scratchpad `req271\repro.cjs`) · 브레인 판단. + +## 1. 붉은 세로 점선 · 붉은 선 정체 + +- 경고 아님 — [쉬프트]용 「고른 직선」 강조(RunHighlight)가 직선화 모드에서 뜸. +- 직선화 첫 클릭이 직선 구간 안쪽이면 측점 고름 대신 직선 전체를 기울이기 대상으로 고름(`B05_Profile_UI_Profile_Panel_Tools.ts:181-188` · 고름 `B05_Profile_UI_Profile_Tools.ts:155-160, 206` · 그림 `B05_Profile_UI_Profile_RunHighlight.ts:74-111` · 색 `B05_Profile_UI_Style_Table.css:326-341`). +- 「R 없는 지점」 = 직선 위 꼭짓점(426 판정 · `tidyEdits` 가 R 지움) 또는 직선 안 빈 곳 · 438 초기 직선화로 긴 직선이 많아 자주 걸림. +- 덤: 직선화 빈 곳 클릭이 측점에 안 붙음(`B05_Profile_UI_Profile_Render.ts:226-232` · 자유지정은 `snapStation`). + +## 2. 곡선 규칙(지금) + +- 편집 = `station_offsets`(높이) · `curve_radii`(R) · 열쇠 chainageKey · 측점마다 꼭짓점 · 끝은 `pinEnds`. +- R 지정 꼭짓점 L = R·|Δ| · 지정 없는 꺾임 = 기본 L(TS `logic/B05_Profile_UI_Profile_Alignment.ts:297-358` ↔ `B05_Profile_Engine_Grade_Alignment.py:306-360`) · BP · EP 곡선 없음. +- 직선화 뒤 끝 꼭짓점이 R 없으면 L 20 곡선 생김(정상) · 끝에 저장 자동 R 이 남으면 그 R 을 써서 L ≠ 20. +- 이미 직선인 범위 = Δ 0 → 곡선 못 생김. +- 덤 흠: tilt · 자유지정이 적는 R = L/Δ 를 반올림 높이로 다시 셈하면 L 19.99998 → 거짓 「L 20m 미달」(오차 1e-6 · `logic/B05_Profile_Profile_CurveLaw.ts:75` · `B05_Profile_Engine_Grade_CurveLaw.py:63`). + +## 3. 정함(브레인) + +- 직선화 모드 클릭 = 늘 측점 고름(181-188 갈림 지움 · 붉은 강조 안 생김) · 클릭은 `snapStation` 으로 측점에 붙임. +- 끝 꼭짓점 R 이 저장 자동 R 과 같으면 지움(433-13 ▲▼ 규칙과 같음 · 사용자 R 은 둠) → 끝 곡선 기본 L 20 · 자유지정 `buildFreeEdits` 끝도 같은 규칙. +- 이미 직선인 범위 = 그 범위를 부분 구간으로 고름(보라 띠 · 안내 「이미 직선 — ▲▼ 로 꺾으면 양 끝에 기본 L 곡선」) · ▲▼ = `tiltStraightRun(sub)` → 양 끝 L 20 · BP · EP 는 곡선 없음. +- 법정 판정 오차 = 1e-3 m(TS ↔ 파이썬 짝). +- 실시간 띠 = 새 도우미 `A00_Common/design/design_profile_range_band.ts`(띠 + 세로선 + 「시작–끝 · 길이」 글) · 직선화 · 자유지정 range 단계 함께 · 첫 클릭 뒤 커서 측점까지 · 그래프 밖 = 시작선만 · Esc = 시작만 취소(모드 유지) · 반대 방향 정렬. +- 서버 = 편집 꼴 같음 · `_apply_alignment_edits` → `build_alignment` 가 같은 규칙 → 거울 시험만. + +## 4. 파일 · 줄 수(한도 700) + +| 파일 | 줄 | 바뀜 | +|---|---|---| +| `B05_Profile_UI_Profile_Panel_Tools.ts` | 364 | 갈림 지움 · 붙음 · 띠 · Esc | +| `B05_Profile_UI_Profile_Tools.ts` | 240 | 안내 · 부분 구간 고름 | +| `logic/B05_Profile_UI_Profile_Straighten.ts` | 306 | 끝 자동 R 규칙 | +| `A00_Common/design/logic/design_profile_free.ts` | 401 | hoverStation · marks | +| `A00_Common/design/design_profile_free_view.ts` | 217 | 띠 그림 = 도우미 | +| `A00_Common/design/design_profile_range_band.ts` | 새 | ~70 | +| `logic/B05_Profile_Profile_CurveLaw.ts` · `B05_Profile_Engine_Grade_CurveLaw.py` | 81 · 68 | 오차 짝 | + +손대지 않음: `logic/B05_Profile_UI_Profile_Alignment.ts`(700) · `design_profile.ts`(691) · Render · RunHighlight · 서버 묶음 영향 없음. + +## 5. 화면 확인 목록(밝음 · 어두움) + +1. 직선 안 R 없는 꼭짓점 첫 클릭 = 붉은 선 · 점선 없음 · 보라 시작선. +2. 빈 곳 클릭 = 가까운 측점선에 붙음. +3. 첫 클릭 뒤 마우스 이동 = 띠가 커서 측점까지 · 글 · 둘째 클릭 범위 = 띠. +4. 왼쪽으로 고름 = 같은 결과. +5. 끝이 R 없는 점 = L 20 곡선 · 법정 경고 칩 그대로. +6. 끝에 저장 자동 R = 직선화 뒤 L 20 · 손 R 은 그대로. +7. BP · EP 끝 = 곡선 없음. +8. 이미 직선 범위 = 보라 띠 + 안내 · ▲▼ = 양 끝 L 20 · 거짓 미달 경고 없음. +9. 곡선 섞인 범위 = 안쪽 R 지움 · 양 끝 L 20. +10. Esc = 시작만 취소 · 고른 측점 안 풀림. +11. 그래프 밖 = 시작선만 · 다시 들어오면 이어짐. +12. 가로 줌 · 스크롤 중 띠 = 측점선 자리. +13. ↶ 한 번에 원위치 · ↷. +14. 자유지정 range 단계 실시간 띠 · 둘째 클릭 뒤 고정 · armed · drawing 미리보기 그대로 · Backspace · ↶ · Esc. +15. [쉬프트] 붉은 강조는 그대로. +16. 팝아웃 종단에서 3 · 14. +17. 직선화 중 ▲ 단추가 계획고 조정 + 고름 둘로 새는지.