О средствах расширения возможностей современного AutoCAD и создании прикладных систем. AutoCAD Map 2000 плюс Land Development Desktop как инструментальная объектно-ориентированная ГИС.

Когда мы рассказываем потенциальным пользователям о продуктах компании Autodesk, и прежде всего об ее флагманских продуктах для ГИС и планировки — AutoCAD Map 2000 и Land Development Desktop (включая Survey и Civil Design), нам очень часто задают вопрос о том, можно ли и насколько просто расширить возможности этих продуктов, приспособить их для своих конкретных задач. Это правомерный и правильный вопрос, а дл ГИС такая его постановка оправдана вдвойне, т.к. пользователю нужен не инструментальный пакет, какими бы мощными ни были его базовые возможности, а именно прикладная ГИС-система.

Невозможно кратко рассказать о действительно мощных и гибких средствах расширения. Отметим только основные моменты и возможности.

Компания Autdesk была одним из пионеров открытых архитектур. AutoCAD всегда отличался уникальной, беспрецедентной открытостью и возможностями расширения. Это одна из главных причин его феноменального успеха.

AutoCAD — это как бы «двуликий Янус». На сегодняшний день можно утверждать, что весь известный пользователям (непрограммистам) AutoCAD, при всей его мощи — это только краешек, видимая верхушка айсберга. А его скрытая, невидимая часть — это открытая объектная архитектура ядра, базовой платформы. Именно этот «фундаментальный переход на объектную технологию», как подчеркивается в материалах фирмы, и составляет самую главную черту нового поколения продуктов Autodesk, получивших номер 2000. Здесь — вершки и корешки. И несмотря на то, что большинство пользователей этого самого по себе не увидят, Autodesk — эта поистине великая фирма — поддерживает уникальную открытость архитектуры AutoCAD, возможности расширения, т.к. этого требует системная методология, в этом залог, предпосылка его взрывного развития, появления огромного числа приложений. И в этом — отличие от многих «мировых» ГИС, которые придут к такой архитектуре лишь через несколько лет… Можно сказать и сильнее: AutoCAD — это система не столько для пользователей, сколько для разработчиков. Только начинают они не с нуля (С++), а с мощнейшей библиотеки классов. А пользователям предназначены приложения над AutoCAD или Map.

Именно на этом пути — с помощью открытой компонентной архитектуры — возможно разрешить диалектическое противоречие современных программных систем, связанное с попытками достижения двух взаимно противоположных целей — мощью и универсальностью, с одной стороны, и размером, стоимостью, необходимостью специализированных операций конкретного пользователя, с другой.

Конкретно, абсолютно все в AutoCAD — от примитивов до элементов интерфейса — предоставляется разработчику как иерархия объектов (классов), их свойств и методов. Со всеми этими объектами можно работать и создавать высокоэффективные откомпилированные программы. В дальнейшем работа с этими объектами ничем не будем отличаться от работы со встроенными примитивами. Можно даже реализовать перенос уже готовых объектных приложений на платформу AutoCAD. Современное ПО для AutoCAD структурируется не только по функциональному, но и по объектному принципу. Видимо, скоро появятс сотни самых разнообразных пользовательских (заказных) объектов, доступных при наличии небольших программных модулей (технология, чем-то напоминающа известную технологию plug-in).

У этих объектов может быть свое, сколь угодно сложное поведение при редактировании и запросах (в т.ч. учет контекста). Например, в ГИС инженерных сетей можно иметь дело не с блоками или полилиниями, а с колодцами, участками газопроводов, задвижками и т. д. AutoCAD превратилс в объектную графическую СУБД, позволяющую работать не только с графической (декларативной), но и с процедурной (поведенческой) информацией, обеспечивая в объектах единство процедурного и декларативного знания. Происходит интеграция, «сращивание» ГИС, развитых СУБД, систем имитационного моделирования.

На логическом уровне можно считать, что «поведение» хранится в чертеже, хотя это DLL определенного вида. Они подгружаются только тогда, когда встречается соответствующий объект — так называема «загрузка по требованию» («on demand»). Интересно, что «поведение» может быть разделено на две части: интерфейс пользователя и поддержку отрисовки (arx) и стандартного редактировани объекта (dbx). Без первой части нельзя создать новый объект, но можно работать с существующими. А при отсутствии второй части объекты превращаются в так называемые «прокси», объекты-представители, которые только видимы, но недоступны для редактирования. При этом возможны различные степени, уровни защиты — разработчик может разрешить или запретить те или иные операции.

Таким образом, впервые решается проблема защиты dwg-файлов от редактирования.

У заказных объектов обрабатывается каждая отдельная ручка (но все ручки одного цвета). Можно даже ввести свои привязки. Можно запрещать отдельные универсальные команды — Break, Explode. Можно добавить свои поля к примитиву, которые хранятся в нем же (+ свои функции). Можно реализовать дерево объектов — выбор — подсветка на карте + работа с OPM.

Кроме того, можно (и нужно) работать с объектной моделью через ActiveX (OLE)-интерфейс (для VBA, Visual Lisp, Visual C++). Хоть она и беднее, чем COM-объектная модель ObjectARX, в объектной модели ActiveX есть то, чего нет в объектной модели ObjARX. Естественно, можно создавать и собственные ActiveX-объекты, с которыми можно будет работать на VB.

Объектная технология, реализованная в продукте ObjectARX, — это предпосылка и залог взрывного роста приложений. Собственно, по этой технологии и пошло развитие как самого AutoCAD (сплайны, мультилинии, эллипсы, растры и т. д.), так и приложений к нему.

Полностью объектными стали AutoCAD Map 2000, CAD Overlay 2000 и Land Development Desktop (LDD). Речь идет не просто об объектной модели, которая поставляется бесплатно «в той же коробке» и ActiveX-интерфейсы которой доступны из VBA, Visual Lisp, C++. Кроме нее, имеется среда разработки для профессиональных программистов, участников сети ADN. Продается специальная лицензия на AEC Object Modeling Framework для LDD, позволяющая создавать высокоэффективные приложения для LDD на основе богатой библиотеки классов.

Интересно, что в пакете компании Autodesk — Actrix реализованы так называемые «активные формы» — готовые объекты. Очевидно, что эта технология будет встроена в следующее поколение AutoCAD.

Что касается отечественных разработок. Подразделение «GEOCAD Systems» АО «АРКАДА» в сентябре выпускает версию пакета ТОПОКАД для AutoCAD 2000, где отечественные линейные топографические условные знаки будут представлены как объекты, т. е. в них будет заложена логика отрисовки знаков и их модификации при редактировании с учетом контекста. Анонсированы также объектные версии приложений на основе AutoCAD Map для предприятий, эксплуатирующих газовые сети, — ГАЗКАД и для предприятий электросвязи — «Телеком».

Особый вопрос — книги, пособия по программированию для современного AutoCAD — как переводные, так и отечественные, курсы, сеть авторизованных системных центров, в частности по ГИС, организация обмена опытом. Ну и, конечно, как результат всего этого — работоспособные коллективы разработчиков, создающие необходимые пользователям продукты и системы.

В целом, преимущества объектного подхода особенно очевидны при создании ГИС для сложных предметных областей, к примеру, инженерных коммуникаций — и, видимо, в ближайшее время «мировая виртуальна корпорация» разработчиков приложений для AutoCAD, AutoCAD Map и Land Development Desktop выпустит на рынок десятки новых пакетов для ГИС, созданных по объектной технологии.

А это означает — качественно новый уровень программного обеспечения, компонентную архитектуру систем, расширяемость и развитие.

Сергей Гончаренко
Михаил Гуральник
Сергей Соколенке
Авторизованный системный центр Autodesk
АО АРКАДА, г. Киев «GEOCAD Systems»
тел. (044) 443−04−03, 243−40−00