C12 and C13 come from one grid from the Level underside + 127 at 250 mm, up to top − 400 mm (상면 여유). The fixed count of seven rows is kept only for callers that give no top. P1 is unchanged (C12 5, C13 2); a taper of 3000 mm now gives C12 11 and C13 2, and the C13 first row is always the last C12 row plus 250. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
35 lines
1.7 KiB
TypeScript
35 lines
1.7 KiB
TypeScript
/**
|
||
* Coping heights and Level width (mm) that the coping geometry and the coping rebar depend on (1단계, 승인 2026-10-23).
|
||
* Dependency-free so that both the model and the rebar modules can import it.
|
||
*/
|
||
export interface CopingGeom {
|
||
/** 끝단 높이 h1 (mm). */
|
||
h1: number;
|
||
/** 테이퍼 높이 h2 (mm). */
|
||
h2: number;
|
||
/** Level 폭 W_L (mm). */
|
||
levelWidth: number;
|
||
}
|
||
|
||
/** P1 values: 끝단 높이 1000, 테이퍼 높이 1500, Level 폭 2100. Used when the input does not give them. */
|
||
export const P1_COPING_GEOM: CopingGeom = { h1: 1000, h2: 1500, levelWidth: 2100 };
|
||
|
||
/** Bar centre to the face of the coping, 127 mm (코핑철근.md §6.1, y_e). */
|
||
export const SIDE_COVER_M = 0.127;
|
||
|
||
/**
|
||
* Side-row levels (EL m) of C12 / C13 (코핑철근.md §6.1). z_0 = Level underside + 127 (the lowest bottom bar's Level
|
||
* height, 41.038 on P1), z_k = z_0 + k·250. The split is by height band:
|
||
* C12 rows lie in the taper band (Level underside … end underside, height h2);
|
||
* C13 rows lie in the end band (end underside … top, height h1).
|
||
* zBreak = end underside + 127 is where the taper line starts at the end face (P1: 42.538).
|
||
*/
|
||
export function sideRowLevels(levelBottom: number, endBottom: number, top?: number): { zBottom: number; zBreak: number; zTop?: number } {
|
||
// Top margin (상면 여유) at least 400 mm (코핑철근.md §6.1): the highest side row lies at or below top − 0.4.
|
||
return { zBottom: levelBottom + SIDE_COVER_M + 0.25, zBreak: endBottom + SIDE_COVER_M, zTop: top === undefined ? undefined : top - SIDE_TOP_MARGIN_M };
|
||
}
|
||
|
||
/** Pitch of the side-row grid (m), and the top margin 400 mm (상면 여유). */
|
||
export const SIDE_PITCH_M = 0.25;
|
||
export const SIDE_TOP_MARGIN_M = 0.4;
|