Логотип сайта поддержки пользователей САПРО сайте поддержки пользователей САПР Translate to:
Hosting Ukraine

НА ЧЕМ ПИСАТЬ САПР "ПОД AUTOCAD2000"

А. В. Осокин

(Уфимский государственный нефтяной технический университет)

В погоне за ростом производительности труда всё больше внимания уделяется разработке систем автоматизированного проектирования (САПР). При этом зачастую бывает целесообразно отказаться от создания собственного графического ядра, а использовать уже существующую САПР. В качестве такой системы можно рекомендовать AutoCAD© фирмы Autodesk Inc., которая хорошо документирована на русском языке и пользуется заслуженной популярностью.

AutoCAD 2000 содержит для этого встроенные среды разработки Visual Basic (VB) и Visual LISP (VLISP), интерпретаторы языков DCL, DIESEL, средства расширения меню и специальный "помощник" для создания приложений в Visual C++, работающих "под AutoCAD2000".

При таком обилии средств наблюдается недостаточное количество русскоязычной литературы по выбору языка реализации. Между тем, создание будущей САПР начинается именно с этого. Необходимо учесть, что AutoCAD допускает применение разных языков, отличающихся по своим возможностям. Каждый из языков имеет свои преимущества и недостатки, поэтому использование единого языка для приложения "под AutoCAD" оказывается жестким компромиссом. В зависимости от целей, для каждого элемента САПР рекомендуется выбирать наиболее легко реализуемое решение. Опыт показывает, что судить о преимуществах того или иного языка можно по следующим критериям: скорость реализации задачи, точность представления вещественных чисел, скорость работы программы, условия создания "оконного" интерфейса, наличие средств работы с графической базой данных (ГБД).

В простейшей САПР можно выделить два функциональных модуля: расчетное ядро и интерфейс.

Расчетное ядро. Во многом выбор языка зависит от того, какие задачи будут обрабатываться ядром. Это могут быть как математические вычисления, так и генерация новой графики, создание отчетов, конвертация в новые форматы, и т.д. Изучение возможностей расширения AutoCAD следует начинать с изучения VLISP. Однако VLISP является интерпретатором, что сказывается на скорости работы приложений, и если не удалось достичь необходимой производительности, нужно переходить на С/С++.

С++ рекордсмен по производительности и точности представления вещественных чисел, поэтому именно на нем рекомендуется реализовывать расчетное ядро. Важными преимуществами С/С++ являются переносимость кода и средства системного программирования.

Интерфейс. Состоит из диалоговой части и средств манипуляции ГБД. Для приложений с большим количеством диалоговых окон подойдут VB и VC++, однако, если опыт использования MFC отсутствует, лучше остановиться на VB. Рекомендуется избегать применения VC++ для реализации интерфейса - это позволит избавиться от неоправданно трудоемких работ.

Другим средством создания оконного интерфейса является интегрированный язык DCL. Его преимуществом является простота и компактность кода, он оптимален в качестве решения для приложений с 2-3 окнами, а на его изучение уйдет около получаса. DCL одинаково легко интегрируется в VLISP и VC++ приложения.

Трудозатраты на разработку функций обработки графики чертежа на С++ также значительно выше, чем у других языков и должны приниматься при соответствующем экономическом обосновании. Сложность заключается в том, что информация о графических объектах (примитивах) хранится в ГБД AutoCAD в виде списков. Средства работы со списками в С++ реализованы в виде инструментария ObjectARX, который пришёл на смену технологии ADS. ObjectARX обеспечивает работу со списками с помощью классов, что требует значительно большей скрупулезности при создании функций обработки громоздких списков. VLISP напротив, создавался именно для обработки списков и в работе с ГБД он идеален.

Однако бывают случаи, когда производительность интерфейса также является критической величиной. В этом случае рекомендуется поступить следующим образом - реализовать критические функции на С/С++ в виде динамически подключаемых библиотек ARX и вызывать их для обработки промежуточных данных как стандартные команды AutoCAD.

Создание дополнительных пунктов падающего и экранного меню, панелей инструментов и меню указателей мыши или дигитайзера и написание макросов для них в AutoCAD возможно только в формате файла меню, который составляется в специальном формате MNU и компилируется встроенным компилятором.



Copyright © Сайт поддержки пользователей САПР