26/06/2015
Загрузка DVB и запуск макроса VBA при помощи AutoCAD COM API в ObjectARX
Вопрос:
Как я могу загрузить dvb-файл и выполнить макро при помощи AutoCAD COM интерфейса?
Ответ:
Следующий код показывает как это можно сделать:
Код - C++: [Выделить]
- #import "acax19ENU.tlb" no_implementation raw_interfaces_only
- #include <comdef.h>
- #include <atlbase.h>
- #include <acadi_i.c>
- using namespace AutoCAD;
- LoadVBARunMacro()
- {
- // Установим путь к DVB-файлу
- CComBSTR bsrtVBAName = _T("d:\\temp\\Project.dvb");
- // Установим имя макроса
- CComBSTR bstrMacro = _T("test");
- // Получаем iDispatch AutoCAD’а
- IAcadApplicationPtr pAcad = acedGetIDispatch(FALSE);
- // Загружаем DVB-файл
- HRESULT hr = pAcad->LoadDVB(bsrtVBAName.m_str);
- // Если всё хорошо
- if (SUCCEEDED(hr))
- {
- // выполняем макрос
- hr = pAcad->RunMacro(bstrMacro.m_str);
- // Выгружаем DVB-файл если он нам больше не нужен
- hr = pAcad->UnloadDVB(bsrtVBAName.m_str);
- }
- }
Автор перевода: Александр Ривилис
Обсуждение: http://adn-cis.org/forum/index.php?topic=2823
Опубликовано 26.06.2015