fix(B06): 사용자가 켠 2단 절토가 재계산에서 사라지던 것
엔진 둘이 결과 딕셔너리에 **엔진이 실제 적용했는지**를 담아 저장했고, 그 값이 다음 재계산에 인자로 되먹여졌음. 그래서 토사 측점처럼 2단을 못 쓰는 자리에서 사용자가 켜 두면 저장값이 False 로 바뀌고, 그 False 가 다시 인자가 되어 **켬이 영구히 사라졌음.** - `two_stage_slope` 를 **받은 요청값 그대로** 내보내게 함(파이썬·TS 짝 두 줄). - 「실제로 적용됐나」를 읽는 곳은 코드 전체에 없음(전수 확인) — 읽는 쪽 여섯은 모두 사용자 설정으로 씀. 2단 사면이 그려지는 근거는 이 값이 아니라 설계선 기하임. - 저장 형식 안 바뀜. 옛 저장분도 그대로 읽힘. 시험 `test_b06_two_stage_slope_kept.py` 4건 — 토사에서 켬 유지 · 되먹임 왕복 · 끔도 유지 · 「2단은 설계선이 그린다」(암은 기하가 갈리고 토사는 같음) 확인. 거울 시험은 기존 `test_b06_cross_design_mirror.py` 가 그대로 잡음. 같은 모양인 `ditch_enabled` 은 손대지 않음 — 그쪽은 저장값을 「측구 없음」 판정으로 읽는 곳이 4군데(횡단 맞춤·횡단 그리기·B07 도면·3D 카브)라 처방이 다름. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -664,7 +664,12 @@ def compute_cross_design(
|
||||
"ditch_type": ditch_type if geometry.has_ditch else None,
|
||||
"cut_slope_ratio": round(geometry.cut_ratio, 4),
|
||||
"soil_cut_slope_ratio": round(geometry.soil_cut_ratio, 4),
|
||||
"two_stage_slope": bool(geometry.two_stage),
|
||||
# 사용자가 **켠 값**을 그대로 돌려준다 — 엔진이 실제로 적용했는지(`geometry.two_stage`)가
|
||||
# 아니다(2026-09-07). 적용 결과를 저장하면, 토사 측점처럼 못 쓰는 자리에서 false 가
|
||||
# 저장되고 그 false 가 다음 재계산 인자로 되먹여져 **사용자의 「켬」이 영구히 사라졌다.**
|
||||
# 「실제로 적용됐나」를 읽는 곳은 코드 전체에 하나도 없다(2026-09-07 전수 확인) —
|
||||
# 읽는 쪽은 모두 사용자 설정으로 쓴다. TS 짝: `common_util_cross_design.ts`.
|
||||
"two_stage_slope": bool(two_stage_slope),
|
||||
"fill_slope_ratio": round(geometry.fill_ratio, 4),
|
||||
"roadbed_width_m": round(geometry.left_extent + geometry.right_extent, 4),
|
||||
"carriageway_width_m": round(geometry.half_road_left + geometry.half_road_right, 4),
|
||||
|
||||
@@ -384,7 +384,11 @@ export function computeCrossDesign(
|
||||
ditch_type: geometry.hasDitch ? ditchType : null,
|
||||
cut_slope_ratio: round4(geometry.cutRatio),
|
||||
soil_cut_slope_ratio: round4(geometry.soilCutRatio),
|
||||
two_stage_slope: geometry.twoStage,
|
||||
// 사용자가 **켠 값**을 그대로 돌려준다 — 엔진이 실제로 적용했는지(`geometry.twoStage`)가
|
||||
// 아니다(2026-09-07, 짝: `B06_Section_Engine_Design.py`). 적용 결과를 저장하면 토사
|
||||
// 측점처럼 못 쓰는 자리에서 false 가 저장되고, 그 false 가 다음 재계산 인자로 되먹여져
|
||||
// 사용자의 「켬」이 영구히 사라졌다.
|
||||
two_stage_slope: options.twoStageSlope ?? true,
|
||||
fill_slope_ratio: round4(geometry.fillRatio),
|
||||
roadbed_width_m: round4(geometry.leftExtent + geometry.rightExtent),
|
||||
carriageway_width_m: round4(geometry.halfRoadLeft + geometry.halfRoadRight),
|
||||
|
||||
Reference in New Issue
Block a user