From b33e0cd9ed0dd7c9b57c0e643a2933ca5ebd6b47 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Mon, 26 Oct 2026 03:26:17 +0900 Subject: [PATCH] =?UTF-8?q?feat(E03):=20=EA=B8=B0=EB=B3=B8=20=EB=AC=BC?= =?UTF-8?q?=EC=84=B1=20=C2=B7=20=EB=85=B8=EB=A9=B4=20=ED=95=98=EC=A4=91=20?= =?UTF-8?q?=3D=20ground=5Fdefaults.json=20=EC=9D=BD=EC=9D=8C(=EC=84=B1?= =?UTF-8?q?=ED=86=A0=20=CF=86=2028)=20(532-2=202=EC=B0=A8=20=E2=91=A6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - E03 Types DEFAULT_MATERIALS · DEFAULT_ROAD_SURCHARGE_KPA 를 M02 마스터 층 파일에서 — E02 초기값과 한 벌 · E04 기본도 같이 따라감 Co-Authored-By: Claude Opus 5.5 --- E03_StabSection/E03_StabSection_Types.py | 61 +++++------------------- 1 file changed, 13 insertions(+), 48 deletions(-) diff --git a/E03_StabSection/E03_StabSection_Types.py b/E03_StabSection/E03_StabSection_Types.py index adfa50720..e4763828c 100644 --- a/E03_StabSection/E03_StabSection_Types.py +++ b/E03_StabSection/E03_StabSection_Types.py @@ -4,6 +4,8 @@ E04 가 이 파일을 그대로 import — 이름 · 열쇠를 바꾸지 않음. """ +import json +from pathlib import Path from typing import Literal, TypedDict GAMMA_W = 9.81 # 물 단위중량 kN/m³ @@ -30,54 +32,6 @@ class Surcharge(TypedDict): q: float # 연직 등분포 kPa -# 요구서 345 6장 기본값(사용자가 E02 에서 바꿈) — 사전조사 후보의 보수 쪽. -DEFAULT_MATERIALS: list[Material] = [ - { - "id": "weathered_soil", - "name": "풍화토", - "gamma_t": 18.0, - "gamma_sat": 19.0, - "c": 15.0, - "phi": 30.0, - }, - { - "id": "weathered_rock", - "name": "풍화암", - "gamma_t": 20.0, - "gamma_sat": 21.0, - "c": 30.0, - "phi": 33.0, - }, - { - "id": "soft_rock", - "name": "연암", - "gamma_t": 24.0, - "gamma_sat": 24.5, - "c": 150.0, - "phi": 35.0, - }, - { - "id": "hard_rock", - "name": "경암", - "gamma_t": 26.0, - "gamma_sat": 26.0, - "c": 300.0, - "phi": 40.0, - }, - {"id": "fill", "name": "성토", "gamma_t": 18.0, "gamma_sat": 19.0, "c": 10.0, "phi": 25.0}, - { - "id": "colluvium", - "name": "붕적토", - "gamma_t": 17.5, - "gamma_sat": 18.5, - "c": 5.0, - "phi": 27.0, - }, -] - -DEFAULT_ROAD_SURCHARGE_KPA = 10.0 # 노면 하중 기본 - - def material(raw: dict) -> Material: """밖에서 온 물성 한 줄을 꼴에 맞춤 — 빠진 γsat 는 γt · 음수 · 범위 밖은 오류.""" gamma_t = float(raw["gamma_t"]) @@ -122,3 +76,14 @@ def surcharges(raw: list[dict] | None) -> list[Surcharge]: if x1 > x0: out.append({"x0": x0, "x1": x1, "q": float(item["q"])}) return out + + +# 기본 물성 · 노면 하중 = M02 마스터 층 `ground_defaults.json`(E02 초기값과 한 벌 · 사용자가 E02 에서 바꿈). +_DEFAULTS = json.loads( + ( + Path(__file__).resolve().parents[1] + / "resources/master_template/stability/ground_defaults.json" + ).read_text(encoding="utf-8") +) +DEFAULT_MATERIALS: list[Material] = [material(m) for m in _DEFAULTS["materials"]] +DEFAULT_ROAD_SURCHARGE_KPA = float(_DEFAULTS["road_surcharge_kpa"]) # 노면 하중 기본