feat(rebar): B11·B12 수평간격을 배수 k 입력으로 (기본 k = 8, 방향은 문서 기준)
- 간격 = k·s: B11은 L 방향 격자(교각축 직각 s), B12는 W 방향 격자(교각축 s). 기본 k = 8 (1000 mm, s = 125) - 개수는 격자 k칸마다, 조립 단 엇갈림 2칸 유지. 3D 철근도 같은 간격 - 기본 k = 8이므로 P1 기본값의 B11·B12 개수가 60 / 47 → 30 / 24로 바뀜 (k = 4이면 문서값 60 / 47을 재현, 테스트로 확인) - 패널에 k 두 칸, 규칙 표시에 B11·B12 간격 (k·s) - FT02를 n·kB11·kB12 정수 검사로 확장 Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
48e6811600
commit
0588ffe3f4
9 files changed
+54
-39
No files matched your search
+3
-3
@@ -471,7 +471,7 @@ export function buildRebar3D(m: PierModel, common: Material = DEFAULT_MATERIAL,
|
||||
}
|
||||
// B11 (across W, spread along L) and B12 (along L, spread across W) at the assembly levels, 4s apart, 2s stagger per level.
|
||||
const xsL = gridPositions(Lf * 1000, fs, 'sPerp');
|
||||
const ysW = gridPositions(Wf * 1000, fs, 'sPerp');
|
||||
const ysW = gridPositions(Wf * 1000, fs, 'sAxis');
|
||||
const dAsm = assemblyEndOffset();
|
||||
const nAsm = Wf / 2 - mm(d1 + dAsm);
|
||||
const sAsm = Lf / 2 - mm(d2 + dAsm);
|
||||
@@ -479,11 +479,11 @@ export function buildRebar3D(m: PierModel, common: Material = DEFAULT_MATERIAL,
|
||||
const zA = bottom + mm(fs.cBottom + jA * fs.sV);
|
||||
const zB = zA + dB10;
|
||||
const i0 = k % 2 === 0 ? 0 : 2;
|
||||
for (let iL = i0; iL < xsL.length; iL += 4) {
|
||||
for (let iL = i0; iL < xsL.length; iL += fs.kB11) {
|
||||
const x = f.s + mm(xsL[iL]);
|
||||
polyline('B11', [[x, zA - hookAsm, -nAsm], [x, zA, -nAsm], [x, zA, nAsm], [x, zA - hookAsm, nAsm]], NOMINAL_DIAMETER.S16);
|
||||
}
|
||||
for (let iW = i0; iW < ysW.length; iW += 4) {
|
||||
for (let iW = i0; iW < ysW.length; iW += fs.kB12) {
|
||||
const n = mm(ysW[iW]);
|
||||
polyline('B12', [[f.s - sAsm, zB - hookAsm, n], [f.s - sAsm, zB, n], [f.s + sAsm, zB, n], [f.s + sAsm, zB - hookAsm, n]], NOMINAL_DIAMETER.S16);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user