Merge remote-tracking branch 'origin/dev' into main_laptop_1

This commit is contained in:
2026-10-26 09:37:24 +09:00
170 changed files with 2899 additions and 1064 deletions
+27 -4
View File
@@ -1,9 +1,32 @@
# 프로젝트 등록 설명서
# 프로젝트 등록
## 이 화면에서 하는 일
새 임도 설계 프로젝트의 이름 · 종류 · 노선 구간 · 도면 표제란 값을 입력해 프로젝트를 만듦.
## 여는 길
- 대시보드 [프로젝트] 구역의 [+] → 새 프로젝트 창에서 [임도설계].
![화면 한눈에](B02_00_overview.webp)
## 화면 구역
| 번호 | 구역 | 하는 일 |
| --- | --- | --- |
| 1 | 사업 연도 · 사업 지역 | 프로젝트명의 바탕이 되는 연도와 지역 입력 |
| 2 | 임도 종류 · 프로젝트명 | 임도 종류 선택 · 이름은 앞 세 값으로 자동 완성(고칠 수 있음) |
| 3 | 노선 시작 · 종료 누가거리 | 계획노선 가운데 쓸 구간(비우면 전 구간) |
| 4 | 시행청 · 설계일자 | 도면 표제란에 들어갈 값 |
| 5 | 과업책임자 · 분야별책임자 | 도면 표제란 책임자 선택 |
| 6 | 설계자 | 도면 표제란 설계자 선택 |
| 7 | 비고 | 메모(선택) |
| 8 | 단추 줄 | [?] 도움말 · [취소] · [프로젝트 생성] → [생성과 취소](B02/04_생성과_취소) |
## 작업 순서
## 버튼
1. [사업 지역] 입력 → [기본 항목 입력](B02/01_기본_항목_입력).
2. [임도 종류] 선택 → [임도 종류와 노선 구간](B02/02_임도_종류와_노선_구간).
3. 필요하면 노선 구간 입력 → [임도 종류와 노선 구간](B02/02_임도_종류와_노선_구간).
4. 도면 표제란 값 입력 → [도면 표제란](B02/03_도면_표제란).
5. [프로젝트 생성] → 파일입력 화면으로 넘어감 → [생성과 취소](B02/04_생성과_취소).
## 주의할 점
> 주의: 임도 종류는 이후 노선설계의 설계속도 선택지와 종단기울기 상한을 정함. 만들기 전에 확인.
@@ -0,0 +1,26 @@
# 기본 항목 입력
사업 연도 · 사업 지역 · 프로젝트명 입력.
## 여는 길
- 프로젝트 등록 화면 맨 위 줄.
![기본 항목 칸](B02_01_basic_fields.webp)
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | (그림 ①) [사업 연도] 확인 — 올해 연도가 미리 들어 있음 (2000 ~ 올해 + 5) |
| 2 | (그림 ②) [사업 지역] 입력 (예: 울진군 금강송면) — 필수 |
| 3 | (그림 ③) [임도 종류] 선택 |
| 4 | (그림 ④) [프로젝트명] 확인 — 앞 세 값으로 자동 완성 |
| 5 | 이름 중간이나 끝에 글을 덧붙이고 싶으면 [프로젝트명] 칸을 직접 고침 |
## 보이는 것
- [프로젝트명] 은 「사업 연도 + 사업 지역 + 임도 종류」 순으로 채워짐 (그림 ④ · 예: 2026 울진군 금강송면 간선임도).
- 연도 · 지역 · 종류를 다시 바꿔도 직접 덧붙인 글은 그대로 남고 해당 조각만 바뀜.
> 주의: [사업 지역] 이 비어 있으면 생성 안 됨 → [생성과 취소](B02/04_생성과_취소).
@@ -0,0 +1,42 @@
# 임도 종류와 노선 구간
임도 종류를 고르고, 계획노선 중 설계에 쓸 구간(누가거리)을 정함.
## 여는 길
- 프로젝트 등록 화면 가운데 줄.
![임도 종류 고르기](B02_02_road_type.webp)
## 단계
### 임도 종류
- 그림 ① [임도 종류] · ② [프로젝트명] — 종류를 바꾸면 프로젝트명 글자도 바뀜.
| 단계 | 할 일 |
| --- | --- |
| 1 | [임도 종류] 칸을 누름 |
| 2 | 간선임도 · 산불진화임도 · 작업임도 중 선택 |
| 3 | [프로젝트명] 의 종류 글자가 함께 바뀜 |
### 노선 구간
![노선 구간 입력](B02_03_route_range.webp)
| 단계 | 할 일 |
| --- | --- |
| 1 | (그림 ①) [노선 시작 누가거리 (m)] 에 시작 위치 입력 — 비우면 처음부터 |
| 2 | (그림 ②) [노선 종료 누가거리 (m)] 에 끝 위치 입력 — 비우면 끝까지 |
| 3 | (그림 ②) 종료 칸 이름에 「연장 ○○m」 가 표시되는지 확인 |
## 보이는 것
![종료가 시작보다 작을 때](B02_07_range_error.webp)
- 시작과 종료를 모두 넣으면 종료 칸 제목에 구간 길이가 나옴 (예: 연장 2500.0m).
- 종료가 시작보다 작거나 같은 채 [프로젝트 생성] 을 누르면 종료 칸 아래에 「종료 누가거리는 시작보다 커야 합니다.」 표시 · 프로젝트는 만들어지지 않음.
> 주의: 임도 종류는 노선설계 화면의 설계속도 선택지와 종단기울기 상한 기준이 됨.
> 참고: 계획노선 자료가 공사지 전체일 때 쓸 구간만 따로 정하는 칸. 한 구간 전체를 쓰면 둘 다 비워 둠.
@@ -0,0 +1,25 @@
# 도면 표제란
도면 오른쪽 아래 표제란에 들어갈 시행청 · 설계일자 · 책임자를 미리 입력. 비워 두면 도면에 빈칸으로 나감.
## 여는 길
- 프로젝트 등록 화면 아래쪽 줄.
![도면 표제란 칸](B02_04_title_block.webp)
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | (그림 ①) [시행청 (도면 표제란)] 입력 |
| 2 | (그림 ②) [설계일자 (도면 표제란)] 에서 날짜 선택 |
| 3 | (그림 ③ ④ ⑤) [과업책임자 (도면 표제란)] · [분야별책임자 (도면 표제란)] · [설계자 (도면 표제란)] 를 목록에서 선택 |
| 4 | (그림 ⑥) 필요하면 [비고] 에 메모 |
## 보이는 것
- 세 책임자 칸은 같은 회사 팀원 목록. 처음에는 프로젝트를 만드는 본인이 선택됨.
- 목록에 없는 사람은 대시보드 [팀원 관리] 에서 추가한 뒤 고름 → [B01 회사와 팀원](B01/05_회사와_팀원).
> 참고: 나중에 대시보드 [프로젝트] 표의 [수정] 에서 같은 값을 고칠 수 있음 → [B01 프로젝트 목록](B01/02_프로젝트_목록).
@@ -0,0 +1,28 @@
# 생성과 취소
입력을 마치고 프로젝트를 만들거나, 만들지 않고 돌아감.
## 여는 길
- 프로젝트 등록 화면 오른쪽 아래 단추 줄.
![단추 줄](B02_06_buttons.webp)
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 필수 칸(사업 연도 · 사업 지역 · 프로젝트명)을 채움 |
| 2 | [프로젝트 생성] 누름 |
| 3 | 「프로젝트가 생성되었습니다. 파일 입력 단계로 이동합니다.」 알림과 함께 파일입력 화면이 열림 → [B03](B03/00_설명서) |
| 4 | 만들지 않으려면 [취소] — 대시보드로 돌아감 |
## 보이는 것
![필수 칸 오류](B02_05_required_error.webp)
- 비워 둔 필수 칸 아래에 「필수 항목을 입력하세요.」 표시.
- 연도가 범위를 벗어나면 「숫자 범위를 벗어났습니다.」 표시.
- 오류가 있으면 프로젝트는 만들어지지 않음.
> 참고: 그림 ① [?] 는 이 화면의 도움말을 엶 · ② [취소] · ③ [프로젝트 생성].
Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

+345
View File
@@ -0,0 +1,345 @@
[
{
"name": "B02_00_overview",
"route": "#/b02-proj-register",
"project": "none",
"before": [
{
"wait": ".b02-proj__grid"
},
{
"wait_ms": 1200
},
{
"eval": "(()=>{const q=[\".b02-proj__grid > :nth-child(1)\", \".b02-proj__grid > :nth-child(2)\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__u1';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
},
{
"eval": "(()=>{const q=[\".b02-proj__grid > :nth-child(3)\", \".b02-proj__grid > :nth-child(4)\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__u2';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
},
{
"eval": "(()=>{const q=[\".b02-proj__grid > :nth-child(5)\", \".b02-proj__grid > :nth-child(6)\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__u3';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
},
{
"eval": "(()=>{const q=[\".b02-proj__grid > :nth-child(7)\", \".b02-proj__grid > :nth-child(8)\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__u4';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
},
{
"eval": "(()=>{const q=[\".b02-proj__grid > :nth-child(9)\", \".b02-proj__grid > :nth-child(10)\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__u5';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
},
{
"eval": "(()=>{const q=[\".b02-proj__grid > :nth-child(11)\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__u6';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
},
{
"eval": "(()=>{const q=[\".b02-proj__grid > :nth-child(12)\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__u7';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
},
{
"eval": "document.querySelectorAll('.b02-proj__grid select option').forEach(o=>{o.textContent=o.textContent.replace('엄상돈','홍길동')})"
}
],
"clip": null,
"callouts": [
{
"n": 1,
"sel": "#__u1"
},
{
"n": 2,
"sel": "#__u2"
},
{
"n": 3,
"sel": "#__u3"
},
{
"n": 4,
"sel": "#__u4"
},
{
"n": 5,
"sel": "#__u5"
},
{
"n": 6,
"sel": "#__u6"
},
{
"n": 7,
"sel": "#__u7"
},
{
"n": 8,
"sel": ".b02-proj__actions"
}
]
},
{
"name": "B02_01_basic_fields",
"route": "#/b02-proj-register",
"project": "none",
"before": [
{
"wait": ".b02-proj__grid"
},
{
"fill": ".b02-proj__grid > :nth-child(2) input",
"value": "울진군 금강송면"
},
{
"wait_ms": 300
},
{
"wait_ms": 800
},
{
"eval": "document.querySelectorAll('.b02-proj__grid select option').forEach(o=>{o.textContent=o.textContent.replace('엄상돈','홍길동')})"
},
{
"eval": "(()=>{const q=[\".b02-proj__grid > :nth-child(1)\", \".b02-proj__grid > :nth-child(4)\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__clip';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
}
],
"clip": "#__clip",
"clip_pad": 4,
"callouts": [
{
"n": 1,
"sel": ".b02-proj__grid > :nth-child(1)"
},
{
"n": 2,
"sel": ".b02-proj__grid > :nth-child(2)"
},
{
"n": 3,
"sel": ".b02-proj__grid > :nth-child(3)"
},
{
"n": 4,
"sel": ".b02-proj__grid > :nth-child(4)"
}
]
},
{
"name": "B02_02_road_type",
"route": "#/b02-proj-register",
"project": "none",
"before": [
{
"wait": ".b02-proj__grid"
},
{
"select": ".b02-proj__grid > :nth-child(3) select",
"value": "fire"
},
{
"wait_ms": 500
},
{
"eval": "document.querySelectorAll('.b02-proj__grid select option').forEach(o=>{o.textContent=o.textContent.replace('엄상돈','홍길동')})"
},
{
"eval": "(()=>{const q=[\".b02-proj__grid > :nth-child(3)\", \".b02-proj__grid > :nth-child(4)\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__clip';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
}
],
"clip": "#__clip",
"clip_pad": 4,
"callouts": [
{
"n": 1,
"sel": ".b02-proj__grid > :nth-child(3)"
},
{
"n": 2,
"sel": ".b02-proj__grid > :nth-child(4)"
}
]
},
{
"name": "B02_03_route_range",
"route": "#/b02-proj-register",
"project": "none",
"before": [
{
"wait": ".b02-proj__grid"
},
{
"fill": ".b02-proj__grid > :nth-child(5) input",
"value": "1000"
},
{
"fill": ".b02-proj__grid > :nth-child(6) input",
"value": "3500"
},
{
"wait_ms": 500
},
{
"eval": "document.querySelectorAll('.b02-proj__grid select option').forEach(o=>{o.textContent=o.textContent.replace('엄상돈','홍길동')})"
},
{
"eval": "(()=>{const q=[\".b02-proj__grid > :nth-child(5)\", \".b02-proj__grid > :nth-child(6)\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__clip';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
}
],
"clip": "#__clip",
"clip_pad": 4,
"callouts": [
{
"n": 1,
"sel": ".b02-proj__grid > :nth-child(5)"
},
{
"n": 2,
"sel": ".b02-proj__grid > :nth-child(6)"
}
]
},
{
"name": "B02_04_title_block",
"route": "#/b02-proj-register",
"project": "none",
"before": [
{
"wait": ".b02-proj__grid"
},
{
"wait_ms": 1500
},
{
"eval": "document.querySelectorAll('.b02-proj__grid select option').forEach(o=>{o.textContent=o.textContent.replace('엄상돈','홍길동')})"
},
{
"eval": "(()=>{const q=[\".b02-proj__grid > :nth-child(7)\", \".b02-proj__grid > :nth-child(12)\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__clip';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
}
],
"clip": "#__clip",
"clip_pad": 4,
"callouts": [
{
"n": 1,
"sel": ".b02-proj__grid > :nth-child(7)"
},
{
"n": 2,
"sel": ".b02-proj__grid > :nth-child(8)"
},
{
"n": 3,
"sel": ".b02-proj__grid > :nth-child(9)"
},
{
"n": 4,
"sel": ".b02-proj__grid > :nth-child(10)"
},
{
"n": 5,
"sel": ".b02-proj__grid > :nth-child(11)"
},
{
"n": 6,
"sel": ".b02-proj__grid > :nth-child(12)"
}
]
},
{
"name": "B02_05_required_error",
"route": "#/b02-proj-register",
"project": "none",
"before": [
{
"wait": ".b02-proj__grid"
},
{
"click": ".b02-proj__actions .ui-btn--filled"
},
{
"wait_ms": 600
},
{
"eval": "document.querySelectorAll('.b02-proj__grid select option').forEach(o=>{o.textContent=o.textContent.replace('엄상돈','홍길동')})"
},
{
"eval": "(()=>{const q=[\".b02-proj__grid > :nth-child(1)\", \".b02-proj__grid > :nth-child(2)\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__clip';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
}
],
"clip": "#__clip",
"clip_pad": 4,
"callouts": [
{
"n": 1,
"sel": ".b02-proj__grid > :nth-child(2)"
}
]
},
{
"name": "B02_06_buttons",
"route": "#/b02-proj-register",
"project": "none",
"before": [
{
"wait": ".b02-proj__actions"
},
{
"eval": "document.querySelectorAll('.b02-proj__grid select option').forEach(o=>{o.textContent=o.textContent.replace('엄상돈','홍길동')})"
}
],
"clip": ".b02-proj__actions",
"callouts": [
{
"n": 1,
"sel": ".b02-proj__actions .ui-help-btn"
},
{
"n": 2,
"sel": ".b02-proj__actions .ui-btn--ghost:nth-child(2)"
},
{
"n": 3,
"sel": ".b02-proj__actions .ui-btn--filled"
}
]
},
{
"name": "B02_07_range_error",
"route": "#/b02-proj-register",
"project": "none",
"before": [
{
"wait": ".b02-proj__grid"
},
{
"fill": ".b02-proj__grid > :nth-child(2) input",
"value": "울진군 금강송면"
},
{
"fill": ".b02-proj__grid > :nth-child(5) input",
"value": "3000"
},
{
"fill": ".b02-proj__grid > :nth-child(6) input",
"value": "1000"
},
{
"click": ".b02-proj__actions .ui-btn--filled"
},
{
"wait_ms": 600
},
{
"eval": "document.querySelectorAll('.b02-proj__grid select option').forEach(o=>{o.textContent=o.textContent.replace('엄상돈','홍길동')})"
},
{
"eval": "(()=>{const q=[\".b02-proj__grid > :nth-child(5)\", \".b02-proj__grid > :nth-child(6)\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__clip';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
}
],
"clip": "#__clip",
"clip_pad": 4,
"callouts": [
{
"n": 1,
"sel": ".b02-proj__grid > :nth-child(5)"
},
{
"n": 2,
"sel": ".b02-proj__grid > :nth-child(6)"
}
]
}
]
+34 -4
View File
@@ -1,9 +1,39 @@
# 파일입력 설명서
# 파일입력
## 이 화면에서 하는 일
계획노선 파일과 지형(라이다) 파일을 올려, 이후 설계의 바탕 자료를 만듦.
## 여는 길
- 프로젝트를 만들면 자동으로 열림.
- 이미 만든 프로젝트는 대시보드 [프로젝트] 표의 단계 막대에서 「파일입력」 누름.
![화면 한눈에](B03_00_overview.webp)
## 화면 구역
| 번호 | 구역 | 하는 일 |
| --- | --- | --- |
| 1 | 왼쪽 패널 | 지금 단계(파일입력)와 프로젝트 이름 · 진행 안내 글 · 접기 손잡이 · [?] 도움말 |
| 2 | [입력 파일 선택] 칸 | 파일을 끌어다 놓거나 눌러서 한꺼번에 고름 |
| 3 | [임시 보관함] | 대시보드에 미리 올려 둔 자료를 가져옴 |
| 4 | [파일 업로드] | 고른 파일을 서버로 올림 |
| 5 | [LAS 없이 설계 (도엽등고선 기반)] | 라이다 없이 도엽 등고선으로 지형을 만드는 선택 |
| 6 | [계획노선 자료] | 노선 도형 · 색인 · 속성 · 인코딩 · 좌표계 카드 다섯 |
| 7 | [지형 자료 (LAS)] | 포인트클라우드 · 지형 좌표계 · 래스터 좌표 · 지형 래스터 카드 넷 |
![왼쪽 패널](B03_08_left_panel.webp)
왼쪽 패널 그림 번호 — ① 단계 이름 · ② 패널 접기 손잡이 · ③ [?] 도움말. 이미 끝난 프로젝트는 「필수 파일 업로드와 지표면 분석이 모두 완료된 프로젝트입니다. 파일을 다시 올리면 기존 결과가 교체됩니다.」 안내가 패널에 보임.
## 작업 순서
## 버튼
1. 파일을 끌어다 놓거나 [입력 파일 선택] 으로 고름 → [파일 올리기](B03/01_파일_올리기).
2. 카드마다 파일이 맞게 들어갔는지 확인 → [카드 읽는 법](B03/02_카드_읽는_법).
3. 대시보드에 올려 둔 자료가 있으면 [임시 보관함] 으로 → [임시 보관함에서 가져오기](B03/03_임시_보관함에서_가져오기).
4. 산림청 예정노선을 쓰면 [예정노선에서 가져오기] → [예정노선 가져오기](B03/04_예정노선_가져오기).
5. 라이다가 없으면 [LAS 없이 설계] → [LAS 없이 설계](B03/05_LAS_없이_설계).
6. [파일 업로드] → 분석이 끝나면 전처리 화면으로 자동 이동 → [B04](B04/00_설명서).
## 주의할 점
> 주의: 이미 끝난 프로젝트에 파일을 다시 올리면 기존 분석 결과가 새 파일로 교체됨.
> 참고: 어떤 파일이 필요한지는 [필요한 파일](B03/10_필요한_파일) 참고.
@@ -0,0 +1,34 @@
# 파일 올리기
계획노선 · 지형 파일을 고르고 서버로 올림.
## 여는 길
- 파일입력 화면 위쪽 [입력 파일 선택] 칸과 [파일 업로드] 단추.
![올리기 줄](B03_01_pick_row.webp)
그림 번호 — ① [입력 파일 선택] 칸 · ② [임시 보관함] · ③ [파일 업로드] · ④ [LAS 없이 설계 (도엽등고선 기반)].
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 컴퓨터의 파일들을 [입력 파일 선택] 칸 위로 끌어다 놓음 (칸을 눌러 고를 수도 있음) |
| 2 | 확장자를 보고 파일이 알맞은 카드에 자동으로 들어감 — 카드 상태가 「완료」 나 선택 표시로 바뀜 |
| 3 | 빠진 카드는 카드의 [파일 선택] 으로 한 칸씩 채움 |
| 4 | 잘못 넣은 파일은 카드의 ✕ [파일 제거] 로 되돌림 |
| 5 | 필수 카드가 모두 차면 [파일 업로드] 가 켜짐 · 누름 |
| 6 | 카드마다 진행률 · 속도 · 예상 완료 시간이 표시됨 |
| 7 | 올리기가 끝나면 분석이 백그라운드로 돌고, 끝나면 전처리 화면으로 자동 이동 |
## 보이는 것
- 올리는 동안 [파일 업로드] 단추는 「업로드 중…」 으로 바뀜.
- 같은 칸에 이미 올라간 파일이 있으면 「기존 파일 교체 확인」 창이 뜸 — [교체] 를 누르면 기존 파일과 분석 결과(지표면 모델 등)가 바뀜, [취소] 하면 그대로.
- 오류 글 예: 「같은 유형의 파일이 이미 선택되어 있습니다.」 · 「선택한 파일 유형이 이 카드와 맞지 않습니다.」 · 「필수 카드를 모두 채우세요 …」.
- 올리다 중단되면 「중단된 업로드 감지」 띠가 뜸 — 같은 파일을 다시 고르고 [업로드 재개].
> 주의: 계획노선 PRJ 와 지형 PRJ 는 서로 다른 칸. 라이다 PRJ 가 작업 좌표계 기준이며 노선 좌표계와 다르면 올리기가 막힘.
> 참고: 큰 파일은 올리는 데 시간이 걸림. 올리는 동안 창을 닫지 않기.
@@ -0,0 +1,52 @@
# 카드 읽는 법
계획노선과 지형 자료의 카드 아홉 장이 각각 무엇을 뜻하는지, 어떤 정보를 미리 보여 주는지.
## 여는 길
- 파일입력 화면의 [계획노선 자료] · [지형 자료 (LAS)] 구역.
![카드 한 장의 구성](B03_04_card_parts.webp)
## 단계
| 번호 | 부분 | 뜻 |
| --- | --- | --- |
| 1 | 카드 이름과 확장자 | 이 카드가 받을 파일의 종류 (예: 계획노선 도형 .shp) |
| 2 | 상태 | 완료 · 업로드 중 · 대기 · 실패 · 선택 |
| 3 | [파일 선택] | 이 카드에 파일을 직접 고름 |
| 4 | 파일명과 크기 | 지금 올라가 있는 파일 |
| 5 | 미리보기 | 파일을 읽어서 보여 주는 요약 |
### 계획노선 자료
그림 번호는 아래 표의 번호와 같음 — 맨 아래 [예정노선에서 가져오기] 는 [예정노선 가져오기](B03/04_예정노선_가져오기).
![계획노선 카드들](B03_02_route_cards.webp)
| 번호 | 카드 | 파일 | 미리보기 |
| --- | --- | --- | --- |
| 1 | 계획노선 도형 | .shp | 노선 모양 |
| 2 | 노선 도형 색인 | .shx | 도형 개수 · 범위 |
| 3 | 노선 속성 | .dbf | 레코드 · 속성 개수 |
| 4 | 노선 속성 인코딩 | .cpg (선택) | 인코딩 번호 |
| 5 | 노선 좌표계 | .prj | 좌표계 이름과 번호 |
### 지형 자료
그림 번호는 아래 표의 번호와 같음.
![지형 카드들](B03_03_terrain_cards.webp)
| 번호 | 카드 | 파일 | 미리보기 |
| --- | --- | --- | --- |
| 1 | 포인트클라우드 | .las · .laz | 점 5,000개를 솎아 위에서 본 모양 |
| 2 | 지형 좌표계 | .prj | 좌표계 이름과 번호 |
| 3 | 래스터 좌표 | .tfw | 픽셀 크기 |
| 4 | 지형 래스터 | .tif (선택) | 지형 래스터 그림 |
## 보이는 것
- 계획노선이 지형 자료 범위를 벗어나면 「계획노선이 지형 자료 범위를 벗어납니다.」 · 안에 있으면 「계획노선이 지형 자료 범위 안에 있습니다.」 표시.
> 참고: 지형 쪽 PRJ · TFW 는 지형 자료의 좌표계. 노선 PRJ 와 별개.
@@ -0,0 +1,28 @@
# 임시 보관함에서 가져오기
대시보드 임시 보관함에 먼저 올려 둔 자료를 이 프로젝트로 옮김. 큰 파일을 미리 올려 둘 때 편함.
## 여는 길
- 파일입력 화면 위쪽 [임시 보관함] 단추.
![보관 자료 선택 창](B03_06_temp_modal.webp)
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | [임시 보관함] 누름 |
| 2 | 목록에서 가져올 묶음을 고름 (이름 · 파일 개수 · 크기가 보임) |
| 3 | [확인] |
| 4 | 자료가 프로젝트로 옮겨지고 분석이 시작됨 |
## 보이는 것
그림 ① 은 창 아래 [취소] · [확인] 단추 줄. 그림은 보관 자료가 없을 때의 모습.
- 옮기기가 끝나면 「보관 자료를 프로젝트로 옮겼습니다. 분석을 시작합니다.」 알림.
- 라이다 파일이 묶음에 없으면 「파일은 옮겼지만 라이다 파일이 없어 분석을 시작하지 못했습니다.」 알림.
- 쓸 수 있는 묶음이 없으면 「사용할 수 있는 보관 자료가 없습니다. 대시보드 임시 보관함에서 필수 파일을 모두 올려 주세요.」 안내.
> 참고: 보관함에 올리는 방법은 [B01 임시 보관함](B01/04_임시_보관함).
@@ -0,0 +1,30 @@
# 예정노선 가져오기
산림청이 우리 회사에 지정해 준 예정노선을 계획노선 칸에 바로 넣음.
## 여는 길
- 파일입력 화면 [계획노선 자료] 카드 맨 아래 [예정노선에서 가져오기] 단추.
![예정노선 고르기 창](B03_07_plan_import_modal.webp)
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | [예정노선에서 가져오기] 누름 |
| 2 | 「지정받은 예정노선 연도 고르기」 창에서 연도를 선택 |
| 3 | 안내에 따라 [예정노선에서 가져오기] 로 확정 |
| 4 | 「예정노선을 노선 칸에 넣었습니다.」 알림 후 노선 카드들이 채워짐 |
## 보이는 것
그림은 지정받은 예정노선이 없을 때의 모습 — 있으면 연도 목록이 나타남.
- 지정받은 예정노선이 없으면 「우리 회사에 지정된 예정노선이 없습니다.」 안내.
- 이미 연결된 노선은 「연결됨: 프로젝트 이름」 표시.
- 연결한 예정노선이 나중에 바뀌면 화면 위에 「예정노선이 바뀜 …」 띠와 [다시 가져오기] 가 나타남.
> 주의: 이미 분석이 끝난 프로젝트에 가져오면 기존 결과가 지워짐 — 확인 창이 한 번 더 뜸.
> 참고: 받은 예정노선 목록은 [B01 받은 예정노선](B01/03_받은_예정노선).
@@ -0,0 +1,25 @@
# LAS 없이 설계
라이다(LAS) 파일이 없을 때 1:5,000 수치지형도의 도엽 등고선으로 지형을 만드는 선택.
## 여는 길
- 파일입력 화면 위쪽 [LAS 없이 설계 (도엽등고선 기반)] 체크 칸.
![체크한 모습](B03_05_lasfree_on.webp)
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | (그림 ①) [LAS 없이 설계 (도엽등고선 기반)] 에 체크 |
| 2 | (그림 ②) 포인트클라우드 카드가 흐려지며 필수에서 빠짐 |
| 3 | 계획노선 파일과 지형 좌표계(PRJ)만 채움 |
| 4 | [파일 업로드] |
## 보이는 것
- 체크 칸 위에 마우스를 올리면 「포인트클라우드 없이 1:5,000 수치지형도 등고선으로 지형을 만듭니다.」 안내.
- 체크한 상태에서 LAS · LAZ 파일을 넣으면 「LAS 없이 설계를 켠 상태에서는 LAS/LAZ 파일을 넣을 수 없습니다.」 표시.
> 참고: 전처리 화면에서는 [도엽등고 3D 서피스] 가 지형의 바탕이 됨 → [B04 도엽등고 3D 서피스](B04/04_도엽등고_3D_서피스).
@@ -1,5 +1,11 @@
# 필요한 파일
- 계획노선 — shapefile 한 벌(.shp·.shx·.dbf·.cpg·.prj) 5개.
![계획노선 카드 다섯](B03_02_route_cards.webp)
- 지형 — 포인트클라우드 LAS/LAZ 1개와 좌표계 PRJ, 래스터 기준 TFW.
- 지형 TIF(DEM)는 선택 사항 — 없어도 지표면 분석이 진행됩니다.
![지형 카드 넷](B03_03_terrain_cards.webp)
- 지형 TIF(DEM)는 선택 사항 — 없어도 지표면 분석이 진행됨.
@@ -1,5 +1,10 @@
# 고르는 방법
- 여러 개를 한 번에 끌어 놓으면 확장자로 카드에 자동 배정됩니다.
- 카드의 [선택]으로 한 칸씩 지정하거나 ✕로 되돌릴 수 있습니다.
- [임시 보관함]은 대시보드에 미리 올려 둔 자료를 가져옵니다.
- 여러 개를 한 번에 끌어 놓으면 확장자로 카드에 자동 배정됨.
![올리기 줄](B03_01_pick_row.webp)
- 카드의 [파일 선택]으로 한 칸씩 지정하거나 ✕로 되돌릴 수 있음.
- [임시 보관함]은 대시보드에 미리 올려 둔 자료를 가져옴.
![보관 자료 선택 창](B03_06_temp_modal.webp)
+5 -3
View File
@@ -1,5 +1,7 @@
# 알아 둘 것
- 이미 완료된 프로젝트에 다시 올리면 기존 분석 결과가 교체됩니다.
- 작업 좌표계는 라이다 PRJ가 기준 — 노선 좌표계와 다르면 업로드가 막힙니다.
- 라이다가 없으면 [LAS 없는 설계]를 켜고 도엽 등고선으로 진행합니다.
- 이미 완료된 프로젝트에 다시 올리면 기존 분석 결과가 교체됨.
- 작업 좌표계는 라이다 PRJ가 기준 — 노선 좌표계와 다르면 업로드가 막힘.
- 라이다가 없으면 [LAS 없이 설계 (도엽등고선 기반)]를 켜고 도엽 등고선으로 진행함.
![체크한 모습](B03_05_lasfree_on.webp)
Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

+330
View File
@@ -0,0 +1,330 @@
[
{
"name": "B03_00_overview",
"route": "#/b03-file-input",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b03-file__pick-row"
},
{
"wait_ms": 1500
}
],
"clip": null,
"callouts": [
{
"n": 1,
"sel": ".ui-workflow-overlay__panel"
},
{
"n": 2,
"sel": ".b03-file__dropzone"
},
{
"n": 3,
"sel": ".b03-file__temp-picker .ui-btn"
},
{
"n": 4,
"sel": ".b03-file__pick-row > .ui-btn--filled"
},
{
"n": 5,
"sel": ".b03-file__lasfree"
},
{
"n": 6,
"sel": ".b03-file__columns > :nth-child(1) .b03-file__group-title"
},
{
"n": 7,
"sel": ".b03-file__columns > :nth-child(2) .b03-file__group-title"
}
]
},
{
"name": "B03_01_pick_row",
"route": "#/b03-file-input",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b03-file__pick-row"
}
],
"clip": ".b03-file__control-panel",
"callouts": [
{
"n": 1,
"sel": ".b03-file__dropzone"
},
{
"n": 2,
"sel": ".b03-file__temp-picker .ui-btn"
},
{
"n": 3,
"sel": ".b03-file__pick-row > .ui-btn--filled"
},
{
"n": 4,
"sel": ".b03-file__lasfree"
}
]
},
{
"name": "B03_02_route_cards",
"route": "#/b03-file-input",
"project": "road",
"viewport": [
1600,
2000
],
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b03-file__columns"
},
{
"wait_ms": 1500
}
],
"clip": ".b03-file__columns > :nth-child(1)",
"callouts": [
{
"n": 1,
"sel": ".b03-file__columns > :nth-child(1) [data-slot-id=csv]"
},
{
"n": 2,
"sel": ".b03-file__columns > :nth-child(1) [data-slot-id=shx]"
},
{
"n": 3,
"sel": ".b03-file__columns > :nth-child(1) [data-slot-id=dbf]"
},
{
"n": 4,
"sel": ".b03-file__columns > :nth-child(1) [data-slot-id=cpg]"
},
{
"n": 5,
"sel": ".b03-file__columns > :nth-child(1) [data-slot-id=route_prj]"
}
]
},
{
"name": "B03_03_terrain_cards",
"route": "#/b03-file-input",
"project": "road",
"viewport": [
1600,
2000
],
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b03-file__columns"
},
{
"wait_ms": 1500
}
],
"clip": ".b03-file__columns > :nth-child(2)",
"callouts": [
{
"n": 1,
"sel": "[data-slot-id=las_laz]"
},
{
"n": 2,
"sel": "[data-slot-id=prj]"
},
{
"n": 3,
"sel": "[data-slot-id=tfw]"
},
{
"n": 4,
"sel": "[data-slot-id=tif]"
}
]
},
{
"name": "B03_04_card_parts",
"route": "#/b03-file-input",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": "[data-slot-id=csv]"
},
{
"wait_ms": 1200
}
],
"clip": "[data-slot-id=csv]",
"callouts": [
{
"n": 1,
"sel": "[data-slot-id=csv] .b03-file__card-label"
},
{
"n": 2,
"sel": "[data-slot-id=csv] .ui-tag"
},
{
"n": 3,
"sel": "[data-slot-id=csv] .b03-file__card-select"
},
{
"n": 4,
"sel": "[data-slot-id=csv] .b03-file__file-info"
},
{
"n": 5,
"sel": "[data-slot-id=csv] .b03-file__preview"
}
]
},
{
"name": "B03_05_lasfree_on",
"route": "#/b03-file-input",
"project": "road",
"viewport": [
1600,
1500
],
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b03-file__lasfree"
},
{
"click": ".b03-file__lasfree input"
},
{
"wait_ms": 800
},
{
"eval": "(()=>{const q=[\".b03-file__control-panel\", \"[data-slot-id=las_laz]\"];const els=q.map(s=>[...document.querySelectorAll(s)].find(e=>e.getBoundingClientRect().width>0));const rs=els.map(e=>e.getBoundingClientRect());const L=Math.min(...rs.map(r=>r.left)),T=Math.min(...rs.map(r=>r.top)),R=Math.max(...rs.map(r=>r.right)),B=Math.max(...rs.map(r=>r.bottom));const d=document.createElement('div');d.id='__clip';d.style.cssText='position:absolute;pointer-events:none;left:'+(L+scrollX)+'px;top:'+(T+scrollY)+'px;width:'+(R-L)+'px;height:'+(B-T)+'px';document.body.appendChild(d);})()"
}
],
"clip": "#__clip",
"clip_pad": 4,
"callouts": [
{
"n": 1,
"sel": ".b03-file__lasfree"
},
{
"n": 2,
"sel": "[data-slot-id=las_laz]"
}
]
},
{
"name": "B03_06_temp_modal",
"route": "#/b03-file-input",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b03-file__temp-picker .ui-btn"
},
{
"click": ".b03-file__temp-picker .ui-btn"
},
{
"wait": ".b03-file__temp-modal"
},
{
"wait_ms": 800
}
],
"clip": ".b03-file__temp-modal",
"callouts": [
{
"n": 1,
"sel": ".b03-file__temp-modal-actions"
}
]
},
{
"name": "B03_07_plan_import_modal",
"route": "#/b03-file-input",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b03-file__columns"
},
{
"click": "button:has-text('예정노선에서 가져오기')"
},
{
"wait_ms": 1200
}
],
"clip": ".ui-modal",
"callouts": [
{
"n": 1,
"sel": ".ui-modal__body"
}
]
},
{
"name": "B03_08_left_panel",
"route": "#/b03-file-input",
"project": "road",
"viewport": [
1600,
560
],
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".ui-workflow-overlay__panel"
},
{
"wait_ms": 1200
}
],
"clip": ".ui-workflow-overlay__panel",
"callouts": [
{
"n": 1,
"sel": ".ui-workflow-overlay__title"
},
{
"n": 2,
"sel": ".ui-workflow-overlay__handle--side"
},
{
"n": 3,
"sel": ".ui-workflow-overlay__panel .ui-help-btn"
}
]
}
]
+33 -4
View File
@@ -1,9 +1,38 @@
# 전처리 설명서
# 전처리
## 이 화면에서 하는 일
올린 라이다 점들에서 땅 모양(지표면 모델)을 만들고, 그 지형 위에서 물이 어디로 모이는지(배수유역)까지 확인한 뒤 모델을 확정.
## 여는 길
- 파일입력의 분석이 끝나면 자동으로 열림.
- 이미 끝난 프로젝트는 대시보드 [프로젝트] 표의 단계 막대에서 「전처리」 누름.
![화면 한눈에](B04_00_overview.webp)
## 화면 구역
| 번호 | 구역 | 하는 일 |
| --- | --- | --- |
| 1 | 입력 포인트클라우드 | 분석할 라이다 파일 선택 · 좌표계 · 크기 · 점 개수 · 높이 범위 확인 |
| 2 | 지표면 분석 | 지면 필터 · 서피스 · 스무딩을 골라 지표면 모델 선택 |
| 3 | 모델 표시 옵션 | 축 · 서피스 · 등고선 켜고 끄기 · 등고선 간격 · 점 크기 · 밀도 |
| 4 | 뷰어 시점 제어 | 사시도 · 상단 · 정면 · 측면으로 시점 바꿈 |
| 5 | 단추 줄 | [?] 도움말 · [이 모델 확정] · [초기화] |
| 6 | 진행 띠 | 분석 진행률과 안내 글 |
| 7 | 입력 포인트클라우드 3D | 올린 점들을 3차원으로 봄 |
| 8 | 지표면 모델 3D | 만들어진 땅 모양과 등고선 · 계획선 |
| 9 | 도엽등고 3D 서피스 | 수치지형도 등고선으로 만든 지형 · 라이다 지형과 겹쳐 비교 |
| 10 | 2D 배경 지도 및 GIS 레이어 | 지도 위에 계획선 · 등고선 · 배수유역 겹쳐 보기 |
## 작업 순서
## 버튼
1. 입력 파일과 점 개수 확인 → [입력 포인트클라우드](B04/01_입력_포인트클라우드).
2. 지면 필터 · 서피스 · 스무딩을 골라 지표면 모델 선택 → [지표면 분석](B04/02_지표면_분석).
3. 3D 화면을 돌려 보며 표시 옵션 조정 → [3D 보기](B04/03_3D_보기).
4. 도엽등고 서피스로 라이다 모델과 비교 → [도엽등고 3D 서피스](B04/04_도엽등고_3D_서피스).
5. 2D 지도에서 배수유역 확인 → [2D 지도와 GIS 레이어](B04/05_2D_지도와_GIS_레이어) · [배수유역](B04/06_배수유역).
6. [이 모델 확정] → 노선 설계 화면으로 이동 → [모델 확정과 초기화](B04/07_모델_확정과_초기화).
## 주의할 점
> 주의: 처음 보는 조합(아직 계산하지 않은 지면 필터 · 서피스)을 고르면 계산 여부를 묻고, 계산에 수 분이 걸릴 수 있음.
> 참고: 이 화면에는 [저장] 단추가 없고, [이 모델 확정] 이 저장과 다음 단계 이동을 겸함.
@@ -0,0 +1,27 @@
# 입력 포인트클라우드
분석에 쓸 라이다 파일을 고르고 파일 정보를 확인.
## 여는 길
- 전처리 화면 왼쪽 패널 맨 위 [입력 포인트클라우드] 카드.
![입력 포인트클라우드 카드](B04_01_input_cloud.webp)
그림 번호 — ① 입력 LAS 선택 칸 · ② 파일 정보 줄.
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 선택 칸에서 분석할 입력 LAS 선택 (대개 하나) |
| 2 | 아래 정보 줄 확인 |
| 3 | 오른쪽 위 3D 화면에서 점이 제대로 보이는지 확인 |
## 보이는 것
- 정보 줄: 좌표계(EPSG 번호) · 크기(MB) · 포인트 수 · 표시 포인트 수 · 높이 범위(m).
- 포인트 수가 크면 화면에는 50만 개 정도로 솎아 보여 줌(「500,000개 점 표시 중」).
- 선택한 지면 필터에 따라 포인트 수가 달라짐(땅 점만 남기 때문).
> 참고: 분석할 라이다 파일이 없으면 「분석 가능한 LAS/LAZ 파일이 없습니다.」 표시. [LAS 없이 설계] 로 올린 프로젝트는 도엽등고 서피스를 씀 → [B03 LAS 없이 설계](B03/05_LAS_없이_설계).
@@ -0,0 +1,43 @@
# 지표면 분석
지면 필터 · 서피스 · 스무딩 세 가지를 골라 지표면 모델을 정함.
## 여는 길
- 전처리 화면 왼쪽 패널 [지표면 분석] 카드.
![지표면 분석 카드](B04_02_analysis_card.webp)
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | [지면 필터] 선택 — 나무 · 건물 점을 걷어내고 땅 점만 고르는 방법 |
| 2 | [서피스] 선택 — 땅 점들을 면으로 만드는 방법 |
| 3 | [스무딩] 에서 적용 또는 미적용 |
| 4 | 오른쪽 위 3D 화면의 지표면 모델이 바뀌는지 확인 |
그림 번호는 아래 표의 번호와 같음.
| 번호 | 칸 | 선택지 |
| --- | --- | --- |
| 1 | 지면 필터 | CLASSIFICATION · GRID MIN Z · CSF · PMF |
| 2 | 서피스 | TIN · DTM · NURBS · IMPLICIT · MESHFREE |
| 3 | 스무딩 | 적용 · 미적용 |
- CLASSIFICATION: 라이다 업체가 이미 분류해 둔 지면 점을 그대로 씀.
- GRID MIN Z: 격자마다 가장 낮은 점을 땅으로 봄.
- CSF: 지형을 뒤집어 가상의 천을 떨어뜨려 땅 점을 고름.
- PMF: 창 크기를 키워 가며 나무 · 구조물을 단계적으로 걷어냄.
## 보이는 것
![계산 여부 확인 창](B04_03_build_confirm.webp)
- 그림 ① 은 [서피스] 칸. 아직 계산하지 않은 조합을 고르면 「이 조합(…)은 아직 만들어지지 않았습니다. 지금 계산해 영구 저장할까요? 자료량에 따라 수 분이 걸립니다.」 확인 창이 뜸.
- [계산하기] 를 누르면 계산해 저장하고, [취소] 하면 이전 조합으로 돌아감.
- 서피스에 따라 스무딩이 안 되는 경우 「이 지표면 표현은 스무딩을 지원하지 않습니다.」 표시.
> 주의: [계산하기] 는 오래 걸리고 창을 닫으면 안 됨 — 「지표면 모델 계산 중… 창을 닫지 마세요.」 표시 동안 기다림.
> 참고: 이미 계산해 둔 조합은 바로 바뀜. 어느 조합이 가장 알맞은지 판단은 설계자가 정함.
+53
View File
@@ -0,0 +1,53 @@
# 3D 보기
입력 포인트클라우드와 지표면 모델을 3차원으로 돌려 보고, 표시 옵션과 시점을 바꿈.
## 여는 길
- 전처리 화면 위쪽 3D 화면 둘 · 왼쪽 패널의 [모델 표시 옵션] · [뷰어 시점 제어].
![3D 화면 둘](B04_07_two_viewers.webp)
그림 번호 — ① 입력 포인트클라우드 아래 점 개수 글 · ② 축척 막대 · ③ 방위 표시 · ④ 등고선 라벨.
## 단계
### 마우스로 보기
| 조작 | 하는 일 |
| --- | --- |
| 왼쪽 단추를 누른 채 끌기 | 가리킨 점을 중심으로 돌림 |
| 휠 | 가리킨 자리를 기준으로 가까이 · 멀리 |
| 가운데(휠) 단추를 누른 채 끌기 | 화면을 옮김 |
### 표시 옵션
![모델 표시 옵션 카드](B04_04_display_options.webp)
| 단계 | 할 일 |
| --- | --- |
| 1 | (그림 ① — 첫 단추 [축] 과 같은 줄의 [서피스] · [등고선]) 단추로 보이는 것을 켜고 끔 |
| 2 | (그림 ② ③) 등고선을 켠 뒤 [간격] 칸에 숫자(m)를 넣고 [적용] |
| 3 | (그림 ④) [점 크기] 슬라이더로 점의 굵기 조정 |
| 4 | (그림 ⑤) [밀도] 슬라이더로 보이는 점의 비율 조정 |
### 시점 바꾸기
![뷰어 시점 제어 카드](B04_05_view_controls.webp)
그림 번호는 아래 표 순서와 같음.
| 단추 | 시점 |
| --- | --- |
| 사시도 | 비스듬히 내려다봄 |
| 상단 | 바로 위에서 봄 |
| 정면 | 앞쪽에서 봄 |
| 측면 | 옆에서 봄 |
## 보이는 것
- 지표면 모델 화면에는 축척 막대 · 방위 표시 · 높이 색 범례 · 등고선 라벨(예: 850m) · 계획선이 함께 보임.
- 등고선을 처음 켜면 「등고선을 그리는 중…」 표시 후 나타남.
- 등고선 옵션 줄 아래에 현재 조합 요약(예: CLASSIFICATION · DTM · 등고선 1m)이 보임.
> 참고: 점 크기와 밀도를 줄이면 오래된 컴퓨터에서 3D 화면이 부드러워짐.
@@ -0,0 +1,33 @@
# 도엽등고 3D 서피스
1:5,000 수치지형도(도엽)의 등고선만으로 만든 지형 모델. 라이다 모델과 비교하거나 라이다가 없을 때의 지형으로 씀.
## 여는 길
- 전처리 화면 가운데 [도엽등고 3D 서피스] 구역(3D 화면 둘 바로 아래).
![도엽등고 3D 서피스 구역](B04_08_sheet_surface.webp)
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 위쪽 단추 줄에서 만드는 방법 선택 — TIN(도엽선) · TIN 격자 · TPS(박판) · ANUDEM형 · 다중해상도 · 라플라스 |
| 2 | [스무딩] 에서 적용 또는 미적용 |
| 3 | [라이다 겹쳐 보기] 에 체크하면 라이다 지표면과 겹쳐 비교 |
| 4 | 3D 화면을 돌려 두 모델의 차이를 확인 |
| 번호 | 칸 | 하는 일 |
| --- | --- | --- |
| 1 | 방법 단추 줄 | 도엽 등고선으로 면을 만드는 방법 선택 |
| 2 | 스무딩 | 면을 매끈하게 다듬음 |
| 3 | 라이다 겹쳐 보기 | 라이다 모델과 겹침 |
## 보이는 것
- 위 그림은 현재 [라플라스] 가 진하게 표시된 모습.
- 흐리게 보이는 방법은 아직 만들어지지 않은 것. 누르면 계산할지 묻는 확인 창이 뜸.
- 지금 쓰는 방법은 진한 색으로 표시됨.
- 라이다 지표면 모델이 없으면 「겹쳐 볼 라이다 지표면 모델이 없습니다.」 표시.
> 참고: 3D 보는 조작은 위의 3D 화면과 같음 → [3D 보기](B04/03_3D_보기).
@@ -0,0 +1,38 @@
# 2D 지도와 GIS 레이어
배경 지도 위에 계획선 · 지적 · 행정구역 · 등고선 같은 국가 GIS 자료를 겹쳐 봄.
## 여는 길
- 전처리 화면 맨 아래 [2D 배경 지도 및 GIS 레이어] 구역.
![레이어 단추 줄](B04_09_map_layers.webp)
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | [배경 지도] 줄에서 백지도 · 위성 · 하이브리드 가운데 선택 |
| 2 | [국가 GIS 레이어] 줄에서 보고 싶은 층 단추를 눌러 켜고 끔 |
| 3 | 지도 위에서 휠로 확대 · 축소, 가운데 단추를 끌어 옮김 |
| 4 | 처음 모습으로 돌아가려면 [보기 초기화] |
| 번호 | 줄 | 단추 |
| --- | --- | --- |
| 1 | 배경 지도 | 백지도 · 위성 · 하이브리드 |
| 2 | 국가 GIS 레이어 | 계획선 · 연속지적도 · 시군구 · 읍면동 · 등고선 · 도엽 등고선 · 세류(전체) · 표고점 · 성절토 · 옹벽석축 · 등고 라벨 |
| 3 | 배수유역 | 유역 분석 · 1차 유역 · 2차 유역 · 유역 방향 · 평균 흐름 · 흐름 강도 · 집중유역 · 상세유역 분석 · 세부유역 |
| 4 | 보기 초기화 | 확대와 위치를 처음으로 |
## 보이는 것
![지도 화면](B04_10_map_view.webp)
- 그림 ① 지도 오른쪽 아래 「○○개 객체 표시」 · ② 왼쪽 아래 축척 막대 · ③ 오른쪽 흐름 강도 색 범례 · ④ 위쪽 분석 결과 요약 글.
- 켠 단추는 색 테두리로 표시됨.
- 지도 오른쪽 아래에 「○○개 객체 표시」 · 왼쪽 아래에 축척 막대.
- 흐름 강도를 켜면 오른쪽에 색 범례 · 위쪽에 분석 결과 요약 글이 나옴.
- 지도를 불러오는 중에는 「지도 레이어를 불러오는 중입니다.」 · 실패하면 「지도 레이어를 불러오지 못했습니다.」 표시.
- 계획선은 파일입력에서 올린 노선. 올리지 않았으면 「B03에서 계획노선 파일을 올리면 표시됩니다.」 표시.
> 참고: 마우스 왼쪽 단추는 지도 위 객체를 고르는 데만 쓰고, 지도 이동은 가운데 단추.
@@ -0,0 +1,40 @@
# 배수유역
계획선 둘레에서 물이 어디로 모여 흘러드는지 지도에서 분석해 보고, 관이 들어갈 자리를 정함.
## 여는 길
- 전처리 화면 맨 아래 지도 구역의 [배수유역] 줄.
![배수유역 줄과 지도](B04_10_map_view.webp)
그림 번호 — ③ 흐름 강도 색 범례 · ④ 분석 결과 요약 글(자세한 번호는 [2D 지도와 GIS 레이어](B04/05_2D_지도와_GIS_레이어) 참고).
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | [유역 분석] 을 누름 — 30초 안팎 걸림 · 결과는 저장되어 다음에 열면 바로 보임 |
| 2 | [1차 유역] · [2차 유역] · [유역 방향] · [평균 흐름] 을 켜고 끄며 결과 확인 |
| 3 | [흐름 강도] 로 도로 1m마다 모이는 상류 면적을 색으로 확인 |
| 4 | [집중유역] 으로 물이 특히 많이 모이는 자리(마커) 확인 · 마커를 누르면 그 자리로 들어오는 면의 외곽선이 보임 |
| 5 | [상세유역 분석] 을 누르면 관 매설 지점을 기준으로 [세부유역] 을 나눔 |
### 관 매설 지점 고르기
| 조작 | 하는 일 |
| --- | --- |
| 계획선 위에서 오른쪽 단추 | [관 매설 추가] |
| 마커 위에서 오른쪽 단추 | [관 매설 삭제] |
| 마커를 끌기 | 계획선을 따라 자리 옮김 |
## 보이는 것
- 분석 중에는 「배수유역을 처음부터 다시 분석하는 중입니다. 30초 안팎 걸립니다…」 표시.
- 저장된 결과가 있으면 [저장분] 표시와 함께 면적 · 유하장 같은 요약 글.
- 관 요약 글 예: 「관 1개(기본 1 / 자동 0 / 수동 0) · 세부유역 2개」.
- 관끼리 너무 가까우면 「관끼리 최소 간격 ○○m 안에는 넣을 수 없습니다.」.
> 주의: 관을 고친 뒤에는 [상세유역 분석] 을 다시 눌러야 세부유역이 새로 나뉨(「편집 중」 표시).
> 참고: 분석 결과와 관 매설 지점은 [이 모델 확정] 때 함께 저장됨 → [모델 확정과 초기화](B04/07_모델_확정과_초기화).
@@ -0,0 +1,31 @@
# 모델 확정과 초기화
고른 지표면 모델과 표시 설정을 확정해 노선 설계로 넘어가거나, 화면 값을 확정된 상태로 되돌림.
## 여는 길
- 전처리 화면 왼쪽 패널 맨 아래 단추 줄.
![단추 줄](B04_06_confirm_reset.webp)
그림 번호 — ① [?] · ② [이 모델 확정] · ③ [초기화].
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 지면 필터 · 서피스 · 스무딩과 등고선 간격을 정함 |
| 2 | 배수유역을 분석했다면 관 매설 지점을 확인 |
| 3 | [이 모델 확정] 누름 |
| 4 | 「모델을 확정했습니다. 필터: …, 기법: …」 알림과 함께 노선 설계 화면(B05)으로 이동 |
| 5 | 화면 값을 확정 상태로 되돌리려면 [초기화] |
## 보이는 것
- 확정하면 선택한 모델 · 스무딩 · 등고선 간격과 관 매설 지점이 함께 저장됨.
- [초기화] 는 지면 필터 · 서피스를 기본으로 되돌리고 확정된 값을 다시 불러옴.
- 오류 시 「모델 확정에 실패했습니다.」 알림.
> 주의: 확정하면 이전 확정 값이 새 값으로 바뀜. 누르기 전에 지면 필터 · 서피스 · 스무딩 선택을 한 번 더 확인.
> 참고: [?] 는 이 화면의 도움말.
Binary file not shown.

After

Width:  |  Height:  |  Size: 744 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 KiB

+404
View File
@@ -0,0 +1,404 @@
[
{
"name": "B04_00_overview",
"route": "#/b04-preprocess",
"project": "road",
"viewport": [
1600,
2000
],
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b04-surface__viewers"
},
{
"wait_ms": 2500
}
],
"settle_ms": 6000,
"clip": null,
"callouts": [
{
"n": 1,
"sel": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(1)"
},
{
"n": 2,
"sel": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(2)"
},
{
"n": 3,
"sel": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(3)"
},
{
"n": 4,
"sel": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(4)"
},
{
"n": 5,
"sel": ".ui-sidebar-actions"
},
{
"n": 6,
"sel": ".b04-surface__status"
},
{
"n": 7,
"sel": ".point-viewer"
},
{
"n": 8,
"sel": ".b04-surface__viewers > .terrain-model-group"
},
{
"n": 9,
"sel": ".b04-surface__sheet-section"
},
{
"n": 10,
"sel": ".b04-map"
}
]
},
{
"name": "B04_01_input_cloud",
"route": "#/b04-preprocess",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b04-surface__form"
}
],
"settle_ms": 6000,
"clip": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(1)",
"callouts": [
{
"n": 1,
"sel": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(1) select"
},
{
"n": 2,
"sel": ".b04-surface__input-info"
}
]
},
{
"name": "B04_02_analysis_card",
"route": "#/b04-preprocess",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b04-surface__form"
}
],
"settle_ms": 6000,
"clip": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(2)",
"callouts": [
{
"n": 1,
"sel": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(2) .b04-surface__field:nth-of-type(1)"
},
{
"n": 2,
"sel": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(2) .b04-surface__field:nth-of-type(2)"
},
{
"n": 3,
"sel": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(2) .b04-surface__field:nth-of-type(3)"
}
]
},
{
"name": "B04_03_build_confirm",
"route": "#/b04-preprocess",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b04-surface__form"
},
{
"select": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(2) select >> nth=1",
"value": "NURBS"
},
{
"wait_ms": 1500
}
],
"settle_ms": 6000,
"clip": null,
"callouts": [
{
"n": 1,
"sel": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(2) select >> nth=1"
}
]
},
{
"name": "B04_04_display_options",
"route": "#/b04-preprocess",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b04-surface__form"
}
],
"settle_ms": 6000,
"clip": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(3)",
"callouts": [
{
"n": 1,
"sel": ".model-display-options > .toggle-button:nth-child(1)"
},
{
"n": 2,
"sel": ".contour-interval-input"
},
{
"n": 3,
"sel": ".contour-interval-submit"
},
{
"n": 4,
"sel": ".viewer-option-row:nth-of-type(1)"
},
{
"n": 5,
"sel": ".viewer-option-row:nth-of-type(2)"
}
]
},
{
"name": "B04_05_view_controls",
"route": "#/b04-preprocess",
"project": "road",
"viewport": [
1600,
1100
],
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b04-surface__form"
}
],
"settle_ms": 6000,
"clip": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(4)",
"callouts": [
{
"n": 1,
"sel": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(4) button >> nth=0",
"pos": "bl"
},
{
"n": 2,
"sel": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(4) button >> nth=1",
"pos": "bl"
},
{
"n": 3,
"sel": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(4) button >> nth=2",
"pos": "bl"
},
{
"n": 4,
"sel": ".b04-surface__form .ui-sidebar-scroll > section:nth-child(4) button >> nth=3",
"pos": "bl"
}
]
},
{
"name": "B04_06_confirm_reset",
"route": "#/b04-preprocess",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".ui-sidebar-actions"
}
],
"settle_ms": 6000,
"clip": ".ui-sidebar-actions",
"callouts": [
{
"n": 1,
"sel": ".ui-sidebar-actions .ui-help-btn"
},
{
"n": 2,
"sel": ".ui-sidebar-actions .ui-btn--filled"
},
{
"n": 3,
"sel": ".b04-surface__reset"
}
]
},
{
"name": "B04_07_two_viewers",
"route": "#/b04-preprocess",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b04-surface__viewers"
},
{
"wait_ms": 2500
}
],
"settle_ms": 6000,
"clip": ".b04-surface__viewers",
"callouts": [
{
"n": 1,
"sel": ".point-viewer .b04-surface__status-info"
},
{
"n": 2,
"sel": ".point-viewer .b04-surface__scale"
},
{
"n": 3,
"sel": ".terrain-model-group .b04-surface__compass"
},
{
"n": 4,
"sel": ".terrain-model-group .contour-label"
}
]
},
{
"name": "B04_08_sheet_surface",
"route": "#/b04-preprocess",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b04-surface__sheet-section"
},
{
"scroll": ".b04-surface__sheet-section"
},
{
"wait_ms": 2500
}
],
"settle_ms": 6000,
"clip": ".b04-surface__sheet-section",
"callouts": [
{
"n": 1,
"sel": ".b04-surface__sheet-toolbar"
},
{
"n": 2,
"sel": ".b04-surface__sheet-smoothing"
},
{
"n": 3,
"sel": ".b04-surface__sheet-lidar"
}
]
},
{
"name": "B04_09_map_layers",
"route": "#/b04-preprocess",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b04-map"
},
{
"scroll": ".b04-map"
},
{
"wait_ms": 2500
}
],
"settle_ms": 6000,
"clip": ".b04-map__controls",
"callouts": [
{
"n": 1,
"sel": ".b04-map__control-group:nth-child(1)"
},
{
"n": 2,
"sel": ".b04-map__control-group:nth-child(2)"
},
{
"n": 3,
"sel": ".b04-map__control-group:nth-child(3)"
},
{
"n": 4,
"sel": ".b04-map__controls > button"
}
]
},
{
"name": "B04_10_map_view",
"route": "#/b04-preprocess",
"project": "road",
"before": [
{
"eval": "document.head.insertAdjacentHTML('beforeend','<style>.ui-toast-container{display:none!important}</style>')"
},
{
"wait": ".b04-map"
},
{
"scroll": ".b04-map"
},
{
"wait_ms": 8000
}
],
"settle_ms": 6000,
"clip": ".b04-map",
"callouts": [
{
"n": 1,
"sel": ".b04-map__status-corner"
},
{
"n": 2,
"sel": ".b04-map__scale"
},
{
"n": 3,
"sel": ".ui-flow-legend"
},
{
"n": 4,
"sel": ".b04-map__watershed-status"
}
]
}
]
@@ -9,6 +9,8 @@
![데이터 점검 카드](B09_01_check_card.webp)
그림 번호 — 1 [업데이트] · 2 연결 없음 곳 수
## 단계
### 단가 새로 굳히기
@@ -35,6 +37,8 @@
![연결 없음 목록](B09_03_check_list.webp)
그림 번호 — 1 연결 없음 곳 수 · 2 연결 없는 줄(누르면 그 탭의 그 줄로 이동)
### 처음 상태로 되돌리기
| 단계 | 할 일 |
@@ -45,6 +49,8 @@
![초기화 확인 창](B09_04_reset_confirm.webp)
그림 번호 — 1 안내 글 · 2 [취소] · [초기화]
### 하단 [?] [<] [>]
| 단추 | 하는 일 |
@@ -10,6 +10,8 @@
![좌측 하단 줄](B09_08_dock.webp)
그림 번호 — 1 박스보기 · 호표보기 스위치 · 2 하이퍼링크 · 팝업 스위치 · 3 [?] [<] [>] [초기화]
## 단계
| 단계 | 할 일 |
@@ -22,12 +24,6 @@
| 6 | 호표 하나의 모든 줄을 한 표로 보려면 좌측 하단 [호표보기] 를 누름. 같은 호표 줄 구간이 이어진 표로 나타남. |
| 7 | 박스보기로 돌아가려면 [박스보기] 를 누름. |
![박스보기](B09_09_box_view.webp)
![호표보기](B09_10_table_view.webp)
![가로 열 수 단추](B09_11_box_columns.webp)
### 줄 누르기와 키
- 박스 안 줄 또는 박스를 누르면 그 줄을 낸 탭으로 이동하거나 팝업이 뜸([하이퍼링크\|팝업] 스위치에 따름) → [04 하이퍼링크와 팝업](04_하이퍼링크와_팝업)
@@ -23,8 +23,6 @@
| 6 | 창 오른쪽 위 [탭 이동] 을 누르면 창이 모두 닫히고 그 탭의 해당 줄로 옮겨 감. |
| 7 | [×] 는 그 창과 그 위에 겹친 창만 닫음. 창 밖을 누르거나 Esc 를 누르면 모든 창이 닫힘. |
![팝업 창](B09_13_popup.webp)
### 하이퍼링크로 보기
| 단계 | 할 일 |
@@ -9,6 +9,8 @@
![설계내역서](B09_14_bill_table.webp)
그림 번호 — 1 위쪽 도구 줄 · 2 설계내역서 표
## 표의 칸
| 칸 | 내용 |
@@ -66,6 +68,8 @@
![레벨 단추](B09_15_bill_level_tools.webp)
그림 번호 — 1 [들여쓰기] · 2 [내어쓰기] · 3 [위로] · 4 [아래로]
표 아래 안내 글: 「줄 누르고 버튼 · 방향키 ←→ 레벨 · ↑↓ 자리 · 줄 끌기 · 더블클릭 · Enter · F2 입력」
### 줄 끌어 놓기
@@ -85,6 +89,8 @@
![단가연결 램프](B09_17_bill_lamp.webp)
그림 번호 — 1 단가연결 램프(점) 열
## 보이는 것
- 직접 만든 줄은 자동 줄과 구분되는 줄 모양으로 표시됨.
@@ -10,6 +10,8 @@
![단가연결 창](B09_18_price_link.webp)
그림 번호 — 1 이름 · 키 찾기 칸 · 2 마스터 · 회사 · 개인 고르기 · 3 [닫기]
## 단가연결 창
창 제목은 「단가연결」 이고 닫기 단추가 있음.
@@ -36,8 +38,6 @@
운반공 줄(거리이정표 행 하나)의 단가를 거리와 작업 조건으로 맞추는 큰 창. 제목은 「운반 단가 — 줄 이름」.
![운반 단가 창](B09_19_haul_modal.webp)
### 창 구성
| 구역 | 하는 일 |
@@ -61,8 +61,6 @@
| 8 | 연결을 바꾸려면 [변경] → 단가연결 창에서 다른 항목을 고름. 오른쪽 계산 과정도 새 항목으로 바뀜. |
| 9 | 마치면 [적용] 을 누름. 연결이 없는 채로 [적용] 하면 「연결할 것을 먼저 고르세요」 알림이 뜸. |
![사이클시간 칸](B09_20_haul_cycle.webp)
### 조합을 연결한 경우
- 조합(구조물 조합 · 사전조합)은 담긴 로직 이름별로 입력 칸이 나뉘어 보임.
@@ -47,6 +47,8 @@
![요율과 손입력 칸](B09_22_total_rate_cells.webp)
그림 번호 — 1 요율(%) 열 머리 · 2 직접 적을 수 있는 칸 · 3 요율 출처 열
### 보이는 것
- 요율 칸이나 요율 출처 칸에 마우스를 올리면 「자동 근거 — … · 기준 이름」 풍선이 보임.
@@ -93,8 +93,6 @@
| 4 | 목록의 파일 이름(크기 KB) 단추를 누르면 내려받음. 옆 [삭제] 로 지움. |
| 5 | [닫기] 로 창을 닫으면 표 칸의 파일 수가 반영되어 있음. |
![견적서 창](B09_26_quote_modal.webp)
> 참고: 견적서 파일은 올리는 즉시 저장되어 [초기화] 해도 남음.
> 참고: 자재 단가를 바꾸면 이 자재를 쓰는 일위대가 · 단가산출 · 중기사용료 · 설계내역서 자재 줄의 금액이 모두 바뀜.
@@ -0,0 +1,45 @@
# 인쇄 미리보기
도면 · 수량산출 · 원가계산을 PDF 로 미리 보고, PDF 와 엑셀로 내려받는 화면임.
## 여는 길
- 원가계산 화면(B09)의 왼쪽 아래 [인쇄 미리보기] 단추를 누름. 고친 값을 먼저 저장한 뒤 이 화면으로 넘어옴. 저장이 안 되면 원가계산 화면에 머묾.
- 원가계산 화면의 [>] 단추로도 들어옴 (단계 6 완료 뒤).
- 현재 프로젝트가 열려 있어야 함. 프로젝트가 없으면 「현재 프로젝트가 없습니다.」 알림이 뜸.
- 되돌아갈 때 = 왼쪽 아래 [B09 복귀].
![원가계산 화면의 인쇄 미리보기 단추](B09_42_print_b09_entry.webp)
그림 번호 — 1 [인쇄 미리보기]
![화면 한눈에](B09_31_print_overview.webp)
그림 번호 — 아래 구역 표와 같음
## 화면 구역
| 번호 | 구역 | 하는 일 |
| --- | --- | --- |
| 1 | 영역 카드 | [도면] [수량산출] [원가계산] 중 인쇄할 묶음을 고름 → [영역과 쪽 고르기](11_인쇄_영역과_쪽_고르기) |
| 2 | 쪽 목록 카드 | 고른 영역의 쪽 목록. 체크를 빼면 그 쪽은 PDF · 엑셀에서 빠짐 → [영역과 쪽 고르기](11_인쇄_영역과_쪽_고르기) |
| 3 | 상태 한 줄 | 만드는 중 · 쪽 수 · 오류 이유를 한 줄로 알려 줌 → [미리보기 보기](12_인쇄_미리보기_보기) |
| 4 | 미리보기 칸 | 고른 쪽들의 PDF 가 그대로 보임. 보이는 것이 곧 받는 파일임 → [미리보기 보기](12_인쇄_미리보기_보기) |
| 5 | 아래 단추 줄 | [PDF 다운로드](표 영역은 [엑셀 다운로드] 도), 그 아래 [?] [B09 복귀] → [내려받기](13_인쇄_내려받기) |
> 참고: 전체 작업 단계는 왼쪽 위 ☰ 를 눌러 여는 진행 단계 판에서 봄. 지금은 마지막 단계(원가계산 다음)에 있음.
## 작업 순서
1. 원가계산 화면에서 [인쇄 미리보기] 를 눌러 들어옴.
2. 영역 카드에서 [도면] [수량산출] [원가계산] 중 하나를 고름.
3. 쪽 목록에서 인쇄하지 않을 쪽의 체크를 뺌.
4. 미리보기 칸에서 PDF 를 확인함. 체크를 바꾸면 PDF 가 다시 만들어짐.
5. [PDF 다운로드] 로 PDF 를, 표 영역이면 [엑셀 다운로드] 로 엑셀을 받음.
6. 영역을 바꿔 가며 2~5 를 되풀이함. 끝나면 [B09 복귀].
> 참고: 이 화면은 보기와 내려받기 전용임. 값을 고치거나 저장하는 곳이 아님. 숫자를 바꾸려면 수량산출(B08) 또는 원가계산(B09) 화면에서 고치고 [저장] 한 뒤 다시 들어옴.
> 참고: [수량산출] [원가계산] 쪽은 해당 화면에 지금 보이는 값 그대로 찍힘. 저장 전 값이면 화면에 보이는 그 값이 나옴.
> 주의: 도면 영역은 PDF 만 받음. 엑셀 단추는 [도면] 을 고르면 숨음.
@@ -0,0 +1,50 @@
# 영역과 쪽 고르기
인쇄할 묶음(도면 · 수량산출 · 원가계산)을 고르고, 그 안에서 뺄 쪽을 체크로 정함.
## 여는 길
- 인쇄 미리보기 화면의 왼쪽 패널 [영역] 카드와 [쪽 목록] 카드.
- 처음에는 카드가 접혀 있을 수 있음. 카드 제목을 누르면 펼쳐지고, 다시 누르면 접힘.
- 화면을 열면 [도면] 이 먼저 골라진 상태로 시작함.
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 왼쪽 패널의 [영역] 제목을 눌러 펼침. 작은 단추 셋 [도면] [수량산출] [원가계산] 이 보임. |
| 2 | 인쇄할 영역 단추를 누름. 고른 단추는 색이 채워지고 나머지는 흐림. 같은 영역을 다시 누르면 아무 일도 없음. |
| 3 | 상태 줄에 「○○ 쪽 목록 읽는 중…」 이 뜨고, 곧 [쪽 목록] 카드에 쪽 이름이 한 줄씩 나타남. |
| 4 | [쪽 목록] 제목을 눌러 펼침. 쪽마다 앞에 체크 칸이 있고 처음에는 모두 체크됨. |
| 5 | 인쇄하지 않을 쪽의 체크를 뺌. 잠시(약 0.3초) 뒤 미리보기가 체크된 쪽만으로 다시 만들어짐. |
| 6 | 빼 놓은 쪽을 다시 넣으려면 체크를 다시 켬. |
![영역 카드와 단추 셋](B09_32_print_area_buttons.webp)
그림 번호 — 1 [도면] · 2 [수량산출] · 3 [원가계산]
![수량산출 영역을 고른 모습](B09_33_print_area_quantity.webp)
그림 번호 — 1 고른 영역 [수량산출] · 2 상태 줄(쪽 수가 보임)
![쪽 목록과 체크 칸](B09_34_print_sheet_list.webp)
그림 번호 — 1 쪽마다 앞에 있는 체크 칸
![체크를 하나 뺀 모습](B09_35_print_sheet_uncheck.webp)
그림 번호 — 1 체크를 뺀 쪽 · 2 상태 줄 — 체크된 쪽만 다시 묶임
## 보이는 것
- 쪽 목록의 차례는 인쇄될 쪽 차례와 같음. 순서를 바꾸는 기능은 없음.
- 영역을 바꾸면 체크가 모두 처음(전부 체크)으로 돌아감.
- 체크를 모두 빼면 상태 줄에 「고른 쪽이 없습니다.」 가 뜨고 미리보기는 비어 있음.
- 쪽 목록이 아주 길면 목록 칸 안에서 스크롤됨.
- 영역에 쪽이 없으면 「○○ — 쪽이 없습니다.」 가 뜸.
- 영역이 아직 준비되지 않았으면 「○○ — 준비 중」 이 뜸.
- 목록을 못 읽으면 「○○ 목록을 못 읽었습니다 — 이유」 가 빨갛게 뜸.
> 참고: 각 영역에 어떤 쪽이 들어 있는지는 [](12_인쇄_미리보기_보기) 의 「영역별 쪽 구성」 에 정리함.
> 주의: 영역을 바꾸면 앞 영역에서 뺐던 체크는 기억되지 않음. 영역마다 따로 정리해서 내려받아야 함.
@@ -0,0 +1,48 @@
# 미리보기 보기
고른 쪽들이 PDF 로 만들어져 오른쪽 큰 칸에 그대로 보임. 보이는 것이 곧 내려받는 파일임.
## 여는 길
- 영역을 고르거나 쪽 체크를 바꾸면 자동으로 PDF 를 만들어 오른쪽 본문에 띄움.
- 위쪽 한 줄은 상태 표시, 그 아래 큰 칸이 PDF 보기 칸.
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 영역을 고르면 상태 줄에 「○○ PDF 만드는 중…」 이 뜸. 만드는 동안에도 다른 조작은 막히지 않음. |
| 2 | 만들어지면 PDF 가 본문 칸에 나타나고, 상태 줄이 「○○ · N장 묶음」 으로 바뀜. |
| 3 | PDF 보기 칸 안에서 스크롤하거나 보기 도구로 쪽을 넘기며 확인함. |
| 4 | 고치고 싶은 쪽이 있으면 쪽 목록 체크를 바꿈. 다시 만드는 중에 또 바꿔도 가장 마지막 선택만 화면에 남음. |
![상태 한 줄](B09_36_print_status_line.webp)
![PDF 미리보기 칸](B09_37_print_preview_frame.webp)
## 영역별 쪽 구성
![원가계산 영역의 쪽 목록](B09_38_print_area_cost.webp)
그림 번호 — 1 고른 영역 [원가계산]
| 영역 | 들어 있는 쪽 |
| --- | --- |
| 도면 | 상세설계(B07)의 도면번호 차례대로 도면, 이어서 구조물 조합 도면. 도면번호마다 한 장씩 |
| 수량산출 | 구조물 집계표 → 자재(총괄자재수량집계표 · 콘크리트소요자재집계표 · 자재수량집계표) → 토공(토공집계표 · 토적표 · 평균운반거리 · 종방향 무대운반거리) → 수리집수면적표(배수지점마다 한 장) → 거리이정표(표 + 경로 지도 그림) |
| 원가계산 | 공사원가계산서 · 총괄설계내역서 · 설계내역서 · 일위대가목록표 · 일위대가표 · 단가산출근거목록표 · 단가산출근거 · 환율및기초자료 · 중기목록표 · 중기사용료 · 재료비목록표 · 노무비목록표 · 경비목록표 · 자재단가대비표 · 재료비수량금액집계표 · 노무비수량금액집계표 · 경비수량금액집계표 · 중기시간금액집계표 (18장) |
## 보이는 것
- PDF 는 A4 용지. 표 영역은 쪽마다 위에 쪽 이름, 아래에 쪽 번호가 찍힘. 넓은 표는 용지 폭에 맞춰 줄어듦.
- 원가계산 쪽은 모두 가로 방향. 수량산출 쪽은 칸이 많은 표만 가로, 나머지는 세로.
- 도면 영역은 도면 PDF 를 서버에서 만든 그대로 보여 줌. 넣지 못한 그림이 있으면 상태 줄 끝에 「 · 못 넣은 그림 N개」 가 붙음.
- 수량산출 쪽 중 읽지 못한 자리는 그 자리에 「불러오지 못했습니다 — 이유」 한 장이 대신 들어가고 나머지는 그대로 만들어짐.
- 수량산출에서 값이 아직 없는 쪽은 안내 한 줄이 들어감. 예: 「놓인 구조물 · 배관이 없습니다.」 · 「측점 단면적이 아직 없습니다 — 횡단 설계를 먼저 마치세요.」 · 「저장된 배수지점(관 지점)이 없습니다 — 배수유역 · 종단에서 관을 저장하세요.」
- 만들기에 실패하면 상태 줄이 빨갛게 「PDF 를 못 만들었습니다 — 이유」 로 바뀜.
> 참고: 원가계산의 [공기집계] [공기산출] 같은 초안 탭은 내역서 차례에 없어 이 영역에 들어가지 않음.
> 참고: 표의 [단가연결] 같은 화면 조작용 칸, 강조 표시, 고칠 칸 표시는 인쇄본에 나오지 않음.
> 주의: 수량산출 · 원가계산 값은 화면 값이 바탕임. 숫자가 이상하면 B08 · B09 화면에서 먼저 확인함.
@@ -0,0 +1,43 @@
# 내려받기와 돌아가기
보고 있는 PDF 를 파일로 받거나, 표 영역을 엑셀로 받고, 원가계산 화면으로 돌아감.
## 여는 길
- 왼쪽 패널 맨 아래 단추 두 줄.
- 윗줄: [PDF 다운로드] [엑셀 다운로드]
- 아랫줄: [?] [B09 복귀]
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 영역과 쪽을 고르고 미리보기가 만들어진 것을 확인함. |
| 2 | [PDF 다운로드] 를 누름. 지금 미리보기에 보이는 PDF 와 같은 파일이 받아짐. 파일 이름은 영역 이름임. 예: `수량산출.pdf` |
| 3 | 표 영역([수량산출] [원가계산])이면 [엑셀 다운로드] 도 누를 수 있음. 상태 줄에 「○○ 엑셀 만드는 중…」 이 뜬 뒤 「○○ 엑셀을 내려받았습니다.」 로 바뀜. 파일 이름 예: `원가계산.xlsx` |
| 4 | 다른 영역도 받으려면 영역을 바꿔 2~3 을 되풀이함. |
| 5 | 끝나면 [B09 복귀] 를 눌러 원가계산 화면으로 돌아감. |
![다운로드 단추 줄](B09_39_print_buttons_row.webp)
그림 번호 — 1 [PDF 다운로드] · 2 [엑셀 다운로드] · 3 [?]
![도면 영역에서는 엑셀 단추가 숨음](B09_40_print_area_drawings.webp)
그림 번호 — 1 [PDF 다운로드] — 도면 영역은 엑셀 단추가 없음
## 보이는 것
- 엑셀은 쪽마다 시트 하나. 쪽 이름이 시트 이름이 되며, 길이와 쓸 수 없는 글자는 엑셀 규칙에 맞게 바뀜.
- 엑셀은 쪽 목록에서 체크된 쪽만 담김. 머리 줄 굵게 · 칸 병합 · 숫자 칸 · 열 폭이 화면 표를 따라가고, A4 로 인쇄하기 좋게 쪽 설정이 들어 있음.
- 엑셀에는 그림(거리이정표의 경로 지도)이 들어가지 않음. 그림은 PDF 에만 있음.
- 고른 쪽이 없으면 [엑셀 다운로드] 는 아무 일도 하지 않음.
- 엑셀을 못 만들면 상태 줄이 빨갛게 「엑셀을 못 만들었습니다 — 이유」 로 바뀜.
- 미리보기가 아직 만들어지는 중에 [PDF 다운로드] 를 누르면 다 만들어진 뒤에 받아짐.
- 체크가 하나도 없거나 목록이 비어 있으면 [PDF 다운로드] 는 아무 일도 하지 않음.
- [?] 는 설명서 창을 엶. 이 화면에서는 B09 설명서가 열림.
- 이 화면에서는 [<] [>] 단계 이동 단추가 없음.
> 주의: [PDF 다운로드] 는 보이는 PDF 를 그대로 저장하고, [엑셀 다운로드] 는 누를 때 새로 만듦. 누르기 전에 값이 바뀌었다면 B09 로 돌아가 확인함.
> 참고: [B09 복귀] 는 원가계산 화면으로 돌아갈 뿐 아무것도 저장하지 않음.
Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

+36 -806
View File
@@ -1,807 +1,37 @@
[
{
"name": "B09_00_overview",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"wait": ".b09-estimation__panel .ui-data-table"
},
{
"wait_ms": 800
}
],
"clip": null,
"callouts": [
{
"n": 1,
"sel": ".b09-options > section:first-of-type"
},
{
"n": 2,
"sel": "[data-b09-schedule-panel]"
},
{
"n": 3,
"sel": ".b09-estimation__tabs:not(.ui-subtabs)"
},
{
"n": 4,
"sel": ".b09-estimation__tabs.ui-subtabs"
},
{
"n": 5,
"sel": ".b09-estimation__panel .ui-data-table"
},
{
"n": 6,
"sel": ".b09-estimation__line-hint"
},
{
"n": 7,
"sel": "[data-b09-switch=\"view\"]"
},
{
"n": 8,
"sel": "[data-b09-switch=\"link\"]"
},
{
"n": 9,
"sel": "[data-help-row]"
}
]
},
{
"name": "B09_01_check_card",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"wait": ".b09-options > section:first-of-type"
},
{
"click": ".b09-options > section:first-of-type .ui-collapsible__title"
},
{
"wait_ms": 800
}
],
"clip": ".b09-options > section:first-of-type",
"callouts": [
{
"n": 1,
"sel": ".b09-options > section:first-of-type [data-b09-refresh]"
},
{
"n": 2,
"sel": ".b09-check__head"
}
]
},
{
"name": "B09_02_refresh_button",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"wait": ".b09-options > section:first-of-type"
},
{
"click": ".b09-options > section:first-of-type .ui-collapsible__title"
},
{
"wait_ms": 800
}
],
"clip": "[data-b09-refresh]",
"callouts": []
},
{
"name": "B09_03_check_list",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"wait": ".b09-options > section:first-of-type"
},
{
"click": ".b09-options > section:first-of-type .ui-collapsible__title"
},
{
"wait_ms": 800
},
{
"wait": ".b09-check__head"
}
],
"clip": ".b09-check",
"callouts": [
{
"n": 1,
"sel": ".b09-check__head"
},
{
"n": 2,
"sel": ".b09-check .ui-sidebar-row"
}
]
},
{
"name": "B09_04_reset_confirm",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-reset]"
},
{
"wait": "?"
},
{
"wait_ms": 800
}
],
"clip": "?",
"callouts": [
{
"n": 1,
"sel": "?"
}
]
},
{
"name": "B09_05_top_tabs",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"wait": ".b09-estimation__tabs"
},
{
"wait_ms": 800
}
],
"clip": ".b09-estimation__tabs:not(.ui-subtabs)",
"callouts": []
},
{
"name": "B09_06_sub_tabs",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"total\"]"
},
{
"wait": "[data-b09-tab=\"bill\"]"
},
{
"wait_ms": 800
}
],
"clip": ".b09-estimation__tabs.ui-subtabs",
"callouts": []
},
{
"name": "B09_07_compare_table",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"material\"]"
},
{
"click": "[data-b09-tab=\"compare\"]"
},
{
"wait": "[data-b09-table=\"compare\"]"
},
{
"wait_ms": 800
}
],
"clip": ".b09-estimation__panel",
"callouts": []
},
{
"name": "B09_08_dock",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"wait": ".b09-dock"
},
{
"wait_ms": 800
}
],
"clip": ".b09-dock",
"callouts": [
{
"n": 7,
"sel": "[data-b09-switch=\"view\"]"
},
{
"n": 8,
"sel": "[data-b09-switch=\"link\"]"
},
{
"n": 9,
"sel": "[data-help-row]"
}
]
},
{
"name": "B09_09_box_view",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"dg_list\"]"
},
{
"click": "[data-b09-tab=\"dg\"]"
},
{
"wait": "[data-b09-table=\"dg\"]"
},
{
"wait_ms": 800
},
{
"wait": ".ui-group-cards"
}
],
"clip": ".b09-estimation__panel",
"callouts": []
},
{
"name": "B09_10_table_view",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"dg_list\"]"
},
{
"click": "[data-b09-tab=\"dg\"]"
},
{
"wait": "[data-b09-table=\"dg\"]"
},
{
"wait_ms": 800
},
{
"click": "[data-b09-switch=\"view\"] [data-value=\"table\"]"
},
{
"wait": "[data-b09-table=\"dg\"] tr[data-i]"
},
{
"wait_ms": 800
}
],
"clip": ".b09-estimation__panel",
"callouts": []
},
{
"name": "B09_11_box_columns",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"dg_list\"]"
},
{
"click": "[data-b09-tab=\"dg\"]"
},
{
"wait": "[data-b09-table=\"dg\"]"
},
{
"wait_ms": 800
},
{
"wait": ".ui-group-cards"
}
],
"clip": ".b09-estimation__tools",
"callouts": []
},
{
"name": "B09_12_link_switch",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"wait": "[data-b09-switch=\"link\"]"
},
{
"wait_ms": 800
}
],
"clip": "[data-b09-switch=\"link\"]",
"callouts": []
},
{
"name": "B09_13_popup",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"material\"]"
},
{
"click": "[data-b09-tab=\"material\"]"
},
{
"wait": "[data-b09-table=\"material\"]"
},
{
"wait_ms": 800
},
{
"click": "[data-b09-table=\"material\"] tr[data-i=\"0\"] td:nth-child(2)"
},
{
"wait": "[data-b09-popup]"
},
{
"wait_ms": 800
}
],
"clip": "[data-b09-popup]",
"callouts": []
},
{
"name": "B09_14_bill_table",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"total\"]"
},
{
"click": "[data-b09-tab=\"bill\"]"
},
{
"wait": "[data-b09-table=\"bill\"]"
},
{
"wait_ms": 800
}
],
"clip": ".b09-estimation__panel",
"callouts": [
{
"n": 1,
"sel": ".b09-estimation__tools"
},
{
"n": 2,
"sel": "[data-b09-table=\"bill\"]"
}
]
},
{
"name": "B09_15_bill_level_tools",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"total\"]"
},
{
"click": "[data-b09-tab=\"bill\"]"
},
{
"wait": "[data-b09-table=\"bill\"]"
},
{
"wait_ms": 800
},
{
"click": "[data-b09-table=\"bill\"] tr[data-i=\"1\"] td:nth-child(2)"
},
{
"wait_ms": 800
}
],
"clip": ".b09-estimation__tools",
"callouts": [
{
"n": 1,
"sel": "[data-b09-level=\"들여쓰기 →\"]"
},
{
"n": 2,
"sel": "[data-b09-level=\"내어쓰기 ←\"]"
},
{
"n": 3,
"sel": "[data-b09-level=\"위로 ↑\"]"
},
{
"n": 4,
"sel": "[data-b09-level=\"아래로 ↓\"]"
}
]
},
{
"name": "B09_16_bill_menu",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"total\"]"
},
{
"click": "[data-b09-tab=\"bill\"]"
},
{
"wait": "[data-b09-table=\"bill\"]"
},
{
"wait_ms": 800
},
{
"contextmenu": "[data-b09-table=\"bill\"] tr[data-i=\"2\"]"
},
{
"wait": ".ui-ctx-menu"
},
{
"wait_ms": 800
}
],
"clip": ".ui-ctx-menu",
"callouts": []
},
{
"name": "B09_17_bill_lamp",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"total\"]"
},
{
"click": "[data-b09-tab=\"bill\"]"
},
{
"wait": "[data-b09-table=\"bill\"]"
},
{
"wait_ms": 800
}
],
"clip": "[data-b09-table=\"bill\"]",
"callouts": [
{
"n": 1,
"sel": "td.b09-bill__lamp"
}
]
},
{
"name": "B09_18_price_link",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"total\"]"
},
{
"click": "[data-b09-tab=\"bill\"]"
},
{
"wait": "[data-b09-table=\"bill\"]"
},
{
"wait_ms": 800
},
{
"click": "td.b09-bill__lamp:not(.is-linked)"
},
{
"wait": ".ui-modal"
},
{
"wait_ms": 800
}
],
"clip": ".ui-modal",
"callouts": []
},
{
"name": "B09_19_haul_modal",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"total\"]"
},
{
"click": "[data-b09-tab=\"bill\"]"
},
{
"wait": "[data-b09-table=\"bill\"]"
},
{
"wait_ms": 800
},
{
"click": "[data-b09-table=\"bill\"] tr[data-i=\"?\"] td.b09-bill__lamp"
},
{
"wait": ".b09-haul-modal"
},
{
"wait_ms": 800
}
],
"clip": ".b09-haul-modal",
"callouts": [
{
"n": 1,
"sel": ".b09-haul-modal .m02-inputval__row"
},
{
"n": 2,
"sel": ".b09-haulsteps"
}
]
},
{
"name": "B09_20_haul_cycle",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"total\"]"
},
{
"click": "[data-b09-tab=\"bill\"]"
},
{
"wait": "[data-b09-table=\"bill\"]"
},
{
"wait_ms": 800
},
{
"click": "[data-b09-table=\"bill\"] tr[data-i=\"?\"] td.b09-bill__lamp"
},
{
"wait": ".b09-haulstep"
},
{
"wait_ms": 800
}
],
"clip": ".b09-haulsteps",
"callouts": []
},
{
"name": "B09_21_total_tab",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"total\"]"
},
{
"click": "[data-b09-tab=\"total\"]"
},
{
"wait": "[data-b09-table=\"total\"]"
},
{
"wait_ms": 800
}
],
"clip": ".b09-estimation__panel",
"callouts": []
},
{
"name": "B09_22_total_rate_cells",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"total\"]"
},
{
"click": "[data-b09-tab=\"total\"]"
},
{
"wait": "[data-b09-table=\"total\"]"
},
{
"wait_ms": 800
}
],
"clip": "[data-b09-table=\"total\"]",
"callouts": [
{
"n": 1,
"sel": "?"
}
]
},
{
"name": "B09_23_cost_tab",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"cost\"]"
},
{
"click": "[data-b09-tab=\"cost\"]"
},
{
"wait": "[data-b09-table=\"cost\"]"
},
{
"wait_ms": 800
}
],
"clip": ".b09-estimation__panel",
"callouts": []
},
{
"name": "B09_24_dg_list",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"dg_list\"]"
},
{
"click": "[data-b09-tab=\"dg_list\"]"
},
{
"wait": "[data-b09-table=\"dg_list\"]"
},
{
"wait_ms": 800
}
],
"clip": ".b09-estimation__panel",
"callouts": []
},
{
"name": "B09_25_basis_tab",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"basis\"]"
},
{
"click": "[data-b09-tab=\"basis\"]"
},
{
"wait": "[data-b09-table=\"basis\"]"
},
{
"wait_ms": 800
}
],
"clip": ".b09-estimation__panel",
"callouts": []
},
{
"name": "B09_26_quote_modal",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"material\"]"
},
{
"click": "[data-b09-tab=\"compare\"]"
},
{
"wait": "[data-b09-table=\"compare\"]"
},
{
"wait_ms": 800
},
{
"click": "[data-b09-table=\"compare\"] tr[data-i=\"?\"] td[data-c=\"?\"]"
},
{
"wait": ".ui-modal"
},
{
"wait_ms": 800
}
],
"clip": ".ui-modal",
"callouts": []
},
{
"name": "B09_27_sum_material",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"material\"]"
},
{
"click": "[data-b09-tab=\"sum_material\"]"
},
{
"wait": "[data-b09-table=\"sum_material\"]"
},
{
"wait_ms": 800
}
],
"clip": ".b09-estimation__panel",
"callouts": []
},
{
"name": "B09_28_schedule_panel",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"wait": "[data-b09-schedule-panel]"
},
{
"click": "[data-b09-schedule-panel] .ui-collapsible__title"
},
{
"wait_ms": 800
}
],
"clip": "[data-b09-schedule-panel]",
"callouts": []
},
{
"name": "B09_29_schedule_sum",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"schedule_sum\"]"
},
{
"click": "[data-b09-tab=\"schedule_sum\"]"
},
{
"wait": "[data-b09-table=\"schedule_sum\"]"
},
{
"wait_ms": 800
}
],
"clip": ".b09-estimation__panel",
"callouts": []
},
{
"name": "B09_30_schedule_calc",
"route": "#/b09-estimation",
"project": "road",
"before": [
{
"click": "[data-b09-group=\"schedule_sum\"]"
},
{
"click": "[data-b09-tab=\"schedule_calc\"]"
},
{
"wait": "[data-b09-table=\"schedule_calc\"]"
},
{
"wait_ms": 800
}
],
"clip": ".b09-estimation__panel",
"callouts": []
}
]
{"name":"B09_00_overview","route":"#/b09-estimation","project":"road","before":[{"wait":".b09-estimation__panel .ui-data-table"},{"wait_ms":800}],"clip":null,"callouts":[{"n":1,"sel":".b09-options .ui-sidebar-scroll > section:first-of-type"},{"n":2,"sel":"[data-b09-schedule-panel]"},{"n":3,"sel":".b09-estimation__tabs:not(.ui-subtabs)"},{"n":4,"sel":".b09-estimation__tabs.ui-subtabs"},{"n":5,"sel":".b09-estimation__panel .ui-data-table"},{"n":6,"sel":".b09-estimation__line-hint"},{"n":7,"sel":"[data-b09-switch=\"view\"]"},{"n":8,"sel":"[data-b09-switch=\"link\"]"},{"n":9,"sel":"[data-help-row]"}]},
{"name":"B09_01_check_card","route":"#/b09-estimation","project":"road","before":[{"wait":".b09-options .ui-sidebar-scroll > section:first-of-type"},{"click":".b09-options .ui-sidebar-scroll > section:first-of-type .ui-collapsible__title"},{"wait_ms":800}],"clip":".b09-options .ui-sidebar-scroll > section:first-of-type","callouts":[{"n":1,"sel":".b09-options .ui-sidebar-scroll > section:first-of-type [data-b09-refresh]"},{"n":2,"sel":".b09-check__head"}]},
{"name":"B09_02_refresh_button","route":"#/b09-estimation","project":"road","before":[{"wait":".b09-options .ui-sidebar-scroll > section:first-of-type"},{"click":".b09-options .ui-sidebar-scroll > section:first-of-type .ui-collapsible__title"},{"wait_ms":800}],"clip":"[data-b09-refresh]","callouts":[]},
{"name":"B09_03_check_list","route":"#/b09-estimation","project":"road","before":[{"wait":".b09-options .ui-sidebar-scroll > section:first-of-type"},{"click":".b09-options .ui-sidebar-scroll > section:first-of-type .ui-collapsible__title"},{"wait_ms":800},{"wait":".b09-check__head"}],"clip":".b09-check","callouts":[{"n":1,"sel":".b09-check__head"},{"n":2,"sel":".b09-check .ui-sidebar-row"}]},
{"name":"B09_04_reset_confirm","route":"#/b09-estimation","project":"road","before":[{"wait":"[data-b09-reset]"},{"click":"[data-b09-reset]","confirm":true},{"wait":".ui-confirm__panel"},{"wait_ms":600}],"clip":".ui-confirm__panel","callouts":[{"n":1,"sel":".ui-confirm__message"},{"n":2,"sel":".ui-confirm__actions"}],"after":[{"click":"button:has-text(\"취소\")"}]},
{"name":"B09_05_top_tabs","route":"#/b09-estimation","project":"road","before":[{"wait":".b09-estimation__tabs"},{"wait_ms":800}],"clip":".b09-estimation__tabs:not(.ui-subtabs)","callouts":[]},
{"name":"B09_06_sub_tabs","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"total\"]"},{"wait":"[data-b09-tab=\"bill\"]"},{"wait_ms":800}],"clip":".b09-estimation__tabs.ui-subtabs","callouts":[]},
{"name":"B09_07_compare_table","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"material\"]"},{"click":"[data-b09-tab=\"compare\"]"},{"wait":"[data-b09-table=\"compare\"]"},{"wait_ms":800}],"clip":".b09-estimation__panel","callouts":[]},
{"name":"B09_08_dock","route":"#/b09-estimation","project":"road","before":[{"wait":".b09-dock"},{"wait_ms":800}],"clip":".b09-dock","callouts":[{"n":1,"sel":"[data-b09-switch=\"view\"]"},{"n":2,"sel":"[data-b09-switch=\"link\"]"},{"n":3,"sel":"[data-help-row]"}]},
{"name":"B09_12_link_switch","route":"#/b09-estimation","project":"road","before":[{"wait":"[data-b09-switch=\"link\"]"},{"wait_ms":800}],"clip":"[data-b09-switch=\"link\"]","callouts":[]},
{"name":"B09_14_bill_table","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"total\"]"},{"click":"[data-b09-tab=\"bill\"]"},{"wait":"[data-b09-table=\"bill\"]"},{"wait_ms":800}],"clip":".b09-estimation__panel","callouts":[{"n":1,"sel":".b09-estimation__tools"},{"n":2,"sel":"[data-b09-table=\"bill\"]"}]},
{"name":"B09_15_bill_level_tools","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"total\"]"},{"click":"[data-b09-tab=\"bill\"]"},{"wait":"[data-b09-table=\"bill\"]"},{"wait_ms":800},{"click":"[data-b09-table=\"bill\"] tr[data-i=\"1\"] td:nth-child(2)"},{"wait_ms":800}],"clip":".b09-estimation__tools","callouts":[{"n":1,"sel":"[data-b09-level=\"들여쓰기 →\"]"},{"n":2,"sel":"[data-b09-level=\"내어쓰기 ←\"]"},{"n":3,"sel":"[data-b09-level=\"위로 ↑\"]"},{"n":4,"sel":"[data-b09-level=\"아래로 ↓\"]"}]},
{"name":"B09_16_bill_menu","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"total\"]"},{"click":"[data-b09-tab=\"bill\"]"},{"wait":"[data-b09-table=\"bill\"]"},{"wait_ms":800},{"contextmenu":"[data-b09-table=\"bill\"] tr[data-i=\"2\"]"},{"wait":".ui-ctx-menu"},{"wait_ms":800}],"clip":".ui-ctx-menu","callouts":[]},
{"name":"B09_17_bill_lamp","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"total\"]"},{"click":"[data-b09-tab=\"bill\"]"},{"wait":"[data-b09-table=\"bill\"]"},{"wait_ms":800}],"clip":"[data-b09-table=\"bill\"]","callouts":[{"n":1,"sel":"td.b09-bill__lamp"}]},
{"name":"B09_18_price_link","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"total\"]"},{"click":"[data-b09-tab=\"bill\"]"},{"wait":"[data-b09-table=\"bill\"]"},{"wait_ms":800},{"click":"td.b09-bill__lamp:not(.is-linked)"},{"wait":".m01-logic__pick"},{"wait_ms":800}],"clip":".m01-logic__pick","callouts":[{"n":1,"sel":".m01-logic__pick input"},{"n":2,"sel":".m01-logic__pick button:has-text(\"마스터\")"},{"n":3,"sel":".m01-logic__pick button:has-text(\"닫기\")","pos":"tr"}],"after":[{"click":".m01-logic__pick button:has-text(\"닫기\")"}]},
{"name":"B09_21_total_tab","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"total\"]"},{"click":"[data-b09-tab=\"total\"]"},{"wait":"[data-b09-table=\"total\"]"},{"wait_ms":800}],"clip":".b09-estimation__panel","callouts":[]},
{"name":"B09_22_total_rate_cells","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"total\"]"},{"click":"[data-b09-tab=\"total\"]"},{"wait":"[data-b09-table=\"total\"]"},{"wait_ms":800}],"clip":"[data-b09-table=\"total\"]","callouts":[{"n":1,"sel":"[data-b09-table=\"total\"] th:has-text(\"요율(%)\")"},{"n":2,"sel":"[data-b09-table=\"total\"] td.is-can-edit[data-c=\"6\"]"},{"n":3,"sel":"[data-b09-table=\"total\"] th:has-text(\"요율 출처\")"}]},
{"name":"B09_23_cost_tab","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"cost\"]"},{"click":"[data-b09-tab=\"cost\"]"},{"wait":"[data-b09-table=\"cost\"]"},{"wait_ms":800}],"clip":".b09-estimation__panel","callouts":[]},
{"name":"B09_24_dg_list","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"dg_list\"]"},{"wait":".b09-estimation__panel"},{"wait_ms":800}],"clip":".b09-estimation__panel","callouts":[]},
{"name":"B09_25_basis_tab","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"basis\"]"},{"click":"[data-b09-tab=\"basis\"]"},{"wait":"[data-b09-table=\"basis\"]"},{"wait_ms":800}],"clip":".b09-estimation__panel","callouts":[]},
{"name":"B09_27_sum_material","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"material\"]"},{"click":"[data-b09-tab=\"sum_material\"]"},{"wait":"[data-b09-table=\"sum_material\"]"},{"wait_ms":800}],"clip":".b09-estimation__panel","callouts":[]},
{"name":"B09_28_schedule_panel","route":"#/b09-estimation","project":"road","before":[{"wait":"[data-b09-schedule-panel]"},{"click":"[data-b09-schedule-panel] .ui-collapsible__title"},{"wait_ms":800}],"clip":"[data-b09-schedule-panel]","callouts":[]},
{"name":"B09_29_schedule_sum","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"schedule_sum\"]"},{"click":"[data-b09-tab=\"schedule_sum\"]"},{"wait":"[data-b09-table=\"schedule_sum\"]"},{"wait_ms":800}],"clip":".b09-estimation__panel","callouts":[]},
{"name":"B09_30_schedule_calc","route":"#/b09-estimation","project":"road","before":[{"click":"[data-b09-group=\"schedule_sum\"]"},{"click":"[data-b09-tab=\"schedule_calc\"]"},{"wait":"[data-b09-table=\"schedule_calc\"]"},{"wait_ms":800}],"clip":".b09-estimation__panel","callouts":[]},
{"name":"B09_31_print_overview","route":"#/b09-print","project":"road","before":[{"wait":".b09-print__panel"},{"wait_ms":22000},{"click":".b09-print__panel .ui-collapsible__title:has-text(\"영역\")"},{"click":".b09-print__panel .ui-collapsible__title:has-text(\"쪽 목록\")"},{"wait_ms":800}],"clip":null,"callouts":[{"n":1,"sel":".b09-print__panel section.ui-collapsible:has([data-b09-print-area])"},{"n":2,"sel":".b09-print__panel section.ui-collapsible:has([data-b09-print-item])"},{"n":3,"sel":"[data-b09-print-status]"},{"n":4,"sel":".b09-print__frame"},{"n":5,"sel":".b09-print__actions"}],"allow_post":["/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/drawings-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/table-pdf"]},
{"name":"B09_32_print_area_buttons","route":"#/b09-print","project":"road","before":[{"wait":".b09-print__panel"},{"click":".b09-print__panel .ui-collapsible__title:has-text(\"영역\")"},{"wait_ms":600}],"clip":".b09-print__panel section.ui-collapsible:has([data-b09-print-area])","callouts":[{"n":1,"sel":"[data-b09-print-area=\"drawings\"]"},{"n":2,"sel":"[data-b09-print-area=\"quantity\"]"},{"n":3,"sel":"[data-b09-print-area=\"cost\"]"}],"allow_post":["/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/drawings-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/table-pdf"]},
{"name":"B09_33_print_area_quantity","route":"#/b09-print","project":"road","before":[{"wait":".b09-print__panel"},{"click":".b09-print__panel .ui-collapsible__title:has-text(\"영역\")"},{"click":"[data-b09-print-area=\"quantity\"]"},{"wait_ms":16000},{"click":".b09-print__panel .ui-collapsible__title:has-text(\"쪽 목록\")"},{"wait_ms":600}],"clip":null,"callouts":[{"n":1,"sel":"[data-b09-print-area=\"quantity\"]"},{"n":2,"sel":"[data-b09-print-status]"}],"allow_post":["/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/drawings-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/table-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/quantity/hydro/calc"]},
{"name":"B09_34_print_sheet_list","route":"#/b09-print","project":"road","before":[{"wait":".b09-print__panel"},{"click":".b09-print__panel .ui-collapsible__title:has-text(\"영역\")"},{"click":"[data-b09-print-area=\"quantity\"]"},{"wait_ms":16000},{"click":".b09-print__panel .ui-collapsible__title:has-text(\"쪽 목록\")"},{"wait_ms":600}],"clip":".b09-print__panel section.ui-collapsible:has([data-b09-print-item])","callouts":[{"n":1,"sel":"[data-b09-print-item]"}],"allow_post":["/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/drawings-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/table-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/quantity/hydro/calc"]},
{"name":"B09_35_print_sheet_uncheck","route":"#/b09-print","project":"road","before":[{"wait":".b09-print__panel"},{"click":".b09-print__panel .ui-collapsible__title:has-text(\"영역\")"},{"click":"[data-b09-print-area=\"quantity\"]"},{"wait_ms":16000},{"click":".b09-print__panel .ui-collapsible__title:has-text(\"쪽 목록\")"},{"click":"[data-b09-print-item]"},{"wait_ms":9000}],"clip":null,"callouts":[{"n":1,"sel":"[data-b09-print-item]"},{"n":2,"sel":"[data-b09-print-status]"}],"allow_post":["/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/drawings-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/table-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/quantity/hydro/calc"]},
{"name":"B09_36_print_status_line","route":"#/b09-print","project":"road","before":[{"wait":".b09-print__panel"},{"wait_ms":22000}],"clip":"[data-b09-print-status]","callouts":[],"allow_post":["/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/drawings-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/table-pdf"]},
{"name":"B09_37_print_preview_frame","route":"#/b09-print","project":"road","before":[{"wait":".b09-print__panel"},{"wait_ms":22000}],"clip":".b09-print__frame","callouts":[],"allow_post":["/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/drawings-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/table-pdf"]},
{"name":"B09_38_print_area_cost","route":"#/b09-print","project":"road","before":[{"wait":".b09-print__panel"},{"click":".b09-print__panel .ui-collapsible__title:has-text(\"영역\")"},{"click":"[data-b09-print-area=\"cost\"]"},{"wait_ms":16000},{"click":".b09-print__panel .ui-collapsible__title:has-text(\"쪽 목록\")"},{"wait_ms":600}],"clip":".b09-print__panel","callouts":[{"n":1,"sel":"[data-b09-print-area=\"cost\"]"}],"allow_post":["/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/drawings-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/table-pdf"]},
{"name":"B09_39_print_buttons_row","route":"#/b09-print","project":"road","before":[{"wait":".b09-print__panel"},{"click":".b09-print__panel .ui-collapsible__title:has-text(\"영역\")"},{"click":"[data-b09-print-area=\"quantity\"]"},{"wait_ms":16000}],"clip":".b09-print__actions","callouts":[{"n":1,"sel":"[data-b09-print-pdf]"},{"n":2,"sel":"[data-b09-print-xlsx]"},{"n":3,"sel":".b09-print__actions .ui-help-btn"}],"allow_post":["/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/drawings-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/table-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/quantity/hydro/calc"]},
{"name":"B09_40_print_area_drawings","route":"#/b09-print","project":"road","before":[{"wait":".b09-print__panel"},{"wait_ms":1500}],"clip":".b09-print__actions","callouts":[{"n":1,"sel":"[data-b09-print-pdf]"}],"allow_post":["/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/drawings-pdf","/api/projects/c2390e1c-ee66-42ef-8cd7-253ec00bf904/print/table-pdf"]},
{"name":"B09_42_print_b09_entry","route":"#/b09-estimation","project":"road","before":[{"wait":"[data-b09-print]"},{"wait_ms":1200}],"clip":".b09-dock","callouts":[{"n":1,"sel":"[data-b09-print]"}]}
]

Some files were not shown because too many files have changed in this diff Show More