feat(rebar): add downward 90° hooks (135 mm) to P6 crossties in 3D rebar model
This commit is contained in:
1 parent
4aa8dbb3cb
commit
a2317caf6c
15 files changed
+740
-133
No files matched your search
@@ -10,8 +10,6 @@ export const BLOCK_REBAR = {
|
||||
cover: 50,
|
||||
firstBarGap: 75,
|
||||
spacing: 125,
|
||||
/** Straight part of the bar for the 1200 block (spec table: 1100 + 700 × 2). */
|
||||
straight: 1100,
|
||||
legLength: 700,
|
||||
/** Depth of each bar centre below the block top (mm). */
|
||||
depthS2: 50,
|
||||
@@ -40,10 +38,15 @@ export function barsAcross(dim: number = BLOCK_REBAR.dim): { count: number; spac
|
||||
return { count: gaps + 1, spacing: BLOCK_REBAR.spacing, firstEnd: BLOCK_REBAR.cover + BLOCK_REBAR.firstBarGap + leftover / 2 };
|
||||
}
|
||||
|
||||
/** Length of one bar (mm): the straight part a − 2·c_s plus two legs of 700 (spec §5; 2500 for the 1200 block). */
|
||||
export function barLength(dim: number = BLOCK_REBAR.dim): number {
|
||||
return dim - 2 * BLOCK_REBAR.cover + 2 * BLOCK_REBAR.legLength;
|
||||
}
|
||||
|
||||
/** Rebar of one block; blockHeight is the bearing block height in mm (h1 front or h2 back, pad included). */
|
||||
export function blockBars(blockHeight: number, dim: number = BLOCK_REBAR.dim): BarRow[] {
|
||||
const across = barsAcross(dim);
|
||||
const length = BLOCK_REBAR.straight + 2 * BLOCK_REBAR.legLength;
|
||||
const length = barLength(dim);
|
||||
return [
|
||||
{ name: 'S1', ...across, length, embedment: BLOCK_REBAR.legLength - (blockHeight - BLOCK_REBAR.depthS1) },
|
||||
{ name: 'S2', ...across, length, embedment: BLOCK_REBAR.legLength - (blockHeight - BLOCK_REBAR.depthS2) },
|
||||
@@ -56,12 +59,15 @@ export interface BlockRebar {
|
||||
bars: BarRow[];
|
||||
}
|
||||
|
||||
/** Rebar of every block of a pier, using the model's block heights (h1 front, h2 back; pad included, Q16 결정). */
|
||||
/**
|
||||
* Rebar of every block of a pier. The block height h_b is the model's own block (coping top → block top, pad excluded),
|
||||
* since the bar depths are measured from the block top. h1 / h2 include the 50 pad and would count it twice.
|
||||
*/
|
||||
export function bearingBlockRebar(model: PierModel): BlockRebar[] {
|
||||
return model.blocks.map((b) => ({
|
||||
no: b.no,
|
||||
row: b.row,
|
||||
bars: blockBars(b.row === '전열' ? model.h1 * 1000 : model.h2 * 1000),
|
||||
bars: blockBars((b.top - b.bottom) * 1000),
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user