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:
ypshimandClaude Haiku 5.5 committed 2026-10-22 12:06:11 +09:00
1 parent 64d415f891
commit 9ba7b55eab
11 files changed
+123 -16

No files matched your search

+17
View File
@@ -2,6 +2,23 @@
* ③ 철근배근 공통 규칙 (spec §6.2 · plan C1). Lengths in mm, stresses in MPa.
* fck and fy are inputs. The defaults below are assumed values and must be shown as such (I02).
*/
/** Material inputs of ③ 공통 설정 (spec §6.2). fck and fy are inputs; the defaults are assumed values (I02). */
export interface Material {
/** 콘크리트 강도 fck (MPa). */
fck: number;
/** H = SD400 항복강도 (MPa). */
fyH: number;
/** S = SD500 항복강도 (MPa). */
fyS: number;
}
export const DEFAULT_MATERIAL: Material = { fck: 27, fyH: 400, fyS: 500 };
/** True while the values are the assumed defaults (정보 I02 on the rebar screen). */
export function isAssumedMaterial(m: Material): boolean {
return m.fck === DEFAULT_MATERIAL.fck && m.fyH === DEFAULT_MATERIAL.fyH && m.fyS === DEFAULT_MATERIAL.fyS;
}
export const MATERIAL_DEFAULTS = {
fck: 27,
/** H = SD400, S = SD500. */