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

ADN Club => Inventor API => Тема начата: Мария от 12-12-2017, 19:39:39

Название: Ошибка при вызове Document.SaveAs в плагине для Inventor
Отправлено: Мария от 12-12-2017, 19:39:39
Добрый день.
 
В плагине для Inventor 2017 есть команда, по которой предполагается сохранить открытую сборку по новому пути. Примерно так:
 
Код - C# [Выбрать]
  1. global::Inventor.Document document = GetApp().ActiveDocument;
  2. if (document == null)
  3. return;
  4. document.SaveAs(@"C:\123\Корпус.iam", true);

Inventor падает с ошибкой:
System.InvalidCastException: 'Не удалось привести тип объекта "Autodesk.Inventor.InvAIRLookContent.DocTab" к типу "System.Windows.UIElement".'
 
Подскажите, в чем может быть проблема?
Название: Re: Ошибка при вызове Document.SaveAs в плагине для Inventor
Отправлено: mikazakov от 12-12-2017, 19:52:03
В плагине для Inventor 2017 есть команда
Я бы так сказал в API инвентора есть метод.

Теперь по существу:
System.InvalidCastException: 'Не удалось привести тип объекта "Autodesk.Inventor.InvAIRLookContent.DocTab" к типу "System.Windows.UIElement".'

На винде 7 в инвенторе 2018 у меня это проблем не вызвало.
Судя по сообщению, проблемы с WPF технологией. Что за винда стоит? 10? Нужно почитать на какую винду инвентор 2017 рассчитан.
Название: Re: Ошибка при вызове Document.SaveAs в плагине для Inventor
Отправлено: Александр Ривилис от 13-12-2017, 01:49:03
Мария,
Приветствую на форуме! Обратите внимание как следует форматировать код у нас на форуме (у меня в подписи).
Что касается ошибки, то было бы полезно увидеть всю трассировку. Ну и если стоят не все обновления на Inventor, то установите их.
Название: Re: Ошибка при вызове Document.SaveAs в плагине для Inventor
Отправлено: Мария от 13-12-2017, 12:10:55
Что за винда стоит? 10? Нужно почитать на какую винду инвентор 2017 рассчитан.

Windows 10. В списке системных требований Inventor 2017 она указана

Что касается ошибки, то было бы полезно увидеть всю трассировку. Ну и если стоят не все обновления на Inventor, то установите их.

Насчет обновлений - попробую. Насчет трассировки - вот все что есть:
System.InvalidCastException occurred
  HResult=0x80004002
  Message=Не удалось привести тип объекта "Autodesk.Inventor.InvAIRLookContent.DocTab" к типу "System.Windows.UIElement".
  Source=InvAIRLookContent
  StackTrace:
   at Autodesk.Inventor.InvAIRLookContent.DocTabBar.FindByTag(Object obj)
Название: Re: Ошибка при вызове Document.SaveAs в плагине для Inventor
Отправлено: Александр Ривилис от 13-12-2017, 16:30:32
1. Это происходит с любым файлом или с каким-то конкретным?
2. Если установлена версия .NET Framework 4.7, то откатить её до версии 4.6.2 или обновить до 4.7.1:
https://knowledge.autodesk.com/ru/search-result/caas/sfdcarticles/sfdcarticles/RUS/Autodesk-products-not-working-after-installing-NET-Framework-4-7.html
3. Нужен тестовый проект, на котором эта ошибка воспроизводится. Откуда уверенность, что ошибка происходит именно на Document.SaveAs? Нигде в интернете ничего подобного не встречалось.
4. Та ли версия сборок Inventor используется, что и в самом Inventor?
Название: Re: Ошибка при вызове Document.SaveAs в плагине для Inventor
Отправлено: Мария от 19-12-2017, 19:11:47
Разобралась. Ошибка возникала из-за того, что вызов метода SaveAs производился из другого домена.
Спасибо всем за помощь и участие!
Название: Re: Ошибка при вызове Document.SaveAs в плагине для Inventor
Отправлено: mikazakov от 19-12-2017, 19:16:39
вызов метода SaveAs производился из другого домена
интересно, что за задачи такие что нужно домены юзать?
Название: Re: Ошибка при вызове Document.SaveAs в плагине для Inventor
Отправлено: Александр Ривилис от 19-12-2017, 19:29:32
Разобралась. Ошибка возникала из-за того, что вызов метода SaveAs производился из другого домена.
Спасибо всем за помощь и участие!
Ну до этого бы мы пожалуй не додумались сами. :)
Название: Re: Ошибка при вызове Document.SaveAs в плагине для Inventor
Отправлено: Мария от 19-12-2017, 19:30:43
интересно, что за задачи такие что нужно домены юзать?
Задача интеграции с PDM-системой. Зачем используется отдельный домен я пока не разобралась, код достался в наследство)
Название: Re: Ошибка при вызове Document.SaveAs в плагине для Inventor
Отправлено: Мария от 19-12-2017, 19:32:09
Ну до этого бы мы пожалуй не додумались сами.
Я начала делать тестовый проект, чтобы в нем не было ничего лишнего, и он заработал..) А пока удаляла лишнее увидела что там домен создается...