feat(core,view): ③ 공통 설정 — fck and fy as inputs (spec §6.2)
- Material {fck, fyH, fyS}, defaults 27 / 400 / 500 as assumed values (I02).
The rebar calculations take the material: the C7/C8 splice, the P2 development
length, the P3 lap, and the B2 split use it instead of fixed numbers.
- ③ screen: 공통 설정 inputs with a note that the defaults are assumed (I02).
- Project file stores the material as an optional field; older files open with
the defaults.
- Tests: fck 27 → 35 shortens the laps by √(27/35); the C7 piece follows fck;
a non-default fy drops I02; the file round trip.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
64d415f891
commit
9ba7b55eab
11 files changed
+123
-16
No files matched your search
@@ -1,4 +1,4 @@
|
||||
import { hookLength, NOMINAL_DIAMETER, spliceLength } from './common';
|
||||
import { DEFAULT_MATERIAL, hookLength, Material, NOMINAL_DIAMETER, spliceLength } from './common';
|
||||
|
||||
/**
|
||||
* C1–C8 상·하면 주철근 (plan C3 continued). Source: RAG/코핑철근.md §5, 2026-10-22 최종 정리.
|
||||
@@ -69,11 +69,11 @@ export function topBarLength(L: number, k: number): number {
|
||||
|
||||
/**
|
||||
* Bottom bar C7·C8 (spliced at the column centre, 하면 겹침이음). Each piece:
|
||||
* path/2 + l_s/2 + l_h, with path = 2·slope + Level and l_s = 1.3·l_d for H29 (nominal 28.6, fck 27, fy 400).
|
||||
* path/2 + l_s/2 + l_h, with path = 2·slope + Level and l_s = 1.3·l_d for H29 (nominal 28.6, with the material inputs).
|
||||
*/
|
||||
export function bottomPiece(fck = 27): { path: number; ls: number; piece: number } {
|
||||
export function bottomPiece(m: Material = DEFAULT_MATERIAL): { path: number; ls: number; piece: number } {
|
||||
const path = 2 * MAIN.slopeEach + MAIN.level;
|
||||
const ls = spliceLength(NOMINAL_DIAMETER.H29, 400, fck);
|
||||
const ls = spliceLength(NOMINAL_DIAMETER.H29, m.fyH, m.fck);
|
||||
const lh = hookLength('main90', NOMINAL_DIAMETER.H29);
|
||||
return { path, ls, piece: path / 2 + ls / 2 + lh };
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user