feat(rebar): 조립 철근(B11·B12)을 격자 가운데에 배치 (양끝 여유 차이 ≤ 1칸)
- assemblyGridIndices: 단마다 k칸 간격, 엇갈림 2칸 유지, 짝수 단 시작칸을 가운데 정렬 - 개수는 그대로 (B11 30, B12 24), 3D와 단면 삽도가 같은 위치를 씀 - 테스트: 양끝 여유 차이 ≤ 1칸, 엇갈림 2칸 Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
20d8546b6f
commit
de20b84c00
4 files changed
+34
-16
No files matched your search
@@ -1,6 +1,6 @@
|
||||
import type { PierModel } from '../core/geometry';
|
||||
import { NOMINAL_DIAMETER } from '../core/rebar/common';
|
||||
import { assemblyJs, b10Levels, b9Bars, grid, gridPositions, layers, sideDepth } from '../core/rebar/footing';
|
||||
import { assemblyGridIndices, assemblyJs, b10Levels, b9Bars, grid, gridPositions, layers, sideDepth } from '../core/rebar/footing';
|
||||
import { DEFAULT_FOOTING_REBAR } from '../core/rebar/footing-settings';
|
||||
|
||||
/**
|
||||
@@ -83,9 +83,8 @@ export function footingSectionSvg(model: PierModel): string {
|
||||
js.forEach((j, idx) => {
|
||||
const zA = fs.cBottom + j * fs.sV;
|
||||
parts.push(line('b11', 'B11', xa, xb, y(zA), COLOR.b11, 1.2));
|
||||
const i0 = idx % 2 === 0 ? 0 : 2;
|
||||
const xsB12 = gridPositions(W, fs, 'sAxis');
|
||||
for (let i = i0; i < xsB12.length; i += fs.kB12) parts.push(dot('b12', 'B12', x(xsB12[i]), y(zA + dB10), COLOR.b12, 2.2));
|
||||
for (const i of assemblyGridIndices(xsB12.length - 1, fs.kB12, idx)) parts.push(dot('b12', 'B12', x(xsB12[i]), y(zA + dB10), COLOR.b12, 2.2));
|
||||
});
|
||||
|
||||
// Dimensions: width, grid, covers, and the B10 levels.
|
||||
|
||||
Reference in new issue
Block a user