Можно ли для объекта программного моделирования вызвать окно редактирования в АИ

Автор Тема: Можно ли для объекта программного моделирования вызвать окно редактирования в АИ  (Прочитано 811 раз)

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

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

  • ADN Club
  • ***
  • Сообщений: 238
  • Карма: 2
Например у меня в коде обработки детали есть переменная:
Dim oPunchTool As PunchToolFeature
В результате работы кода, эта переменная обретает значение:
oPunchTool = oSMFeatures.PunchToolFeatures.Add(...
А в модели детали появляется соответствующее отверстие, для которого в браузере детали можно вызвать окно редактирования средствами интерфейса АИ.
Вопрос: можно ли из среды программного кода для переменной oPunchTool дать команду на открытие она редактирования в среде АИ?


Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 658
  • Карма: 169
  • Skype: mikazakov@mail.ru
Ну в браузере выделить нужную фичу соответствующую oPunchTool и потом через CommandManager вызвать редактирование (на память не скажу название команды, там в хэлпе есть пример выводит название всех команд)

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

  • ADN Club
  • ***
  • Сообщений: 238
  • Карма: 2
Да с названием команд вопроса нет.
Но я знаю как вызвать команду для создания нового элемента, а вот как ее прикрутить к редактированию существующего элемента?

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 658
  • Карма: 169
  • Skype: mikazakov@mail.ru
Но я знаю как вызвать команду для создания нового элемента, а вот как ее прикрутить к редактированию существующего элемента?
Ну ты в браузере же видешь свой панчтул, прошерсти браузер и найди его там программно, потом выдели его там и вызови команду на редактирование через комманд менеджер

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

  • ADN Club
  • ***
  • Сообщений: 238
  • Карма: 2
Вот я торможу! До меня не доходило, что команда на редактирование и команда на создание - это две разные команды!
Поэтому я и не догонял: как команду на создание можно вывернуть в редактирование имеющегося объекта!?
И да, в браузере, в моем случае, ничего искать не нужно - саму переменную можно добавить в выделение!

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 658
  • Карма: 169
  • Skype: mikazakov@mail.ru
Я, если честно, немного не понимаю что ты там пытаешься объяснить
но вот пример из хэлпа, может он тебе поможет

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