ADN Open CIS
Сообщество программистов Autodesk в СНГ

06/05/2014

Не-DWG окна в AutoCAD 2015

AutoCAD 2015 позволяет создавать Не-DWG окна и попросту окна содержащие не dwg-файлы. Не-DWG окна появляются как вкладки точно так же, как и обычные окна с чертежами.

В конце этой статьи вы найдете ссылку на скачивание готового C++ проекта для создания Не-DWG окна и показа как его использовать.

Попробуйте его:

1. Постройте этот проект с помощью Visual Studio 2012 с Platform Toolset v110.

2. Запустите AutoCAD 2015 и загрузите arx модуль.

3. Запустите команду "ShowMyWnd". Эта команда создаст Не-DWG окно, которое позволит выполнить пользовательский ввод цепочки размеров как на картинке ниже:

 

4. Создайте другой чертеж и запустите команду "InsertLink". Эта команда создаст цепочку размеров на основе данных, введенных в Не-DWG окне.

Теперь краткое описание как создать Не-DWG окно средствами C++:

Шаг-1. Создаем класс диалога унаследованный от CDialog. Обычно MFC-диалоги создаются при помощи редактора ресурсов Visual Studio.

Шаг-2. Создаем собственный класс документа унаследованный от AcRxObject. Этот класс будет хранить данные связанные с этим окном. 

Шаг-3. Создаем собственный класс окна документа унаследованный от AcApDocWindow

- Переопределяем метод "onCreate" для создания диалога, который будет показан.

- Переопределяем метод "onLoad" для ассоциирования собственного документа из шага 2 с нашим классом окна документа.

- Переопределяем метод "onDestroy" для очистки, такой как удаление диалога.

- Переопределяем метод "subRouteMessage" для возможности изменения размеров диалога при изменении размеров окна.

Шаг 4. Создаем собственный класс реактора менеджера документов унаследованного от AcApDocWindowManagerReactor

- Переопределяем метод "documentWindowActivated" чтобы иметь возможность обновлять данные документа на основе данных введенных в диалоге.

- Переопределяем метод "documentWindowCreated" чтобы получить указатель на наше собственное окно сразу после его создания.

- Переопределяем метод "documentWindowDestroyed" чтобы знать, что нашего окна документа уже нет.

В приведенном примере все шаги прокомментированы. AutoCAD 2015 в настоящий момент становится «нестабильным» если собственный документ ассоциирован с собственным окном документа. Это поведение было отмечено и передано для анализа и исправления  команде инженеров. Поэтому в приведенном примере данные документа хранятся в статических переменных, к которым команда "InsertLink" имеет доступ.

А вот и сам пример:

Загрузить NonDwgWindowSample

Источник: http://adndevblog.typepad.com/autocad/2014/05/non-dwg-window-in-autocad-2015.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=720

Опубликовано 06.05.2014
Отредактировано 07.05.2014 в 02:17:55