Создание и запуск приложения
Создание приложения для Civil 3D начинается с выбора правильного типа проекта – библиотека классов:
Далее необходимо добавить несколько ссылок на соответствующие библиотеки:
- acdbmgd.dll – службы базы данных и управления DWG чертежа;
- acmgd.dll – определение приложения AutoCAD;
- accoremgd.dll – основная логика AutoCAD;
- AeccDbMgd.dll – базы данных объектов Civil 3D;
- AecBaseMgd.dll – базовые классы для работы с объектами Civil 3D и AutoCAD Architecture.
Все эти библиотеки располагаются в корневом каталоге установки Civil 3D.
Для совместимости приложения, необходимо для всех подключаемых библиотек AutoCAD и Civil 3D для свойства «Копировать локально» устанавливать значение «False».
Доступ к ранее созданному объекту Civil 3D осуществляется через транзакцию:
- Using a_trans As Autodesk.AutoCAD.DatabaseServices.Transaction = _
- Autodesk.AutoCAD.ApplicationServices.Application. _
- DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction
- '...
- a_trans.Commit()
- End Using
Важное замечание: любая транзакция должна завершаться либо закрытием – «a_trans.Commit()», либо отказом – «a_trans.Abort()». Все изменения объектов сохраняются в базе данных чертежа только после закрытия транзакции (a_trans.Commit()).
Открытие объекта Civil 3D выполнятся точно так же, как и объектов AutoCAD:
- 'Открытие только для чтения
- q_Profile = a_trans.GetObject(q_ProfileId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead)
- 'Открытие для редактирования
- q_Profile = a_trans.GetObject(q_ProfileId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForWrite)
При необходимости, объект, открытый для чтения, можно обновить для редактирования:
- q_Profile.UpgradeOpen()
Запуск приложения
Поскольку основой Civil 3D является обычный AutoCAD, то и запускать команды для Civil 3D можно точно так же, как и для AutoCAD:
- <Autodesk.AutoCAD.Runtime.CommandMethod("AOC_AppCreating")> _
- Public Sub AOC_AppCreating()
- End Sub
Теперь в Civil 3D можно загрузить собственное приложение с помощью команды NETLOAD и выполнить созданную команду AOC_AppCreating.
Однако, Civil 3D предоставляет дополнительный более удобный механизм запуска внешних приложений – Панель инструментов.При использования Панели инструментов наша процедура будет иметь следующий вид:
- Public Shared Sub AOC_AppCreating()
- End Sub
После этого необходимо создать новый инструмент в Панели инструментов:
В поле «Выполнить файл» необходимо указать полный путь к исполняемому файлу DLL; в поле «Имя макроса» – имя процедуры, как оно было написано в исходном коде (с учетом регистра).
Автор перевода: Алексей Терно
Обсуждение: http://adn-cis.org/forum/index.php?topic=450
Опубликовано 11.01.2014Отредактировано 11.01.2014 в 03:08:09