LeDeuxions · English
도면을 열었습니다. 치수와 영문은 멀쩡한데 한글 자리만 ??나 ????로 나옵니다. 실명, 범례, 주기가 전부 물음표입니다.
검색하면 대부분 "폰트를 설치하라"고 합니다. 맞는 경우도 많습니다. 그런데 폰트를 다 깔아도 그대로인 경우가 있습니다. 그때는 원인이 폰트가 아니라 인코딩입니다. 원인이 다르면 해결도 다릅니다.
깨진 도면에서 새 한글 텍스트를 하나 써 봅니다. (TEXT 명령으로 "가나다")
특히 회사에서 ZWCAD로 저장한 도면을 집에서 다른 캐드(BricsCAD 등)로, 또는 맥·리눅스에서 열 때 ??가 나왔다면 인코딩 문제일 가능성이 높습니다. 회사 컴퓨터에서는 같은 도면이 잘 보이기 때문에 더 헷갈립니다.
잘 다루어지지 않는 쪽부터 적습니다.
DWG·DXF는 형식 버전에 따라 글자를 저장하는 방식이 다릅니다. R2007(AC1021) 이전 형식은 글자를 그 나라의 코드 페이지로 저장합니다. 한국어라면 ANSI_949(CP949)입니다. R2007 이후 형식은 유니코드로 저장합니다. DXF는 R2007부터 UTF-8입니다(ezdxf 문서).
한국어 윈도우의 캐드는 옛 형식 도면을 열 때 CP949로 읽어 줍니다. 그래서 회사에서는 문제가 보이지 않습니다. 맥·리눅스용 캐드나 다른 언어 환경에서는 이 해석이 맞지 않는 경우가 많고, 한글이 ??로 바뀝니다. 글꼴이 아니라 글자 자체를 잘못 읽은 것이라 폰트를 바꿔도 소용이 없습니다.
회사 캐드가 기본 저장 형식을 2004 이하로 두고 있으면, 그 회사에서 나오는 도면은 모두 이 상태로 저장됩니다.
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 변수를 바꾸라는 안내도 있습니다. 다만 이것만으로는 해결되지 않는 경우가 많다는 이야기가 Bricsys 포럼에 여러 번 나옵니다. 실제로도 위의 다시 저장 방법이 확실했습니다.
인코딩 문제일 때 아래 방법들은 효과가 없었습니다. 같은 길을 돌지 않도록 적어 둡니다.
모두 글꼴을 고치는 방법입니다. 글자를 잘못 읽은 상태에서는 어떤 글꼴로 그려도 ??가 나옵니다.
가장 흔한 경우입니다. 새로 쓴 한글도 ??라면 여기에 해당합니다. 다른 사무실에서 받은 도면이 그쪽에서만 쓰는 글꼴로 되어 있을 때 자주 생깁니다.
C:\Windows\Fonts에 들어갑니다. 내 계정에만 설치하면 캐드가 못 찾는 경우가 있습니다. 설치 후 캐드를 다시 켭니다.FONTALT 변수, ZWCAD는 옵션의 대체 글꼴 설정입니다.ZWCAD에서 시스템 글꼴을 추가하는 방법은 공식 안내가 있습니다. How to add system fonts in ZWCAD
유니코드(R2007 이후) 도면인데도 맥·리눅스에서 SHX 글꼴로 된 한글만 ????로 나오는 경우가 있습니다. 윈도우용 한글 SHX(빅폰트)가 그 환경에 없거나 제대로 읽히지 않는 경우입니다. Bricsys 포럼에도 같은 보고가 있습니다.
해결은 문자 스타일의 글꼴을 한글 TTF로 바꾸는 것입니다. 나눔고딕(NanumGothic.ttf)처럼 맥·리눅스에서도 쉽게 설치되는 글꼴이 좋습니다.
fonts-nanum 등)스타일이 많으면 아래 style_fix_nanum.lsp가 모든 스타일을 한 번에 바꿉니다. 도면 전체의 글꼴이 바뀌므로 사본에서 먼저 해 보십시오.
위에서 쓴 두 파일입니다. BricsCAD(리눅스)에서 확인했습니다. AutoCAD·ZWCAD도 같은 LISP 명령을 쓰지만 직접 확인하지는 않았습니다. 캐드 종류와 버전에 따라 명령 질문 순서가 다를 수 있습니다.
permanent_save.lsp style_fix_nanum.lsp
_UTF8.dwg를 만듭니다.쓰는 법은 명령창에 아래처럼 입력합니다. 경로는 파일을 받은 위치로 바꾸고, 구분자는 /를 씁니다.
(load "C:/Users/사용자/Downloads/permanent_save.lsp")
또는 APPLOAD 명령으로 파일을 골라 불러와도 됩니다.