fix(B06): BOX암거 성토선을 박스 최상단 모서리에서 끝냄
모서리 밖은 구체 개구부·날개벽이라 성토가 아니다(2026-08-25 사용자). 원지반까지 잇던 구간을 지운다 — 성토선은 노견 → (수평 연장) → 박스 최상단까지만이다. 검증(10+0.9): 좌 [(2, 535.821) → (2.744, 535.201)], 우 [(−2, 535.701) → 수평 → (−2.744, 535.201)] — 두 선 모두 상단 표고에서 종료. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
* · 상판 윗면 = **노면 − 복토 0.5m**(별표2 교차 참조), 구체는 수평 설치(교본 3장).
|
||||
* · 저판은 **날개벽 투영**(길이×cos각)만큼 계류 상·하류로 길어진다 — 세월교와 같은 산식.
|
||||
* · 내공(유로)은 비워 둔다 — 관 위 성토 채움처럼 면을 칠하지 않는다.
|
||||
* · **성토선은 박스 최상단 모서리를 지난다**(2026-08-25 사용자). 물매 1:1.2 고정이라
|
||||
* · **성토선은 박스 최상단 모서리에서 끝난다**(2026-08-25 사용자). 물매 1:1.2 고정이라
|
||||
* 박스가 노견 밖으로 나간 만큼 노견을 수평 연장하고 거기서 사면을 시작한다 —
|
||||
* 기슭막이 "벽이 밖으로 나간 만큼 노폭 연장" 규칙과 같다. 그래서 박스 길이를
|
||||
* 늘리면 노견부가 저절로 길어지고 사면 각도는 그대로다.
|
||||
@@ -36,8 +36,8 @@ export interface BoxLayout {
|
||||
/** 구체 바닥과 계류 하상(원지반 최저)의 고저차(m). +면 구체가 하상 위로 떠 있다. */
|
||||
bedGapM: number;
|
||||
/**
|
||||
* 양측 성토선 — 노견 → (박스가 나간 만큼 수평 연장) → 박스 최상단 모서리 →
|
||||
* 1:1.2로 원지반까지. 물매는 고정이고 길이만 지형이 정한다.
|
||||
* 양측 성토선 — 노견 → (박스가 나간 만큼 수평 연장) → 박스 최상단 모서리에서 끝.
|
||||
* 물매 1:1.2 고정이며, 모서리 밖은 구체 개구부라 선을 잇지 않는다.
|
||||
*/
|
||||
fillLines: OffsetPoint[][];
|
||||
label: { at: OffsetPoint; text: string };
|
||||
@@ -128,18 +128,9 @@ export function computeBoxLayout(
|
||||
const points: OffsetPoint[] = [{ offset: edgeOffset, elevation: roadZ }];
|
||||
// 박스가 더 길면 노견을 수평으로 늘린다(각도 불변 — 2026-08-25 사용자).
|
||||
if ((start - edgeOffset) * outward > 0.01) points.push({ offset: start, elevation: roadZ });
|
||||
// 모서리에서 끝난다 — 그 밖은 구체 개구부·날개벽이라 성토가 아니다
|
||||
// (2026-08-25 사용자: 박스와 만난 뒤의 성토선은 필요 없다).
|
||||
points.push(corner);
|
||||
// 모서리 밖은 같은 물매로 원지반과 만날 때까지.
|
||||
let toe = corner;
|
||||
for (let drop = 0.05; drop <= 30; drop += 0.05) {
|
||||
const probe: OffsetPoint = {
|
||||
offset: corner.offset + outward * drop * FILL_SLOPE_RATIO_MIN,
|
||||
elevation: corner.elevation - drop,
|
||||
};
|
||||
toe = probe;
|
||||
if (probe.elevation <= groundAt(probe.offset)) break;
|
||||
}
|
||||
points.push(toe);
|
||||
return points;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user