-PUBLISH через acedCommandC или acedCommandS в 2015

Автор Тема: -PUBLISH через acedCommandC или acedCommandS в 2015  (Прочитано 27552 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: -PUBLISH через acedCommandC или acedCommandS в 2015
« Ответ #30 : 22-07-2014, 13:13:54 »
Так как вообсе от DSD отказатся не получиается, измемений не вносил.
Это в .NET не получается, т.к. в нём приходится менять "PromptForDwfName=TRUE" на "PromptForDwfName=FALSE", но ты можешь использовать dsdDataObj.setPromptForDwfName(FALSE); и тогда файл не нужен.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн begizАвтор темы

  • ADN Club
  • ***
  • Сообщений: 161
  • Карма: 8
  • Skype: begiz_i
Re: -PUBLISH через acedCommandC или acedCommandS в 2015
« Ответ #31 : 22-07-2014, 13:27:19 »
Точно,
пробежал глазами до dsdData.ReadDsd(dsdFile);
и подумал что все равно в фаил записывается.
Сейчас попробую поправить.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: -PUBLISH через acedCommandC или acedCommandS в 2015
« Ответ #32 : 22-07-2014, 13:31:16 »
Кстати, пользуйся пожалуйста таким форматированием кода на форуме, а то я уже устал править:



Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн begizАвтор темы

  • ADN Club
  • ***
  • Сообщений: 161
  • Карма: 8
  • Skype: begiz_i
Re: -PUBLISH через acedCommandC или acedCommandS в 2015
« Ответ #33 : 22-07-2014, 14:54:15 »
А я то думаю чего это у меня фортамирование прыгает :)
Виноват, исправляюсь.
Обновленный рабочий код, без DSD.

Код - C++ [Выбрать]
  1.         AcDbObjectId objDictId = acdbHostApplicationServices()->workingDatabase()->layoutDictionaryId();
  2.         AcDbDictionary *pDict;
  3.         acdbOpenObject(pDict, objDictId, AcDb::kForRead);
  4.         AcDbDictionaryIterator *pI = pDict->newIterator();
  5.         pDict->close();
  6.  
  7.         AcPlDSDEntries entries;
  8.  
  9.         while(!pI->done())
  10.         {
  11.                 AcPlDSDEntry dsd_entry;
  12.                 dsd_entry.setDwgName(filename_2);
  13.                 dsd_entry.setLayout(pI->name());
  14.                 entries.append(dsd_entry);
  15.                 pI->next();
  16.         }
  17.         delete pI;
  18.  
  19.         AcPlDSDData dsdDataObj;
  20.         dsdDataObj.setSheetType(AcPlDSDEntry::SheetType::kMultiDWF);
  21.         dsdDataObj.setProjectPath(filename_2);
  22.         dsdDataObj.setDestinationName(ph);
  23.         dsdDataObj.setDSDEntries(entries);
  24.         dsdDataObj.setPromptForDwfName(FALSE);
  25.         DeleteFile(dsdDataObj.destinationName());
  26.                
  27.         struct resbuf vl_new;
  28.         vl_new.restype = RTSHORT;
  29.         vl_new.resval.rint = 0;
  30.         acedSetVar(_T("backgroundplot"),&vl_new);
  31.                                
  32.     AcPlPlotConfig* pConfig = NULL;        
  33.     bool bShowPlotProgress = true;
  34.         acplPublishExecute( dsdDataObj, pConfig, bShowPlotProgress );
  35.