fix(782-3): 8-2 시공능력 로직 「0 이면 기본」 가드 칸 — 견본 자동값 1 로도 엉뚱한 값 안 나오게(분석 635)
- 가드 칸에 범위 [0, 원문 끝] — 견본 자동값 = 0(원문 기본): E입력 [0, 1](원문 E 표 모두 1 이하) · 굴착기 싸이클입력 [0, 30](원문 3 표 13∼30초) · 디젤 해머 α입력 [0, 4.0] · 워터제트 α입력 [0, 1.20] · 펌프준설 q입력 [0, 387] · 그래브 f입력 · k입력 [0, 1.00] · 콘크리트 운반 배출 [0, 4] · 대기 [0, 10] · 하역 [0, 2] - 범위 없는 가드 칸(트랜처 전진 · 후진거리 · 로더 주행거리 · 스테이빌라이저 혼합횟수 · 플랜트싸이클)은 1 이어도 기본의 3배 안 — 그대로 - 압쇄기 · 골재세척 q입력 뺌(원문 q 한 값 · 1 이면 60배 어긋남) · 스테이빌라이저 유효혼합폭 최대(로터폭 − 0.4, 0)(자동값 음수 막음) - 유압 파일 해머 강관 Ta 표 「16이하」 ↔ β 표 「16 이하」 글자 맞춤(16m 이하 줄 못 찾던 흠) · 그래브 N값 고르기 「해당 없음」 끝으로(첫 값 = 표 줄) - 지킴 시험 test_782_3 가드 칸 자동값 덧 · 기존 로직 · 표 · 키 그대로(로직_08장 새 줄만 바뀜) · check_master 전후 같음 · 계산전부 1513 멈춤 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -16,12 +16,14 @@ LEVEL = ["양호", "보통", "불량"]
|
||||
CUT = {"대상": "결과", "자리": 3, "방법": "반올림", "출처": "건설품셈 공통 8-1-4 주①"}
|
||||
|
||||
|
||||
def inp(name, desc, unit=None, pick=None, src=None):
|
||||
def inp(name, desc, unit=None, pick=None, src=None, rng=None):
|
||||
d = {"이름": name, "설명": desc}
|
||||
if unit:
|
||||
d["단위"] = unit
|
||||
if pick is not None:
|
||||
d["고르기"] = pick
|
||||
if rng is not None:
|
||||
d["범위"] = [D(str(x)) for x in rng] # 「0 = 기본」 칸 — 견본 자동값 = 아래 끝 0(원문 기본)
|
||||
if src:
|
||||
d["출처"] = src
|
||||
return d
|
||||
@@ -49,7 +51,7 @@ def mid(t, item):
|
||||
|
||||
|
||||
def e_in(no, desc="작업효율을 직접 넣을 때 — 0 이면 원문 표 값"):
|
||||
return inp("E입력", desc, src=f"건설품셈 공통 {no}")
|
||||
return inp("E입력", desc, src=f"건설품셈 공통 {no}", rng=(0, 1)) # 원문 E 표 값 모두 1 이하
|
||||
|
||||
|
||||
def auto(name, expr):
|
||||
@@ -417,6 +419,7 @@ def excavator_inputs(no, C):
|
||||
"1회 싸이클시간을 직접 넣을 때 — 0 이면 표",
|
||||
"초",
|
||||
src=f"건설품셈 공통 {no} 3",
|
||||
rng=(0, 30), # 원문 3 표 13∼30초
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ def part3(C) -> list[dict]:
|
||||
"α입력",
|
||||
"토질계수를 직접 넣을 때(2종 이상 토층 가중평균) — 0 이면 표",
|
||||
src=f"{s} 1 가 (1) 주",
|
||||
rng=(0, "4.0"), # 원문 α 1.0 ∼ 4.0
|
||||
),
|
||||
]
|
||||
common = [
|
||||
@@ -193,7 +194,9 @@ def part3(C) -> list[dict]:
|
||||
f"{look(f'{no} α강관', 'α', N치=chr(39) + '20 이상' + chr(39))})",
|
||||
),
|
||||
st("β", look(f"{no} β", "β", 항타길이="항타길이", 판두께="판두께")),
|
||||
st("Ta", look(f"{no} Ta강관", "Ta", 항타길이="항타길이", 파일경="파일경"), "분/본"),
|
||||
# 원문 β 표 「16 이하」 · Ta 표 「16이하」 — 같은 칸 글자가 달라 맞춤
|
||||
st("Ta길이", "만약(항타길이 == '16 이하', '16이하', 항타길이)"),
|
||||
st("Ta", look(f"{no} Ta강관", "Ta", 항타길이="Ta길이", 파일경="파일경"), "분/본"),
|
||||
],
|
||||
"α * β * Ta",
|
||||
{"평균N": 15, "항타길이": "17∼32", "판두께": "12", "파일경": "500∼800"},
|
||||
@@ -353,6 +356,7 @@ def vibro(C) -> list[dict]:
|
||||
"α입력",
|
||||
"토질계수를 직접 넣을 때(여러 토질 가중평균) — 0 이면 표",
|
||||
src=f"{s} 2 나",
|
||||
rng=(0, "1.20"), # 원문 α 0.60 ∼ 1.20
|
||||
),
|
||||
*fixes(no, 4, "2 다 (2)"),
|
||||
],
|
||||
|
||||
@@ -103,6 +103,7 @@ def marine(C) -> list[dict]:
|
||||
"746㎾당 준설능력을 직접 넣을 때(단거리 능력 (q1+q2)/2 등) — 0 이면 표",
|
||||
"㎥/hr",
|
||||
src=f"{s} 3",
|
||||
rng=(0, 387), # 원문 q 표 32 ∼ 387
|
||||
),
|
||||
inp("전동환산출력", "펌프준설선의 전동환산 출력(bo)", "㎾", src=f"{s} 2"),
|
||||
*es,
|
||||
@@ -152,19 +153,24 @@ def grab(C) -> list[dict]:
|
||||
inp(
|
||||
"fN값",
|
||||
"체적환산계수 표 N의 값(칸이 빈 줄 = 해당 없음)",
|
||||
pick=["해당 없음", *C(f"{no} f", "N값")],
|
||||
pick=[*C(f"{no} f", "N값"), "해당 없음"],
|
||||
src=f"{s} 1",
|
||||
),
|
||||
inp("f입력", "체적환산계수를 직접 넣을 때 — 0 이면 표", src=f"{s} 1"),
|
||||
inp(
|
||||
"f입력",
|
||||
"체적환산계수를 직접 넣을 때 — 0 이면 표",
|
||||
src=f"{s} 1",
|
||||
rng=(0, "1.00"),
|
||||
),
|
||||
inp("k분류", "버킷계수 표 토질 분류", pick=C(f"{no} k", "분류"), src=f"{s} 2"),
|
||||
inp("k상태", "버킷계수 표 상태", pick=C(f"{no} k", "상태"), src=f"{s} 2"),
|
||||
inp(
|
||||
"kN값",
|
||||
"버킷계수 표 N의 값(칸이 빈 줄 = 해당 없음)",
|
||||
pick=["해당 없음", *C(f"{no} k", "N값")],
|
||||
pick=[*C(f"{no} k", "N값"), "해당 없음"],
|
||||
src=f"{s} 2",
|
||||
),
|
||||
inp("k입력", "버킷계수를 직접 넣을 때 — 0 이면 표", src=f"{s} 2"),
|
||||
inp("k입력", "버킷계수를 직접 넣을 때 — 0 이면 표", src=f"{s} 2", rng=(0, "1.00")),
|
||||
inp("평균수심", "평균수심", "m", src=f"{s} 3"),
|
||||
inp("E1", "흙의 두께", pick=C(f"{no} E1", "구분"), src=f"{s} 4 가"),
|
||||
inp("E2", "해상조건", pick=C(f"{no} E2", "구분"), src=f"{s} 4 나"),
|
||||
|
||||
@@ -58,7 +58,7 @@ def part2b(C) -> list[dict]:
|
||||
e_in(no),
|
||||
],
|
||||
[
|
||||
st("W", f"로터폭 - {c(no, '유효혼합폭 — Rotor 폭에서 뺌')}", "m"),
|
||||
st("W", f"최대(로터폭 - {c(no, '유효혼합폭 — Rotor 폭에서 뺌')}, 0)", "m"),
|
||||
st("V", c(no, "작업속도(V)"), "m/hr"),
|
||||
st("P", auto("혼합횟수", c(no, "혼합횟수(평균)")), "회"),
|
||||
st("E", auto("E입력", look(f"{no} E", "E", 작업조건="작업조건"))),
|
||||
@@ -80,21 +80,13 @@ def part2b(C) -> list[dict]:
|
||||
short,
|
||||
name,
|
||||
"㎥/hr",
|
||||
[e_in(no, "작업효율을 직접 넣을 때 — 0 이면 원문 값")],
|
||||
[
|
||||
inp(
|
||||
"q입력",
|
||||
"작업능력을 직접 넣을 때 — 0 이면 원문 값",
|
||||
"㎥/hr",
|
||||
src=f"건설품셈 공통 {no}",
|
||||
),
|
||||
e_in(no, "작업효율을 직접 넣을 때 — 0 이면 원문 값"),
|
||||
],
|
||||
[
|
||||
st("q", auto("q입력", c(no, q)), "㎥/hr"),
|
||||
st("q", c(no, q), "㎥/hr"),
|
||||
st("E", auto("E입력", c(no, "작업효율(E)"))),
|
||||
],
|
||||
"q * E",
|
||||
{"q입력": 0, "E입력": 0},
|
||||
{"E입력": 0},
|
||||
memo="Q = q × E",
|
||||
)
|
||||
)
|
||||
@@ -429,8 +421,20 @@ def concrete_haul(C) -> list[dict]:
|
||||
inp("공차속도", "공차시 평균주행속도", "㎞/hr", src=f"{s} 1"),
|
||||
inp("슬럼프", "슬럼프", pick=["4㎝ 이하", "5㎝ 이상"], src=f"{s} 1"),
|
||||
inp("펌프조합", "콘크리트 펌프와 조합작업", pick=["아니오", "예"], src=f"{s} 1"),
|
||||
inp("배출시간입력", "배출시간(t3) — 0 이면 원문 범위 가운데", "분", src=f"{s} 1"),
|
||||
inp("대기시간입력", "대기시간(t4) — 0 이면 원문 범위 가운데", "분", src=f"{s} 1"),
|
||||
inp(
|
||||
"배출시간입력",
|
||||
"배출시간(t3) — 0 이면 원문 범위 가운데",
|
||||
"분",
|
||||
src=f"{s} 1",
|
||||
rng=(0, 4),
|
||||
),
|
||||
inp(
|
||||
"대기시간입력",
|
||||
"대기시간(t4) — 0 이면 원문 범위 가운데",
|
||||
"분",
|
||||
src=f"{s} 1",
|
||||
rng=(0, 10),
|
||||
),
|
||||
e,
|
||||
],
|
||||
[
|
||||
@@ -472,8 +476,20 @@ def concrete_haul(C) -> list[dict]:
|
||||
inp("규격", "덤프트럭 규격(톤)", pick=C(f"{no} W", "규격"), src=f"{s} 2 가"),
|
||||
*plant,
|
||||
inp("운반거리", "편도운반거리(L · 15㎞까지)", "㎞", src=f"{s} 2 나"),
|
||||
inp("하역시간입력", "하역시간(t1) — 0 이면 원문 범위 가운데", "분", src=f"{s} 2"),
|
||||
inp("대기시간입력", "대기시간(t2) — 0 이면 원문 범위 가운데", "분", src=f"{s} 2"),
|
||||
inp(
|
||||
"하역시간입력",
|
||||
"하역시간(t1) — 0 이면 원문 범위 가운데",
|
||||
"분",
|
||||
src=f"{s} 2",
|
||||
rng=(0, 2),
|
||||
),
|
||||
inp(
|
||||
"대기시간입력",
|
||||
"대기시간(t2) — 0 이면 원문 범위 가운데",
|
||||
"분",
|
||||
src=f"{s} 2",
|
||||
rng=(0, 10),
|
||||
),
|
||||
e,
|
||||
],
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user