knowledge(경쟁사): 오솔길 엑셀매크로 VBA 계산로직 md화
경쟁사 프로그램 오솔길의 엑셀 매크로(PERSONAL.XLSB) VBA 7개 모듈을 모듈별 md 문서로 정리. 문서 안은 계산 로직 단위로 나눔. - 임도 횡단물량: 평균단면적법, 보정계수(토사 0.9·암 1.0), 유용토=MIN(보정량계,성토입적), 차인토량, 누가토량 수식 확보 - 야계사방댐: 터파기 유/무 두 갈래(지역 관행 차이), 유용토 상대가 성토+되메우기 - 사방댐 토공: 평균단면적법 / 3-4각형법 두 방식, 토사·암석 2열 분리 - 공통 보조 프로시저: 보정계수를 표에서 역산하는 방식 확인 단면적 산출·구조물 물량은 컴파일된 OSKi.arx 안이라 미확보 — 역공학 안 함. VBA 원문은 저장하지 않고 재추출 방법만 README에 남김. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YTbyFkYhKNUYvxRV7DYfxZ
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
# 오솔길 엑셀 매크로(VBA) — 개요
|
||||
|
||||
## 무엇인가
|
||||
|
||||
파일 : `../../오솔길/Macro/PERSONAL.XLSB(오솔길)`
|
||||
엑셀 개인용 매크로 통합문서. 사용법 : `%AppData%\Microsoft\Excel\XLSTART\` 에 넣으면 엑셀 켤 때마다 자동으로 붙음.
|
||||
|
||||
**하는 일** — 캐드(`OSKi.arx`)가 뱉어 놓은 **밋밋한 CSV**를 열어, 셀을 병합·색칠·테두리 치고 **집계 수식을 심어** 제출용 산출서로 만듦.
|
||||
잠금 없이 소스가 그대로 읽힘. 주석에 계산식이 한글로 적혀 있어 로직 파악이 쉬움.
|
||||
|
||||
## 매크로 7개 지도
|
||||
|
||||
| 모듈 | 매크로 이름 | 먹는 파일 | 성격 | 문서 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| Module1 | `임도_1횡단물량` | 임도 횡단물량 CSV | **계산 있음** | [Module1](Module1_임도-횡단물량.md) |
|
||||
| Module2 | `임도_2평균운반거리산출서` | 평균운반거리산출서.csv 외 3종 | 서식만 | [Module2](Module2_임도-평균운반거리산출서.md) |
|
||||
| Module3 | `야계_1터파기있는횡단물량` | 야계 횡단물량 CSV | **계산 있음** | [Module3](Module3_야계-횡단물량_터파기있음.md) |
|
||||
| Module11 | `야계_2터파기없는횡단물량` | 야계 횡단물량 CSV | **계산 있음** | [Module11](Module11_야계-횡단물량_터파기없음.md) |
|
||||
| Module4 | `사방댐_3수량산출서거푸집레미콘` | 사방댐-수량산출서 | 시트 쪼개기 | [Module4](Module4_사방댐-수량산출서분리.md) |
|
||||
| Module5 | `사방댐_2토공수량34각형법` | 토공수량(3,4각형법).csv | 합계만 | [Module5](Module5_사방댐-토공수량_3-4각형법.md) |
|
||||
| Module6 | `사방댐_1토공수량평균단면적법` | 토공수량(평균단면적).csv | 서식만 | [Module6](Module6_사방댐-토공수량_평균단면적법.md) |
|
||||
|
||||
보조 프로시저는 [공통_보조프로시저.md](공통_보조프로시저.md) — Module1·3·11 에 **똑같이 복사되어 세 벌 존재**함.
|
||||
|
||||
## 모든 매크로가 공유하는 규칙
|
||||
|
||||
### ① 시트 모양 — 머리 3줄 + 자료 + 계 1줄
|
||||
|
||||
```
|
||||
1행 대분류 (절토 / 측구터파기 / 성토 …)
|
||||
2행 중분류 (토사 / 암석)
|
||||
3행 소분류 (단면적 / 입적 / 보정량)
|
||||
4행 0측점부터 자료 시작
|
||||
…
|
||||
끝행 "계" (SUM)
|
||||
```
|
||||
|
||||
- A열 = 측점, B열 = 점간거리. 이 둘은 어느 매크로나 고정.
|
||||
- 자료가 어디까지 있는지는 `UsedRange` 로 그때그때 잼 — **측점 수가 몇이든 따라감**.
|
||||
|
||||
### ② 물량은 전부 평균단면적법
|
||||
|
||||
같은 꼴이 30여 항목에 그대로 반복됨.
|
||||
|
||||
```
|
||||
현측점 입적 = ROUND( (앞측점 단면적 + 현측점 단면적) ÷ 2 × 현측점 점간거리 , 2)
|
||||
```
|
||||
|
||||
부피(㎥)도 면적(㎡)도 이 한 줄. 「단면적」 자리에 「연장」이 들어가면 면적이 나옴.
|
||||
**소수 둘째 자리 반올림**이 일관 규칙.
|
||||
|
||||
### ③ 계산의 씨앗은 캐드가 심음
|
||||
|
||||
매크로는 **단면적을 만들지 못함**. 단면적(C·F·I·L·P… 열)은 캐드가 이미 CSV에 적어 둔 값이고, 매크로는 그 옆 칸에 「입적」·「보정량」 수식을 꽂을 뿐임.
|
||||
**보정계수(토량환산계수)조차 하드코딩이 아니라 캐드가 적어 둔 첫 줄에서 역산해 읽어옴** → [공통_보조프로시저](공통_보조프로시저.md) 참조.
|
||||
|
||||
### ④ 캐드가 쓰는 파일 이름
|
||||
|
||||
| 구분 | 입력 | 출력 |
|
||||
| --- | --- | --- |
|
||||
| 평면 | `*.pln` | `*_PLN.dwg`, `*.crv` |
|
||||
| 종단 | `*.rod` (+`*.pnb`) | `*_JD.dwg`, `*.JD` |
|
||||
| 횡단 | `*.rhd` | `*1.dwg`~, `*.BOM`, **`*.csv`**, `*.pin` |
|
||||
| 유토 | `유토곡선.MASS` | `유토곡선.dwg`, `.med`, **평균운반거리.csv** |
|
||||
|
||||
굵은 것이 이 매크로가 먹는 파일.
|
||||
한 프로젝트는 확장자만 다르고 **파일명(basename)을 전부 같게** 맞춰야 함.
|
||||
|
||||
## 우리(Aislo)와 견줄 점
|
||||
|
||||
- 오솔길은 **캐드 → CSV → 엑셀** 3단 릴레이. 계산 주체가 갈라져 있어 「보정계수를 CSV에서 역산」 같은 군더더기가 생김.
|
||||
- 우리는 서버가 정본을 쥐고 한 번에 계산 → 릴레이 자체가 없음. 다만 **집계 정의(유용토·차인토량·누가토량)는 업계 표준이므로 그대로 맞춰야 함.**
|
||||
@@ -0,0 +1,91 @@
|
||||
# Module11 — `야계_2터파기없는횡단물량`
|
||||
|
||||
**야계사방댐 횡단 물량 산출서.** 터파기를 잡지 않는 경우용.
|
||||
|
||||
> 개발자 주석 그대로 : *「주로 "경남"지역이다… 임도마크로를 복사해서 그대로 쓴다. 표현상의 차이만 있다. "임도는 성토>단면적,입적"으로 표현되나 "야계는 되메우기>단면적,입적"으로 표현된다.」*
|
||||
|
||||
즉 **계산은 임도(Module1)와 완전히 같고, 표에 적히는 이름만 다름.**
|
||||
「성토」라 적힌 자리가 야계에서는 「되메우기」로 읽힘 — 캐드가 CSV 머리글에 그렇게 써 주고, 매크로는 자리만 맞춰 병합함.
|
||||
|
||||
---
|
||||
|
||||
## Module1(임도)·Module3(터파기有)과 견주기
|
||||
|
||||
| | 임도 (Module1) | 야계 터파기無 (Module11) | 야계 터파기有 (Module3) |
|
||||
| --- | --- | --- | --- |
|
||||
| 두 번째 흙 항목 | 측구터파기 | **측구터파기** | 터파기 |
|
||||
| 되메우기 별도 열 | 없음 | **없음** (성토 자리로 표현) | 있음 |
|
||||
| 유용토 | MIN(O, Q) | **MIN(O, Q)** | MIN(O, Q+S) |
|
||||
| 법면보호공 | 있음 | **있음** | 없음 |
|
||||
| 열 수 | A~AL | **A~AL** | A~AJ |
|
||||
|
||||
**Module11 = Module1 의 복사본.** 열 구성·수식이 한 글자도 다르지 않음.
|
||||
|
||||
---
|
||||
|
||||
## 표 생김새 (A~AL)
|
||||
|
||||
[Module1 표](Module1_임도-횡단물량.md)와 동일.
|
||||
|
||||
```
|
||||
A 측점 │ B 거리
|
||||
C·D·E 절토>토사 │ F·G·H 절토>암석
|
||||
I·J·K 측구터파기>토사 │ L·M·N 측구터파기>암석
|
||||
O 보정량계 │ P·Q 성토(=되메우기) │ R 유용토 │ S 차인토량 │ T 누가토량
|
||||
U·V 면고르기>성토 │ W·X 면고르기>절토
|
||||
Y·Z 법면보호공>초류종자살포 │ AA·AB 법면보호공>절토면보호공
|
||||
AC·AD 편책 │ AE·AF 층따기
|
||||
AG·AH 지장목제거>성토 │ AI·AJ 지장목제거>절토 │ AK·AL 노면다짐
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 계산 로직
|
||||
|
||||
### ① 절토 · ② 측구터파기 · ③ 보정량계 · ④ 성토
|
||||
|
||||
Module1 과 동일.
|
||||
|
||||
```
|
||||
입적 = ROUND((앞줄 단면적 + 현줄 단면적)/2 × 점간거리, 2)
|
||||
보정량 = ROUND(입적 × 계수, 2) ※ 절토·측구터파기만
|
||||
보정량계 O5 = E5 + H5 + K5 + N5
|
||||
성토입적 Q5 = ROUND((P4+P5)/2*B5, 2)
|
||||
```
|
||||
|
||||
보정계수는 절토 첫 줄에서 역산(토사 예 0.9 · 암 예 1.0).
|
||||
|
||||
### ⑤ 유용토 — **표기 방식만 다름**
|
||||
|
||||
```
|
||||
R5 = MIN(O5, Q5)
|
||||
```
|
||||
|
||||
Module1 은 같은 뜻을 `IF(O5>Q5, Q5, O5)` 로 썼고, 여기는 `MIN()` 을 그대로 씀. **결과는 동일.**
|
||||
|
||||
### ⑥ 차인토량 · ⑦ 누가토량
|
||||
|
||||
```
|
||||
S5 = O5 - Q5
|
||||
T5 = T4 + S5
|
||||
```
|
||||
|
||||
### ⑧ 면적 항목 9가지
|
||||
|
||||
면고르기(성토/절토) · 법면보호공(초류종자살포/절토면보호공) · 층따기 · 지장목제거(성토/절토) · 노면다짐. 전부
|
||||
|
||||
```
|
||||
면적 = ROUND((앞줄값 + 현줄값)/2 × 점간거리, 2)
|
||||
```
|
||||
|
||||
### ⑨ 계
|
||||
|
||||
각 열 `SUM`. 누가토량 제외.
|
||||
|
||||
---
|
||||
|
||||
## 우리가 견줄 점
|
||||
|
||||
- **같은 야계사방댐인데 지역 관행에 따라 물량표 골격이 둘로 갈림.** 프로그램이 매크로를 둘로 나눠 대응한 것 자체가 정보임.
|
||||
- 터파기를 안 잡는 쪽은 **되메우기도 안 잡음** — 파고 되메우는 한 벌을 통째로 생략하고 「성토」 하나로 뭉갬.
|
||||
- 어느 쪽을 기본으로 둘지는 **미결** — `resources/knowledge/03_미결_및_확인사항.md` 로 올릴 거리. 임의 확정 금지.
|
||||
@@ -0,0 +1,136 @@
|
||||
# Module1 — `임도_1횡단물량`
|
||||
|
||||
**임도 횡단 물량 산출서를 완성하는 매크로.** 오솔길 계산 로직 중 가장 알맹이.
|
||||
캐드 횡단도면작성이 뱉은 `*.csv` 를 열고 이 매크로를 돌리면 제출용 물량표가 됨.
|
||||
|
||||
> 주석에 이력이 남아 있음 — 2016.5.29 「유용토」를 「횡방향무대」로 바꿨다가, **2023.5.27 다시 「유용토」로 되돌리고 횡방향무대는 폐기**. 같은 날 **암을 3종류(연암·보통암·경암) 가정에서 1종류로 축소**.
|
||||
|
||||
---
|
||||
|
||||
## 표 생김새 (암 1종류 기준, A~AL = 38열)
|
||||
|
||||
머리 3줄(대분류/중분류/단면적·입적·보정량), 4행부터 0측점 자료, 맨 밑 「계」.
|
||||
|
||||
| 열 | 뜻 | 열 | 뜻 |
|
||||
| --- | --- | --- | --- |
|
||||
| A | 측점 | S | **차인토량** |
|
||||
| B | 점간거리 | T | **누가토량** |
|
||||
| C·D·E | 절토>토사 : 단면적·입적·보정량 | U·V | 면고르기>성토 : 단면적·면적 |
|
||||
| F·G·H | 절토>암석 : 단면적·입적·보정량 | W·X | 면고르기>절토 : 단면적·면적 |
|
||||
| I·J·K | 측구터파기>토사 : 단면적·입적·보정량 | Y·Z | 법면보호공>초류종자살포 |
|
||||
| L·M·N | 측구터파기>암석 : 단면적·입적·보정량 | AA·AB | 법면보호공>절토면보호공 |
|
||||
| O | **보정량계** | AC·AD | 편책 (**집계 안 함**) |
|
||||
| P·Q | 성토 : 단면적·입적 | AE·AF | 층따기 : 단면적·입적 |
|
||||
| R | **유용토** | AG·AH | 지장목제거>성토 |
|
||||
| | | AI·AJ | 지장목제거>절토 |
|
||||
| | | AK·AL | 노면다짐 |
|
||||
|
||||
> 주석에 「암 2종류면 44열, 3종류면 50열」이라 적혀 있으나 **지금 코드는 1종류 38열만 처리**함.
|
||||
|
||||
---
|
||||
|
||||
## 계산 로직 — 항목별
|
||||
|
||||
아래 `5` 는 첫 자료줄(0측점 다음 줄) 예시. 실제로는 마지막 측점까지 자동 채움.
|
||||
|
||||
### ① 절토 — 흙과 돌을 따로
|
||||
|
||||
```
|
||||
절토>토사>입적 D5 = ROUND((C4+C5)/2*B5, 2)
|
||||
절토>토사>보정량 E5 = ROUND(D5 × 토사계수, 2) (예) 0.9
|
||||
절토>암석>입적 G5 = ROUND((F4+F5)/2*B5, 2)
|
||||
절토>암석>보정량 H5 = ROUND(G5 × 암계수, 2) (예) 1
|
||||
```
|
||||
|
||||
### ② 측구터파기 — 절토와 똑같은 꼴, 계수도 같은 것을 씀
|
||||
|
||||
```
|
||||
측구터파기>토사>입적 J5 = ROUND((I4+I5)/2*B5, 2)
|
||||
측구터파기>토사>보정량 K5 = ROUND(J5 × 토사계수, 2)
|
||||
측구터파기>암석>입적 M5 = ROUND((L4+L5)/2*B5, 2)
|
||||
측구터파기>암석>보정량 N5 = ROUND(M5 × 암계수, 2)
|
||||
```
|
||||
|
||||
### ③ 보정량계 — 파낸 것을 모두 더함
|
||||
|
||||
```
|
||||
O5 = E5 + H5 + K5 + N5
|
||||
```
|
||||
|
||||
절토토사 + 절토암 + 측구토사 + 측구암. **네 가지 보정량의 합**.
|
||||
|
||||
### ④ 성토 — 보정 안 걸림
|
||||
|
||||
```
|
||||
성토>입적 Q5 = ROUND((P4+P5)/2*B5, 2)
|
||||
```
|
||||
|
||||
> ⚠ **주석 오기 발견.** 주석엔 `Q5=(P5+P6)/2*B5` 라 적혀 있으나 실제 코드는 `(P4+P5)`. 앞줄+현줄이 맞음. 주석을 믿지 말 것.
|
||||
|
||||
### ⑤ 유용토 — 「판 것」과 「쌓을 것」 중 작은 쪽
|
||||
|
||||
```
|
||||
R5 = IF(O5 > Q5, Q5, O5) → 곧 MIN(보정량계, 성토입적)
|
||||
```
|
||||
|
||||
파낸 흙이 남아돌면 성토에 넣을 수 있는 만큼(=성토입적)만 유용, 모자라면 있는 만큼(=보정량계)만 유용. **현장 상식 그대로.**
|
||||
|
||||
> 폐기된 옛 방식이 주석에 남아 있음 : `=ROUND(((E18+K18)/O18)*Q18, 2)` — 토사 비율로 안분하던 식. **보정량계가 0일 때 0으로 나누는 오류가 나서 못 쓰고 되돌림**이라고 개발자가 적어 둠.
|
||||
|
||||
### ⑥ 차인토량 — 남거나 모자라는 양
|
||||
|
||||
```
|
||||
S5 = O5 - Q5 (보정량계 - 성토입적)
|
||||
```
|
||||
|
||||
`+` 면 흙이 남음(사토), `−` 면 모자람(토취).
|
||||
|
||||
### ⑦ 누가토량 — 위에서부터 쌓아 내려온 합
|
||||
|
||||
```
|
||||
T5 = T4 + S5
|
||||
```
|
||||
|
||||
유토곡선(Mass Curve)의 세로축이 되는 값.
|
||||
|
||||
### ⑧ 면적 항목 8가지 — 전부 같은 한 줄
|
||||
|
||||
면고르기(성토/절토) · 법면보호공(초류종자살포/절토면보호공) · 층따기 · 지장목제거(성토/절토) · 노면다짐
|
||||
|
||||
```
|
||||
면적 = ROUND((앞줄값 + 현줄값)/2 × 점간거리, 2)
|
||||
```
|
||||
|
||||
부피와 똑같은 평균단면적법. 다만 **보정계수는 안 걸림**.
|
||||
|
||||
### ⑨ 편책 — 칸은 있으나 합계를 내지 않음
|
||||
|
||||
`AC·AD` 는 표에 자리만 있고 「집계 안 함」이라고 주석에 못 박음. 개수 세는 항목이라 부피·면적 집계에 섞지 않는 것으로 보임.
|
||||
|
||||
### ⑩ 계 (맨 밑줄)
|
||||
|
||||
거리·입적·보정량·면적 모든 열에 `SUM(첫 자료줄:마지막 자료줄)`.
|
||||
**누가토량(T)만 예외** — 이미 누계라 합계를 내지 않음.
|
||||
|
||||
---
|
||||
|
||||
## 정리 — 임도 토공 물량 흐름
|
||||
|
||||
```
|
||||
캐드가 준 단면적
|
||||
↓ 평균단면적법 ((앞+현)/2 × 거리)
|
||||
입적
|
||||
↓ × 보정계수 (토사 0.9 · 암 1.0) ※ 파낸 것만
|
||||
보정량 ── 넷을 합쳐 → 보정량계
|
||||
↓ 성토입적과 견줌
|
||||
유용토 = 작은 쪽
|
||||
차인토량 = 보정량계 − 성토입적
|
||||
↓ 누적
|
||||
누가토량 → 유토곡선
|
||||
```
|
||||
|
||||
## 우리가 견줄 점
|
||||
|
||||
- **정의 자체는 그대로 따라야 함** — 유용토·차인토량·누가토량 뜻이 업계 공통.
|
||||
- 보정계수 토사 0.9 / 암 1.0 은 **오솔길이 쓰는 값**일 뿐. 우리 기본값은 현행 법령·행정규칙과 사용자 협의로 정할 것.
|
||||
- 항목 구성(면고르기·법면보호공·층따기·지장목제거·노면다짐·편책)은 임도 물량표 표준 골격으로 참고 가치 있음.
|
||||
@@ -0,0 +1,68 @@
|
||||
# Module2 — `임도_2평균운반거리산출서`
|
||||
|
||||
**유토곡선에서 뽑은 운반거리 CSV 4종을 산출서 모양으로 다듬는 매크로.**
|
||||
2008년에 처음 기록된 가장 오래된 매크로(주석에 `kt이(가) 2008-08-04에 기록`).
|
||||
|
||||
> ⚠ **계산은 없음.** 값은 전부 캐드가 이미 구해 놓은 것. 이 매크로가 새로 만드는 수식은 맨 밑 「평균운반거리」 합계 두 줄뿐임.
|
||||
|
||||
---
|
||||
|
||||
## 파일 4종을 한 매크로가 처리
|
||||
|
||||
파일 이름을 읽어 스스로 구분함 (내부 구분자 `id_No`).
|
||||
|
||||
| 파일 | id_No | 열 수 | 맨 밑줄 |
|
||||
| --- | --- | --- | --- |
|
||||
| `평균운반거리산출서.csv` | 1 | 8 (A~H) | 덤프트럭 + 불도우져 평균운반거리 |
|
||||
| `토량운반거리.csv` | 2 | 8 (A~H) | 없음 |
|
||||
| `무대평균운반거리산출서.csv` | 11 | 4 (A~D) | 덤프트럭 평균운반거리만 |
|
||||
| `무대운반거리.csv` | 12 | 4 (A~D) | 없음 |
|
||||
|
||||
**무대(無代)** = Free Haul, 운반비를 따로 안 매기는 무료 운반 구간.
|
||||
무대 파일은 덤프트럭만 나옴 — 불도우져·종단유용 칸이 아예 없음.
|
||||
|
||||
---
|
||||
|
||||
## 표 생김새
|
||||
|
||||
```
|
||||
번호 │ 덤프트럭 (…) │ 불도우져 (…) │ 종단유용
|
||||
```
|
||||
|
||||
- 열이 7개면 「종단유용」 칸을 만들고, 4개면 안 만듦.
|
||||
- 자료 끝에 「합 계」 줄을 넣고 주황색 칠함(산출서 계열만).
|
||||
- 맨 밑 두 줄에 `1) 덤프트럭 평균운반 거리:` · `2) 불도우져 평균운반 거리:` 를 넣고 A~C 칸을 하나로 병합.
|
||||
|
||||
---
|
||||
|
||||
## 계산 로직
|
||||
|
||||
### 유일한 수식 — 평균운반거리 두 줄
|
||||
|
||||
```
|
||||
덤프트럭 평균운반거리 = SUM(D:H 의 해당 줄)
|
||||
불도우져 평균운반거리 = SUM(D:H 의 해당 줄) ※ 무대 파일은 C:D
|
||||
```
|
||||
|
||||
가로로 늘어선 항목을 그냥 더하는 것. **거리 자체를 구하는 계산은 캐드 안에 있음.**
|
||||
|
||||
### 캐드 쪽이 하는 일 (매뉴얼로 확인한 것)
|
||||
|
||||
유토곡선 도면 위에서 사람이 수평선을 긋고 명령을 부르면 캐드가 잼.
|
||||
|
||||
| 명령 | 하는 일 |
|
||||
| --- | --- |
|
||||
| 임의 수평선 / 점중심 수평선 | 유토곡선에 기준 수평선 긋기 |
|
||||
| 20m·60m 찾기 | 선 두 개를 골라 길이를 재고 **평균**을 최종 거리로 삼음 (예: 61.78·58.99 → 59.99) |
|
||||
| 토량·거리 (Q·L) | 그 구간의 토량 Q 와 거리 L 을 산출 → `평균운반거리.csv` |
|
||||
| 유토(자동) | 위 과정을 사람 손 없이 한 번에 |
|
||||
|
||||
즉 **평균운반거리는 「유토곡선 위에서 잰 길이」**이지 공식으로 푸는 값이 아님. 반자동(사람이 선 지정)과 자동 두 갈래를 다 제공함.
|
||||
|
||||
---
|
||||
|
||||
## 우리가 견줄 점
|
||||
|
||||
- 유토곡선 → 평균운반거리를 **도면 위 작도로 푸는 방식**이 오솔길의 접근. 수치해석이 아니라 그래프를 자로 재는 옛 방식임.
|
||||
- **무대(Free Haul) 구간을 따로 뽑는 구조**는 참고 가치 있음 — 운반비 산정이 무대/유대로 갈림.
|
||||
- 「덤프트럭 / 불도우져」 두 장비로 나눠 각각 평균운반거리를 내는 것도 임도 관행.
|
||||
@@ -0,0 +1,123 @@
|
||||
# Module3 — `야계_1터파기있는횡단물량`
|
||||
|
||||
**야계사방댐 횡단 물량 산출서.** 터파기가 있는 경우용.
|
||||
|
||||
> 개발자 주석 그대로 : *「터파기가 있으면, 되메우기가 있다. "경남"을 제외한 지역이다…」*
|
||||
> 즉 **지역에 따라 물량 잡는 관행이 갈림** — 경남은 터파기를 안 잡고, 나머지 지역은 잡음.
|
||||
> 경남용은 [Module11](Module11_야계-횡단물량_터파기없음.md).
|
||||
|
||||
---
|
||||
|
||||
## 임도(Module1)와 무엇이 다른가
|
||||
|
||||
| | 임도 (Module1) | 야계 터파기有 (Module3) |
|
||||
| --- | --- | --- |
|
||||
| 두 번째 흙 항목 | **측구터파기** | **터파기** (댐 기초) |
|
||||
| 되메우기 | 없음 | **있음** (R·S 열 추가) |
|
||||
| 유용토 상대 | 성토입적 | **성토입적 + 되메우기입적** |
|
||||
| 법면보호공 | 있음 | **없음** |
|
||||
| 열 수 | A~AL | A~AJ |
|
||||
|
||||
**되메우기가 끼어들면서 뒤쪽 열이 통째로 두 칸씩 밀림.**
|
||||
|
||||
---
|
||||
|
||||
## 표 생김새 (A~AJ)
|
||||
|
||||
| 열 | 뜻 | 열 | 뜻 |
|
||||
| --- | --- | --- | --- |
|
||||
| A | 측점 | R·S | **되메우기 : 단면적·입적** |
|
||||
| B | 점간거리 | T | **유용토** |
|
||||
| C·D·E | 절토>토사 : 단면적·입적·보정량 | U | **차인토량** |
|
||||
| F·G·H | 절토>암석 : 단면적·입적·보정량 | V | **누가토량** |
|
||||
| I·J·K | 터파기>토사 : 단면적·입적·보정량 | W·X | 면고르기>성토 |
|
||||
| L·M·N | 터파기>암석 : 단면적·입적·보정량 | Y·Z | 면고르기>절토 |
|
||||
| O | **보정량계** | AA·AB | 편책 |
|
||||
| P·Q | 성토 : 단면적·입적 | AC·AD | 층따기 |
|
||||
| | | AE·AF | 지장목제거>성토 |
|
||||
| | | AG·AH | 지장목제거>절토 |
|
||||
| | | AI·AJ | 노면다짐 |
|
||||
|
||||
---
|
||||
|
||||
## 계산 로직 — 항목별
|
||||
|
||||
### ① 절토 (임도와 동일)
|
||||
|
||||
```
|
||||
절토>토사>입적 D5 = ROUND((C4+C5)/2*B5, 2)
|
||||
절토>토사>보정량 E5 = ROUND(D5 × 토사계수, 2)
|
||||
절토>암석>입적 G5 = ROUND((F4+F5)/2*B5, 2)
|
||||
절토>암석>보정량 H5 = ROUND(G5 × 암계수, 2)
|
||||
```
|
||||
|
||||
보정계수는 임도와 똑같이 **절토 첫 줄에서 역산** → [공통_보조프로시저](공통_보조프로시저.md).
|
||||
|
||||
### ② 터파기 (임도의 「측구터파기」 자리)
|
||||
|
||||
```
|
||||
터파기>토사>입적 J5 = ROUND((I4+I5)/2*B5, 2)
|
||||
터파기>토사>보정량 K5 = ROUND(J5 × 토사계수, 2)
|
||||
터파기>암석>입적 M5 = ROUND((L4+L5)/2*B5, 2)
|
||||
터파기>암석>보정량 N5 = ROUND(M5 × 암계수, 2)
|
||||
```
|
||||
|
||||
댐 기초를 앉히려고 파낸 흙. **절토와 똑같은 계수를 씀.**
|
||||
|
||||
### ③ 보정량계
|
||||
|
||||
```
|
||||
O5 = E5 + H5 + K5 + N5
|
||||
```
|
||||
|
||||
### ④ 성토 · 되메우기 — 둘 다 보정 안 걸림
|
||||
|
||||
```
|
||||
성토>입적 Q5 = ROUND((P4+P5)/2*B5, 2)
|
||||
되메우기>입적 S5 = ROUND((R4+R5)/2*B5, 2)
|
||||
```
|
||||
|
||||
**되메우기** = 터파기로 판 구덩이에 댐을 앉히고 남는 빈 공간을 다시 흙으로 채우는 것.
|
||||
|
||||
### ⑤ 유용토 — 쌓을 곳이 둘
|
||||
|
||||
```
|
||||
T5 = MIN(O5, Q5 + S5)
|
||||
```
|
||||
|
||||
임도는 성토 하나뿐이라 `MIN(O,Q)` 였으나, 야계는 **성토 + 되메우기** 를 합친 것과 견줌.
|
||||
파낸 흙을 성토에도 쓰고 되메우기에도 쓸 수 있으므로 자연스러움.
|
||||
|
||||
### ⑥ 차인토량
|
||||
|
||||
```
|
||||
U5 = O5 - (Q5 + S5)
|
||||
```
|
||||
|
||||
### ⑦ 누가토량
|
||||
|
||||
```
|
||||
V5 = V4 + U5
|
||||
```
|
||||
|
||||
### ⑧ 면적 항목 6가지
|
||||
|
||||
면고르기(성토/절토) · 층따기 · 지장목제거(성토/절토) · 노면다짐
|
||||
|
||||
```
|
||||
면적 = ROUND((앞줄값 + 현줄값)/2 × 점간거리, 2)
|
||||
```
|
||||
|
||||
**임도에 있던 「법면보호공」이 야계엔 없음.** 편책(AA·AB)은 임도와 마찬가지로 자리만 있음.
|
||||
|
||||
### ⑨ 계
|
||||
|
||||
각 열 `SUM`. 누가토량 열만 제외.
|
||||
|
||||
---
|
||||
|
||||
## 우리가 견줄 점
|
||||
|
||||
- **「터파기 → 되메우기」 짝**은 사방댐 물량의 핵심 골격. 우리 사방댐 수량 설계 때 반드시 짝으로 잡을 것.
|
||||
- **유용토 상대가 「성토 + 되메우기」** 라는 점이 임도와 갈리는 결정적 차이.
|
||||
- **지역별 관행 차이(경남 vs 그 외)를 프로그램이 아예 두 갈래로 나눠 대응**함 — 우리도 설계자가 고를 수 있게 둘지 협의 필요. → `resources/knowledge/03_미결_및_확인사항.md` 에 올릴 거리.
|
||||
@@ -0,0 +1,66 @@
|
||||
# Module4 — `사방댐_3수량산출서거푸집레미콘`
|
||||
|
||||
**사방댐 수량산출서 한 장을 두 장으로 쪼개는 매크로.**
|
||||
|
||||
> ⚠ **계산 없음.** 수식을 하나도 만들지 않음. 시트를 나누고 서식만 입힘.
|
||||
|
||||
---
|
||||
|
||||
## 하는 일
|
||||
|
||||
캐드가 만든 「사방댐-수량산출서」 시트 한 장 안에는 두 성격의 표가 이어 붙어 있음.
|
||||
매크로가 **`<거푸집>` 이라 적힌 줄을 찾아** 그 앞뒤로 잘라 시트 두 장을 새로 만듦.
|
||||
|
||||
```
|
||||
원본 한 장
|
||||
├─ 1행 ~ <거푸집> 직전 → 새 시트 「수량산출서」
|
||||
└─ <거푸집> 줄 ~ 끝 → 새 시트 「거푸집, 레미콘수량산출서, 기타자재수량산출서」
|
||||
```
|
||||
|
||||
### 잘라내는 기준 글자 세 개
|
||||
|
||||
시트를 훑으며 A열에서 이 글자를 찾아 그 줄을 표제로 삼아 A~E 칸을 병합함.
|
||||
|
||||
```
|
||||
<거푸집>
|
||||
<레미콘 수량산출서>
|
||||
<기타자재 수량산출서>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 시트별 서식
|
||||
|
||||
| 시트 | 열 너비 | 테두리 |
|
||||
| --- | --- | --- |
|
||||
| 수량산출서 | A=15.44 · C=70.11 | A1 ~ D(마지막줄) |
|
||||
| 거푸집·레미콘·기타자재 | A=20 · B=17 · D=114 | A1 ~ E(마지막줄) |
|
||||
|
||||
C열·D열이 유난히 넓음(70·114) — **산출 근거 수식을 글로 적어 두는 칸**으로 보임.
|
||||
즉 사방댐 수량산출서는 「규격 → 산출식 문장 → 수량」 꼴로 근거를 남기는 양식임.
|
||||
|
||||
---
|
||||
|
||||
## 알 수 있는 것
|
||||
|
||||
사방댐 물량이 **네 갈래로 나뉘어 집계**됨.
|
||||
|
||||
1. **수량산출서** — 콘크리트·돌 등 본체 물량
|
||||
2. **거푸집** — 형틀 면적
|
||||
3. **레미콘 수량산출서** — 규격별 레미콘
|
||||
4. **기타자재 수량산출서** — 철근·다웰바·신축이음 등
|
||||
|
||||
관련 계수 표가 원본 폴더에 그대로 있음.
|
||||
|
||||
| 파일 | 내용 |
|
||||
| --- | --- |
|
||||
| `../../오솔길/철근단위중량.txt` | D6~D51 단위중량 (예: D13=0.995, D16=1.56, D25=3.98) |
|
||||
| `../../오솔길/석축채움콘크리트량.txt` | 석축 규격별 채움 콘크리트량 5줄 |
|
||||
|
||||
---
|
||||
|
||||
## 우리가 견줄 점
|
||||
|
||||
- **산출 근거를 문장으로 남기는 칸**이 있다는 점이 중요. 실무 제출물은 숫자만으로 안 되고 「어떻게 나왔는가」를 적어야 함.
|
||||
- 거푸집·레미콘·기타자재를 **본체 물량과 분리해 별도 산출서로 뽑는 구조**는 B08 수량 재작업 때 참고 가치 있음.
|
||||
- 철근 단위중량 표는 KS 표준값이라 우리 것과 대조만 하면 됨.
|
||||
@@ -0,0 +1,55 @@
|
||||
# Module5 — `사방댐_2토공수량34각형법`
|
||||
|
||||
**사방댐 토공수량(3·4각형법) 표를 다듬는 매크로.**
|
||||
|
||||
> ⚠ **계산 거의 없음.** 만드는 수식은 맨 밑 합계 두 줄뿐.
|
||||
|
||||
---
|
||||
|
||||
## 3·4각형법이 무엇인가
|
||||
|
||||
댐 터파기 바닥을 **삼각형·사각형 조각으로 쪼개 각 조각의 부피를 더하는 방식.**
|
||||
평균단면적법(단면을 잘라 (앞+현)/2 × 거리)과 달리, **평면을 조각내 바로 부피를 냄.**
|
||||
오솔길은 사방댐 토공에 두 방식을 다 제공하고 설계자가 고르게 함.
|
||||
|
||||
**쪼개고 재는 일은 전부 캐드 안에서 일어남.** 매크로는 캐드가 뱉은 조각별 수량 목록을 받아 합계만 냄.
|
||||
|
||||
---
|
||||
|
||||
## 표 생김새 (A~D, 4열)
|
||||
|
||||
```
|
||||
A 구분 │ B 산출식(넓음) │ C 수량(토사) │ D 수량(암석)
|
||||
```
|
||||
|
||||
| 열 | 너비 | 뜻 |
|
||||
| --- | --- | --- |
|
||||
| A | 8.78 | 번호·구분 |
|
||||
| B | **33.44** | 조각별 산출식을 글로 적는 칸 |
|
||||
| C | 10.89 | 토사 수량 |
|
||||
| D | 10.89 | 암석 수량 |
|
||||
|
||||
1행 = 제목(굵게, 11pt 굴림, 행 높이 30), 2행부터 자료.
|
||||
|
||||
---
|
||||
|
||||
## 계산 로직
|
||||
|
||||
### 유일한 수식 — 합계 두 줄
|
||||
|
||||
자료 마지막 줄 다음에 「합 계」 줄을 새로 만들고 꽂음.
|
||||
|
||||
```
|
||||
수량(토사) 합계 C(끝) = SUM(C2 : C(끝-1))
|
||||
수량(암석) 합계 D(끝) = SUM(D2 : D(끝-1))
|
||||
```
|
||||
|
||||
**토사와 암석을 끝까지 갈라서 집계함** — 단가가 다르므로 섞지 않음.
|
||||
|
||||
---
|
||||
|
||||
## 우리가 견줄 점
|
||||
|
||||
- **토공 산출 방식이 하나가 아님** — 평균단면적법 / 3·4각형법 중 설계자가 고름. 우리도 사방댐 토공을 짤 때 어느 방식을 기본으로 둘지 협의 필요. → 미결 거리.
|
||||
- **토사·암석 2열 분리**는 끝까지 유지되는 원칙.
|
||||
- B열(산출식 문장)이 넓은 것 — 여기서도 근거를 글로 남김.
|
||||
@@ -0,0 +1,73 @@
|
||||
# Module6 — `사방댐_1토공수량평균단면적법`
|
||||
|
||||
**사방댐 토공수량(평균단면적법) 표에 서식만 입히는 매크로.**
|
||||
|
||||
> ⚠ **계산 전혀 없음.** 수식을 하나도 만들지 않음. 합계조차 안 냄 — 캐드가 이미 다 적어 준 것으로 보임.
|
||||
|
||||
---
|
||||
|
||||
## 하는 일
|
||||
|
||||
- 자료 범위를 `UsedRange` 로 재고
|
||||
- `A1` ~ (마지막 열)`12` 에 윤곽선·구분선을 그림
|
||||
- 네 줄에 색을 칠함
|
||||
|
||||
```
|
||||
1행 ← 제목
|
||||
2행 ← 머리글
|
||||
7행 ← 구분선
|
||||
12행 ← 구분선
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 알 수 있는 것 — **표 크기가 고정임**
|
||||
|
||||
색칠·테두리 자리가 `7`, `12`, `12` 로 **숫자가 박혀 있음**. 자료 줄 수에 따라 늘어나지 않음.
|
||||
→ 댐 토공수량(평균단면적법) 표는 **항상 12줄짜리 정해진 양식**이라는 뜻.
|
||||
7행과 12행이 구분선이므로 대략 이런 3토막 구조로 읽힘.
|
||||
|
||||
```
|
||||
1 제목
|
||||
2 머리글
|
||||
3 ~ 6 1구간 (예: 댐 본체 터파기)
|
||||
7 구분선
|
||||
8 ~ 11 2구간 (예: 물받이 등)
|
||||
12 구분선 / 합계
|
||||
```
|
||||
|
||||
매뉴얼에도 「댐 토공량 구하기(평균단면적법), 물받이 토공량 구하기」로 **두 덩이를 따로 뽑는다**고 적혀 있어 앞뒤가 맞음.
|
||||
|
||||
열 수는 `UsedRange` 로 재므로 가변 — 측점(단면) 수만큼 옆으로 늘어나는 **가로형 표**로 보임.
|
||||
(Module1·3·11 의 세로형 측점 표와 반대)
|
||||
|
||||
---
|
||||
|
||||
## 계산 로직
|
||||
|
||||
없음. 값은 전부 캐드가 산출해 CSV에 적어 둠.
|
||||
|
||||
### 캐드 쪽이 하는 일 (매뉴얼로 확인한 것)
|
||||
|
||||
`오솔길야계사방댐-4c-댐 토공수량.pdf` 기준.
|
||||
|
||||
1. 지반선(레이어 `지반선`, Pline) · 암선(레이어 `암선`, Pline) 을 사람이 그림
|
||||
2. 댐 어깨 끝점을 찍으면 **터파기선을 기울기 0.7로 자동으로 내림**
|
||||
3. 「평균단면적 산출을 위한 자동 수직선」 명령이 단면을 자를 수직선을 그음
|
||||
4. 그 단면들로 토공량·암량을 평균단면적법으로 산출 → 물량표 작성
|
||||
|
||||
관련 수치 (매뉴얼에서 확인, **우리 기본값 아님**)
|
||||
|
||||
| 항목 | 값 |
|
||||
| --- | --- |
|
||||
| 터파기 기울기 | 0.7 |
|
||||
| 댐 중심 깊이 | 지반고보다 1.8m 아래 (= 9.0 ÷ 5) |
|
||||
| 도면 축척 | H = 1:200, V = 1:200 (고정) |
|
||||
|
||||
---
|
||||
|
||||
## 우리가 견줄 점
|
||||
|
||||
- **댐 본체 / 물받이를 나눠 토공을 뽑는 두 덩이 구조**는 그대로 참고 가치 있음.
|
||||
- 터파기 기울기 0.7 등은 **오솔길이 쓰는 값**. 우리 기본값은 현행 법령·행정규칙과 사용자 협의로 정할 것.
|
||||
- 표가 12줄 고정이라 **단면이 늘면 옆으로 늘어나는 가로형** — 우리 수량 산출서 양식 정할 때 세로형/가로형 선택 참고.
|
||||
@@ -0,0 +1,80 @@
|
||||
# 공통 보조 프로시저
|
||||
|
||||
Module1(임도) · Module3(야계 터파기有) · Module11(야계 터파기無) 에 **똑같은 것이 세 벌 복사**되어 있음.
|
||||
고칠 일이 생기면 세 곳을 다 고쳐야 하는 구조 — 오솔길 쪽 관리 부담.
|
||||
|
||||
---
|
||||
|
||||
## 1. `get___BoJung_Factor` — 보정계수 역산
|
||||
|
||||
**하는 일** : 토량환산계수(보정계수)를 **어디에도 적어 두지 않고, 캐드가 만든 표에서 거꾸로 계산해 알아냄.**
|
||||
|
||||
### 어떻게
|
||||
|
||||
```
|
||||
보정계수 = 보정량 ÷ 입적
|
||||
```
|
||||
|
||||
- 4행(0측점)부터 「계」 직전 줄까지 훑음.
|
||||
- **입적이 0.01보다 큰 첫 줄**을 찾아 그 줄의 `보정량 ÷ 입적` 을 취하고 즉시 멈춤.
|
||||
- 절토 칸이 전부 비어 있으면(전 구간 성토) → **6칸 오른쪽으로 옮겨** 측구터파기(야계는 터파기) 칸에서 같은 짓을 함.
|
||||
- 마지막에 `계수 × 100` 을 정수로 잘라 다시 ÷100 → **소수 둘째 자리에서 버림**. `0.9000345…` → `0.9`.
|
||||
|
||||
### 두 번 부름
|
||||
|
||||
```
|
||||
토사 계수 ← 절토>토사 의 (입적 D, 보정량 E) (예) 0.9
|
||||
암 계수 ← 절토>암석 의 (입적 G, 보정량 H) (예) 1
|
||||
```
|
||||
|
||||
### 뜻하는 바
|
||||
|
||||
- **계수의 주인은 캐드**. 엑셀은 캐드가 이미 넣어 둔 값에서 눈치껏 읽어올 뿐임.
|
||||
- 그래서 **한 산출서 안에서는 토사 계수가 전 구간 하나**로 고정됨 — 측점마다 다른 계수를 쓸 수 없는 구조.
|
||||
- 표 첫 줄이 하필 0이거나 전 구간 성토면 계수를 못 찾아 **0으로 남는 사고 여지 있음**(방어 코드 없음).
|
||||
|
||||
---
|
||||
|
||||
## 2. `Proc___Ipjuck_BojungRyang` — 입적·보정량 수식 심기
|
||||
|
||||
**하는 일** : 항목 하나에 대해 「입적」 칸과 「보정량」 칸에 수식을 꽂고, 아래로 자동 채우고, 맨 밑에 합계를 넣음.
|
||||
|
||||
### 심는 수식
|
||||
|
||||
```
|
||||
입적 = ROUND( (앞줄 단면적 + 현줄 단면적) ÷ 2 × 현줄 점간거리 , 2)
|
||||
보정량 = ROUND( 입적 × 보정계수 , 2)
|
||||
합계 = SUM(첫 자료줄 : 마지막 자료줄)
|
||||
```
|
||||
|
||||
예시(절토>토사, 5행) : `D5 = ROUND((C4+C5)/2*B5, 2)` · `E5 = ROUND(D5*0.9, 2)`
|
||||
|
||||
### 두 가지 모드
|
||||
|
||||
| 부를 때 준 값 | 무엇을 함 |
|
||||
| --- | --- |
|
||||
| `iflag = 2` | 입적 + 보정량 둘 다 심음 — **절토·터파기(흙이 나오는 곳)** |
|
||||
| `iflag = 1` | 입적만 심음 — **성토·되메우기·면고르기·법면보호공·층따기·지장목제거·노면다짐** |
|
||||
|
||||
즉 **보정(토량환산)은 「파낸 흙」에만 걸림**. 쌓는 것·면적 항목엔 안 걸림.
|
||||
|
||||
### 표시 형식
|
||||
|
||||
모든 계산 칸에 `0.00` 서식 고정 — 화면·인쇄 모두 소수 둘째 자리.
|
||||
|
||||
---
|
||||
|
||||
## 3. `Merge___CELLs` / `Draw___BOX` — 서식 전용
|
||||
|
||||
- `Merge___CELLs` : 지금 고른 범위를 하나로 병합, 가운데 정렬.
|
||||
- `Draw___BOX` : 지금 고른 범위에 바깥 굵은 테두리 + 안쪽 가는 선.
|
||||
|
||||
계산과 무관. 산출서 모양새를 만드는 도구.
|
||||
|
||||
---
|
||||
|
||||
## 우리가 가져갈 점
|
||||
|
||||
- **「보정계수를 표에서 역산」은 따라 하지 말 것.** 계수는 값을 낳은 주인(서버 계산)이 명시적으로 들고 있어야 함.
|
||||
- **모드 두 가지(보정 걸림/안 걸림)의 구분선은 그대로 유효** — 절토·터파기만 환산계수 적용.
|
||||
- 같은 코드 세 벌 복사는 오솔길의 약점. 우리는 한 벌로 둘 것.
|
||||
@@ -0,0 +1,55 @@
|
||||
# 오솔길 분석
|
||||
|
||||
경쟁사 CAD 설계 프로그램 **오솔길(O-solkil)** 을 뜯어본 기록.
|
||||
원본은 옆 폴더 `../오솔길/` — **원본은 손대지 않음**, 여기에만 정리물을 둠.
|
||||
|
||||
## 오솔길이 무엇인가
|
||||
|
||||
- **AutoCAD / ZWCAD 플러그인**. 독립 프로그램 아님. `OSKi.arx`(64비트 캐드 확장 DLL, 21MB)를 캐드에 올리면 「명령어 상자」가 떠서 버튼으로 조작함.
|
||||
- 만든 곳 커널테크너리지(곽명근), 검수 엘림엔지니어링 오점곤 기술사. 매뉴얼 표기 **V26.7**.
|
||||
- 하드웨어 락(동글) 필요 — 지금 자료엔 락이 없어 **실행 불가**. 매뉴얼·파일 분석으로만 확인 가능.
|
||||
- 제품 5종 : 임도 자동설계 · 야계사방댐 자동설계 · NaviF(산림조사) · 나스(산림조사) · 시공정산(설계변경).
|
||||
|
||||
## 계산이 어디서 일어나나 — 두 겹
|
||||
|
||||
| 겹 | 무엇을 함 | 우리가 볼 수 있나 |
|
||||
| ------------------------ | ------------------------------------------------------------- | ------------------------------------- |
|
||||
| **캐드 플러그인(.arx)** | 횡단 단면 작도, **단면적 산출**, 구조물 물량, 댐 단면 자동설계 | ❌ 컴파일된 C++ — 역공학 안 함 |
|
||||
| **엑셀 매크로(VBA)** | 캐드가 뱉은 CSV를 받아 **입적·보정량·유용토·차인/누가토량 집계** | ✅ 소스 그대로 읽힘 → 아래 문서로 정리 |
|
||||
|
||||
즉 **「단면적을 어떻게 그리고 재는가」는 못 보고, 「단면적을 받아 물량을 어떻게 쌓는가」는 전부 보임.**
|
||||
|
||||
## 문서
|
||||
|
||||
- [01_엑셀매크로/00_개요.md](01_엑셀매크로/00_개요.md) — 매크로 7개 지도, 공통 규칙
|
||||
- [01_엑셀매크로/공통_보조프로시저.md](01_엑셀매크로/공통_보조프로시저.md) — 보정계수 역산, 입적·보정량 수식 심기
|
||||
- [01_엑셀매크로/Module1_임도-횡단물량.md](01_엑셀매크로/Module1_임도-횡단물량.md)
|
||||
- [01_엑셀매크로/Module2_임도-평균운반거리산출서.md](01_엑셀매크로/Module2_임도-평균운반거리산출서.md)
|
||||
- [01_엑셀매크로/Module3_야계-횡단물량_터파기있음.md](01_엑셀매크로/Module3_야계-횡단물량_터파기있음.md)
|
||||
- [01_엑셀매크로/Module11_야계-횡단물량_터파기없음.md](01_엑셀매크로/Module11_야계-횡단물량_터파기없음.md)
|
||||
- [01_엑셀매크로/Module4_사방댐-수량산출서분리.md](01_엑셀매크로/Module4_사방댐-수량산출서분리.md)
|
||||
- [01_엑셀매크로/Module5_사방댐-토공수량_3-4각형법.md](01_엑셀매크로/Module5_사방댐-토공수량_3-4각형법.md)
|
||||
- [01_엑셀매크로/Module6_사방댐-토공수량_평균단면적법.md](01_엑셀매크로/Module6_사방댐-토공수량_평균단면적법.md)
|
||||
|
||||
## 아직 안 한 것
|
||||
|
||||
- 매뉴얼 PDF 30개 → md화 (곡선설치 공식, 횡단 입력 문법, 축척, 사방댐 제원 규칙 등이 들어 있음)
|
||||
- 도면 양식 DWG 40여 개(`OSK_sym/`) 분석 — 표제란·물량표·곡선설치표·사방댐 표준도
|
||||
- 표준 구조물 목록 `산림청표준PNB구조물txt.csv` → 우리 지식DB 대조
|
||||
- 실무 성과품(오솔길로 뽑은 출력 CSV·DWG) 확보 시 입력↔출력 역산
|
||||
|
||||
## 쓸 때 지킬 것
|
||||
|
||||
- **여기 적힌 수식은 「경쟁사가 이렇게 함」이라는 관찰 기록**. 우리 기본값은 현행 법령·행정규칙과 사용자 협의로 정함 — 여기 값을 그대로 채택하지 말 것.
|
||||
- 코드를 베끼지 않음. 계산 **방법**만 적음.
|
||||
|
||||
## 다시 뽑는 법
|
||||
|
||||
VBA 원문은 저장하지 않음. 필요하면 원본에서 다시 뽑을 것.
|
||||
|
||||
```
|
||||
pip install --target <임시폴더> oletools
|
||||
python -c "from oletools.olevba import VBA_Parser; \
|
||||
v=VBA_Parser(r'../오솔길/Macro/PERSONAL.XLSB(오솔길)'); \
|
||||
print('\n'.join(c for _,_,_,c in v.extract_macros()))"
|
||||
```
|
||||
Reference in New Issue
Block a user