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

ADN Club => Inventor API => Тема начата: filat от 27-05-2021, 08:08:27

Название: Можно ли в событиях организовать прерывание вызванной команды
Отправлено: filat от 27-05-2021, 08:08:27
Есть событие OnActivateCommand, которое срабатывает на запуск команд. Есть ли возможность в нем(или может в каком-то другом событии) принудительно завершить (отменить) вызванную команду?
Название: Re: Можно ли в событиях организовать прерывание вызванной команды
Отправлено: Александр Ривилис от 27-05-2021, 12:20:30
CommandManager.StopActiveCommand() не подходит?
Название: Re: Можно ли в событиях организовать прерывание вызванной команды
Отправлено: filat от 27-05-2021, 13:50:45
Я понимаю, что я чего-то не понимаю, но чего я не понимаю - я не понимаю! :o
Код - vb.net [Выбрать]
  1. Private Sub m_UserInputEvents_OnActivateCommand(ByVal CommandName As String, ByVal Context As Inventor.NameValueMap) Handles m_UserInputEvents.OnActivateCommand
  2.       If CommandName = "SheetMetalPunchToolCmd" Then
  3.                 Debug.Print(m_inventorApplication.CommandManager.ActiveCommand)
  4.                 m_inventorApplication.CommandManager.StopActiveCommand()
  5.        End If
  6.  
  7. End Sub
Только вот дебаг выдает имя активной команды: AppSelectNorthwestArrowCmd -  и это вместо пунша!?
Похоже нужная команда еще не началась, хотя сообщение о ней уже есть в событии. Поток аддина работает параллельно АИ? Попробовать поставить цикл ожидания, пока не появиться нужное имя активной команды? Или есть еще какие-то предложения?