feat(master_data): 건설품셈 토목 5장(강구조) 로직 9줄 · 범위규칙 「이상·이하」 · 자체 재료 4개

- 5-1 강교 제작: 기본공수 × 고강도강 보정 × 대형단품·부품계수 × 본체 보정(연속·총중량·사각/곡률 큰 값·높이 곡선) · 제경비 60%
- 5-1-3 기타재료(용접봉 · 산소 · LPG · 잡품 5% 이내) · 5-2 표면처리 둘 · 도장재료(도료 사용량 식 · 희석재 · 잡재료) · 도장
- 5-3 지조립(개소수 · 작업난이도) · 가설(단일거더 추가 · 확폭 차감 · 해상 인원) · 기타 부재 — 공구손료 요율 표
- 식 엔진: 범위규칙 「이상·이하」 읽음 · 규칙 글 뒤 괄호 설명은 뺌
- 계수 토목 5장: 조건 칸 이름 괄호·빈칸 정리 · 부품계수 범위규칙 「초과·이하」(150㎏ 한 점 어긋남 글로 적음)
- 막힘: 제작도 작성 중급숙련기술자(건설노임 요소 없음) · 5-1-3 재료 수량 기준(돈 로직 아님)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
This commit is contained in:
2026-09-19 18:56:37 +09:00
co-authored by Claude Opus 5
parent 87c4fd8446
commit 869511a685
5 changed files with 728 additions and 45 deletions
@@ -255,6 +255,9 @@ def _match(table: dict, row: dict, cond: str, want) -> bool:
if table.get("조건", {}).get(cond) == "범위":
low, high = have
rule, *more = table.get("범위규칙", "초과·이하").split(" · ")
rule = rule.split(" (")[0] # 「이상·미만 (원문 …)」 — 괄호 설명은 뺌
if rule == "이상·이하":
return (low is None or want >= low) and (high is None or want <= high)
if rule == "초과·이하":
return (low is None or want > low) and (high is None or want <= high)
if rule == "이상·미만":