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

26/06/2015

Загрузка DVB и запуск макроса VBA при помощи AutoCAD COM API в ObjectARX

Вопрос:
Как я могу загрузить dvb-файл и выполнить макро при помощи AutoCAD COM интерфейса?

Ответ:
Следующий код показывает как это можно сделать:

Код - C++: [Выделить]
  1. #import "acax19ENU.tlb" no_implementation raw_interfaces_only
  2.  
  3. #include <comdef.h>
  4. #include <atlbase.h>
  5. #include <acadi_i.c>
  6. using namespace AutoCAD;
  7.  
  8. LoadVBARunMacro()
  9. {
  10.   // Установим путь к DVB-файлу
  11.   CComBSTR bsrtVBAName = _T("d:\\temp\\Project.dvb");
  12.   // Установим имя макроса
  13.   CComBSTR bstrMacro = _T("test");
  14.   // Получаем iDispatch AutoCAD’а
  15.   IAcadApplicationPtr pAcad = acedGetIDispatch(FALSE);
  16.   // Загружаем DVB-файл
  17.   HRESULT hr = pAcad->LoadDVB(bsrtVBAName.m_str);
  18.   // Если всё хорошо
  19.   if (SUCCEEDED(hr))
  20.   {
  21.     // выполняем макрос
  22.     hr = pAcad->RunMacro(bstrMacro.m_str);
  23.     // Выгружаем DVB-файл если он нам больше не нужен
  24.     hr = pAcad->UnloadDVB(bsrtVBAName.m_str);
  25.   }
  26. }

 

Источник: http://adndevblog.typepad.com/autocad/2013/01/load-dvb-and-run-vba-macro-using-autocad-com-api-in-objectarx.html

Автор перевода: Александр Ривилис

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

Опубликовано 26.06.2015