Files
Aislo/docs/wiki/concepts/mass_haul_diagram.md
T
eomsangdonandClaude Opus 5 eb30b774f8 chore(docs): docs 폴더 git 추적 전환 · PLAN·OWNERS 최상위 이관
- `docs/` 를 .gitignore 에서 빼 git 추적 대상으로 전환 (위키·완료 이력·검증 기록)
- `docs/raw/PLAN.md` · `docs/raw/OWNERS.md` 를 저장소 최상위로 이동 후 .gitignore 에 등록
  — 창끼리 공유하되 저장소에는 안 올리는 장부
- 살아 있는 경로 참조 7개 파일 정정 (아카이브 107건은 그때 사실이라 그대로 둠)
- graphify 날짜별 산출물(`docs/wiki/graphify-out/20*/`) 제외 — `graphify update` 가 다시 만듦

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 18:19:07 +09:00

72 lines
8.2 KiB
Markdown

---
type: concept
status: stable
related_pages: ["[[B05_Profile/B05_frontend_alignment]]", "[[B06_Section/B06_frontend]]", "[[B06_Section/B06_backend]]", "[[B07_Quantity/B07_frontend]]", "[[B09_Estimation/B09_frontend]]", "[[architecture/shared_resources]]"]
last_updated: 2026-08-30
source: ["docs/raw/2026-07-24_유토곡선_분석_및_웹앱_계산명세.md", "docs/raw/plans/2026-08-02_유토곡선_3공구_분석.md", "docs/raw/plans/2026-08-02_plan_mass_haul_multi_curve.md", "docs/raw/plans/2026-08-04_plan_mass_haul_spoil_scroll.md", "docs/raw/verification/2026-08-02_verify_mass_haul_distribution_and_refinements.md", "docs/raw/verification/2026-08-02_verify_mass_haul_multi_curve.md", "docs/raw/verification/2026-08-02_verify_panel_fold_B05_style.md", "docs/raw/verification/2026-08-02_verify_panel_height_first_render.md", "docs/raw/verification/2026-08-02_verify_backlog_reorg.md", "docs/raw/verification/2026-08-03_verify_후속작업_주의사항.md", "docs/raw/verification/2026-08-03_verify_B05_mass_haul_transfer.md", "docs/raw/verification/2026-08-03_verify_향후작업_반영완료.md", "docs/raw/verification/2026-08-04_verify_mass_haul_spoil_scroll.md"]
---
# 유토곡선 (Mass Haul Diagram) 계산 명세
## 1. 개요 및 분석 목적
* **분석 대상**:
* 1공구: `07.유토곡선.pdf` (측점 `0+0.0` ~ `60+0.0`, V=1:10,000, 최종 누가토량 1,171.00㎥)
* 3공구: `13 유토곡선(3공구).pdf` (측점 `120+0.0` ~ `176+10.0`, V=1:50,000, 최종 누가토량 12,888.98㎥)
* **역할**: 노선 내 절토 및 성토의 차이를 누적하여 토량 이동(토공 운반계획), 사토량/토취량, 운반장비(종무대, 불도저, 덤프트럭) 및 평균운반거리를 결정하는 도면/차트.
* **웹앱 명세 목적**: Aislo 웹앱 B08 수량산출 및 B09 내역서 연동 시 유토곡선 자동 계산 및 시각화를 위한 원리 명세화.
## 2. 주요 계산 수식 및 원리 (실무 관례 반영)
* **다짐상태 기준의 산출 (운반계획 실무 표준)**:
* 유토곡선은 다짐상태를 기준으로 유동 토량을 계산합니다.
* **측점별 순토량 ($N_i$)**:
$$N_i = \sum [C_{i, j} \times C_j] - F_i$$
* $C_{i, j}$: 현재 측점 구간의 $j$번째 지반유형별 절토량 (자연상태, ㎥)
* $C_j$: $j$번째 지반유형의 토량환산계수(다짐률)
* $F_i$: 현재 측점 구간의 성토량 (다짐상태, ㎥)
* **누가토량 ($M_i$)**:
$$M_i = M_{i-1} + N_i$$
* **곡선 증감 해석**:
* 상승 구간 ($M_i > M_{i-1}$): 절토 우세 구간
* 하강 구간 ($M_i < M_{i-1}$): 성토 우세 구간
* 극댓값/극솟값: 절토/성토 우세가 전환되는 변곡점
* 동일 누가토량 수평선: 구간 내 절토·성토 토량 균형 (Balance Line)
## 3. 지반유형별 토량환산계수 기본값 (`config_system.py`)
지반유형(`soil`, `ripping_rock`, `blasting_rock`)에 따른 체적 변화 계수(L: 흐트러진 상태, C: 다져진 상태) 기본값은 다음과 같이 관리하며, 현장별 조정을 위해 설정 가능하도록 제공합니다.
| B06 지반유형 | 대응 암종 | 팽창률 (L) | 다짐률 (C) |
|---|---|---|---|
| 토사 `soil` | 풍화토~점토 | 1.25 | 0.90 |
| 리핑암 `ripping_rock` | 풍화암~연암 하단 | 1.35 | 1.15 |
| 발파암 `blasting_rock` | 보통암 중앙 | 1.60 | 1.30 |
## 4. 토공 운반장비 선정거리 및 분배 기준 (`config_system.py`)
평균운반거리에 따른 장비 선정 기준은 오직 `config_system.py``EARTHWORK_HAUL_EQUIPMENT_LIMITS_M` 상수에서 단일 관리됩니다. (3공구 도면 실측치 및 실무 관행 적용)
* **종무대 (무대운반)**: 운반거리 $\le$ 20.0m
* **불도저 (압토운반)**: 운반거리 $\le$ 50.0m
* **덤프트럭 (기타운반)**: 운반거리 50.0m 초과 (나머지 전체)
* **자연방토 (`natural_spoil_m3`)**: 성토 사면 경사가 `NATURAL_SPOIL_MIN_GROUND_SLOPE = 1/1.5` 이상으로 급하여 기계적으로 흙을 운반하지 않고 흘려보내는 자연탈락 물량. 사토 수량에서 자동 공제되어 balloon에 `M.N=측점` 형태로 표기됩니다.
## 5. 유토곡선 곡선 사양 (B06 구현 v2)
사용자가 비교 분석할 수 있도록 **기준 2종 × 지반유형 1종 = 총 2개 곡선**을 중첩하여 제공합니다.
* **기준 2종**:
1. **횡단 기준**: 실제 횡단 단면적 기반의 정밀 산출 (`design.cut_area_m2` / `fill_area_m2`)
2. **종단 기준**: 계획고 - 지반고 (`difference_m`) × 노반폭 기반의 개략 산출 (균형 판정 지표)
* **지반유형 1종**:
- 횡단도 기하 및 암 경계선 기준의 토사/암반 면적 분리 기능 신설에 따라, **지반유형별** L, C 팽창/다짐률 개별 적용 곡선만 유지합니다. (실제 정보가 없던 `토사 단일`, `환산 없음` 곡선은 삭제).
## 6. 웹앱 연동 및 시각화 명세 (2026-08-02 확정)
* **웹앱 연동 및 시각화 명세 (2026-08-03 확정)**:
* **자동 Y스케일 및 Y축 0선 표기**: Y축 눈금은 노선 데이터 범위 기반의 동적 Y스케일링을 수행하며, 차트 상 0선(Balance Line)에 명시적으로 눈금값 "0"을 렌더링합니다.
* **평형선 엔진 및 장비 띠 분할**: 순차 평형선 탐색 알고리즘(`computeHaulPlan`)을 기반으로 사토/토취 단차를 둔 평형선을 산출하며, 장비 한계거리별로 영역을 쪼갠 띠(`HaulBand`)를 반투명 다각형으로 렌더링합니다.
* **다중 곡선화 및 직선 보간**: `PARABOLIC_MASS_CURVE = false` 스위치 단일화로 포물선 오차를 제거하고 현 길이/그리기 기준을 직선 연결로 고정. 횡단/종단 기준 × 지반유형 옵션 오버레이 지원.
* **장거리 운반 상쇄 (`HaulTransfer`)**: 띠 분배 후 남은 사토/토취 잔량은 토공 최소화 원칙에 따라 최단거리 쌍으로 자동 상쇄 연계(덤프 운반) 처리하여 최종 사토량 항등식의 수치적 오차를 0으로 맞춥니다.
* **물량 육각 Balloon 인터랙션**: 충돌 회피(`findSlot` 링 탐색) 및 화면 이탈 방지 clamping이 적용되어 있고, 드래그 위치 보존 및 더블클릭 복귀를 지원합니다.
* **UI/UX 레이아웃 보정**: B06 상단 패널 접기 손잡이 `bottom: -24px` 독립 배치(`createWorkflowPanelHandle` collapseToward: up/down 확장), 첫 렌더 시 `panelHeight()` 인라인 CSS 변수 우선 참조로 종단면도 축소 결함 해결.
* **B05 유토곡선 슬라이드 패널 이관 & 공용화**: B05 노선 설계 화면에 유토곡선 2차 슬라이드 패널 구축, `common_util_mass_haul*.ts|css` 공용 모듈 분리 및 `MassHaulAxis` 파라미터화, B05-B06 간 싱글턴 캐시 공유(`ProfileCross_Section_Store.ts`).
* **사토장 모델 & B08 수량산출 인계 (2026-08-04 확정)**: 사토 balloon에 `L=` 및 장비 표기, 잔량 발생 시 다중 부지 매칭(`settleResiduals`)을 적용하며, 사토장 자동 선정 취소 및 B05 구조물 직접 배치 방식 전환에 따라 유토곡선->B08 수량산출 자동 인계는 최종 취소(운반비 미계상) 처리되었습니다. 자연방토 임계 경사(`NATURAL_SPOIL_MIN_GROUND_SLOPE = 1.0 / 1.5`)는 실무 도면 기재 관행을 반영하여 그대로 유지됩니다.
* **후속 주의사항 13개 지침**: 암 경계선 지반선 복사 오프셋, 표준단면 토큰 단일화, B06 상세조회 백엔드 반영 시점, 다짐상태 유토곡선 누적, `EARTHWORK_HAUL_EQUIPMENT_LIMITS_M` 단일참조, 토량 배분 3원칙, 사면-지반 첫 교차 정지 등 지침 통합 관리.
* **측점 간격**: 20m 간격 기준 (`config/config_system.py``SECTION_STATION_INTERVAL_M = 20.0` 적용).
* **B08 납품도면**: 확정 종단 DB의 `mass_haul`을 사용해 A1 토적도를 H=1:2,000, 세로 1mm=50㎥로 생성합니다. 상세 구성과 후속 결정은 [[B08_DesignDetail/B08_drawing_masshaul_watershed]]를 참조합니다.
* **사용처**: [[B05_Profile/B05_frontend_alignment]], [[B06_Section/B06_frontend]], [[B06_Section/B06_backend]], [[B07_Quantity/B07_frontend]], [[B08_DesignDetail/B08_drawing_masshaul_watershed]], [[B09_Estimation/B09_frontend]]