Процедура работы с приложением
После установки приложения и выполнения необходимых условий, пользователь увидит на главной странице Autodesk Inventor на вкладке «Сборка» кнопку «Включение/выключение видимости» (Рисунок 1).
Рисунок 1. Начальная панель с кнопкой приложения
Для правильного выполнения программы, необходимо сначала выбрать деталь сборки и нажать на эту кнопку, произойдет процесс изменения параметра «Наличие в сечении и сборке» пользователь увидит диалоговое окно, в котором сообщится «Видимость изменена» (Рисунок 2).
Рисунок 2. Оповещение об изменении видимости
Создание Registry-free Inventor AddIn
Сведения о AddIn
AddIn – Это некоторое приложение, написанное для определенной программы, которое используется в этой программе, с целью упрощения работы с программой.
Преимущества Add-In
Загружается при старте Inventor
Можно вести разработку на новых языках
Возможна полная интеграция в интерфейс Inventor
Лучше поддержка событий
Простая установка
Легче управлять исходным кодом
Код безопаснее
Более эффективная поддержка транзакций
Поэтапное создание AddIn
В Visual Studio создаем проект и используем шаблон «Autodesk Inventor AddIn» (Рисунок 3).
Рисунок 3. Выбор шаблона
Далее открываем окно (по умолчанию) кода StandardAddInServer и добавляем код
Imports Inventor
Imports System.Runtime.InteropServices
Imports Microsoft.Win32
Namespace HelloWorldAddIn_VB
<ProgIdAttribute("HelloWorldAddIn_VB.StandardAddInServer"), _
GuidAttribute("82ed13f7-bdb1-4685-840e-6fcc84a0f84c")> _
Public Class StandardAddInServer
Implements Inventor.ApplicationAddInServer
Public m_inventorApplication As Inventor.Application
Private mAsmButtonDef As ButtonDefinition
Private mPartButtonDef As ButtonDefinition
Private Const strAddInGuid As String = "b22d0530-5e1f-426d-9a76-5b383def94fa"
#Region "ApplicationAddInServer Members"
Public Sub Activate(ByVal addInSiteObject As Inventor.ApplicationAddInSite, ByVal firstTime As Boolean) Implements Inventor.ApplicationAddInServer.Activate
m_inventorApplication = addInSiteObject.Application
Dim oCtrlDefs As ControlDefinitions _
= m_inventorApplication.CommandManager.ControlDefinitions
Dim oIPictureDisp As Object = PictureDispConverter _
.ToIPictureDisp(My.Resources.Icon)
mAsmButtonDef = oCtrlDefs.AddButtonDefinition( _
"Включение/выключение видимости", _
"Autodesk:RibbonVBTest:Button1", _
CommandTypesEnum.kQueryOnlyCmdType, _
strAddInGuid, _
"Описание", _
"Изменить видимость в сечении", _
oIPictureDisp, _
oIPictureDisp, _
ButtonDisplayEnum.kDisplayTextInLearningMode)
If (firstTime) Then
Dim UIManager As UserInterfaceManager _
= m_inventorApplication.UserInterfaceManager
Dim assemblyRibbon As Inventor.Ribbon _
= UIManager.Ribbons.Item("Assembly")
Dim assemblyTab As Inventor.RibbonTab _
= assemblyRibbon.RibbonTabs.Item("id_TabAssemble")
Dim panel1 As Inventor.RibbonPanel _
= assemblyTab.RibbonPanels.Add( _
"Работа с сечением", _
"Autodesk:RibbonVBTest:Panel1", _
strAddInGuid)
panel1.CommandControls.AddButton(mAsmButtonDef, True)
End If
AddHandler mAsmButtonDef.OnExecute, AddressOf Me.mAsmButtonDef_OnExecute
End Sub
#Region "Event handlers"
Private Sub mAsmButtonDef_OnExecute(ByVal Context As Inventor.NameValueMap)
Dim Assem As AssemblyDocument
Dim PartD As PartDocument
Dim oModelSettings As ModelingSettings
Assem = m_inventorApplication.ActiveDocument
If Assem.SelectSet.Count = 0 Then
MsgBox("Выберите деталь")
Return
End If
Try
Dim selec As SelectSet
selec = Assem.SelectSet
Dim detal As ComponentOccurrence = Nothing
For Each obj As Object In selec
detal = obj
PartD = detal.Definition.Document
oModelSettings = PartD.ModelingSettings
If oModelSettings.AllowSectioningThruPart = True Then
oModelSettings.AllowSectioningThruPart = False
ElseIf oModelSettings.AllowSectioningThruPart = False Then
oModelSettings.AllowSectioningThruPart = True
End If
Next
Catch
End Try
End Sub
#End Region
Public Sub Deactivate() Implements Inventor.ApplicationAddInServer.Deactivate
Marshal.ReleaseComObject(m_inventorApplication)
m_inventorApplication = Nothing
System.GC.WaitForPendingFinalizers()
System.GC.Collect()
End Sub
Public ReadOnly Property Automation() As Object Implements Inventor.ApplicationAddInServer.Automation
Get
Return Nothing
End Get
End Property
Public Sub ExecuteCommand(ByVal commandID As Integer) Implements Inventor.ApplicationAddInServer.ExecuteCommand
End Sub
#End Region
End Class
Компилируем, сохраняем проект далее для работы AddIn необходимо:
Из папки Ваш путь \Program\obj\Debug\ скопировать файл Program.dll
в папку Ваш путь\Autodesk\Inventor 2015\Bin
Из папки Ваш путь \Program\ скопировать файл Autodesk.Program.Inventor
в папку Ваш путь\Autodesk\Inventor 2015\Addins
В Autodesk Inventor переходим на вкладку «Инструменты» далее кнопка «Надстройка» (Рисунок 4), находим наш Addin жмем на параметр «Загружать автоматически». Нажимаем «ок». Теперь при запуске Autodesk Inventor Addin будет загружаться
Рисунок 4. Список надстроек
