EchoCad

DWG 도면을 QGIS로,
읽을 수 있는 상태 그대로

CAD 레이어·색·선종류·선폭·문자를 살려서 가져옵니다. 전부 사용자 컴퓨터에서 처리하고, 도면은 어디로도 올라가지 않습니다.

EchoCad로 가져온 건축 평면도가 QGIS에 표시된 화면. 벽·문·설비가 원래 색과 선종류로 그려지고 표제란과 위치도 인셋까지 남아 있다.
건축 평면도를 그대로 가져온 모습입니다. 벽·문·그리드선의 색과 선종류, 표제란과 방위표·위치도 인셋까지 원본대로 들어옵니다. CAD 레이어 23개가 QGIS 레이어 23개로 나뉘고 피처는 3,517개입니다.

Pro 기능 보기 무료판 설치하기

두 가지 판이 있습니다

무료판은 도면을 QGIS에서 보이게 합니다. 도면 수 제한도 기한도 없고, 한 번에 한 장씩 가져옵니다. Pro는 폴더째 들어온 도면을 질의하고 분석할 수 있는 데이터로 바꿉니다. 도면을 읽는 부분은 두 판이 완전히 같은 코드입니다 — 무료판을 일부러 나쁘게 만들지 않았습니다.

기능무료Pro
도면 가져오기, 색·선종류·해치·문자있음있음
한 번에 처리하는 도면 수한 장씩 수동폴더 통째로
도면 문자를 도형 속성으로있음
일괄 변환 + 파일별 CSV 리포트있음
납품 한 건을 GeoPackage 하나로 합치기있음
꺼 두거나 얼려 둔 레이어 건너뛰기있음있음
열린 폴리라인을 면으로있음
기준점 두 개로 실좌표에 맞추기있음
높이(Z) 값 유지있음
매핑 프로파일 — 여러 CAD 레이어를 한 피처 클래스로있음
블록 속성(ATTRIB)을 질의 가능한 필드로있음
공간 처리 도구상자·모델에서 실행있음
변환기 준비버튼 한 번 (인터넷 필요)동봉 — 인터넷 없이도

무료판 — 도면을 QGIS에서 보이게

플러그인 → EchoCad → DWG 가져오기로 창을 엽니다. 도면 파일을 고르고, 좌표계를 확인하고, 가져오기를 누릅니다. 도면 한 장이 그것으로 끝납니다. 도면 수 제한도 기한도 없습니다.

EchoCad 가져오기 창. 도면 파일, 좌표계, GeoPackage 저장 경로를 지정하는 칸이 있다.
가져오기 창입니다. 도면 한 장을 고르고 좌표계를 확인하면 끝입니다. 이 화면은 Pro라 매핑 프로파일 줄이 있고, 무료판에는 그 줄이 없습니다.

DWG를 읽는 변환기는 버튼 한 번으로 준비됩니다. 설치 후 처음 가져오기를 누르면 창이 뜨고, 자동으로 준비하기를 누르면 받아서 설치까지 끝납니다. 그 변환기(LibreDWG)는 GPL-3이라 저희가 함께 넣어 드릴 수는 없고, 받는 것은 사용자 컴퓨터입니다. 인터넷이 안 되는 곳이면 직접 지정하셔도 됩니다.

도로·하천·경계가 담긴 CAD 기반도를 QGIS로 가져온 화면. 선 색과 굵기가 종류별로 구분되어 있다.
건축 도면만이 아닙니다. 도로·하천·행정경계가 담긴 기반도도 같은 방식으로 들어옵니다. 레이어 7개, 피처 18,961개. 여기까지가 무료판입니다.

Pro — 도면을 데이터로

무료판으로도 도면은 얼마든지 보실 수 있습니다. Pro가 바꾸는 것은 그다음입니다 — 도면에 적혀 있던 값을 필드로 꺼내고, 선을 면으로, 도면좌표를 실좌표로 바로잡고, 그 전부를 폴더 단위로 자동 반복합니다.

아래 숫자는 하나도 지어내지 않았습니다. 실제 납품 도면과 공개 표본을 돌려서 잰 값이고, 재는 데 쓴 스크립트도 저장소에 함께 있습니다.

도면이 그림으로 남느냐, 데이터가 되느냐

납품 도면 9장에서 문자 2,836개가 도형의 속성이 됐습니다. 이 일을 손으로 하는 곳은 없습니다. 수천 번을 읽고, 맞는 도형을 찾고, 옮겨 적는 대신 대개 그냥 포기하고 도면을 배경 그림으로 씁니다. 그러면 거기 적혀 있던 실 번호도, 관경도, 규격도 GIS에서는 없는 값입니다.

Pro가 바꾸는 것은 작업 시간이 아니라 그 값이 데이터가 되느냐 아니냐입니다. 한 번 설정해 두면 다음 달 납품에도 그대로 돌아갑니다.

1. 도면 문자를 도형의 속성으로

현장 도면은 정보를 블록 속성이 아니라 그냥 문자로 적어 둡니다. 저희가 실제 납품 도면 9장을 세어 봤더니 블록 속성은 0개, 문자는 3,558개였습니다. 그 문자를 GIS가 떠다니는 글자로 받으면 질의도 조인도 집계도 못 합니다. 눈으로만 보입니다.

Pro는 문자마다 주인 도형을 하나씩 찾아 label 필드에 넣습니다. 면 안에 있는 문자는 그 면의 것이 되고, 면 밖이면 허용거리 안에서 가장 가까운 도형으로 갑니다. 허용거리는 도면 크기에서 자동으로 잡습니다 — 도면마다 단위와 축척이 달라 고정값을 쓰면 어떤 도면에서는 전부 붙고 어떤 도면에서는 하나도 안 붙습니다.

QGIS 속성 테이블에서 실 폴리곤마다 label 열에 실번호가 채워져 있다.
블록 속성이 하나도 없는 도면입니다. 실 번호가 그냥 문자로 찍혀 있던 것을 실 폴리곤의 label 속성으로 옮겼습니다. 이제 대장과 조인이 됩니다. 주인을 못 찾은 도형은 NULL로 남습니다 — 없는 값을 지어내지 않습니다.

실측 — 납품 도면 9장에서 문자 5,640개 중 2,836개(50%)가 도형에 붙었습니다. 배관 아이소메트릭은 64~88%, 배치도는 22~31%입니다. 나머지를 못 붙인 것이 아니라 안 붙인 것입니다. 표제란·범례·주기처럼 어느 도형의 것도 아닌 문자는 그대로 둡니다. 한 도형이 문자를 여덟 개 넘게 가져가면 라벨 관계가 아니라고 보고 비웁니다 — 회사명과 개정이력이 뒤섞인 한 덩어리는 없느니만 못하기 때문입니다.

2. 폴더 일괄 변환과 파일별 리포트

도면은 한 장이 아니라 폴더째 옵니다. 무료판은 한 번에 한 장이라 창을 열고 파일을 고르고 좌표계를 고르고 가져오는 일을 도면 수만큼 반복해야 합니다. 한 장이면 괜찮지만 여든 장이면 못 씁니다.

아래는 도면 9장이 든 폴더를 한 번 돌린 실제 리포트입니다. R13 도면 한 장이 섞여 있었지만 거기서 멈추지 않고 나머지를 끝냈고, 무엇이 왜 안 됐는지가 그대로 남았습니다.

filestatusnotelayersfeaturessec
facility-2011-dm-a04.dwgok427,1728.8
cafm-plan-de.dwgokDropped 1 features with broken coordinates233,5173.9
fire-station.dwgok133,6212.2
floorplan-elevation.dwgok191,1114.0
building-a-floor0.dwgok183272.3
site-survey-3.dwgunsupportedFormat AC1012. Only R14 and newer are supported.000.0
tourist-home.dwgokDropped 5 features with broken coordinates3417,4966.6

좌표가 깨진 피처를 몇 개 버렸는지까지 남습니다. 조용히 버리면 나중에 개수가 안 맞는 이유를 찾지 못합니다.

3. 열린 폴리라인을 면으로

CAD에서는 눈으로 닫혀 보이면 그만이라, 마지막 점이 시작점과 몇 밀리미터 어긋난 채로 남습니다. GIS는 그것을 선으로만 받아서 면적도 못 내고 포함 질의도 못 합니다. 저희 표본에서 납품 도면의 폴리라인 531개 중 528개가 열려 있었습니다.

허용오차를 주면 그 안에서 벌어진 선을 닫아 면을 만듭니다. 원본 선은 지우지 않습니다 — 값이 틀리면 있어야 할 선이 사라지므로, 면을 얹기만 해서 결과를 보고 값을 고쳐 다시 돌리실 수 있게 했습니다. 자동으로 켜지도 않습니다. 배관 한 줄이나 치수선을 면으로 만들면 쓰레기가 됩니다.

실측 — 납품 도면 9장, 허용오차 1.0에서 면 1,986개가 만들어졌습니다. 면을 먼저 만들고 문자를 붙이므로 문자 부착률도 47.9%에서 50.3%로 올랐습니다.

4. 기준점 두 개로 실좌표에 맞추기

도면을 0,0 근처에 그려 놓는 것이 CAD의 보통입니다. 공개 표본 20장 중 17장이 로컬좌표였습니다. 그대로 QGIS에 넣으면 도면이 엉뚱한 자리에 놓여 배경지도와 겹치지도 않습니다.

도면에서 읽은 두 점과 그 두 점의 실좌표를 적으면 이동·회전·축척을 한 번에 잡습니다. 축척은 x와 y에 같게 걸립니다 — 어긋남을 허용하면 값을 한 자리 틀렸을 때 도면 전체가 조용히 찌그러집니다. 틀린 입력은 찌그러지는 것보다 거부되는 편이 낫습니다.

실측 — 기준점 오차 0.000000000, 가로 길이 14,382.7736 그대로, 피처 11,831개 전부 이동했습니다.

5. 높이(Z) 값 유지

배관 아이소메트릭처럼 높이가 정보의 절반인 도면이 있습니다. 평면으로 눌러 받으면 배관이 어느 층을 지나는지 알 수 없습니다.

옵션을 켜면 레이어를 2.5D로 만들고 정점마다 높이를 그대로 담습니다. 2차원 피처가 섞여 있으면 높이를 0으로 채워 같은 레이어에 넣습니다 — 한 CAD 레이어가 두 개로 쪼개지는 것보다 낫습니다.

실측 — 납품 도면 9장 모두 3D 레이어로 나왔습니다. 서로 다른 높이가 ISO 배관도에서 1,757 ~ 27,330개입니다. 전에는 전부 0으로 눌려 있었습니다.

6. 매핑 프로파일 — CAD 레이어를 조직 스키마로

도면 100장을 받으면 레이어명이 100가지입니다. A-WALL-EXST, A-WALL-NEW, A-WALL-2F가 전부 같은 "건물벽"인데 QGIS에는 레이어 세 개로 들어옵니다.

프로파일은 glob 패턴 규칙 목록입니다. 위에서부터 첫 매칭이 적용되고, 순서가 곧 우선순위입니다. 어느 규칙에도 안 걸린 레이어는 원래 이름을 유지하면서 매칭 안 됨으로 보고되므로 빠진 것이 있는지 바로 알 수 있습니다. JSON 파일 하나라 팀에서 공유하고 git으로 버전 관리할 수 있습니다.

{
  "version": 1,
  "name": "example",
  "rules": [
    { "match": "A-WALL-*", "layer_name": "building_wall", "geometry": "polygon" },
    { "match": "*-TEXT",   "layer_name": "annotation",    "geometry": "point"   }
  ],
  "default": { "layer_name": "{cad_layer}", "geometry": "auto" }
}
매핑 프로파일 없이 가져온 QGIS 레이어 패널. CAD 원본 이름 그대로 23개.
적용 전 — CAD 원본 이름 그대로 23개
매핑 프로파일을 적용한 QGIS 레이어 패널. 건물·설비·실·도면요소로 묶여 10개.
적용 후 — 규칙 7개로 10개

7. 블록 속성(ATTRIB)을 질의 가능한 필드로

블록 속성을 쓰는 도면이라면 거기에 맨홀 번호, 관경, 시설물 코드, 지번이 들어 있습니다. 무료판도, QGIS 내장 임포터도 이걸 가져오지 않습니다. 도면은 열리는데 속성은 사라집니다.

Pro는 CAD 레이어마다 블록 참조 포인트 레이어를 만들고, 그 레이어에 나온 모든 속성 태그를 필드로 펼칩니다. 원본 태그명은 QGIS 필드 별칭으로 보존되므로 필드명이 정규화돼도 원래 이름을 잃지 않습니다.

QGIS 속성 테이블에 cad_layer, block_name, FLAECHE, RAUMBEZ, RNR2 열이 실 면적과 실명으로 채워져 있다.
도면에 찍혀 있던 실 스탬프 블록 85개가 필드를 갖춘 85행이 됐습니다. 면적으로 합계를 내고, 실명으로 분류하고, 실번호로 대장과 조인할 수 있습니다.

다만 블록 속성을 안 쓰는 도면이 훨씬 흔합니다. 저희 납품 표본 9장에는 하나도 없었습니다. 그래서 1번(문자 붙이기)이 먼저입니다.

8. 공간 처리 도구상자에서 실행

Pro는 공간 처리 도구상자 → EchoCad → DWG알고리즘 두 개로 등록됩니다 — DWG 가져오기DWG 일괄 가져오기입니다. 창을 열지 않고 이렇게 부를 수 있습니다.

import processing

processing.run("echocad:batchimportdwg", {
    "INPUT_FOLDER":    "D:/납품/2026-03/도면",
    "RECURSIVE":       True,
    "CRS":             "EPSG:5186",
    "PROFILE":         "D:/사내/office-schema.json",
    "EXTRACT_ATTRIBS": True,
    "JOIN_TEXT":       True,
    "CLOSE_TOLERANCE": 1.0,
    "KEEP_Z":          True,
    "SKIP_HIDDEN":     True,
    "MERGE":           True,
    "OUTPUT":          "D:/작업/gpkg",
    "REPORT":          "D:/작업/report.csv",
})

그래서 모델 빌더에 끼워 넣을 수 있고, 변환 다음에 버퍼·조인·내보내기를 이어 붙여 한 번에 돌릴 수 있습니다. 매달 같은 형식으로 납품이 들어오는 곳이라면 한 번 만들어 두고 계속 다시 돌리는 것이 가장 크게 절약되는 지점입니다. 무료판은 알고리즘을 아예 등록하지 않습니다 — 전부 가져오기 창에서 손으로 합니다.

9. 변환기 동봉 — 폐쇄망에서도 즉시

무료판도 버튼 한 번이면 변환기가 준비되지만, 그건 인터넷이 되는 곳에서만입니다. Pro에는 Windows·macOS 변환기가 들어 있어 망이 끊긴 자리에서도 설치 즉시 돕니다. macOS에서는 실행 권한과 격리 속성까지 처리하므로 터미널을 열 일이 없습니다.

무료판의 변환기 설정 창. 자동으로 준비하기 버튼이 가장 크게 있고, 아래에 직접 지정하는 칸이 있다.
무료판은 이 창을 한 번 거칩니다 — 자동으로 준비하기 한 번이면 끝납니다. Pro에는 이 단계 자체가 없습니다.

Pro는 echocad_pro라는 별도 플러그인으로 설치되어 무료판과 충돌하지 않고, 업데이트 때 서로 덮어쓰지 않습니다. 인터넷이 필요 없어 폐쇄망에서도 그대로 씁니다. 각 기능의 화면과 예시는 기능에 더 있습니다.

가격

$499
영구 라이선스 · 사무소 1곳, 10인까지

첫 1년 업데이트가 포함됩니다. 그 뒤로는 1년 주기로 $149입니다. 구독이 아닙니다 — 갱신하지 않아도 쓰던 버전은 계속 동작합니다.

먼저 무료판으로 확인해 보세요. 이 도구가 쓰시는 도면을 제대로 읽는지 — 레이어가 어떻게 나뉘고, 한글이 살아나고, 해치가 재현되는지 — 돈을 내기 전에 직접 보실 수 있습니다. 그 위에 블록 속성·매핑 프로파일·일괄 변환이 필요하시면 Pro입니다.

Pro 구매 사용 문서

필요한 것