ZWCAD·캐드 도면 한글이 ??로 깨질 때 — 폰트 문제와 인코딩 문제, 원인별 해결 총정리

LeDeuxions · English

도면을 열었습니다. 치수와 영문은 멀쩡한데 한글 자리만 ??나 ????로 나옵니다. 실명, 범례, 주기가 전부 물음표입니다.

검색하면 대부분 "폰트를 설치하라"고 합니다. 맞는 경우도 많습니다. 그런데 폰트를 다 깔아도 그대로인 경우가 있습니다. 그때는 원인이 폰트가 아니라 인코딩입니다. 원인이 다르면 해결도 다릅니다.

30초 판별 — 어느 쪽 문제인가

깨진 도면에서 새 한글 텍스트를 하나 써 봅니다. (TEXT 명령으로 "가나다")

특히 회사에서 ZWCAD로 저장한 도면을 집에서 다른 캐드(BricsCAD 등)로, 또는 맥·리눅스에서 열 때 ??가 나왔다면 인코딩 문제일 가능성이 높습니다. 회사 컴퓨터에서는 같은 도면이 잘 보이기 때문에 더 헷갈립니다.

원인 A — 인코딩: 옛 형식 도면의 한글

잘 다루어지지 않는 쪽부터 적습니다.

DWG·DXF는 형식 버전에 따라 글자를 저장하는 방식이 다릅니다. R2007(AC1021) 이전 형식은 글자를 그 나라의 코드 페이지로 저장합니다. 한국어라면 ANSI_949(CP949)입니다. R2007 이후 형식은 유니코드로 저장합니다. DXF는 R2007부터 UTF-8입니다(ezdxf 문서).

한국어 윈도우의 캐드는 옛 형식 도면을 열 때 CP949로 읽어 줍니다. 그래서 회사에서는 문제가 보이지 않습니다. 맥·리눅스용 캐드나 다른 언어 환경에서는 이 해석이 맞지 않는 경우가 많고, 한글이 ??로 바뀝니다. 글꼴이 아니라 글자 자체를 잘못 읽은 것이라 폰트를 바꿔도 소용이 없습니다.

회사 캐드가 기본 저장 형식을 2004 이하로 두고 있으면, 그 회사에서 나오는 도면은 모두 이 상태로 저장됩니다.

해결 — 새 형식으로 다시 저장하고, 닫았다가 다시 연다

  1. 깨진 도면을 엽니다. (??로 보이는 상태 그대로)
  2. SAVEAS(다른 이름으로 저장) → 파일 형식에서 AutoCAD 2018 도면 (*.dwg)을 고릅니다. 원본은 두고 새 이름으로 저장합니다.
  3. 도면을 닫습니다.
  4. 새로 저장한 파일을 다시 엽니다. 한글이 보입니다.

3번이 중요합니다. 저장만 하고 그 화면을 그대로 보면 여전히 ??입니다. 닫고 다시 열어야 바뀐 내용이 보입니다.

BricsCAD 명령창에서는 한 줄로도 됩니다. 경로는 본인 컴퓨터에 맞게 바꾸십시오.

(vla-saveas (vla-get-activedocument (vlax-get-acad-object)) "/경로/저장명.dwg" 60)
; 60 = acR2018_dwg (R2018 DWG 형식)

도면이 여러 장이면 아래 permanent_save.lsp를 쓰면 편합니다. 원본 옆에 [원본이름]_UTF8.dwg로 저장합니다.

R2018로 다시 저장한 뒤에도 일부 글자가 ??로 남는 도면이 있었습니다. 그럴 때는 아래 원인 C의 방법(문자 스타일을 한글 TTF로 바꾸기)을 이어서 하면 됩니다.

DWGCODEPAGE는?

도면의 코드 페이지를 나타내는 DWGCODEPAGE 변수를 바꾸라는 안내도 있습니다. 다만 이것만으로는 해결되지 않는 경우가 많다는 이야기가 Bricsys 포럼에 여러 번 나옵니다. 실제로도 위의 다시 저장 방법이 확실했습니다.

해 봤지만 안 된 것

인코딩 문제일 때 아래 방법들은 효과가 없었습니다. 같은 길을 돌지 않도록 적어 둡니다.

모두 글꼴을 고치는 방법입니다. 글자를 잘못 읽은 상태에서는 어떤 글꼴로 그려도 ??가 나옵니다.

원인 B — 폰트: 도면에 쓴 글꼴이 내 컴퓨터에 없다

가장 흔한 경우입니다. 새로 쓴 한글도 ??라면 여기에 해당합니다. 다른 사무실에서 받은 도면이 그쪽에서만 쓰는 글꼴로 되어 있을 때 자주 생깁니다.

ZWCAD에서 시스템 글꼴을 추가하는 방법은 공식 안내가 있습니다. How to add system fonts in ZWCAD

원인 C — 맥·리눅스에서 SHX 한글이 ????

유니코드(R2007 이후) 도면인데도 맥·리눅스에서 SHX 글꼴로 된 한글만 ????로 나오는 경우가 있습니다. 윈도우용 한글 SHX(빅폰트)가 그 환경에 없거나 제대로 읽히지 않는 경우입니다. Bricsys 포럼에도 같은 보고가 있습니다.

해결은 문자 스타일의 글꼴을 한글 TTF로 바꾸는 것입니다. 나눔고딕(NanumGothic.ttf)처럼 맥·리눅스에서도 쉽게 설치되는 글꼴이 좋습니다.

  1. 나눔고딕을 설치합니다. (리눅스는 배포판 패키지 fonts-nanum 등)
  2. STYLE 명령 → 깨지는 스타일을 골라 글꼴을 NanumGothic으로 바꿉니다. 빅폰트 사용은 끕니다.
  3. REGENALL로 다시 그립니다.

스타일이 많으면 아래 style_fix_nanum.lsp가 모든 스타일을 한 번에 바꿉니다. 도면 전체의 글꼴이 바뀌므로 사본에서 먼저 해 보십시오.

바로 쓰는 LISP 파일

위에서 쓴 두 파일입니다. BricsCAD(리눅스)에서 확인했습니다. AutoCAD·ZWCAD도 같은 LISP 명령을 쓰지만 직접 확인하지는 않았습니다. 캐드 종류와 버전에 따라 명령 질문 순서가 다를 수 있습니다.

permanent_save.lsp style_fix_nanum.lsp

쓰는 법은 명령창에 아래처럼 입력합니다. 경로는 파일을 받은 위치로 바꾸고, 구분자는 /를 씁니다.

(load "C:/Users/사용자/Downloads/permanent_save.lsp")

또는 APPLOAD 명령으로 파일을 골라 불러와도 됩니다.

정리


문의: [email protected]

LeDeuxions · Field Notes · 캐드 도면을 한글 보고서에 선명하게 넣는 법