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

Методы разработки приложений под AutoCAD с использованием DCL

Составил Виктор Ткаченко,
http://www.cad.dp.ua/,
статья обновлена в соответствии с ситуацией на 1.01.2008

Начиная с версии 12 AutoCAD предусматривает возможность самостоятельного написания диалоговых окон, отличных от определенных в системе. Для этой цели был разработан специальный язык - DCL (Dialogue Control Language, или другими словами - язык управления диалоговыми окнами). Следует отметить, что Autodesk свято как правило свято придерживается принципов совместимости своих программных стандартов, и при пререходе на Windows-версию AutoCAD, язык DCL не притерпел никаких серьезных изменений, и приложения написанные для AutoCAD R12 (DOS) работают и под AutoCAD R14 (Windows), равно как и под всеми последующими версиями AutoCAD.

Кроме массы достоинств, которые влечет использование диалоговых окон в пользовательских приложениях под AutoCAD существуют и определенные недостатки. К ним можно прежде всего отнести отсутствие встроенных средств отладки - в качестве отладчика используется сам AutoCAD, который пишет сообщения об ошибках в файл acad.dce, а так же трудности с осуществлением дизайна окон (в сложных окнах эстетическое оформление расположения элементов довольно затруднено). Для облегчения программирования диалоговых окон и существуют специальные программы наиболее удачные из которых мы и рассмотрим в этой статье.

DCL Code Generator

разработчик MetroTech Solutions

DCL Code Generator v.1.01

Данная программа (рис. 1) представляет собой lisp-приложение, работающее в среде AutoCAD. Как видно на рисунке, идея работы с диалогом состоит в перемещении элементов из одной колонки (базовые элементы DCL) в другую (DCL-элементы текущего диалога). Важным является возможность просмотра диалога, а также файла, содержащего сообщения об ошибках ACAD.DCE прямо из DCL Code Generator. Не смотря на то, что программа shareware, она позволяет записывать результаты работы в файл внутреннего формата с расширением dcg, что бы затем вернуться к редактированию.


Рис. 1. DCL Code Generator v.1.01

Не смотря на то, что версия 1.01 рассчитана на AutoCAD R12, она вполне нормально (спасибо Autolisp) работает и под AutoCAD R14, AutoCAD 2000 и последующими версиями AutoCAD. Недостает только новых функций DCL (а таковых не много - text_part, concatination и paragraph) и возможности загрузить DCL-файл - здесь используется WCEDIT (exp-приложение для AutoCAD R12 DOS). Справка к DCL Code Generator переведена мною в WinHelp формат и включена в комплект, который можно скачать ниже.

Скачать DCL Code Generator 1.01.

В настоящее время поддержка данной программы прекращена разработчиком. В сети так же можно встретить версию DCL Code Generator 2.0 , но это урезаная DEMO-версия без возможности сохранения созданных диалогов.

Protobox

разработчик CADGINEERING Consulting

Еще один редактор DCL-файлов, работающий внутри AutoCAD. Реализован в двух вариантах - как приложение Autolisp (PBmain.lsp), и Visual Lisp-приложение (PBmain.vlx), добавлена поддержка новых функций DCL, можно создавать и редактировать свои DCL-обьекты (Прототипы) а так же подсистемы (к примеру указывать позволяет работать с несколькими блоками как с одним). Кроме этого приложение может генерировать загружающий DCL файл на Lisp или С, а так же записывать файл с перечнем диалогов, их имен, ключевых слов и меток.


Рис. 2. Protobox v.2.2

К сожалению версия 2.2 не может загружать уже созданные DCL-файлы (на выбор предлагается загрузить example.dcl, DDMODES.DCL и DDCHPROP.DCL, но я подозреваю, что они включены в исходный код редактора).

Скачать Protobox v.2.2

DCL&Lisp Generator

Разработчик Kieu Minh Tuan

В отличии от встроенной в AutoCAD среды разработки VisualLisp IDE, которая поддерживает создание файлов диалоговых окон DCL в текстовом редакторе, DCL&Lisp Generator осуществляет визуальное создание диалогов подобно как в среде разработки Visual Basic. После создания диалога достаточно нажать на кнопку "Generate" чтобы программа автоматически сгенерировала файл определения диалога и код AutoLisp для загрузки диалога в AutoCAD. Кроме этого DCL&Lisp Generator осуществляет помощь пользователю в назначении обработчика событий и переменных для компонентов диалога. Сильной стороной программы так же является удобный редактор AutoLisp и DCL файлов, содержащий много общих AutoLisp-подпрограмм, размещенных на панели инструментов, что поможет разработчику писать код быстрее.

DCL&Lisp Generator может работать под всеми версиями AutoCAD, начиная с AutoCAD 12.


Рис. 4. DCL&Lisp Generator

Полнофункциональную облегченную версию DCL&AutoLisp Generator Lite можно скачать с сайта разработчика.

ObjectDCL

разработчик изначально 3rd Day Software, теперь DuctiSoft Inc.

В пояснении к этой программе автор писал, что будучи студентом ему приходилось часто делать программы с диалоговыми окнами. Бедность средств отладки настолько его замучила, что он написал свой DCL интерфейс, который уже на мой взгляд является серьезной альтернативой стандартному DCL.

Посудите сами. Все виды диалогов применительно к AutoCAD можно разделить на четыре группы:

  1. Modal - эти диалоги поддерживаются стандартным DCL. Пользователь не может выполнить никакой операции в AutoCAD до закрытия диалогового окна.
  2. Modeless - В этом случае пользователь может выполнять операции в AutoCAD, но диалоговое окно будет оставаться на экране и ждать пользовательского ввода (как плавающая панель инструментов).
  3. Dockable - диалог, который можно разместить на панели AutoCAD.
  4. Configuration Tab - позволяет пользователю создавать собственную панель в диалоге настройки AutoCAD.

Помимо всех перечисленных выше типов диалогов ObjectDCL позволяет встраивать в диалог такие элементы как календарь, таблицы, древовидные структуры и использовать возможности ObjectARX.

Новым так же является подход к программированию диалоговых окон. В ObjectDCL диалоги программируются в соответствии с принципами визуального программирования ( т. е. так как в Delphi или Visual C++ ), о чем наглядно говорит даже сам вид редактора ObjectDCL, напоминающий редакторы языков визуального программирования. Элементы перетаскиваются на рабочее поле с левой панели, а на правой панели отображаются их свойства.

Расмотрим перечень основных инструментальных средств доступных в ObjectDCL:

Теперь о том, как это работает:
ObjectDCL состоит из двух частей - визуального редактора (приложения Windows) и загрузчика ObjectDCL ARX-runtime, который позволяет загружать скомпилированные диалоговые окна (файлы с расширением ODC). Редактор предназначен только для создания диалогов, а загрузчик должен быть в каждой системе, где эти диалоги должны работать.


Рис. 4. Среда разработки ObjectDCL

В настоящий момент ObjectDCL поддерживает AutoCAD 2004-2008, включая AutoCAD 2008 64-битный. Последняя версия ObjectDCL 2007 также включает ObjectDCL Distribution Kit - аналог загрузчика ObjectDCL.arx для распространения вместе с программами, разработанными с помощью ObjectDCL

Скачать ObjectDCL и ObjectDCL ARX-runtime

OpenDCL

В 2006 году Chad Wanless, владелец 3rd Day Software, открыл код своего программного продукта ObjectDCL 3.0 на условиях GNU-лицензии. Таким образом OpenDCL является результатом серьезной переработки кода ObjectDCL 3.0 сообществом разработчиков, которые исправили существовавшие баги, добавили новые возможности и внесли множество изменений.

В настоящий момент доступен OpenDCL версии 5.0, который поддерживает создание визуального пользовательского интерфейса для AutoLISP и Visual LISP в версиях AutoCAD от 2004 до 2008. Как и ObjectDCL, OpenDCL состоит из редактора и ObjectARX-приложения (runtime). Редактор позволяет вам создавать и модифицировать проекты диалогов и сохранять их в .odcl (или .odcl.lsp) файлы для распространения вместе с вашими AutoLISP или Visual LISP приложениями. ObjectARX-приложение (OpenDCL.16.arx или OpenDCL.17.arx файл) так же должно распространяться вместе с вашим приложением и загружаться в AutoCAD чтобы отображать диалоги, определенные .odcl (или .odcl.lsp) файлами.


Рис. 5. Среда разработки OpenDCL

OpenDCL доступен для загрузки в виде двух пакетов, один для распространения вместе с вашим приложением, а другой - среда разработки. Скачать их можно с сайта OpenDCL. Более подробную информацию о OpenDCL вы можете найти в статье "OpenDCL, как расширение возможностей DCL в AutoCAD"



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