07번에서 교각이 서는 12~15초만 잘라 맨 앞에. 자막·설명 없이 화면만.
이거, 사람이 만든 모델이 아닙니다. 2D 도면 한 장을 읽어서, 명령 한 줄로 자동으로 서는 겁니다. 교각 하나. 부재 일흔다섯 개. 오차 0.0000.
CAD 에서 교각 일반도. 뷰를 훑고 표까지.
시작은 이 도면입니다. 교각 일반도 한 장. A1 한 장에 평면도, 정면도, 단면도, 기초 평면도, 그리고 표 세 개. 토목 하시는 분들껜 익숙한 화면이죠. 그런데 이 파일 하나에 도면이 놓이는 자리가 열일곱 개 있습니다. 옛 작업 흔적이 그대로 쌓여 있는 거죠. 출력용 도곽이 씌워진 건 그중 하나뿐입니다. 어느 게 진짜인지 고르는 것부터가 일입니다.
1단계 node src/run.mjs pier-p9
첫 명령입니다. 도면을 읽고 뷰를 가릅니다. 평면도 14,000 × 3,200. 도면에 적힌 치수와 정확히 같습니다. 여기가 안 맞으면 뒤는 볼 것도 없습니다.
2단계 node src/gaps.mjs pier-p9
다음은 끊김 진단입니다. 윤곽이 안 닫히는 이유가 레이어를 잘못 골랐다인지 도면에 선이 없다인지를 가릅니다. 앞은 설정 한 줄, 뒤는 도면 수정. 대응 비용이 백 배 차이 납니다.
3단계 node src/build.mjs pier-p9 --loops
node src/build.mjs pier-p9 --circles
node src/build.mjs pier-p9 --blocks
node src/table.mjs pier-p9 --title "교량받침 ELEVATION TABLE"
도면은 형상으로만 말하지 않습니다. 닫힌 윤곽, 원, 블록, 그리고 표. 기둥은 지름 2,200 원으로 들어 있고, 말뚝 마흔네 본은 폐곡선이 아니라 블록입니다. 블록 배율 254가 곧 반지름이고요. 도면 주기의 Φ508 과 맞습니다. 받침 여섯 기의 적층 높이와 절대표고는 도면 어디에도 안 그려져 있습니다. 표에만 있습니다. 그래서 표도 읽습니다 — 이름표 아래를 찾아서, 병합 셀까지.
4단계 node src/fit.mjs pier-p9 5단계 node src/build.mjs pier-p9
여기서 도면이 파라미터가 됩니다. 서른 개 중 스물한 개는 도면에서 잰 값, 다섯 개는 도면이 안 주는 설계값, 네 개는 식으로 나오는 값입니다. 어느 게 어디서 왔는지 전부 기록됩니다. 도면에서 읽은 척하지 않는 것 — 이게 핵심입니다.
6단계 node src/volume.mjs pier-p9
3D 툴을 켜기 전에 부피부터 냅니다. 657.0569 세제곱미터. 이게 우리 의도입니다. 이따 모델러가 만든 것과 대조할 기준이죠.
7단계 node src/emit/egm.mjs out/pier-p9.ir.json
python src/run_egm.py out/pier-p9.egm.json --export=out/pier-p9.obj
이제 실행입니다. 78개 파트, 329단계 명령이 모델러로 갑니다. 코핑, 원형 기둥 두 본, 확대기초 두 기, 버림, 강관말뚝 마흔네 본, 받침 여섯 기 — 받침콘크리트, 무수축 모르타르, 탄성받침, 솔플레이트까지. 사람 손은 안 들어갑니다. (말 없이 20초 — 세워지는 걸 보여준다) 중요한 건 속도가 아닙니다. 같은 명령을 다시 돌리면 같은 모델이 나온다는 것. 도면이 바뀌면 파라미터만 고쳐서 다시 세울 수 있다는 것입니다.
8단계 egm status
node src/measure.mjs pier-p9 --ir
그리고 검증입니다. 우리가 뜻한 부피와 모델러가 실제로 만든 부피를 부재마다 대조합니다. 일흔다섯 개 전부 차이 0.0000. 열린 변 0. 부피가 맞으면 형상이 맞습니다. 눈으로 보고 「비슷하네」로 끝내지 않습니다.
9단계 node src/emit/ifc.mjs out/pier-p9.ir.json
마지막은 IFC 입니다. IfcBeam, IfcColumn, IfcFooting, IfcPile 마흔네 개, IfcPlate, IfcDiscreteAccessory. 메시로 안 내보냈습니다. 원기둥은 진짜 원으로 나갑니다. 그래야 받는 쪽에서 「왜 지름이 508이 아니냐」를 다시 겪지 않습니다. 절대 위치는 IfcMapConversion 으로 넣었습니다. 측량좌표와 방위각은 받침배치도 표에서 가져왔고요. 뷰어에서 열면 이렇게 나옵니다.
10단계 node src/render.mjs pier-p9 --png --width 900
부피가 맞아도 형상이 맞는 건 아닙니다. 그래서 그림으로도 봅니다. 정투영 세 방향. 검은 자리는 그 방향으로 재료가 없다는 뜻입니다. 관통구나 빠진 부재가 바로 드러나죠. 정리하면 — 도면 한 장에서 부재 일흔다섯 개, 657 세제곱미터, 오차 0.0000, IFC 까지. 사람이 판단한 건 「무엇을 어떻게 조립할까」 하나뿐입니다. 나머지는 전부 도면이 말한 겁니다. 다음 편에서는 꺾인 교각을 해보겠습니다.
작업 디렉터리 d:\MYCLAUDE_PROJECT\dwg2model · PowerShell.
씬은 비워 뒀고 기준선은 문양 제외본으로 갱신돼 있다. 0번부터 순서대로.
egm guide | python -c "import sys,json;print('명령',len(json.loads(sys.stdin.buffer.read().decode('utf-8-sig'))))"
208 이어야 한다. 39 면 뷰어 모드 — 모델링 명령이 등록조차 안 된다.
모델러 UI 에서 Assistive Features → Working Mode Setting → Viewer & Modeler Use.
# 1 도면 읽기 — 뷰 분리 · 표 색인 [02.mp4] node src/run.mjs pier-p9 # 2 끊김 진단 [03.mp4] node src/gaps.mjs pier-p9 # 3 도면이 말하는 네 방식 [04.mp4] node src/build.mjs pier-p9 --loops node src/build.mjs pier-p9 --circles node src/build.mjs pier-p9 --blocks node src/table.mjs pier-p9 --title "교량받침 ELEVATION TABLE" # 4+5 파라미터 → 조립 스펙 [05.mp4] node src/fit.mjs pier-p9 node src/build.mjs pier-p9 # 6 모델러 없이 부피 — 「의도」 [06.mp4] node src/volume.mjs pier-p9 # 7 번역 · 실행 — 교각이 선다 [07.mp4] ★ node src/emit/egm.mjs out/pier-p9.ir.json python src/run_egm.py out/pier-p9.egm.json --export=out/pier-p9.obj # 8 의도 vs 결과 [08.mp4] ★ egm status node src/measure.mjs pier-p9 --ir # 9 IFC [09.mp4] node src/emit/ifc.mjs out/pier-p9.ir.json # 10 그림 [10.mp4] node src/render.mjs pier-p9 --png --width 900
node src/ui.mjs pier-p9 --port 7333
# 브라우저 http://localhost:7333 → 값 수정 → 갱신 → 검증 사슬이 돈다
params/pier-p9.json 의 미관문양_포함 을 1 로 바꾸면 다시 선다.
지금 기준선은 문양 제외 · 75파트 · 657.0569 m³ 기준이다.
컷마다 화면에 반드시 보여야 할 것. 안 나오면 다시 찍는다.
| 컷 | 화면에 나와야 하는 것 | 길이 |
|---|---|---|
| HOOK | 모델러 뷰포트에 교각이 서는 순간. 색이 부재별로 갈려 있어야 한다 — 코핑 주황 · 기둥 파랑 · 기초 초록 · 말뚝 보라 | 14.0 |
| 01 | 도곽 · 평면도 · 정면도 · 단면도 · 기초평면도 · 표. 한 화면에 다 보이는 장면 하나 | 24.4 |
| 02 | 평면도 14000 3200 ✓ 와 ✓ 검증 통과, 그리고 표 3개 | 11.1 |
| 03 | 「레이어 오분류 0 / 선 누락 n」 갈라지는 줄 | 12.9 |
| 04 | Ø2200 원 2개 · CSPILEH 배율 254 44개 ·
표 6행 18열(NO./h1~h4/A/B/S1/S2) | 48.5 |
| 05 | measured 21 · design 5 · derived 4 · 최종 산출 75 | 24.8 |
| 06 | 합계 657.0569 | 16.7 |
| 07 | 파트 78 → 단계 329 · 뷰포트에 부재가 쌓이는 과정 ·
끝에 modelCount 75 | 82.0 |
| 08 | 차이 0.0000 열이 쭉 이어지는 화면 · 열린변 0 · 재질별 물량 | 25.3 |
| 09 | IFCPILE 44 등 클래스 목록 · IFC 뷰어에서 열린 모델 | 44.3 |
| 10 | 정투영 X·Y·Z 세 장. 검은 배경과 부재 색이 대비되는 것 | 50.1 |
| 말할 것 | 값 |
|---|---|
| 도곽 한 장 안에 | 뷰 7 + 표 3. 그런데 파일에는 도면 자리가 17개 — 도곽이 씌워진 건 1개, 나머지는 구조선만 남은 옛 작업 흔적 |
| 단위 확정 | 독립 근거 4개로 1단위 = 1 mm |
| 파단선 | 그려진 기둥 6,100 ↔ 실제 33,800. 생략량 27,700 을 도면에서 되찾는다 |
| 말뚝 | 5×5=25 가 아니라 22본 — 둘레 16 + 내부 3등분점 6 |
| 받침 | 형상 × 표 × 다른 도면 세 겹 검산, 6/6 일치 |
| 결과 | 75 파트 · 657.0569 m³ · 차이 0.0000 · 열린 변 0 |
녹화 중 걸릴 만한 것만. 전부 실제로 겪었다.
| 증상 | 원인 | 대응 |
|---|---|---|
run_egm 이 「명령이 끝나지 않는다」 |
이전 명령이 물려 있다. egm status 의 command 가 남는다 |
egm "Esc" — 접두 ~ 없이. 그리고 재실행 |
| 씬에 이전 모델이 남음 | — | egm "Esc" → "SelAll" → "Delete" → "Esc" |
modelCount 가 75 가 아님 |
boolean 이 인자를 흘렸다 | 씬 비우고 재실행. 반복되면 촬영 멈추고 확인 |
| 명령이 조용히 무시됨 | 뷰어 모드 | 0단계로 돌아간다. 연결 정상 ≠ 모델링 가능 |
Access to the path is denied |
모델러가 다른 권한으로 떠 있어 파이프에 못 붙는다 | 모델러를 종료하고
C:\Program Files\Baron\EG-BIM Modeler\EG-BIM_Modeler.exe 로 다시 띄운다 |
| 파이프가 죽음 (창은 멀쩡) | 씬 초기화를 여러 번 반복했다 | 재시작 외에 방법 없다. 초기화는 갱신당 1회 |
--reset 은 붙이지 않는다
지난번 그것 때문에 Select 가 물렸다. 씬은 촬영 전에 미리 비워 둔다.
| 안 | 제목 |
|---|---|
| A | 2D 도면 한 장으로 교각 3D 모델 자동 생성 — 부재 75개, 오차 0.0000 |
| B | 토목 도면을 BIM 으로 바꾸는 법 : 손으로 안 그리고 IFC 까지 |
| C | 도면이 말하는 네 가지 방식 — 윤곽 · 원 · 블록 · 표 | 2D→3D 전환설계 |
교각 일반도(DWG) 한 장을 읽어 3D 솔리드와 IFC 까지 만드는 과정입니다. 부재 75개 · 콘크리트 657.06 m³ · 모델러 실측 대비 오차 0.0000 · 열린 변 0 00:00 결과 먼저 00:14 도면 — 한 파일에 도형 17벌 00:38 뷰 가르기 00:50 끊김 진단 — 레이어 오분류 vs 선 누락 01:02 도면이 말하는 네 방식 : 윤곽 · 원 · 블록 · 표 01:51 도면이 파라미터가 된다 02:16 3D 툴 없이 부피부터 02:32 모델러에 교각이 선다 03:54 의도 vs 결과 — 부재마다 대조 04:20 IFC 로 넘긴다 05:04 그림으로도 본다 · 정리 다룬 것 · 도곽 블록으로 시트 경계를 계산한다 (한 파일에 여러 벌이 쌓여 있다) · 파단선 — 그려진 길이가 실제가 아니다. 생략량을 도면에서 되찾는 법 · 말뚝은 폐곡선이 아니라 INSERT 블록. 배율이 곧 치수다 · 받침 적층·절대표고는 형상에 없고 표에만 있다 · IFC 는 메시가 아니라 해석 솔리드로. 원기둥은 진짜 원으로
토목엔지니어, BIM, 3D전환설계, 토목BIM, IFC, 교량, 교각, 도면자동화, DWG, 캐드, 파라메트릭모델링, 스마트건설, civil engineering, BIM automation
왼쪽 흑백 2D 도면(01.mp4 한 프레임), 오른쪽 색 입은 3D 교각(07.mp4 마지막 프레임). 가운데 화살표. 카피는 숫자 하나만 — 「오차 0.0000」 또는 「부재 75개, 자동」.