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

ADN Club => Inventor API => Тема начата: filat от 26-05-2021, 11:13:03

Название: Можно ли для объекта программного моделирования вызвать окно редактирования в АИ
Отправлено: filat от 26-05-2021, 11:13:03
Например у меня в коде обработки детали есть переменная:
Dim oPunchTool As PunchToolFeature
В результате работы кода, эта переменная обретает значение:
oPunchTool = oSMFeatures.PunchToolFeatures.Add(...
А в модели детали появляется соответствующее отверстие, для которого в браузере детали можно вызвать окно редактирования средствами интерфейса АИ.
Вопрос: можно ли из среды программного кода для переменной oPunchTool дать команду на открытие она редактирования в среде АИ?
(https://i.postimg.cc/Xp5PG9Jn/Edit.jpg) (https://postimg.cc/Xp5PG9Jn)
Название: Re: Можно ли для объекта программного моделирования вызвать окно редактирования в АИ
Отправлено: mikazakov от 26-05-2021, 17:36:17
Ну в браузере выделить нужную фичу соответствующую oPunchTool и потом через CommandManager вызвать редактирование (на память не скажу название команды, там в хэлпе есть пример выводит название всех команд)
Название: Re: Можно ли для объекта программного моделирования вызвать окно редактирования в АИ
Отправлено: filat от 26-05-2021, 17:44:02
Да с названием команд вопроса нет.
Но я знаю как вызвать команду для создания нового элемента, а вот как ее прикрутить к редактированию существующего элемента?
Название: Re: Можно ли для объекта программного моделирования вызвать окно редактирования в АИ
Отправлено: mikazakov от 27-05-2021, 04:25:28
Но я знаю как вызвать команду для создания нового элемента, а вот как ее прикрутить к редактированию существующего элемента?
Ну ты в браузере же видешь свой панчтул, прошерсти браузер и найди его там программно, потом выдели его там и вызови команду на редактирование через комманд менеджер
Название: Re: Можно ли для объекта программного моделирования вызвать окно редактирования в АИ
Отправлено: filat от 27-05-2021, 07:52:08
Вот я торможу! До меня не доходило, что команда на редактирование и команда на создание - это две разные команды!
Поэтому я и не догонял: как команду на создание можно вывернуть в редактирование имеющегося объекта!?
И да, в браузере, в моем случае, ничего искать не нужно - саму переменную можно добавить в выделение!
Название: Re: Можно ли для объекта программного моделирования вызвать окно редактирования в АИ
Отправлено: mikazakov от 28-05-2021, 04:43:04
Я, если честно, немного не понимаю что ты там пытаешься объяснить
но вот пример из хэлпа, может он тебе поможет

Navigation between browser and data API Sample

Код - Visual Basic [Выбрать]
  1. Sub DataModelToBrowser()
  2.     ' Create a new part document, using the default part template.
  3.    Dim oPartDoc As PartDocument
  4.     Set oPartDoc = ThisApplication.Documents.Add(kPartDocumentObject)
  5.  
  6.     ' Set a reference to the component definition.
  7.    Dim oCompDef As PartComponentDefinition
  8.     Set oCompDef = oPartDoc.ComponentDefinition
  9.    
  10.     ' Create a new workplane parallel to the XY plane.
  11.    Dim oWorkPlane As WorkPlane
  12.     Set oWorkPlane = oCompDef.WorkPlanes.AddByPlaneAndOffset(oCompDef.WorkPlanes.Item(3), 1)
  13.    
  14.     ' Get the browser node definition associated with the work plane.
  15.    Dim oNativeBrowserNodeDef As NativeBrowserNodeDefinition
  16.     Set oNativeBrowserNodeDef = oPartDoc.BrowserPanes.GetNativeBrowserNodeDefinition(oWorkPlane)
  17.    
  18.     ' Get the top browser node of the model pane.
  19.    Dim oTopBrowserNode As BrowserNode
  20.     Set oTopBrowserNode = oPartDoc.BrowserPanes.ActivePane.TopNode
  21.    
  22.     ' Get the work plane browser node.
  23.    ' This assumes that only one node references the browser node definition.
  24.    ' An example of multiple nodes referencing a single definition is a shared
  25.    ' sketch. The browser may have multiple nodes that represent the same shared
  26.    ' sketch, but all of them reference the same definition.
  27.    Dim oWorkPlaneNode As BrowserNode
  28.     Set oWorkPlaneNode = oTopBrowserNode.AllReferencedNodes(oNativeBrowserNodeDef).Item(1)
  29.    
  30.     ' Get the browser node definition from the browser node.
  31.    Set oNativeBrowserNodeDef = Nothing
  32.     Set oNativeBrowserNodeDef = oWorkPlaneNode.BrowserNodeDefinition
  33.    
  34.     ' Get the work plane from the browser node definition.
  35.    Set oWorkPlane = Nothing
  36.     Set oWorkPlane = oNativeBrowserNodeDef.NativeObject
  37.    
  38.     ' Select the work plane to make sure we have the right object.
  39.    oPartDoc.SelectSet.Select oWorkPlane
  40. End Sub