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

26/06/2020

Design Automation: Получение подробностей об ошибках построения моделей Inventor

При выполнении ряда операций с моделью Inventor-а могут возникать ошибки моделирования. Их легко увидеть при работе с десктопной версией приложения, однако в случае выполнения тех же действий на сервере Design Automation, где отсутствует пользовательский интерфейс, отследить, что же именно пошло не так, несколько сложнее.

В Inventor есть сущность Error Manager, которая также отображает сообщения в пользовательском интерфейсе десктопного приложения:

Используя объект ErrorManager в InventorAPI Вы можете получить доступ к этой информации. Это поможет быстрее разобраться в проблемах при обновлении модели и позволит предоставить информацию пользователю в случае, если что-то пошло не так.

В качестве примера у меня есть WorkItem, принимающий документ ipt и параметр "height", задающий высоту выдавливания. Код, выполняемый сервером, устанавливает значение высоты равное нулю и выводит информацию, полученную из объекта ErrorManager

Код - C#: [Выделить]
  1. public void RunWithArguments(Document doc, NameValueMap map)
  2. {
  3.     var em = inventorApplication.ErrorManager;
  4.     LogTrace($"Checking ErrorManager before problem");
  5.     LogTrace($"HasErrors = {em.HasErrors}");
  6.     LogTrace($"HasWarnings = {em.HasWarnings}");
  7.     LogTrace($"AllMessages = {em.AllMessages}");
  8.  
  9.     PartDocument pd = doc as PartDocument;
  10.     pd.ComponentDefinition.Parameters["height"].Expression = "0";
  11.     pd.Update2();
  12.  
  13.     LogTrace($"Checking ErrorManager after problem");
  14.     LogTrace($"HasErrors = {em.HasErrors}");
  15.     LogTrace($"HasWarnings = {em.HasWarnings}");
  16.     LogTrace($"AllMessages = {em.AllMessages}");
  17. }

В отчёте выполнения WorkItem мы увидим:

Код - HTML: [Выделить]
  1. [06/15/2020 10:34:06]     InventorCoreConsole.exe Information: 0 : RunWithArguments called
  2. [06/15/2020 10:34:06]     InventorCoreConsole.exe Information: 0 : Checking ErrorManager before problem
  3. [06/15/2020 10:34:06]     InventorCoreConsole.exe Information: 0 : HasErrors = False
  4. [06/15/2020 10:34:06]     InventorCoreConsole.exe Information: 0 : HasWarnings = False
  5. [06/15/2020 10:34:06]     InventorCoreConsole.exe Information: 0 : AllMessages = <ErrorsAndWarnings/>
  6. [06/15/2020 10:34:07]     InventorCoreConsole.exe Information: 0 : Checking ErrorManager after problem
  7. [06/15/2020 10:34:07]     InventorCoreConsole.exe Information: 0 : HasErrors = False
  8. [06/15/2020 10:34:07]     InventorCoreConsole.exe Information: 0 : HasWarnings = True
  9. [06/15/2020 10:34:07]     InventorCoreConsole.exe Information: 0 : AllMessages = <ErrorsAndWarnings><Warning Message="HiddenBox.ipt: Errors occurred during update"><Error Message="Extrusion1: Could not build this Extrusion"><Error Message="Extrusion distance is zero.  Use Edit Extruded Feature to change the extrusion distance."/></Error></Warning></ErrorsAndWarnings>
  10. [06/15/2020 10:34:07]     InventorCoreConsole.exe Warning: 0 : Inventor message: HiddenBox.ipt: Errors occurred during update
  11. [06/15/2020 10:34:07]     InventorCoreConsole.exe Warning: 0 : Inventor inner xml: <Error Message="Extrusion1: Could not build this Extrusion"><Error Message="Extrusion distance is zero.  Use Edit Extruded Feature to change the extrusion distance." /></Error>

 

Источник: https://forge.autodesk.com/blog/get-modeling-error-details-inventor

Автор перевода: Александр Игнатович
Опубликовано 26.06.2020