feat(rebar): 상면 주철근(C1–C6) 이음 무시/반영, 위치 기둥 중심/단부
- 기본 '이음 무시' (사양 결정). '반영'이면 정척(12000) 초과 철근을 l_s 겹침 2조각으로 나눔 - 위치: 기둥 중심 = 전체의 절반, 단부 = 정척 안에서 가장 끝 쪽 (짧은 조각 = 전체 + l_s − 12000, 긴 조각 = 12000) - 철근표 조각 목록과 비고, 3D 두 조각(l_s 겹침)에 반영 - STANDARD_BAR를 common.ts로 옮겨 순환 import 방지 Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
72053be420
commit
496e0ea4e5
10 files changed
+130
-16
No files matched your search
+10
-1
@@ -1,7 +1,7 @@
|
||||
import * as THREE from 'three';
|
||||
import type { PierModel } from '../core/geometry';
|
||||
import { assemblyEndOffset, assemblyJs, b10Levels, b9Bars, FOOTING_DEFAULTS, gridPositions, grid, layers, legLength, legOffsets, sideDepth } from '../core/rebar/footing';
|
||||
import { bottomPiece, MAIN, widthLayout } from '../core/rebar/coping-main';
|
||||
import { bottomPiece, MAIN, topSplicePieces, widthLayout } from '../core/rebar/coping-main';
|
||||
import { C14_INSET, c14Bars, CAP, COPING_REBAR, SHEAR_LOOP_STEP, shearBars, shearBarsMulti, shearUHeight, copingSideBars, SIDE_HOOK_LEG, stairBars, undersideAt } from '../core/rebar/coping';
|
||||
import { sideRowLevels } from '../core/coping-geom';
|
||||
import { columnRebar, columnInputFor, COLUMN_P1 } from '../core/rebar/column';
|
||||
@@ -152,8 +152,17 @@ export function buildRebar3D(m: PierModel, common: Material = DEFAULT_MATERIAL,
|
||||
for (let k = 1; k <= 3; k++) {
|
||||
const z = topEl - 0.127 - (k - 1) * (m.copingRebar.mainLayerGap / 1000);
|
||||
const xk = cover + ((k - 1) * MAIN.layHorizontal) / 1000;
|
||||
// 상면 이음 (승인 2026-10-26): when applied and longer than the standard, the bar is two pieces overlapping by l_s at the split.
|
||||
const sp = m.topSplice.mode === 'apply' ? topSplicePieces(L * 1000, k, m.topSplice.at, mCoping) : null;
|
||||
const splitX = sp ? xk + (sp.splitFromLeft - MAIN.hook) / 1000 : 0;
|
||||
const half = sp ? sp.lap / 2000 : 0;
|
||||
xs.forEach((n, j) => {
|
||||
const name = `C${k + (j % 2 === 1 ? 0 : 3)}`;
|
||||
if (sp) {
|
||||
addPath(name, 0, [[xk, z - hookTop, n], [xk, z, n], [splitX + half, z, n]], NOMINAL_DIAMETER.H29, COLOR.coping);
|
||||
addPath(name, 0, [[splitX - half, z, n], [L - xk, z, n], [L - xk, z - hookTop, n]], NOMINAL_DIAMETER.H29, COLOR.coping);
|
||||
return;
|
||||
}
|
||||
const pts: [number, number, number][] = [
|
||||
[xk, z - hookTop, n],
|
||||
[xk, z, n],
|
||||
|
||||
Reference in new issue
Block a user