fix(B06): 횡단도 관 가운데 관 터파기 점선 삭제(73-6)
- 정체 = 관 중심에 수직으로 그리던 관 터파기 사각 파선(#8a5c3c 황갈 · 4 3) - 그리기 호출 · 안 쓰는 appendPipeTrench 삭제 (관 터파기 폭 계산 · 수량 그대로 · 벽 터파기 선 그대로) - 검증 프로젝트 66측점 · 밝음 · 어두움 테마 둘 다 황색 계열 점선 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EYJJRCfHfdCGNhmXTjQKV7
This commit is contained in:
@@ -21,11 +21,7 @@ import type {
|
|||||||
PipeEnd,
|
PipeEnd,
|
||||||
WallLayout,
|
WallLayout,
|
||||||
} from "./B06_Section_UI_Cross_Culvert_Geom";
|
} from "./B06_Section_UI_Cross_Culvert_Geom";
|
||||||
import {
|
import { appendWallTrench, foundationChoice } from "./B06_Section_UI_Cross_Excavation";
|
||||||
appendPipeTrench,
|
|
||||||
appendWallTrench,
|
|
||||||
foundationChoice,
|
|
||||||
} from "./B06_Section_UI_Cross_Excavation";
|
|
||||||
import { appendWallHatch } from "./B06_Section_UI_Cross_Wall_Hatch";
|
import { appendWallHatch } from "./B06_Section_UI_Cross_Wall_Hatch";
|
||||||
|
|
||||||
// 기하 계산 진입점과 공개 상수·타입은 여기서 재수출한다 — B05(최소 토피)와 횡단 뷰가
|
// 기하 계산 진입점과 공개 상수·타입은 여기서 재수출한다 — B05(최소 토피)와 횡단 뷰가
|
||||||
@@ -280,26 +276,6 @@ export function appendCulvertOverlay(
|
|||||||
const inletFinal = pushOut(pipeCorners.inlet, -1);
|
const inletFinal = pushOut(pipeCorners.inlet, -1);
|
||||||
const outletFinal = pushOut(pipeCorners.outlet, 1);
|
const outletFinal = pushOut(pipeCorners.outlet, 1);
|
||||||
|
|
||||||
// 관 터파기 — 표값 폭으로 관 위 지반선에서 관 바닥까지 수직(KCS 44 40 10 그림 3.2-1).
|
|
||||||
if (!hidePipe) {
|
|
||||||
const invert = Math.min(
|
|
||||||
pipeCorners.inlet.bottom.elevation,
|
|
||||||
pipeCorners.outlet.bottom.elevation,
|
|
||||||
);
|
|
||||||
const centerOffset = (pipeCorners.inlet.bottom.offset + pipeCorners.outlet.bottom.offset) / 2;
|
|
||||||
appendPipeTrench(
|
|
||||||
layer,
|
|
||||||
{
|
|
||||||
centerOffsetM: centerOffset,
|
|
||||||
invertM: invert,
|
|
||||||
topM: invert + diameter + culvert.min_cover_m,
|
|
||||||
diameterMm: Math.round(diameter * 1000),
|
|
||||||
},
|
|
||||||
x,
|
|
||||||
toDisplayY,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const kindLabel = culvert.pipe_kind ? `${culvert.pipe_kind} ` : "";
|
const kindLabel = culvert.pipe_kind ? `${culvert.pipe_kind} ` : "";
|
||||||
const wallThickness = pipeWallThicknessM(culvert.pipe_kind, diameter);
|
const wallThickness = pipeWallThicknessM(culvert.pipe_kind, diameter);
|
||||||
const tip =
|
const tip =
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* =============================================================================
|
/* =============================================================================
|
||||||
* B06_Section_UI_Cross_Excavation.ts
|
* B06_Section_UI_Cross_Excavation.ts
|
||||||
* 횡단도에 **터파기 선**을 얹는다 — 관·벽 두 갈래(2026-09-09 사용자 확정 ④).
|
* 횡단도에 **벽 터파기 선**을 얹는다 — 관 터파기 선은 그리지 않음(사용자 10-7).
|
||||||
*
|
*
|
||||||
* 왜 있나 — 「터파기가 현재 횡단도에서 표현이 안 된다」가 사용자 지적이었다. 수량을
|
* 왜 있나 — 「터파기가 현재 횡단도에서 표현이 안 된다」가 사용자 지적이었다. 수량을
|
||||||
* 세기 전에 **도면에 그것이 보여야** 한다.
|
* 세기 전에 **도면에 그것이 보여야** 한다.
|
||||||
@@ -13,14 +13,12 @@
|
|||||||
* ========================================================================== */
|
* ========================================================================== */
|
||||||
|
|
||||||
import {
|
import {
|
||||||
BASIS_PIPE,
|
|
||||||
BASIS_WALL,
|
BASIS_WALL,
|
||||||
WALL_BLINDING_DEPTH_M,
|
WALL_BLINDING_DEPTH_M,
|
||||||
WALL_BLINDING_WIDTH_M,
|
WALL_BLINDING_WIDTH_M,
|
||||||
WALL_FOUNDATION_DEPTH_M,
|
WALL_FOUNDATION_DEPTH_M,
|
||||||
WALL_FOUNDATION_WIDTH_M,
|
WALL_FOUNDATION_WIDTH_M,
|
||||||
WALL_TRENCH_CLEARANCE_M,
|
WALL_TRENCH_CLEARANCE_M,
|
||||||
pipeTrenchWidthM,
|
|
||||||
} from "@util/common_util_excavation";
|
} from "@util/common_util_excavation";
|
||||||
import type { WallLayout } from "./B06_Section_UI_Cross_Culvert_Types";
|
import type { WallLayout } from "./B06_Section_UI_Cross_Culvert_Types";
|
||||||
|
|
||||||
@@ -44,43 +42,6 @@ function trenchPath(layer: SVGElement, corners: Array<[number, number]>, tooltip
|
|||||||
layer.append(line);
|
layer.append(line);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 관 터파기 — **표값 폭**으로 관 위 지반선에서 관 바닥까지 수직으로 판다.
|
|
||||||
* 표에 없는 관경이면 **아무것도 그리지 않는다**(폭을 지어내지 않는다).
|
|
||||||
*/
|
|
||||||
export function appendPipeTrench(
|
|
||||||
layer: SVGElement,
|
|
||||||
input: {
|
|
||||||
/** 관 중심 offset(m). */
|
|
||||||
centerOffsetM: number;
|
|
||||||
/** 관 바닥(invert) 표고. */
|
|
||||||
invertM: number;
|
|
||||||
/** 터파기 윗면 표고 — 관 위 지반(또는 노면)선. */
|
|
||||||
topM: number;
|
|
||||||
diameterMm: number | null | undefined;
|
|
||||||
},
|
|
||||||
x: (offset: number) => number,
|
|
||||||
toDisplayY: (elevation: number) => number,
|
|
||||||
): number | null {
|
|
||||||
const width = pipeTrenchWidthM(input.diameterMm);
|
|
||||||
if (width === null || !(input.topM > input.invertM)) return null;
|
|
||||||
const half = width / 2;
|
|
||||||
const left = input.centerOffsetM - half;
|
|
||||||
const right = input.centerOffsetM + half;
|
|
||||||
trenchPath(
|
|
||||||
layer,
|
|
||||||
[
|
|
||||||
[x(left), toDisplayY(input.topM)],
|
|
||||||
[x(left), toDisplayY(input.invertM)],
|
|
||||||
[x(right), toDisplayY(input.invertM)],
|
|
||||||
[x(right), toDisplayY(input.topM)],
|
|
||||||
],
|
|
||||||
`관 터파기 폭 ${width.toFixed(2)}m · 깊이 ${(input.topM - input.invertM).toFixed(2)}m\n` +
|
|
||||||
`Φ${Math.round(Number(input.diameterMm))}㎜ — ${BASIS_PIPE}`,
|
|
||||||
);
|
|
||||||
return width;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 벽 터파기 — 벽 바닥선 아래로 **수직**. 폭은 바닥 폭 + 여유 0.2, 깊이는 기초 몫.
|
* 벽 터파기 — 벽 바닥선 아래로 **수직**. 폭은 바닥 폭 + 여유 0.2, 깊이는 기초 몫.
|
||||||
* `foundation` 이 비어 있으면 **그리지 않는다** — 사용자가 고르기 전에는 근거가 없다.
|
* `foundation` 이 비어 있으면 **그리지 않는다** — 사용자가 고르기 전에는 근거가 없다.
|
||||||
|
|||||||
Reference in New Issue
Block a user