Здесь расположен наш офис
Внимание!
Наш сайт переехал по адресу:
http://urgc.info
Просьба перейти по данной ссылке. Информация, представленная на нижележащей странице, устарела и более не актуальна.
Г Р У П П А   К О М П А Н И Й
ГРАДОСТРОИТЕЛЬНЫЙ  ЦЕНТР
344000, Ростовская обл., г.Ростов-на-Дону, пер.Газетный, 121/262А, офис 4
Тел./факс (863) 242-9970, 242-9968
Идёт загрузка страницы ...
  

 

Информационное агентство СА «Архитектор»

Рейтинг@Mail.ru
Rambler's Top100

© ООО «НПО «ЮРГЦ»,
2008-2012
При перепечатке материалов ссылка на сайт обязательна

Страница оптимизирована
для Internet Explorer

Импорт графики из AutoCAD в ObjectLand

По этому адресу ранее была размещена другая статья, ориентированная на ГИС ObjectLand версии 2.6.9. В настоящее время как методика импорта, так и программные утилиты дополнены и уточнены.

Постановка задачи

Обменный формат DXF, предложенный и развиваемый фирмой Autodesk, известен своей сложностью и обилием неоднозначных в интерпретации особенностей. В данной статье автор на основе небольшого опыта импорта в ObjectLand кадастровых и топографических карт, подготовленных в AutoCAD, описывает собственную методику импорта графики (об атрибутивных данных речь не идёт) и программные утилиты, необходимые для такого импорта.

Методика импорта

Для работы понадобится «полная» версия AutoCAD, версии Lite (облегчённые) не годятся, так как они не поддерживают язык AutoLISP. Подготовка исходного автокадовского чертежа к импорту осуществляется программой PREPARE_OL.LSP (её можно скачать по ссылке внизу статьи). Необходимо добавить эту программу в список автозагрузки AutoCAD, для этого выбрать пункт меню «Сервис» -> «AutoLISP» -> «Приложения...». В появившемся диалоговом окне нажать мышью изображение чёрного портфеля и дальше выбрать пункт «Добавить...». Появится диалог открытия файла, надо найти на диске скачанный и распакованный заранее файл PREPARE_OL.LSP и дважды щёлкнуть его мышью. После этих действий AutoCAD «запомнит» расположение файла PREPARE_OL.LSP и будет загружать его каждый раз при своём старте. Конечно, файл должен теперь постоянно храниться на своём месте, в случае же его переноса надо будет повторить всю процедуру заново.

Перед работой лучше сделать резервную копию исходного DWG или DXF файла на всякий случай. Ниже приведены пошаговые инструкции по импорту DXF (DWG) файла в ObjectLand.

1) Открыть чертёж DXF или DWG в AutoCAD, перейти в пространство модели, вызвать диалог настройки слоёв и отключить видимость ненужных слоёв, а пустые слои (они помечены более тусклой пиктограммой) - удалить. Следует также стереть все ненужные объекты чертежа.

2) Если надо сохранить некоторые автокадовские блоки нерасчленёнными (после импорта в ObjectLand они предстанут в виде точечных объектов, а весь рисунок блока будет утрачен), следует набрать в командной строке команду BLOCKS_GALLERY, ответить на её запросы (будет вычерчена «галерея блоков») и затем, набрав команду PICK_BLOCKS, мышью указать блоки, которые Вы хотели бы импортировать в виде точечных объектов. Наиболее вероятные кандидаты: а) блоки, содержащие сплайны со множеством узлов и входящие в чертёж многократно (порядка более 100 раз), потому что при их расчленении образуется огромное количество графической информации, и в ObjectLand будет медленно работать прорисовка; б) блоки, чей внешний вид недопустимо исказится в результате удаления штриховок после расчленения блока (обычно так бывает при отсутствии контуров штриховок), в частности, блоки, состоящие из одних только штриховок.

3) Выполнить команду PREPARE_OL, набрав её в командной строке AutoCAD. Эта команда: устанавливает «мировую» систему координат; расчленяет все блоки, кроме помеченных командой PICK_BLOCKS на предыдущем шаге; расчленяет многострочные тексты; удаляет штриховки; выполняет команду ОЧИСТИТЬ (_PURGE). После всего этого команда PREPARE_OL запросит такие параметры, как «Смещение по X» и «Смещение по Y». Зачем они нужны ? Если «облако» объектов карты лежит сразу в нескольких квадрантах декартовой плоскости, то есть если оно разделено на части осями координат, то необходимо сдвинуть всю карту на определённое расстояние. Это расстояние выражено через «Смещение по X», «Смещение по Y» и его придётся запомнить или записать до шага 12. После сдвига все объекты карты должны оказаться в одном и том же квадранте. Смещение лучше выбирать с запасом и округлять, например, 5000 и 15000, чтобы легче было запомнить. Если все объекты карты и так уже лежат в одном квадранте, то сдвиг не нужен и следует ввести оба раза ноль. Если импортируется несколько DWG(DXF)-файлов (например, соседние планшеты топосъёмки), то смещение надо выбирать для всех них одно и то же.

4) Если среди надписей есть очень мелкие, надо выполнить команду RAISE_TEXT. Она запросит в командной строке старую высоту текста (её можно узнать в «Свойствах» надписи, эта палитра вызывается по комбинации клавиш «Ctrl-1»), затем новую высоту (следует ввести желаемую высоту). Затем будет предложено выбрать рамкой все нужные тексты.

5) Выполнить команду ПБЛОК (_WBLOCK). В появившемся диалоге следует оставить секцию «Базовая точка» без изменений (там должны быть везде нули), в секции «Объекты» выбрать вариант «Оставить» и после нажатия кнопки «Выбрать объекты» мышью обвести рамкой все нужные объекты карты. В секции «Размещение» следует указать имя файла и путь к нему (это будет новый DWG-файл, в дальнейшем он будет упоминаться как «файл, сохранённый на шаге 5»). Внизу, в выпадающем списке «Единицы измерения» лучше выбрать «Метры».

6) Закрыть исходный файл чертежа, не сохраняя его.

7) Открыть DWG-файл, сохранённый на шаге 5, в программе nanoCAD SPDS 1.0 (она тоже должна быть установлена на компьютере, её дистрибутив, распространяемый бесплатно, можно скачать по адресу http://freesoft.ru/?id=676337). Кроме указанной программы, подойдут nanoCAD 2.0, IntelliCAD, ZwCAD, BricsCAD и подобные «клоны» Автокада, способные читать формат DWG и записывать DXF, так как ObjectLand импортирует только DXF-файлы. Но всё же автор рекомендует nanoCAD SPDS 1.0, так как в ней реализован наиболее правильный алгоритм дискретизации сплайнов среди всех перечисленных программ и, кроме того, нет «отзеркаливания» части объектов относительно оси ординат при записи данных в DXF-формат.

После открытия чертежа следует просмотреть «вблизи» графические данные. Если надписи на некоторых слоях повёрнуты на некоторый угол (обычно 90 либо 180 градусов), следует составить текстовый файл, подобный предложенному для скачивания в конце статьи, по принципу: нечётные строки – имена слоёв чертежа, чётные – углы поворота надписей на этих слоях. Затем следует сохранить этот файл соотвествия имён слоёв углам поворота с расширением TXT.

Если были встречены повёрнутые надписи, следует открыть DWG-файл, сохранённый на шаге 5, в AutoCAD и выполнить команду ROTATE_TEXT. Когда она запросит «файл углов поворота», надо указать файл соответствия имён слоёв углам поворота, сохранённый только что (см. предыдущий абзац). После завершения работы команды ROTATE_TEXT следует сохранить DWG-файл, нажав на пиктограмму «дискетка», и закрыть его, чтобы тут же открыть в nanoCAD SPDS 1.0 (как в начале данного шага).

8) Экспортировать из nanoCAD открытый в нём DWG-файл в формат DXF 11-й версии (если вместо nanoCAD используется другая программа, то версия DXF должна быть не выше 12-й), командой меню «Файл» -> «Экспортировать...». Закрыть DWG-файл, не сохраняя.

9) Запустить программу DXF_Importer.exe (можно скачать по ссылке в конце статьи), выбрать только что записанный DXF-файл (можно выбрать сразу несколько DXF-файлов при помощи нажатых клавиш Ctrl или Shift, либо просто обведя нужные файлы мышью) и указать папку, в которой будет создана ГБД ObjectLand с импортированными данными. Если в этой папке окажется ранее созданная ГБД, программа предложит на выбор: а) ничего не делать и выйти, б) стереть старую ГБД и создать новую, в) осуществить доимпорт в старую ГБД.

Программа открывает ГБД в однопользовательском режиме и требует наличия на компьютере исполняемой среды NET Framework 2.0, в настоящее время её дистрибутив предоставляется бесплатно по адресу http://www.microsoft.com/ru-ru/download/details.aspx?id=1639, для установки Net Framework необходимы права администратора в системе. В операционных системах Windows Vista и Windows 7 ничего устанавливать не надо, Net Framework уже входит в их состав. ObjectLand должен быть установлен вместе со своим COM-сервером, то есть «типичная» установка не годится, нужна «полная». Программа работает только из локального каталога (не сетевого), при запуске программы все файлы DLL из предлагаемого ниже архива должны находиться в том же локальном (не сетевом) каталоге, что и EXE-файл. Версия ядра и ГБД должны быть не ниже 2.7 (в начале статьи есть ссылка на старую версию программы). Программа требует установки патча (можно скачать в конце статьи). Чтобы установить патч, просто скопируйте файлы из скачанного архива патча в каталог C:\Program Files\Objectland\BIN, перезаписав при этом старые файлы. Конечно, при копировании патча ГИС Objectland не должна быть запущена на данном компьютере.

10) Если при импорте в ObjectLand некоторые замкнутые площадные объекты были отвергнуты вследствие своей некорректности, например, наличия самопересечений, то некоторые из этих объектов можно вылечить, повторно открыв в AutoCAD DWG-файл, сохранённый на шаге 5 (или на шаге 7, если были повёрнутые тексты), и выполнив команду ERROR_SCAN, набрав её в командной строке. Команда запросит файл отчёта об импорте, он хранится в той же папке, что и ГБД. Следует увеличить данные в графическом окне AutoCAD до такой степени, чтобы отдельные строения занимали весь экран. Далее командой ERROR_PREV установить центр экрана на самый первый некорректный объект, пометить и исправить его, установив в палитре свойств (вызывается по «Ctrl-1») свойство «Замкнуто» в «Нет» (см. снимок экрана ниже).



Ñíèìîê ýêðàíà AutoCAD ïðè èñïðàâëåíèè íåêîððåêòíîñòåé
 

При размыкании полилинии через палитру свойств её последний сегмент исчезнет. Если это недопустимо, можно дочертить недостающий сегмент отрезком. После исправления самого первого некорректного объекта надо пройтись по остальным, выдавая команду ERROR_NEXT в командной строке AutoCAD. При этом очередной некорректный объект будет всегда оказываться в центре экрана. Вернуться к предыдущему объекту при необходимости можно командой ERROR_PREV. Если после очередной команды ERROR_NEXT (или ERROR_PREV, если Вы двигались в обратном направлении) изображение не изменится, значит, пройдены все некорректные объекты.

Теперь надо сохранить DWG-файл, нажав на пиктограмму «дискетка», закрыть его, тут же открыть в nanoCAD SPDS 1.0, чтобы экспортировать в DXF-формат 11-й версии и пройти заново шаг 9, то есть снова создать ГБД ObjectLand с импортированными данными. На этот раз отвергнутых объектов, судя по файлу отчёта, будет меньше.

11) Открыть полученную ГБД в ObjectLand и вывести на экран тему «Общий вид». Если некоторые объекты отзеркалены относительно оси ординат, их следует выделить в окне темы и подвергнуть несложной аффинной трансформации (меню «Сервис» -> «Трансформация...»), загрузив на первом шаге визарда один из файлов настройки, которые можно скачать по ссылке внизу страницы.

12) Если на шаге 3 при выполнении команды PREPARE_OL был выполнен сдвиг графики на некоторое расстояние, то теперь следует осуществить трансформацию подобия (меню «Сервис» -> «Трансформация...») для сдвига в обратном направлении.

13) Если на предыдущих шагах графика сдвигалась (шаги 3 и 12) и/или зеркалилась (шаг 11), то сейчас следует исправить пространственные параметры карты, такие как «Базовая точка» и «Диапазон», доступные на вкладке «Параметры» диалога «Свойства карты», в соответствии с новым положением «пятна» графики после всех трансформаций.

Обратная связь

Обсудить программу возможно на форуме ГИС ObjectLand на странице http://www.objectland.ru/support/forum/2471.

22 августа 2010 г.

Трухачёв М.Ю.

Программа на AutoLISP для подготовки DXF-файлов к импорту

Скачать на диск

Программа импорта DXF-файлов

Скачать на диск

Патч для ObjectLand 2.7.5

Скачать на диск

Пример файла соответствия имён слоёв
углам поворота текстов на этих слоях

Скачать на диск

Файлы настройки трансформации
для отзеркаливания относительно оси ординат

Скачать на диск