сайт Андрея Нестерова
NESTEROV HOMEPAGE
Передача DWG файлов с русскими текстами из DOS в Windows
 Программы
 Модели
 Чертежи
 Советы
 Ответы
 Общение
 Архив
 Соглашение
 Информация

При переходе со старых версий Автокада (10,11,12 и 13), работающих в операционной системе DOS, на новые версии (13, 14), работающие в операционной системе Windows, и передаче DWG файлов из DOS в Windows, возникают трудности, связанные с различной кодировкой русских символов для ОС DOS и Windows.

Здесь приведены некоторые пояснения необходимые для решения этих проблем.

В Автокаде используются текстовые шрифты в формате UNICODE.

Для управления кодовыми страницами UNICODE используются две системные переменные SYSCODEPAGE и DWGCODEPAGE.

SYSCODEPAGE указывает кодовую страницу системы, в которой создаются новые DWG файлы.

DWGCODEPAGE указывает кодовую страницу DWG файла и хранится внутри этого DWG файла.

Кодировке русских символов для операционной системы DOS соответствует значение переменной SYSCODEPAGE равное dos866, а для операционной системы Windows - значение ansi_1251.

Значение ansi_1251 соответствует кодовой странице "Кириллица" для представления русских символов символами UNICODE 0400-04FF в русских версиях операционных систем Windows95 и Windows NT4.0.

Это позволяет использовать системные TrueType шрифты (такие как Arial Cyr, Times New Roman Cyr и т.д.) и SHX шрифты (поставляемые с русской версией Автокада 13 и 14) для написания русских текстов в Автокаде.

Для Автокада R13 под Windows переменная SYSCODEPAGE задается в файле ACAD.INI в разделе [General] двумя строками:

[General]
CodePage=ansi_1251
Language=ru


В русском Автокаде R13 эта переменная уже установлена по умолчанию. В английском Автокаде R13 по умолчанию эта переменная установлена как ansi_1252, поэтому необходимо отредактировать файл ACAD.INI, добавив в него две строки, как описано выше.

Для Автокада R14 переменная SYSCODEPAGE автоматически устанавливается в соответствии с используемой операционной системой ( для русских Windows95 и Windows NT 4.0 - ansi_1251 ).

При открытии DWG файла в Автокаде (версий13 и 14) проверяется соответствие системной кодовой страницы SYSCODEPAGE и кодовой страницы DWG файла DWGCODEPAGE. Если значение DWGCODEPAGE, открываемого DWG файла, не соответствует значению SYSCODEPAGE, то происходит автоматическое преобразование русских букв в текстах.

При открытии DWG файла с текстами в кодировке DOS с кодовой страницей DWGCODEPAGE=dos866, созданых в Автокаде R12 и R13 под DOS в русской версии Автокада R14 под Windows (кодовая страница SYSCODEPAGE=ansi_1251) происходит автоматическое преобразование русских букв в кодировку Windows.

Для других значений SYSCODEPAGE и DWGCODEPAGE возможно преобразование русских букв в символы UNICODE (/U+00../U+00..) или (/M+0.../M+0...). Hапример при открытии DWG файлов с кодовой страницей DWGCODEPAGE=ansi_1252, созданных в англоязычном Автокаде R13 под Windows в русской версии Автокада R13 или R14 под Windows (кодовая страница SYSCODEPAGE=ansi_1251) происходит автоматическое преобразование русских букв в текстах в символы UNICODE (/U+00../U+00..). Отменить это преобразование можно открывая файлы не командой "Файл->Открыть..." (_OPEN), а командой "Файл->Утилиты->Восстановить..." (_RECOVER).

DWG файлы, созданные в Автокаде R12 под DOS, имеют неверное значение переменной DWGCODEPAGE равное BIG5, хотя оно и отображается как dos866.

Для редактирования этой переменной используется автономная утилита wnewcp.exe (AutoCAD Code Page Manipulation Utility), предназначенная только для изменения значения переменной DWGCODEPAGE внутри DWG файла или сразу нескольких файлов.

ПРИМЕР ИСПОЛЬЗОВАHИЯ: передача DWG файлов из русского Автокада R12 под DOS в русский Автокад R14 под Windows95. Исходные файлы созданы в Автокаде R12 под DOS и содержат русские тексты в кодировке DOS.

Сначала нужно отредактировать значение переменной DWGCODEPAGE в передаваемых файлах. Используем утилиту wnewcp.exe. Указываем исходный DWG файл или каталог с DWG файлами. Отмечаем версию исходных файлов "R11/R12".

Задаем значение кодовой страницы DOS866 в поле "Select a new code page:" Указываем расположение преобразованного DWG файла или каталога с DWG файлами. Выполняем преобразование.

Открываем преобразованный DWG файл в русском Автокаде R14 (переменная SYSCODEPAGE имеет значение ansi_1251).

Все русские символы в текстах (а также названия слоев и гарнитур) автоматически преобразуются в кодировку Windows (необходимо использовать соответствующие шрифты SHX или TrueType для Windows).

Файлы DWG, созданные в Автокаде R10 под DOS, не содержат переменной DWGCODEPAGE. Для передачи этих файлов в Автокад R14 с преобразованием русских текстов из кодировки DOS в кодировку Windows можно использовать несколько методов.

1. Открыть их в Автокаде R12 под DOS и сохранить в формате DWG R12. Далее процедура, описанная выше в ПРИМЕРЕ ИСПОЛЬЗОВАHИЯ: редактирование DWGCODEPAGE (значение dos866) автономной утилитой wnewcp.exe.

2. Использование утилиты DBTRANS, поставляемой с Автокадом R14 в разделе BONUS. При полной установке Автокада ее можно найти в подкаталоге АВТОКАДА ...\BONUS\CADTOOLS\DBTRANS.ARX. Открыть DWG файл в Автокаде R14. Загрузить утилиту DBTRANS командой "Сервис->Приложения..." (_appload). Hабрать команду DBTRANS и в диалоговом окне задать в качестве исходной кодовой таблицы - Source Format Code Page: "DOS 866 (Cyrillic)", а в качестве целевой кодовой таблицы - Target Format Code Page: "ANSI 1251 (Microsoft Windows Cyrillic)" и выполнить преобразование. ЗАМЕЧАHИЕ: Использование русских названий для слоев (layer) Автокада, названий гарнитур (style) текстов и подобных элементов не рекомендуется, так как вызывает проблемы.

3. В Автокаде R10 под DOS сохранить файл в текстовом формате DXF (команда DXFOUT). Далее в ОС Windows открыть этот файл в стандартном редакторе WordPad с опцией "Тип файлов: Текстовые документы MS-DOS ", а сохранить с опцией "Тип файлов: Текстовые документы ", т.е. в кодировке Windows. Затем открыть этот DXF файл в Автокаде R14 командой DXFIN.


Copyright Andrey Nesterov 1998-2012. All rights reserved
последнее обновление - 13.03.2012