Beispiel #1
0
        public void Deactivate()
        {
            //the Deactivate method is called by Inventor when the AddIn is unloaded
            //the AddIn will be unloaded either manually by the user or
            //when the Inventor session is terminated

            try
            {
                m_userInterfaceEvents.OnResetCommandBars  -= UserInterfaceEventsSink_OnResetCommandBarsEventDelegate;
                m_userInterfaceEvents.OnResetEnvironments -= UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate;

                UserInterfaceEventsSink_OnResetCommandBarsEventDelegate  = null;
                UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate = null;
                m_userInterfaceEvents = null;
                if (m_partSketchSlotRibbonPanel != null)
                {
                    m_partSketchSlotRibbonPanel.Delete();
                }

                //release inventor Application object
                Marshal.ReleaseComObject(m_inventorApplication);
                m_inventorApplication = null;

                GC.WaitForPendingFinalizers();
                GC.Collect();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }
        public void Activate(Inventor.ApplicationAddInSite addInSiteObject, bool firstTime)
        {
            // This method is called by Inventor when it loads the addin.
            // The AddInSiteObject provides access to the Inventor Application object.
            // The FirstTime flag indicates if the addin is loaded for the first time.

            // Initialize AddIn members.
            m_inventorApplication = addInSiteObject.Application;

            // TODO: Add ApplicationAddInServer.Activate implementation.
            // e.g. event initialization, command creation etc.
            // Connect to the user-interface events to handle a ribbon reset.

            {
                m_uiEvents = m_inventorApplication.UserInterfaceManager.UserInterfaceEvents;
                m_uiEvents.OnResetRibbonInterface += m_uiEvents_OnResetRibbonInterface;

                stdole.IPictureDisp         largeIcon   = PictureDispConverter.ToIPictureDisp(InvAddIn.Resource1.Large);
                stdole.IPictureDisp         smallIcon   = PictureDispConverter.ToIPictureDisp(InvAddIn.Resource1.Small);
                Inventor.ControlDefinitions controlDefs = m_inventorApplication.CommandManager.ControlDefinitions;
                m_sampleButton1            = controlDefs.AddButtonDefinition("License check", "Entitlement API", CommandTypesEnum.kShapeEditCmdType, AddInClientID(), "Entitlement api", "Entitlement api", smallIcon, largeIcon);
                m_sampleButton1.OnExecute += m_sampleButton1_OnExecute;

                // Add to the user interface, if it's the first time.
                if (firstTime)
                {
                    AddToUserInterface();
                }
            }
        }
Beispiel #3
0
        public InventorEvents()
        {
            cmd = addin.m_inventorApplication.CommandManager;

            uInterfaceEv = addin.m_inventorApplication.UserInterfaceManager.UserInterfaceEvents;
            appEv        = addin.m_inventorApplication.ApplicationEvents;
        }
        public void Activate(ApplicationAddInSite addInSiteObject, bool firstTime)
        {
            try
            {
                //the Activate method is called by Inventor when it loads the addin
                //the AddInSiteObject provides access to the Inventor Application
                //object the FirstTime flag indicates if the addin is loaded for the
                //first time

                //initialize AddIn members
                m_invApp   = addInSiteObject.Application;
                m_Importer = new McMasterImporter(this);

                if (Properties.Settings.Default.projectFolder == "")
                {
                    Properties.Settings.Default.projectFolder =
                        m_invApp.DesignProjectManager.ActiveDesignProject
                        .WorkspacePath + "\\MCMASTER_REPOSITORY\\";
                    Properties.Settings.Default.Save();
                }
                //initialize event delegates
                m_UIEvents = m_invApp.UserInterfaceManager.UserInterfaceEvents;

                UIESink_OnResetRibbonInterfaceEventDelegate = new
                                                              UserInterfaceEventsSink_OnResetRibbonInterfaceEventHandler(
                    UIE_OnResetRibbonInterface);
                m_UIEvents.OnResetRibbonInterface +=
                    UIESink_OnResetRibbonInterfaceEventDelegate;

                m_Button = new McMasterButton(this);

                if (firstTime == true)
                {
                    //access user interface manager
                    UserInterfaceManager UIManager = m_invApp.UserInterfaceManager;

                    //create the UI for classic interface
                    if (UIManager.InterfaceStyle == InterfaceStyleEnum.kClassicInterface)
                    {
                        //For first iterations assume RibbonInterface
                    }
                    //create the UI for ribbon interface
                    else if (UIManager.InterfaceStyle ==
                             InterfaceStyleEnum.kRibbonInterface)
                    {
                        CreateOrUpdateRibbonUserInterface();
                    }
                }

                InitializeCEF();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }
Beispiel #5
0
            // This method is called by Inventor when the AddIn is unloaded. The AddIn will be
            // unloaded either manually by the user or when the Inventor session is terminated.
            public void Deactivate()
            {
                // Release objects.
                MyFirstButton   = null;
                MySecondButton  = null;
                CloseDocButton  = null;
                ExportDxfButton = null;
                m_uiEvents      = null;
                Globals.invApp  = null;

                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
Beispiel #6
0
        public void Activate(Inventor.ApplicationAddInSite addInSiteObject, bool firstTime)
        {
            //MASSIF NOTES: Probably best not to put license checks here, otherwise you might slow down the Inventor startup.

            // This method is called by Inventor when it loads the addin.
            // The AddInSiteObject provides access to the Inventor Application object.
            // The FirstTime flag indicates if the addin is loaded for the first time.

            // Initialize AddIn members.
            m_inventorApplication = addInSiteObject.Application;

            //Create some UI
            Ribbon      partRibbon  = m_inventorApplication.UserInterfaceManager.Ribbons["ZeroDoc"];
            RibbonTab   massifTab   = partRibbon.RibbonTabs.Add("Massif SDK", "MASSIF_TAB_SAMPLE", Guid.NewGuid().ToString());
            RibbonPanel massifPanel = massifTab.RibbonPanels.Add("Massif Sample Tool", "PNL_MASSIF_SAMPLE", Guid.NewGuid().ToString());

            //Add a control definition for a button
            ControlDefinitions controlDefs = m_inventorApplication.CommandManager.ControlDefinitions;

            //Sort out the icon
            var btnImage = Properties.Resources.MassifIcon;

            stdole.IPictureDisp iPictDisp = PictureDispConverter.ToIPictureDisp(btnImage);

            //Create button definition
            runBtnDef = controlDefs.AddButtonDefinition("Run Test",
                                                        "{6C426CFE-E9BC-44CB-8B46-F2D4BDE05AE6}",
                                                        CommandTypesEnum.kQueryOnlyCmdType,
                                                        "573e1c9f-6fa9-4799-9afc-c4f0ad2b9d44",
                                                        "Test Massif licensing",
                                                        "Click to check that you have a license to run this addin.",
                                                        iPictDisp,
                                                        iPictDisp,
                                                        ButtonDisplayEnum.kDisplayTextInLearningMode
                                                        );

            //Add button to panel
            CommandControl startControl = massifPanel.CommandControls.AddButton(runBtnDef, true, true);

            uiEvents = m_inventorApplication.UserInterfaceManager.UserInterfaceEvents;

            try
            {
                runBtnDef.OnExecute += new ButtonDefinitionSink_OnExecuteEventHandler(RunBtnDef_OnExecute);
            }

            catch
            {
            }
        }
        public void Deactivate()
        {
            // This method is called by Inventor when the AddIn is unloaded.
            // The AddIn will be unloaded either manually by the user or
            // when the Inventor session is terminated

            // TODO: Add ApplicationAddInServer.Deactivate implementation

            m_uiEvents.OnResetRibbonInterface -= m_uiEvents_OnResetRibbonInterface;

            // Release objects.
            m_inventorApplication = null;
            m_uiEvents            = null;

            GC.Collect();
            GC.WaitForPendingFinalizers();
        }
Beispiel #8
0
        public void Activate(Inventor.ApplicationAddInSite addInSiteObject, bool firstTime)
        {
            // This method is called by Inventor when it loads the addin.
            // The AddInSiteObject provides access to the Inventor Application object.
            // The FirstTime flag indicates if the addin is loaded for the first time.

            // Initialize AddIn members.
            m_inventorApplication = addInSiteObject.Application;

            // TODO: Add ApplicationAddInServer.Activate implementation.
            // e.g. event initialization, command creation etc.

            // Get a reference to the UserInterfaceManager object.
            Inventor.UserInterfaceManager UIManager = m_inventorApplication.UserInterfaceManager;

            // Get a reference to the ControlDefinitions object.
            ControlDefinitions controlDefs = m_inventorApplication.CommandManager.ControlDefinitions;

            // Get the images from the resources.  They are stored as .Net images and the
            // PictureConverter class is used to convert them to IPictureDisp objects, which
            // the Inventor API requires.
            stdole.IPictureDisp icon_large = PictureConverter.ImageToPictureDisp(Properties.Resources.ribbon_icon);
            stdole.IPictureDisp icon_small = PictureConverter.ImageToPictureDisp(Properties.Resources.icon16);

            // Create the button definition.
            m_buttonDef = controlDefs.AddButtonDefinition("Tabs", "UIRibbonSampleOne",
                                                          CommandTypesEnum.kNonShapeEditCmdType,
                                                          "{0defbf22-e302-4266-9bc9-fb80d5c8eb7e}", "", "", icon_small, icon_large);

            // Call the function to add information to the user-interface.
            if (firstTime)
            {
                CreateUserInterface();
                //PrintRibbonNames();
            }

            // Connect to UI events to be able to handle a UI reset.
            m_uiEvents = m_inventorApplication.UserInterfaceManager.UserInterfaceEvents;
            m_uiEvents.OnResetRibbonInterface += m_uiEvents_OnResetRibbonInterface;

            m_buttonDef.OnExecute += m_buttonDef_OnExecute;
        }
Beispiel #9
0
        public void Activate(ApplicationAddInSite addInSiteObject, bool firstTime)
        {
            _application = addInSiteObject.Application;
            var controlDefs  = _application.CommandManager.ControlDefinitions;
            var smallPicture = PictureConverter.ImageToPictureDisp(Properties.Resources.Autodesk.ToBitmap());
            var largePicture = PictureConverter.ImageToPictureDisp(Properties.Resources.Autodesk.ToBitmap());

            _buttonDefinition = controlDefs.AddButtonDefinition(_buttonDisplayName, _buttonInternalName,
                                                                CommandTypesEnum.kNonShapeEditCmdType, _clientId, _buttonDescription, _buttonTooltip,
                                                                smallPicture, largePicture);
            _buttonDefinition.OnExecute += ButtonOnExecute;

            if (firstTime)
            {
                CreateUserInterface();
            }

            _userInterfaceEvents = _application.UserInterfaceManager.UserInterfaceEvents;
            _userInterfaceEvents.OnResetRibbonInterface += context => CreateUserInterface();
        }
Beispiel #10
0
            // This method is called by Inventor when it loads the AddIn. The AddInSiteObject provides access
            // to the Inventor Application object. The FirstTime flag indicates if the AddIn is loaded for
            // the first time. However, with the introduction of the ribbon this argument is always true.
            public void Activate(ApplicationAddInSite addInSiteObject, bool firstTime)
            {
                try
                {
                    // Initialize AddIn members.
                    Globals.invApp = addInSiteObject.Application;

                    // Connect to the user-interface events to handle a ribbon reset.
                    m_uiEvents = Globals.invApp.UserInterfaceManager.UserInterfaceEvents;

                    // *********************************************************************************
                    // * The remaining code in this Sub is all for adding the add-in into Inventor's UI.
                    // * It can be deleted if this add-in doesn't have a UI and only runs in the
                    // * background handling events.
                    // *********************************************************************************

                    // ButtonName = create_button(display_text, internal_name, icon_path)
                    CreateButton create_button = new CreateButton(button_template);
                    MyFirstButton   = create_button("    My First    \n    Command    ", "my_first_button", @"ButtonResources\MyIcon1");
                    MySecondButton  = create_button("    My Second    \n    Command    ", "my_second_button", @"ButtonResources\MyIcon2");
                    CloseDocButton  = create_button("    Close    \n    Document    ", "close_doc_button", @"ButtonResources\MyIcon3");
                    ExportDxfButton = create_button("    Export    \n    DXF    ", "export_dxf_button", @"ButtonResources\MyIcon4");

                    // Add to the user interface, if it's the first time.
                    // If this add-in doesn't have a UI but runs in the background listening
                    // to events, you can delete this.
                    if (firstTime)
                    {
                        AddToUserInterface();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Unexpected failure in the activation of the add-in \"My_CSharp_AddIn\"" + System.Environment.NewLine + System.Environment.NewLine + ex.Message);
                }
            }
        public void Activate(Inventor.ApplicationAddInSite addInSiteObject, bool firstTime)
        {
            try
            {
                //the Activate method is called by Inventor when it loads the addin
                //the AddInSiteObject provides access to the Inventor Application object
                //the FirstTime flag indicates if the addin is loaded for the first time

                //initialize AddIn members
                m_inventorApplication = addInSiteObject.Application;
                Button.InventorApplication = m_inventorApplication;

                //initialize event delegates
                m_userInterfaceEvents = m_inventorApplication.UserInterfaceManager.UserInterfaceEvents;

                UserInterfaceEventsSink_OnResetCommandBarsEventDelegate = new UserInterfaceEventsSink_OnResetCommandBarsEventHandler(UserInterfaceEvents_OnResetCommandBars);
                m_userInterfaceEvents.OnResetCommandBars += UserInterfaceEventsSink_OnResetCommandBarsEventDelegate;

                UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate = new UserInterfaceEventsSink_OnResetEnvironmentsEventHandler(UserInterfaceEvents_OnResetEnvironments);
                m_userInterfaceEvents.OnResetEnvironments += UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate;

                UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate = new UserInterfaceEventsSink_OnResetRibbonInterfaceEventHandler(UserInterfaceEvents_OnResetRibbonInterface);
                m_userInterfaceEvents.OnResetRibbonInterface += UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate;

                //load image icons for UI items
                Icon addSlotOptionIcon = new Icon(this.GetType(), "AddSlotOption.ico");
                Icon drawSlotIcon =  new Icon(this.GetType(), "DrawSlot.ico");
                Icon toggleSlotStateIcon = new Icon(this.GetType(), "ToggleSlotState.ico");

                //retrieve the GUID for this class
                GuidAttribute addInCLSID;
                addInCLSID = (GuidAttribute)GuidAttribute.GetCustomAttribute(typeof(AddInServer), typeof(GuidAttribute));
                string addInCLSIDString;
                addInCLSIDString = "{" + addInCLSID.Value + "}";

                //create the comboboxes
                m_slotWidthComboBoxDefinition = m_inventorApplication.CommandManager.ControlDefinitions.AddComboBoxDefinition("Slot Width", "Autodesk:SimpleAddIn:SlotWidthCboBox", CommandTypesEnum.kShapeEditCmdType, 100, addInCLSIDString, "Slot width", "Slot width", Type.Missing, Type.Missing, ButtonDisplayEnum.kDisplayTextInLearningMode);
                m_slotHeightComboBoxDefinition = m_inventorApplication.CommandManager.ControlDefinitions.AddComboBoxDefinition("Slot Height", "Autodesk:SimpleAddIn:SlotHeightCboBox", CommandTypesEnum.kShapeEditCmdType, 100, addInCLSIDString, "Slot height", "Slot height", Type.Missing, Type.Missing, ButtonDisplayEnum.kDisplayTextInLearningMode);

                //add some initial items to the comboboxes
                m_slotWidthComboBoxDefinition.AddItem("1 cm", 0);
                m_slotWidthComboBoxDefinition.AddItem("2 cm", 0);
                m_slotWidthComboBoxDefinition.AddItem("3 cm", 0);
                m_slotWidthComboBoxDefinition.AddItem("4 cm", 0);
                m_slotWidthComboBoxDefinition.AddItem("5 cm", 0);
                m_slotWidthComboBoxDefinition.ListIndex = 1;
                m_slotWidthComboBoxDefinition.ToolTipText = m_slotWidthComboBoxDefinition.Text;
                m_slotWidthComboBoxDefinition.DescriptionText = "Slot width: " + m_slotWidthComboBoxDefinition.Text;

                SlotWidthComboBox_OnSelectEventDelegate = new ComboBoxDefinitionSink_OnSelectEventHandler(SlotWidthComboBox_OnSelect);
                m_slotWidthComboBoxDefinition.OnSelect += SlotWidthComboBox_OnSelectEventDelegate;

                m_slotHeightComboBoxDefinition.AddItem("1 cm", 0);
                m_slotHeightComboBoxDefinition.AddItem("2 cm", 0);
                m_slotHeightComboBoxDefinition.AddItem("3 cm", 0);
                m_slotHeightComboBoxDefinition.AddItem("4 cm", 0);
                m_slotHeightComboBoxDefinition.AddItem("5 cm", 0);
                m_slotHeightComboBoxDefinition.ListIndex = 1;
                m_slotHeightComboBoxDefinition.ToolTipText = m_slotHeightComboBoxDefinition.Text;
                m_slotHeightComboBoxDefinition.DescriptionText = "Slot height: " + m_slotHeightComboBoxDefinition.Text;

                SlotHeightComboBox_OnSelectEventDelegate = new ComboBoxDefinitionSink_OnSelectEventHandler(SlotHeightComboBox_OnSelect);
                m_slotHeightComboBoxDefinition.OnSelect += SlotHeightComboBox_OnSelectEventDelegate;

                //create buttons
                m_addSlotOptionButton = new AddSlotOptionButton(
                    "Add Slot width/height", "Autodesk:SimpleAddIn:AddSlotOptionCmdBtn", CommandTypesEnum.kShapeEditCmdType,
                    addInCLSIDString, "Adds option for slot width/height",
                    "Add slot option", addSlotOptionIcon, addSlotOptionIcon, ButtonDisplayEnum.kDisplayTextInLearningMode);

                m_drawSlotButton = new DrawSlotButton(
                    "Draw Slot", "Autodesk:SimpleAddIn:DrawSlotCmdBtn", CommandTypesEnum.kShapeEditCmdType,
                    addInCLSIDString, "Create slot sketch graphics",
                    "Draw Slot", drawSlotIcon, drawSlotIcon, ButtonDisplayEnum.kDisplayTextInLearningMode);

                m_toggleSlotStateButton = new ToggleSlotStateButton(
                    "Toggle Slot State", "Autodesk:SimpleAddIn:ToggleSlotStateCmdBtn", CommandTypesEnum.kShapeEditCmdType,
                    addInCLSIDString, "Enables/Disables state of slot command",
                    "Toggle Slot State", toggleSlotStateIcon, toggleSlotStateIcon, ButtonDisplayEnum.kDisplayTextInLearningMode);

                //create the command category
                CommandCategory slotCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("Slot", "Autodesk:SimpleAddIn:SlotCmdCat", addInCLSIDString);

                slotCmdCategory.Add(m_slotWidthComboBoxDefinition);
                slotCmdCategory.Add(m_slotHeightComboBoxDefinition);
                slotCmdCategory.Add(m_addSlotOptionButton.ButtonDefinition);
                slotCmdCategory.Add(m_drawSlotButton.ButtonDefinition);
                slotCmdCategory.Add(m_toggleSlotStateButton.ButtonDefinition);

                if (firstTime == true)
                {
                    //access user interface manager
                    UserInterfaceManager userInterfaceManager;
                    userInterfaceManager = m_inventorApplication.UserInterfaceManager;

                    InterfaceStyleEnum interfaceStyle;
                    interfaceStyle = userInterfaceManager.InterfaceStyle;

                    //create the UI for classic interface
                    if (interfaceStyle == InterfaceStyleEnum.kClassicInterface)
                    {
                        //create toolbar
                        CommandBar slotCommandBar;
                        slotCommandBar = userInterfaceManager.CommandBars.Add("Slot", "Autodesk:SimpleAddIn:SlotToolbar", CommandBarTypeEnum.kRegularCommandBar, addInCLSIDString);

                        //add comboboxes to toolbar
                        slotCommandBar.Controls.AddComboBox(m_slotWidthComboBoxDefinition, 0);
                        slotCommandBar.Controls.AddComboBox(m_slotHeightComboBoxDefinition, 0);

                        //add buttons to toolbar
                        slotCommandBar.Controls.AddButton(m_addSlotOptionButton.ButtonDefinition, 0);
                        slotCommandBar.Controls.AddButton(m_drawSlotButton.ButtonDefinition, 0);
                        slotCommandBar.Controls.AddButton(m_toggleSlotStateButton.ButtonDefinition, 0);

                        //Get the 2d sketch environment base object
                        Inventor.Environment partSketchEnvironment;
                        partSketchEnvironment = userInterfaceManager.Environments["PMxPartSketchEnvironment"];

                        //make this command bar accessible in the panel menu for the 2d sketch environment.
                        partSketchEnvironment.PanelBar.CommandBarList.Add(slotCommandBar);
                    }
                    //create the UI for ribbon interface
                    else
                    {
                        //get the ribbon associated with part document
                        Inventor.Ribbons ribbons;
                        ribbons = userInterfaceManager.Ribbons;

                        Inventor.Ribbon partRibbon;
                        partRibbon = ribbons["Part"];

                        //get the tabls associated with part ribbon
                        RibbonTabs ribbonTabs;
                        ribbonTabs = partRibbon.RibbonTabs;

                        RibbonTab partSketchRibbonTab;
                        partSketchRibbonTab = ribbonTabs["id_TabSketch"];

                        //create a new panel with the tab
                        RibbonPanels ribbonPanels;
                        ribbonPanels = partSketchRibbonTab.RibbonPanels;

                        m_partSketchSlotRibbonPanel = ribbonPanels.Add("Slot", "Autodesk:SimpleAddIn:SlotRibbonPanel", "{DB59D9A7-EE4C-434A-BB5A-F93E8866E872}", "",  false);

                        //add controls to the slot panel
                        CommandControls partSketchSlotRibbonPanelCtrls;
                        partSketchSlotRibbonPanelCtrls = m_partSketchSlotRibbonPanel.CommandControls;

                        //add the combo boxes to the ribbon panel
                        CommandControl slotWidthCmdCboBoxCmdCtrl;
                        slotWidthCmdCboBoxCmdCtrl = partSketchSlotRibbonPanelCtrls.AddComboBox(m_slotWidthComboBoxDefinition, "", false);

                        CommandControl slotHeightCmdCboBoxCmdCtrl;
                        slotHeightCmdCboBoxCmdCtrl = partSketchSlotRibbonPanelCtrls.AddComboBox(m_slotHeightComboBoxDefinition, "", false);

                        //add the buttons to the ribbon panel
                        CommandControl drawSlotCmdBtnCmdCtrl;
                        drawSlotCmdBtnCmdCtrl = partSketchSlotRibbonPanelCtrls.AddButton(m_drawSlotButton.ButtonDefinition, false, true, "", false);

                        CommandControl slotOptionCmdBtnCmdCtrl;
                        slotOptionCmdBtnCmdCtrl = partSketchSlotRibbonPanelCtrls.AddButton(m_addSlotOptionButton.ButtonDefinition, false, true, "", false);

                        CommandControl toggleSlotStateCmdBtnCmdCtrl;
                        toggleSlotStateCmdBtnCmdCtrl = partSketchSlotRibbonPanelCtrls.AddButton(m_toggleSlotStateButton.ButtonDefinition, false,true, "", false);

                    }
                }

                MessageBox.Show ("To access the commands of the sample addin, activate a 2d sketch of a part \n document and select the \"AddInSlot\" toolbar within the panel menu");
            }
            catch(Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }
        public void Deactivate()
        {
            //the Deactivate method is called by Inventor when the AddIn is unloaded
            //the AddIn will be unloaded either manually by the user or
            //when the Inventor session is terminated

            try
            {
                m_userInterfaceEvents.OnResetCommandBars -= UserInterfaceEventsSink_OnResetCommandBarsEventDelegate;
                m_userInterfaceEvents.OnResetEnvironments -= UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate;

                UserInterfaceEventsSink_OnResetCommandBarsEventDelegate = null;
                UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate = null;
                m_userInterfaceEvents = null;
                if (m_partSketchSlotRibbonPanel != null )
                {
                    m_partSketchSlotRibbonPanel.Delete();
                }

                //release inventor Application object
                Marshal.ReleaseComObject(m_inventorApplication);
                m_inventorApplication = null;

                GC.WaitForPendingFinalizers();
                GC.Collect();
            }
            catch(Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }
        public void Activate(Inventor.ApplicationAddInSite addInSiteObject, bool firstTime)
        {        
            try
            {
                SetupDynamoPaths();
                inventorApplication = addInSiteObject.Application;
                PersistenceManager.InventorApplication = inventorApplication;
                userInterfaceManager = inventorApplication.UserInterfaceManager;

                //initialize event delegates
                userInterfaceEvents = inventorApplication.UserInterfaceManager.UserInterfaceEvents;

                UserInterfaceEventsSink_OnResetCommandBarsEventDelegate = new UserInterfaceEventsSink_OnResetCommandBarsEventHandler(UserInterfaceEvents_OnResetCommandBars);
                userInterfaceEvents.OnResetCommandBars += UserInterfaceEventsSink_OnResetCommandBarsEventDelegate;

                UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate = new UserInterfaceEventsSink_OnResetEnvironmentsEventHandler(UserInterfaceEvents_OnResetEnvironments);
                userInterfaceEvents.OnResetEnvironments += UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate;

                UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate = new UserInterfaceEventsSink_OnResetRibbonInterfaceEventHandler(UserInterfaceEvents_OnResetRibbonInterface);
                userInterfaceEvents.OnResetRibbonInterface += UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate;

                appEvents = inventorApplication.ApplicationEvents;
                appEvents.OnActivateDocument += appEvents_OnActivateDocument;
                appEvents.OnDeactivateDocument += appEvents_OnDeactivateDocument;

                Icon dynamoIcon = Resources.logo_square_32x32;

                //retrieve the GUID for this class
                GuidAttribute addInCLSID;
                addInCLSID = (GuidAttribute)GuidAttribute.GetCustomAttribute(this.GetType(), typeof(GuidAttribute));
                string addInCLSIDString;
                addInCLSIDString = "{" + addInCLSID.Value + "}";

                dynamoAddinButton = new DynamoInventorAddinButton(
                        buttonDisplayName, buttonInternalName, CommandTypesEnum.kShapeEditCmdType,
                        addInCLSIDString, "Initialize Dynamo.",
                        "Dynamo is a visual programming environment for Inventor.", dynamoIcon, dynamoIcon, ButtonDisplayEnum.kDisplayTextInLearningMode);

                CommandCategory assemblyUtilitiesCategory = inventorApplication.CommandManager.CommandCategories.Add(commandCategoryDisplayName, commandCategoryInternalName, addInCLSID);
                assemblyUtilitiesCategory.Add(dynamoAddinButton.ButtonDefinition);

                if (firstTime == true)
                {
                    InterfaceStyleEnum interfaceStyle;
                    interfaceStyle = userInterfaceManager.InterfaceStyle;

                    if (interfaceStyle == InterfaceStyleEnum.kClassicInterface)
                    {
                        CommandBar assemblyUtilityCommandBar;

                        assemblyUtilityCommandBar = userInterfaceManager.CommandBars.Add(commandBarDisplayName,
                                                                                         commandBarInternalName,
                                                                                         CommandBarTypeEnum.kRegularCommandBar,
                                                                                         addInCLSID);
                    }

                    else
                    {   
                        Inventor.Ribbons ribbons = userInterfaceManager.Ribbons;
                        Inventor.Ribbon assemblyRibbon = ribbons["Assembly"];
                        RibbonTabs ribbonTabs = assemblyRibbon.RibbonTabs;
                        RibbonTab assemblyRibbonTab = ribbonTabs["id_AddInsTab"];
                        RibbonPanels ribbonPanels = assemblyRibbonTab.RibbonPanels;
                        assemblyRibbonPanel = ribbonPanels.Add(ribbonPanelDisplayName, ribbonPanelInternalName, "{DB59D9A7-EE4C-434A-BB5A-F93E8866E872}", "", false);
                        CommandControls assemblyRibbonPanelCtrls = assemblyRibbonPanel.CommandControls;
                        CommandControl assemblyCmdBtnCmdCtrl = assemblyRibbonPanelCtrls.AddButton(dynamoAddinButton.ButtonDefinition, true, true, "", false); 

                        Inventor.Ribbon partRibbon = ribbons["Part"];
                        RibbonTabs partRibbonTabs = partRibbon.RibbonTabs;
                        RibbonTab modelRibbonTab = partRibbonTabs["id_AddInsTab"];
                        RibbonPanels partRibbonPanels = modelRibbonTab.RibbonPanels;
                        partRibbonPanel = partRibbonPanels.Add(ribbonPanelDisplayName, ribbonPanelInternalName, "{DB59D9A7-EE4C-434A-BB5A-F93E8866E872}", "", false);
                        CommandControls partRibbonPanelCtrls = partRibbonPanel.CommandControls;
                        CommandControl partCmdBtnCmdCtrl = partRibbonPanelCtrls.AddButton(dynamoAddinButton.ButtonDefinition, true, true, "", false);

                        Inventor.Ribbon drawingRibbon = ribbons["Drawing"];
                        RibbonTabs drawingRibbonTabs = drawingRibbon.RibbonTabs;
                        RibbonTab drawingRibbonTab = drawingRibbonTabs["id_AddInsTab"];
                        RibbonPanels drawingRibbonPanels = drawingRibbonTab.RibbonPanels;
                        drawingRibbonPanel = drawingRibbonPanels.Add(ribbonPanelDisplayName, ribbonPanelInternalName, "{DB59D9A7-EE4C-434A-BB5A-F93E8866E872}", "", false);
                        CommandControls drawingRibbonPanelCtrls = drawingRibbonPanel.CommandControls;
                        CommandControl drawingCmdBtnCmdCtrl = drawingRibbonPanelCtrls.AddButton(dynamoAddinButton.ButtonDefinition, true, true, "", false);  
                    }
                }
            }

            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }
Beispiel #14
0
 public void OnObjectChanged(dynamic args)
 {
     UserInterfaceEvents?.Invoke(UserInterfaceEventTypes.ObjectChanged, args);
 }
Beispiel #15
0
        public void Activate(Inventor.ApplicationAddInSite addInSiteObject, bool firstTime)
        {
            try
            {
                //the Activate method is called by Inventor when it loads the addin
                //the AddInSiteObject provides access to the Inventor Application object
                //the FirstTime flag indicates if the addin is loaded for the first time

                //initialize AddIn members
                m_inventorApplication = addInSiteObject.Application;
                InvAddIn.Button.InventorApplication = m_inventorApplication;

                //initialize event delegates
                m_userInterfaceEvents = m_inventorApplication.UserInterfaceManager.UserInterfaceEvents;

                UserInterfaceEventsSink_OnResetCommandBarsEventDelegate = new UserInterfaceEventsSink_OnResetCommandBarsEventHandler(UserInterfaceEvents_OnResetCommandBars);
                m_userInterfaceEvents.OnResetCommandBars += UserInterfaceEventsSink_OnResetCommandBarsEventDelegate;

                UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate = new UserInterfaceEventsSink_OnResetEnvironmentsEventHandler(UserInterfaceEvents_OnResetEnvironments);
                m_userInterfaceEvents.OnResetEnvironments += UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate;

                UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate = new UserInterfaceEventsSink_OnResetRibbonInterfaceEventHandler(UserInterfaceEvents_OnResetRibbonInterface);
                m_userInterfaceEvents.OnResetRibbonInterface += UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate;

                //load image icons for UI items
                IPictureDisp createMasterMIcon = AxHostConverter.ImageToPictureDisp(Resources.CreateMasterM.ToBitmap());
                IPictureDisp createMasterMICON = AxHostConverter.ImageToPictureDisp(Resources.CreateMasterM.ToBitmap());

                IPictureDisp helpIcon = AxHostConverter.ImageToPictureDisp(Resources.icon1.ToBitmap());
                IPictureDisp helpICON = AxHostConverter.ImageToPictureDisp(Resources.icon1.ToBitmap());

                //retrieve the GUID for this class
                GuidAttribute addInCLSID;
                addInCLSID = (GuidAttribute)GuidAttribute.GetCustomAttribute(typeof(StandardAddInServer), typeof(GuidAttribute));
                string addInCLSIDString;
                addInCLSIDString = "{" + addInCLSID.Value + "}";

                //create buttons
                ButtON = new BenjaminButton(
                    "MasterModel", "MasterModel:StandardAddInServer:BenjaminBUTTON", CommandTypesEnum.kShapeEditCmdType,
                    addInCLSIDString, "Create a Master Model File",
                    "keep the model simple", createMasterMIcon, createMasterMICON, ButtonDisplayEnum.kDisplayTextInLearningMode, false);
                //ButtON.HeySherlock = (PartDocument) m_inventorApplication.ActiveDocument;
                Help = new BenjaminButton(
                    "How to", "Help:StandardAddInServer:BenjaminBUTTON", CommandTypesEnum.kShapeEditCmdType,
                    addInCLSIDString, "Help Creating a Master Model File",
                    "keep the model simple", helpIcon, helpICON, ButtonDisplayEnum.kDisplayTextInLearningMode, true);
                //create the command category
                CommandCategory MasterMCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("Master Model", "MasterModel:StandardAddInServer:BenjaminBUTTON", addInCLSIDString);

                MasterMCmdCategory.Add(ButtON.ButtonDefinition);
                MasterMCmdCategory.Add(Help.ButtonDefinition);

                if (firstTime == true)
                {
                    //access user interface manager
                    UserInterfaceManager userInterfaceManager;
                    userInterfaceManager = m_inventorApplication.UserInterfaceManager;

                    InterfaceStyleEnum interfaceStyle;
                    interfaceStyle = userInterfaceManager.InterfaceStyle;

                    //create the UI for classic interface
                    if (interfaceStyle == InterfaceStyleEnum.kClassicInterface)
                    {
                        //create toolbar
                        CommandBar MasterCommander;
                        MasterCommander = userInterfaceManager.CommandBars.Add("Master Model", "MasterModel:StandardAddInServer:BenjaminBUTTONToolbar", CommandBarTypeEnum.kRegularCommandBar, addInCLSIDString);

                        //add buttons to toolbar
                        MasterCommander.Controls.AddButton(ButtON.ButtonDefinition, 0);
                        MasterCommander.Controls.AddButton(Help.ButtonDefinition, 0);

                        //Get the 2d sketch environment base object
                        Inventor.Environment partToolEnvironment;
                        partToolEnvironment = userInterfaceManager.Environments["PMxPartSkEnvironment"];

                        //make this command bar accessible in the panel menu for the Tool environment.
                        partToolEnvironment.PanelBar.CommandBarList.Add(MasterCommander);
                    }
                    //create the UI for ribbon interface
                    else
                    {
                        //get the ribbon associated with part document
                        Inventor.Ribbons ribbons;
                        ribbons = userInterfaceManager.Ribbons;

                        Inventor.Ribbon partRibbon;
                        partRibbon = ribbons["Part"];

                        //get the tabs associated with part ribbon
                        RibbonTabs ribbonTabs;
                        ribbonTabs = partRibbon.RibbonTabs;

                        //get the Tool tab
                        RibbonTab partToolRibbonTab;
                        partToolRibbonTab = ribbonTabs["id_TabTools"];

                        //create a new panel with the tab
                        RibbonPanels ribbonPanels;
                        ribbonPanels = partToolRibbonTab.RibbonPanels;

                        partToolMasterRibbonPanel = ribbonPanels.Add("Master Model", "MasterModel:StandardAddInServer:BenjaminBUTTONRibbonPanel", "{DB59D9A7-EE4C-434A-BB5A-F93E8866E872}", "", false);

                        //add controls to the MasterModel panel
                        CommandControls partToolMasterRibbonPanelCtrls;
                        partToolMasterRibbonPanelCtrls = partToolMasterRibbonPanel.CommandControls;

                        //add the buttons to the ribbon panel
                        CommandControl MasterMoRiPaCtrl;
                        MasterMoRiPaCtrl = partToolMasterRibbonPanelCtrls.AddButton(ButtON.ButtonDefinition, false, true, "", false);
                        MasterMoRiPaCtrl = partToolMasterRibbonPanelCtrls.AddButton(Help.ButtonDefinition, false, true, "", false);
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }
        public void Deactivate()
        {
            // This method is called by Inventor when the AddIn is unloaded.
            // The AddIn will be unloaded either manually by the user or
            // when the Inventor session is terminated

            // TODO: Add ApplicationAddInServer.Deactivate implementation

            m_uiEvents.OnResetRibbonInterface -= m_uiEvents_OnResetRibbonInterface;

            // Release objects.
            m_inventorApplication = null;
            m_uiEvents = null;

            GC.Collect();
            GC.WaitForPendingFinalizers();
        }
        public void Activate(Inventor.ApplicationAddInSite addInSiteObject, bool firstTime)
        {
            // This method is called by Inventor when it loads the addin.
            // The AddInSiteObject provides access to the Inventor Application object.
            // The FirstTime flag indicates if the addin is loaded for the first time.

            // Initialize AddIn members.
            m_inventorApplication = addInSiteObject.Application;

            // TODO: Add ApplicationAddInServer.Activate implementation.
            // e.g. event initialization, command creation etc.
            // Connect to the user-interface events to handle a ribbon reset.

            {
                m_uiEvents = m_inventorApplication.UserInterfaceManager.UserInterfaceEvents;
                m_uiEvents.OnResetRibbonInterface +=m_uiEvents_OnResetRibbonInterface;

                stdole.IPictureDisp largeIcon = PictureDispConverter.ToIPictureDisp(InvAddIn.Resource1.Large);
                stdole.IPictureDisp smallIcon = PictureDispConverter.ToIPictureDisp(InvAddIn.Resource1.Small);
                Inventor.ControlDefinitions controlDefs = m_inventorApplication.CommandManager.ControlDefinitions;
                m_sampleButton1 = controlDefs.AddButtonDefinition("License check", "Entitlement API", CommandTypesEnum.kShapeEditCmdType, AddInClientID(), "Entitlement api", "Entitlement api", smallIcon, largeIcon);
                m_sampleButton1.OnExecute +=m_sampleButton1_OnExecute;

                // Add to the user interface, if it's the first time.
                if (firstTime)
                {
                    AddToUserInterface();
                }
            }
        }
Beispiel #18
0
        public void Activate(Inventor.ApplicationAddInSite addInSiteObject, bool firstTime)
        {
            try
            {
                SetupDynamoPaths();
                inventorApplication = addInSiteObject.Application;
                PersistenceManager.InventorApplication = inventorApplication;
                userInterfaceManager = inventorApplication.UserInterfaceManager;

                //initialize event delegates
                userInterfaceEvents = inventorApplication.UserInterfaceManager.UserInterfaceEvents;

                UserInterfaceEventsSink_OnResetCommandBarsEventDelegate = new UserInterfaceEventsSink_OnResetCommandBarsEventHandler(UserInterfaceEvents_OnResetCommandBars);
                userInterfaceEvents.OnResetCommandBars += UserInterfaceEventsSink_OnResetCommandBarsEventDelegate;

                UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate = new UserInterfaceEventsSink_OnResetEnvironmentsEventHandler(UserInterfaceEvents_OnResetEnvironments);
                userInterfaceEvents.OnResetEnvironments += UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate;

                UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate = new UserInterfaceEventsSink_OnResetRibbonInterfaceEventHandler(UserInterfaceEvents_OnResetRibbonInterface);
                userInterfaceEvents.OnResetRibbonInterface += UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate;

                appEvents = inventorApplication.ApplicationEvents;
                appEvents.OnActivateDocument   += appEvents_OnActivateDocument;
                appEvents.OnDeactivateDocument += appEvents_OnDeactivateDocument;

                Icon dynamoIcon = Resources.logo_square_32x32;

                //retrieve the GUID for this class
                GuidAttribute addInCLSID;
                addInCLSID = (GuidAttribute)GuidAttribute.GetCustomAttribute(this.GetType(), typeof(GuidAttribute));
                string addInCLSIDString;
                addInCLSIDString = "{" + addInCLSID.Value + "}";

                dynamoAddinButton = new DynamoInventorAddinButton(
                    buttonDisplayName, buttonInternalName, CommandTypesEnum.kShapeEditCmdType,
                    addInCLSIDString, "Initialize Dynamo.",
                    "Dynamo is a visual programming environment for Inventor.", dynamoIcon, dynamoIcon, ButtonDisplayEnum.kDisplayTextInLearningMode);

                CommandCategory assemblyUtilitiesCategory = inventorApplication.CommandManager.CommandCategories.Add(commandCategoryDisplayName, commandCategoryInternalName, addInCLSID);
                assemblyUtilitiesCategory.Add(dynamoAddinButton.ButtonDefinition);

                if (firstTime == true)
                {
                    InterfaceStyleEnum interfaceStyle;
                    interfaceStyle = userInterfaceManager.InterfaceStyle;

                    if (interfaceStyle == InterfaceStyleEnum.kClassicInterface)
                    {
                        CommandBar assemblyUtilityCommandBar;

                        assemblyUtilityCommandBar = userInterfaceManager.CommandBars.Add(commandBarDisplayName,
                                                                                         commandBarInternalName,
                                                                                         CommandBarTypeEnum.kRegularCommandBar,
                                                                                         addInCLSID);
                    }

                    else
                    {
                        Inventor.Ribbons ribbons           = userInterfaceManager.Ribbons;
                        Inventor.Ribbon  assemblyRibbon    = ribbons["Assembly"];
                        RibbonTabs       ribbonTabs        = assemblyRibbon.RibbonTabs;
                        RibbonTab        assemblyRibbonTab = ribbonTabs["id_AddInsTab"];
                        RibbonPanels     ribbonPanels      = assemblyRibbonTab.RibbonPanels;
                        assemblyRibbonPanel = ribbonPanels.Add(ribbonPanelDisplayName, ribbonPanelInternalName, "{DB59D9A7-EE4C-434A-BB5A-F93E8866E872}", "", false);
                        CommandControls assemblyRibbonPanelCtrls = assemblyRibbonPanel.CommandControls;
                        CommandControl  assemblyCmdBtnCmdCtrl    = assemblyRibbonPanelCtrls.AddButton(dynamoAddinButton.ButtonDefinition, true, true, "", false);

                        Inventor.Ribbon partRibbon       = ribbons["Part"];
                        RibbonTabs      partRibbonTabs   = partRibbon.RibbonTabs;
                        RibbonTab       modelRibbonTab   = partRibbonTabs["id_AddInsTab"];
                        RibbonPanels    partRibbonPanels = modelRibbonTab.RibbonPanels;
                        partRibbonPanel = partRibbonPanels.Add(ribbonPanelDisplayName, ribbonPanelInternalName, "{DB59D9A7-EE4C-434A-BB5A-F93E8866E872}", "", false);
                        CommandControls partRibbonPanelCtrls = partRibbonPanel.CommandControls;
                        CommandControl  partCmdBtnCmdCtrl    = partRibbonPanelCtrls.AddButton(dynamoAddinButton.ButtonDefinition, true, true, "", false);

                        Inventor.Ribbon drawingRibbon       = ribbons["Drawing"];
                        RibbonTabs      drawingRibbonTabs   = drawingRibbon.RibbonTabs;
                        RibbonTab       drawingRibbonTab    = drawingRibbonTabs["id_AddInsTab"];
                        RibbonPanels    drawingRibbonPanels = drawingRibbonTab.RibbonPanels;
                        drawingRibbonPanel = drawingRibbonPanels.Add(ribbonPanelDisplayName, ribbonPanelInternalName, "{DB59D9A7-EE4C-434A-BB5A-F93E8866E872}", "", false);
                        CommandControls drawingRibbonPanelCtrls = drawingRibbonPanel.CommandControls;
                        CommandControl  drawingCmdBtnCmdCtrl    = drawingRibbonPanelCtrls.AddButton(dynamoAddinButton.ButtonDefinition, true, true, "", false);
                    }
                }
            }

            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }
Beispiel #19
0
        public void Activate(Inventor.ApplicationAddInSite addInSiteObject, bool firstTime)
        {
            try
            {
                //the Activate method is called by Inventor when it loads the addin
                //the AddInSiteObject provides access to the Inventor Application object
                //the FirstTime flag indicates if the addin is loaded for the first time

                //initialize AddIn members
                m_inventorApplication      = addInSiteObject.Application;
                Button.InventorApplication = m_inventorApplication;

                //initialize event delegates
                m_userInterfaceEvents = m_inventorApplication.UserInterfaceManager.UserInterfaceEvents;

                UserInterfaceEventsSink_OnResetCommandBarsEventDelegate = new UserInterfaceEventsSink_OnResetCommandBarsEventHandler(UserInterfaceEvents_OnResetCommandBars);
                m_userInterfaceEvents.OnResetCommandBars += UserInterfaceEventsSink_OnResetCommandBarsEventDelegate;

                UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate = new UserInterfaceEventsSink_OnResetEnvironmentsEventHandler(UserInterfaceEvents_OnResetEnvironments);
                m_userInterfaceEvents.OnResetEnvironments += UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate;

                UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate = new UserInterfaceEventsSink_OnResetRibbonInterfaceEventHandler(UserInterfaceEvents_OnResetRibbonInterface);
                m_userInterfaceEvents.OnResetRibbonInterface += UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate;

                //load image icons for UI items
                Icon addSlotOptionIcon   = new Icon(this.GetType(), "AddSlotOption.ico");
                Icon drawSlotIcon        = new Icon(this.GetType(), "DrawSlot.ico");
                Icon toggleSlotStateIcon = new Icon(this.GetType(), "ToggleSlotState.ico");

                //retrieve the GUID for this class
                GuidAttribute addInCLSID;
                addInCLSID = (GuidAttribute)GuidAttribute.GetCustomAttribute(typeof(AddInServer), typeof(GuidAttribute));
                string addInCLSIDString;
                addInCLSIDString = "{" + addInCLSID.Value + "}";

                //create the comboboxes
                m_slotWidthComboBoxDefinition  = m_inventorApplication.CommandManager.ControlDefinitions.AddComboBoxDefinition("Slot Width", "Autodesk:SimpleAddIn:SlotWidthCboBox", CommandTypesEnum.kShapeEditCmdType, 100, addInCLSIDString, "Slot width", "Slot width", Type.Missing, Type.Missing, ButtonDisplayEnum.kDisplayTextInLearningMode);
                m_slotHeightComboBoxDefinition = m_inventorApplication.CommandManager.ControlDefinitions.AddComboBoxDefinition("Slot Height", "Autodesk:SimpleAddIn:SlotHeightCboBox", CommandTypesEnum.kShapeEditCmdType, 100, addInCLSIDString, "Slot height", "Slot height", Type.Missing, Type.Missing, ButtonDisplayEnum.kDisplayTextInLearningMode);

                //add some initial items to the comboboxes
                m_slotWidthComboBoxDefinition.AddItem("1 cm", 0);
                m_slotWidthComboBoxDefinition.AddItem("2 cm", 0);
                m_slotWidthComboBoxDefinition.AddItem("3 cm", 0);
                m_slotWidthComboBoxDefinition.AddItem("4 cm", 0);
                m_slotWidthComboBoxDefinition.AddItem("5 cm", 0);
                m_slotWidthComboBoxDefinition.ListIndex       = 1;
                m_slotWidthComboBoxDefinition.ToolTipText     = m_slotWidthComboBoxDefinition.Text;
                m_slotWidthComboBoxDefinition.DescriptionText = "Slot width: " + m_slotWidthComboBoxDefinition.Text;

                SlotWidthComboBox_OnSelectEventDelegate = new ComboBoxDefinitionSink_OnSelectEventHandler(SlotWidthComboBox_OnSelect);
                m_slotWidthComboBoxDefinition.OnSelect += SlotWidthComboBox_OnSelectEventDelegate;

                m_slotHeightComboBoxDefinition.AddItem("1 cm", 0);
                m_slotHeightComboBoxDefinition.AddItem("2 cm", 0);
                m_slotHeightComboBoxDefinition.AddItem("3 cm", 0);
                m_slotHeightComboBoxDefinition.AddItem("4 cm", 0);
                m_slotHeightComboBoxDefinition.AddItem("5 cm", 0);
                m_slotHeightComboBoxDefinition.ListIndex       = 1;
                m_slotHeightComboBoxDefinition.ToolTipText     = m_slotHeightComboBoxDefinition.Text;
                m_slotHeightComboBoxDefinition.DescriptionText = "Slot height: " + m_slotHeightComboBoxDefinition.Text;

                SlotHeightComboBox_OnSelectEventDelegate = new ComboBoxDefinitionSink_OnSelectEventHandler(SlotHeightComboBox_OnSelect);
                m_slotHeightComboBoxDefinition.OnSelect += SlotHeightComboBox_OnSelectEventDelegate;

                //create buttons
                m_addSlotOptionButton = new AddSlotOptionButton(
                    "Add Slot width/height", "Autodesk:SimpleAddIn:AddSlotOptionCmdBtn", CommandTypesEnum.kShapeEditCmdType,
                    addInCLSIDString, "Adds option for slot width/height",
                    "Add slot option", addSlotOptionIcon, addSlotOptionIcon, ButtonDisplayEnum.kDisplayTextInLearningMode);

                m_drawSlotButton = new DrawSlotButton(
                    "Draw Slot", "Autodesk:SimpleAddIn:DrawSlotCmdBtn", CommandTypesEnum.kShapeEditCmdType,
                    addInCLSIDString, "Create slot sketch graphics",
                    "Draw Slot", drawSlotIcon, drawSlotIcon, ButtonDisplayEnum.kDisplayTextInLearningMode);

                m_toggleSlotStateButton = new ToggleSlotStateButton(
                    "Toggle Slot State", "Autodesk:SimpleAddIn:ToggleSlotStateCmdBtn", CommandTypesEnum.kShapeEditCmdType,
                    addInCLSIDString, "Enables/Disables state of slot command",
                    "Toggle Slot State", toggleSlotStateIcon, toggleSlotStateIcon, ButtonDisplayEnum.kDisplayTextInLearningMode);

                //create the command category
                CommandCategory slotCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("Slot", "Autodesk:SimpleAddIn:SlotCmdCat", addInCLSIDString);

                slotCmdCategory.Add(m_slotWidthComboBoxDefinition);
                slotCmdCategory.Add(m_slotHeightComboBoxDefinition);
                slotCmdCategory.Add(m_addSlotOptionButton.ButtonDefinition);
                slotCmdCategory.Add(m_drawSlotButton.ButtonDefinition);
                slotCmdCategory.Add(m_toggleSlotStateButton.ButtonDefinition);

                if (firstTime == true)
                {
                    //access user interface manager
                    UserInterfaceManager userInterfaceManager;
                    userInterfaceManager = m_inventorApplication.UserInterfaceManager;

                    InterfaceStyleEnum interfaceStyle;
                    interfaceStyle = userInterfaceManager.InterfaceStyle;

                    //create the UI for classic interface
                    if (interfaceStyle == InterfaceStyleEnum.kClassicInterface)
                    {
                        //create toolbar
                        CommandBar slotCommandBar;
                        slotCommandBar = userInterfaceManager.CommandBars.Add("Slot", "Autodesk:SimpleAddIn:SlotToolbar", CommandBarTypeEnum.kRegularCommandBar, addInCLSIDString);

                        //add comboboxes to toolbar
                        slotCommandBar.Controls.AddComboBox(m_slotWidthComboBoxDefinition, 0);
                        slotCommandBar.Controls.AddComboBox(m_slotHeightComboBoxDefinition, 0);

                        //add buttons to toolbar
                        slotCommandBar.Controls.AddButton(m_addSlotOptionButton.ButtonDefinition, 0);
                        slotCommandBar.Controls.AddButton(m_drawSlotButton.ButtonDefinition, 0);
                        slotCommandBar.Controls.AddButton(m_toggleSlotStateButton.ButtonDefinition, 0);

                        //Get the 2d sketch environment base object
                        Inventor.Environment partSketchEnvironment;
                        partSketchEnvironment = userInterfaceManager.Environments["PMxPartSketchEnvironment"];

                        //make this command bar accessible in the panel menu for the 2d sketch environment.
                        partSketchEnvironment.PanelBar.CommandBarList.Add(slotCommandBar);
                    }
                    //create the UI for ribbon interface
                    else
                    {
                        //get the ribbon associated with part document
                        Inventor.Ribbons ribbons;
                        ribbons = userInterfaceManager.Ribbons;

                        Inventor.Ribbon partRibbon;
                        partRibbon = ribbons["Part"];

                        //get the tabls associated with part ribbon
                        RibbonTabs ribbonTabs;
                        ribbonTabs = partRibbon.RibbonTabs;

                        RibbonTab partSketchRibbonTab;
                        partSketchRibbonTab = ribbonTabs["id_TabSketch"];

                        //create a new panel with the tab
                        RibbonPanels ribbonPanels;
                        ribbonPanels = partSketchRibbonTab.RibbonPanels;

                        m_partSketchSlotRibbonPanel = ribbonPanels.Add("Slot", "Autodesk:SimpleAddIn:SlotRibbonPanel", "{DB59D9A7-EE4C-434A-BB5A-F93E8866E872}", "", false);

                        //add controls to the slot panel
                        CommandControls partSketchSlotRibbonPanelCtrls;
                        partSketchSlotRibbonPanelCtrls = m_partSketchSlotRibbonPanel.CommandControls;

                        //add the combo boxes to the ribbon panel
                        CommandControl slotWidthCmdCboBoxCmdCtrl;
                        slotWidthCmdCboBoxCmdCtrl = partSketchSlotRibbonPanelCtrls.AddComboBox(m_slotWidthComboBoxDefinition, "", false);

                        CommandControl slotHeightCmdCboBoxCmdCtrl;
                        slotHeightCmdCboBoxCmdCtrl = partSketchSlotRibbonPanelCtrls.AddComboBox(m_slotHeightComboBoxDefinition, "", false);

                        //add the buttons to the ribbon panel
                        CommandControl drawSlotCmdBtnCmdCtrl;
                        drawSlotCmdBtnCmdCtrl = partSketchSlotRibbonPanelCtrls.AddButton(m_drawSlotButton.ButtonDefinition, false, true, "", false);


                        CommandControl slotOptionCmdBtnCmdCtrl;
                        slotOptionCmdBtnCmdCtrl = partSketchSlotRibbonPanelCtrls.AddButton(m_addSlotOptionButton.ButtonDefinition, false, true, "", false);

                        CommandControl toggleSlotStateCmdBtnCmdCtrl;
                        toggleSlotStateCmdBtnCmdCtrl = partSketchSlotRibbonPanelCtrls.AddButton(m_toggleSlotStateButton.ButtonDefinition, false, true, "", false);
                    }
                }

                MessageBox.Show("To access the commands of the sample addin, activate a 2d sketch of a part \n document and select the \"AddInSlot\" toolbar within the panel menu");
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }
Beispiel #20
0
        public void Activate(Inventor.ApplicationAddInSite addInSiteObject, bool firstTime)
        {
            try
            {
                // This method is called by Inventor when it loads the addin.
                // The AddInSiteObject provides access to the Inventor Application object.
                // The FirstTime flag indicates if the addin is loaded for the first time.

                #region Initialize AddIn members and event delegate
                // Initialize AddIn members.
                m_inventorApplication = addInSiteObject.Application;

                //Initialize event delegates
                m_userInterfaceEvents = m_inventorApplication.UserInterfaceManager.UserInterfaceEvents;

                UserInterfaceEventsSink_OnResetCommandBarsEventDelegate = new UserInterfaceEventsSink_OnResetCommandBarsEventHandler(UserInterfaceEvents_OnResetCommandBars);
                m_userInterfaceEvents.OnResetCommandBars += UserInterfaceEventsSink_OnResetCommandBarsEventDelegate;

                UserInterfaceEventsSink_OnEnvironmentChangeEventDelegate = new UserInterfaceEventsSink_OnEnvironmentChangeEventHandler(UserInterfaceEvents_OnEnvironmentChange);
                m_userInterfaceEvents.OnEnvironmentChange += UserInterfaceEventsSink_OnEnvironmentChangeEventDelegate;

                UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate = new UserInterfaceEventsSink_OnResetRibbonInterfaceEventHandler(UserInterfaceEventsSink_OnResetRibbonInterface);
                m_userInterfaceEvents.OnResetRibbonInterface += UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate;
                #endregion

                // TODO: Add ApplicationAddInServer.Activate implementation.
                // e.g. event initialization, command creation etc.

                String strAddInGUID = "{" + ((GuidAttribute)System.Attribute.GetCustomAttribute(typeof(StandardAddInServer), typeof(GuidAttribute))).Value + "}";
                m_strAddInGUID = strAddInGUID;

                #region 创建按钮.  create the buttons

                //get all the names of the current assembly
                this.IconPictureInitial();
                //-----------------------------------------------------------------------------------
                //create the instance of the "BlockGenerator" command and button
                m_blockFormCmd = new BlockFormCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.BlockStandard.ico",
                    "ValveBlockDesign.resources.BlockLarge.ico",
                    m_blockFormCmd,
                    "块",
                    "AppBlockGenerateCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "Generate a block",
                    "Generate a block with parameters entered by user",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //-----------------------------------------------------------------------------------
                //create the instance of the "Align" command and button
                m_alignCmd = new AlignCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.AlignStandard.ico",
                    "ValveBlockDesign.resources.AlignLarge.ico",
                    m_alignCmd,
                    "对齐",
                    "AppAlignCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "Cavity align",
                    "Cavity align",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //-----------------------------------------------------------------------------------
                //create the instance of the "ExtractiFeature" command and button
                m_extractiFeatureCmd = new ExtractiFeatureCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.ExtractiFeatureStandard.ico",
                    "ValveBlockDesign.resources.ExtractiFeatureLarge.ico",
                    m_extractiFeatureCmd,
                    "提取模型",
                    "AppExtractiFeatureCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "提取特征",
                    "提取特征",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //-----------------------------------------------------------------------------------
                //create the instance of the "InsertiFeature" command and button
                m_iFeatureFormCmd = new iFeatureFormCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.InsertiFeatureStandard.ico",
                    "ValveBlockDesign.resources.InsertiFeatureLarge.ico",
                    m_iFeatureFormCmd,
                    "元件特征",
                    "AppInsertiFeatureCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "插入特征",
                    "插入特征",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //-----------------------------------------------------------------------------------
                //create the instance of the "DeleteiFeature" command and button
                m_deleteCmd = new DeleteCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.DeleteCmdStandard.ico",
                    "ValveBlockDesign.resources.DeleteCmdLarge.ico",
                    m_deleteCmd,
                    "删除",
                    "AppDeleteiFeatureCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "删除特征",
                    "删除特征",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //-----------------------------------------------------------------------------------
                //create the instance of the "RotateiFeature" command and button
                m_rotateCmd = new RotateCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.RotateCmdStandard.ico",
                    "ValveBlockDesign.resources.RotateCmdLarge.ico",
                    m_rotateCmd,
                    "旋转",
                    "AppRotateiFeatureCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "旋转特征",
                    "旋转特征",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //-----------------------------------------------------------------------------------
                //create the instance of the "InsertOutline" command and button
                m_insertOutlineCmd = new InsertOutlineCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.InsertiFeatureStandard.ico",
                    "ValveBlockDesign.resources.OutLineCmdLarge.ico",
                    m_insertOutlineCmd,
                    "安装外形",
                    "AppInsertOutlineCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "插入安装外形",
                    "插入安装外形",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //-----------------------------------------------------------------------------------
                //create the instance of the "Move" command and button
                m_moveCmd = new MoveCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.MoveCmdStandard.ico",
                    "ValveBlockDesign.resources.MoveCmdLarge.ico",
                    m_moveCmd,
                    "移动",
                    "AppMoveCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "移动孔",
                    "移动孔",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //-----------------------------------------------------------------------------------
                //create the instance of the "Connect" command and button
                m_connectCmd = new ConnectCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.ConnectStandard.ico",
                    "ValveBlockDesign.resources.ConnectLarge.ico",
                    m_connectCmd,
                    "连接",
                    "AppConnectCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "连接孔",
                    "连接孔",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //-----------------------------------------------------------------------------------
                //create the instance of the "Edit" command and button
                m_cavityLibraryEditCmd = new CavityLibraryEditCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.EditCavityCmdStandard.ico",
                    "ValveBlockDesign.resources.EditCavityCmdLarge.ico",
                    m_cavityLibraryEditCmd,
                    "修改元件",
                    "AppEditLibraryCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "修改元件参数",
                    "修改元件参数",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //-----------------------------------------------------------------------------------
                //create the instance of the "Add" command and button
                m_cavityLibraryAddCmd = new CavityLibraryAddCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.AddCavityCmdStandard.ico",
                    "ValveBlockDesign.resources.AddCavityCmdLarge.ico",
                    m_cavityLibraryAddCmd,
                    "添加元件",
                    "AppAddLibraryCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "添加新元件",
                    "添加新元件",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //-----------------------------------------------------------------------------------
                m_cavityLibraryScanCmd = new CavityLibraryScanCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.ScanCavityCmdStandard.ico",
                    "ValveBlockDesign.resources.ScanCavityCmdLarge.ico",
                    m_cavityLibraryScanCmd,
                    "浏览元件",
                    "AppScanLibraryCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "浏览库中元件",
                    "浏览库中元件",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //-----------------------------------------------------------------------------------
                m_boltHolesFormCmd = new BoltHolesFormCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.BoltHolesCmdStandard.ico",
                    "ValveBlockDesign.resources.BoltHolesCmdLarge.ico",
                    m_boltHolesFormCmd,
                    "安装螺纹孔",
                    "AppInsertBoltHolesCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "插入安装螺纹孔",
                    "插入安装螺纹孔",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //---------------------------------------------------------------------------------
                m_insertXportCmd = new InsertXportCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.BoltHolesCmdStandard.ico",
                    "ValveBlockDesign.resources.Xport.ico",
                    m_insertXportCmd,
                    "工艺孔",
                    "AppInsertXportCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "插入工艺孔",
                    "插入工艺孔",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //---------------------------------------------------------------------------------
                m_editNetCmd = new EditNetCmd();
                this.CreateButton(
                    "ValveBlockDesign.resources.BoltHolesCmdStandard.ico",
                    "ValveBlockDesign.resources.EditColor.ico",
                    m_editNetCmd,
                    "修改网络",
                    "AppEditNetCmd",
                    CommandTypesEnum.kShapeEditCmdType,
                    strAddInGUID,
                    "修改油孔网络",
                    "修改油孔网络",
                    ButtonDisplayEnum.kDisplayTextInLearningMode,
                    false);
                //---------------------------------------------------------------------------------
                #endregion

                #region 设置ChangeManager和CommandCategory.  Set the ChangeManager and CommandCategory
                //Create change definitions
                //get the change manager
                ChangeManager oChangeManager = m_inventorApplication.ChangeManager;

                //Create the change definition collections
                ChangeDefinitions oChangeDefs = oChangeManager.Add(strAddInGUID);

                //-----------------------------------------------------------------------------------
                //Create the "Block" change definition
                ChangeDefinition oBlockChangeDef = oChangeDefs.Add("AppBlockGenerateChgDef", "块");

                //Create the command category
                CommandCategory oBlockCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("块", "AppBlockGenerateCmdCat", strAddInGUID);
                oBlockCmdCategory.Add(m_blockFormCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oAlignChangeDef = oChangeDefs.Add("AppAlignChgDef", "对齐");

                CommandCategory oAlignCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("对齐", "AppAlignCmdCat", strAddInGUID);
                oAlignCmdCategory.Add(m_alignCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oExtractiFeatureChangeDef = oChangeDefs.Add("AppExtractiFeatureChgDef", "提取特征");

                CommandCategory oExtractiFeatureCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("提取特征", "AppExtractiFeatureCmdCat", strAddInGUID);
                oExtractiFeatureCmdCategory.Add(m_extractiFeatureCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oInsertiFeatureChangeDef = oChangeDefs.Add("AppInsertiFeatureChgDef", "插入特征");

                CommandCategory oInsertiFeatureCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("插入特征", "AppInsertiFeatureCmdCat", strAddInGUID);
                oInsertiFeatureCmdCategory.Add(m_iFeatureFormCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oDeleteiFeatureChangeDef = oChangeDefs.Add("AppDeleteiFeatureChgDef", "删除特征");

                CommandCategory oDeleteiFeatureCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("删除特征", "AppDeleteiFeatureCmdCat", strAddInGUID);
                oDeleteiFeatureCmdCategory.Add(m_deleteCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oRotateiFeatureChangeDef = oChangeDefs.Add("AppRotateiFeatureChgDef", "旋转特征");

                CommandCategory oRotateiFeatureCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("旋转特征", "AppRotateiFeatureCmdCat", strAddInGUID);
                oRotateiFeatureCmdCategory.Add(m_rotateCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oMoveChangeDef = oChangeDefs.Add("AppMoveChgDef", "移动孔");

                CommandCategory oMoveCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("移动孔", "AppMoveCmdCat", strAddInGUID);
                oMoveCmdCategory.Add(m_moveCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oInsertOutlineChangeDef = oChangeDefs.Add("AppInsertOutlineChgDef", "插入安装外形");

                CommandCategory oInsertOutlineCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("插入安装外形", "AppInsertOutlineCmdCat", strAddInGUID);
                oInsertOutlineCmdCategory.Add(m_insertOutlineCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oInsertXportChangeDef = oChangeDefs.Add("AppInsertXportChgDef", "插入工艺孔");

                CommandCategory oInsertXportCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("插入工艺孔", "AppInsertXportCmdCat", strAddInGUID);
                oInsertXportCmdCategory.Add(m_insertXportCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oEditNetChangeDef = oChangeDefs.Add("AppEditNetChgDef", "修改油孔网络");

                CommandCategory oEitNetCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("修改油孔网络", "AppEditNetCmdCat", strAddInGUID);
                oEitNetCmdCategory.Add(m_editNetCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oConnectDef = oChangeDefs.Add("AppConnectChgDef", "连接");

                CommandCategory oConnectCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("连接", "AppConnectCmdCat", strAddInGUID);
                oConnectCmdCategory.Add(m_connectCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oEditLibraryDef = oChangeDefs.Add("AppEditLibraryChgDef", "修改参数");

                CommandCategory oEditLibraryCategory = m_inventorApplication.CommandManager.CommandCategories.Add("修改参数", "AppEditLibraryCmdCat", strAddInGUID);
                oEditLibraryCategory.Add(m_cavityLibraryEditCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oAddLibraryDef = oChangeDefs.Add("AppAddLibraryChgDef", "添加特征元件");

                CommandCategory oAddLibraryCategory = m_inventorApplication.CommandManager.CommandCategories.Add("添加特征元件", "AppAddLibraryCmdCat", strAddInGUID);
                oAddLibraryCategory.Add(m_cavityLibraryAddCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oScanLibraryDef = oChangeDefs.Add("AppScanLibraryChgDef", "浏览特征元件");

                CommandCategory oScanLibraryCategory = m_inventorApplication.CommandManager.CommandCategories.Add("浏览特征元件", "AppScanLibraryCmdCat", strAddInGUID);
                oScanLibraryCategory.Add(m_cavityLibraryScanCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                ChangeDefinition oInsertBoltHolesDef = oChangeDefs.Add("AppInsertBoltHolesChgDef", "插入安装螺纹孔");

                CommandCategory oInsertBoltHolesCategory = m_inventorApplication.CommandManager.CommandCategories.Add("插入安装螺纹孔", "AppInsertBoltHolesCmdCat", strAddInGUID);
                oInsertBoltHolesCategory.Add(m_boltHolesFormCmd.ButtonDefinition);
                //-----------------------------------------------------------------------------------
                #endregion

                #region 加载Ribbon面板. Load the Ribbon Panel.
                if (firstTime)
                {
                    Ribbon partDocRibbon;
                    partDocRibbon = m_inventorApplication.UserInterfaceManager.Ribbons["Part"];

                    RibbonTab myRibbonTab;
                    myRibbonTab = partDocRibbon.RibbonTabs.Add(
                        "阀块设计",
                        "id_TabBlockDesign",
                        strAddInGUID,
                        "",
                        false);

                    RibbonPanels ribbonPanels;
                    ribbonPanels = myRibbonTab.RibbonPanels;

                    RibbonPanel cubePanel;
                    cubePanel = ribbonPanels.Add(
                        "块",
                        "id_Panel_Block",
                        strAddInGUID,
                        "",
                        false);

                    CommandControls blockPanelCtrls;
                    blockPanelCtrls = cubePanel.CommandControls;

                    CommandControl cubePanelCtrl;
                    cubePanelCtrl = blockPanelCtrls.AddButton(
                        m_blockFormCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        false);
                    //------------------------------------------------------------------
                    //----------------------------------------------
                    //对iFeature特征操作
                    RibbonPanel iFeaturePanel;
                    iFeaturePanel = ribbonPanels.Add(
                        "插入",
                        "id_Panel_iFeature",
                        strAddInGUID,
                        "",
                        false);

                    CommandControls iFeatureCtrls;
                    iFeatureCtrls = iFeaturePanel.CommandControls;

                    CommandControl InsertiFeatureCtrl;//插入元件
                    InsertiFeatureCtrl = iFeatureCtrls.AddButton(
                        m_iFeatureFormCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        false);

                    CommandControl InsertOutlineCtrl;//插入安装外形
                    InsertOutlineCtrl = iFeatureCtrls.AddButton(
                        m_insertOutlineCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        true);
                    CommandControl InsertBoltHolesCtrl;//安装螺纹孔
                    InsertBoltHolesCtrl = iFeatureCtrls.AddButton(
                        m_boltHolesFormCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        false);
                    //-------------------------------------------------------------------------------
                    //RibbonPanel connectPanel;
                    //connectPanel = ribbonPanels.Add(
                    //    "连接",
                    //    "id_Panel_Connect",
                    //    strAddInGUID,
                    //    "",
                    //    false);

                    //CommandControls connectCtrls;
                    //connectCtrls = connectPanel.CommandControls;

                    RibbonPanel modifyPanel;
                    modifyPanel = ribbonPanels.Add(
                        "修改",
                        "id_Panel_Edit",
                        strAddInGUID,
                        "",
                        false);

                    CommandControls modifyCtrls;
                    modifyCtrls = modifyPanel.CommandControls;

                    CommandControl AlignCtrl;
                    AlignCtrl = modifyCtrls.AddButton(
                        m_alignCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        false);

                    CommandControl MoveCtrl;
                    MoveCtrl = modifyCtrls.AddButton(
                        m_moveCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        false);
                    CommandControl DeleteCtrl;//删除元件特征
                    DeleteCtrl = modifyCtrls.AddButton(
                        m_deleteCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        false);
                    CommandControl EditPortCtrl;//修改网络
                    EditPortCtrl = modifyCtrls.AddButton(
                        m_editNetCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        true);
                    CommandControl RotateCtrl;//旋转元件特征
                    RotateCtrl = modifyCtrls.AddButton(
                        m_rotateCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        false);
                    //--------------------------------------------------------
                    RibbonPanel ConnectPanel;
                    ConnectPanel = ribbonPanels.Add(
                        "连通油路",
                        "id_Panel_Connection",
                        strAddInGUID,
                        "",
                        false);

                    CommandControls ConnectCtrls;
                    ConnectCtrls = ConnectPanel.CommandControls;

                    CommandControl ConnectCtrl;
                    ConnectCtrl = ConnectCtrls.AddButton(
                        m_connectCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        false);
                    CommandControl InsertXportCtrl;//插入工艺孔
                    InsertXportCtrl = ConnectCtrls.AddButton(
                        m_insertXportCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        true);


                    //------------------------------------------------------------
                    //元件库的操作面板
                    RibbonPanel CavityLibraryPanel;
                    CavityLibraryPanel = ribbonPanels.Add(
                        "元件库",
                        "id_Panel_CavityLibrary",
                        strAddInGUID,
                        "",
                        false);

                    CommandControls CavityLibraryCtrls;
                    CavityLibraryCtrls = CavityLibraryPanel.CommandControls;

                    CommandControl EditCavityCtrl;
                    EditCavityCtrl = CavityLibraryCtrls.AddButton(
                        m_cavityLibraryEditCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        false);
                    CommandControl AddCavityCtrl;
                    AddCavityCtrl = CavityLibraryCtrls.AddButton(
                        m_cavityLibraryAddCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        false);
                    CommandControl ScanCavityCtrl;
                    ScanCavityCtrl = CavityLibraryCtrls.AddButton(
                        m_cavityLibraryScanCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        false);
                    CommandControl ExtractiFeatureCtrl;
                    ExtractiFeatureCtrl = CavityLibraryCtrls.AddButton(
                        m_extractiFeatureCmd.ButtonDefinition,
                        true,
                        true,
                        "",
                        false);
                }
                #endregion
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.ToString());
            }
        }
Beispiel #21
0
        public void Deactivate()
        {
            // This method is called by Inventor when the AddIn is unloaded.
            // The AddIn will be unloaded either manually by the user or
            // when the Inventor session is terminated

            // TODO: Add ApplicationAddInServer.Deactivate implementation
            m_userInterfaceEvents.OnResetCommandBars     -= UserInterfaceEventsSink_OnResetCommandBarsEventDelegate;
            m_userInterfaceEvents.OnEnvironmentChange    -= UserInterfaceEventsSink_OnEnvironmentChangeEventDelegate;
            m_userInterfaceEvents.OnResetRibbonInterface -= UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate;

            UserInterfaceEventsSink_OnResetCommandBarsEventDelegate     = null;
            UserInterfaceEventsSink_OnEnvironmentChangeEventDelegate    = null;
            UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate = null;
            m_userInterfaceEvents = null;

            //remove the command button(s)
            m_blockFormCmd.RemoveButton();
            m_alignCmd.RemoveButton();
            m_extractiFeatureCmd.RemoveButton();
            m_iFeatureFormCmd.RemoveButton();
            m_moveCmd.RemoveButton();
            m_connectCmd.RemoveButton();
            m_cavityLibraryEditCmd.RemoveButton();
            m_cavityLibraryScanCmd.RemoveButton();
            m_cavityLibraryAddCmd.RemoveButton();
            m_boltHolesFormCmd.RemoveButton();
            m_deleteCmd.RemoveButton();
            m_rotateCmd.RemoveButton();
            m_insertOutlineCmd.RemoveButton();
            m_insertXportCmd.RemoveButton();
            m_editNetCmd.RemoveButton();

            m_blockFormCmd         = null;
            m_alignCmd             = null;
            m_extractiFeatureCmd   = null;
            m_iFeatureFormCmd      = null;
            m_moveCmd              = null;
            m_connectCmd           = null;
            m_cavityLibraryEditCmd = null;
            m_cavityLibraryAddCmd  = null;
            m_cavityLibraryScanCmd = null;
            m_boltHolesFormCmd     = null;
            m_deleteCmd            = null;
            m_rotateCmd            = null;
            m_insertOutlineCmd     = null;
            m_insertXportCmd       = null;
            m_editNetCmd           = null;

            //-----------------------------------------------------------------------------------
            //delete change definitions
            ChangeManager oChangeManager = m_inventorApplication.ChangeManager;

            ChangeDefinitions oChangeDefinition = oChangeManager[m_strAddInGUID];
            //-----------------------------------------------------------------------------------
            ChangeDefinition oBlockFormChangeDefinition = oChangeDefinition["AppBlockGenerateChgDef"];

            oBlockFormChangeDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oAlignChangeDefinition = oChangeDefinition["AppAlignChgDef"];

            oAlignChangeDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oExtractChangeDefinition = oChangeDefinition["AppExtractiFeatureChgDef"];

            oExtractChangeDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oInsertChangeDefinition = oChangeDefinition["AppInsertiFeatureChgDef"];

            oInsertChangeDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oDeleteChangeDefinition = oChangeDefinition["AppDeleteiFeatureChgDef"];

            oDeleteChangeDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oRotateChangeDefinition = oChangeDefinition["AppRotateiFeatureChgDef"];

            oRotateChangeDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oInsertOutlineChangeDefinition = oChangeDefinition["AppInsertOutlineChgDef"];

            oInsertOutlineChangeDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oMoveDefinition = oChangeDefinition["AppMoveChgDef"];

            oMoveDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oInsertXportDefinition = oChangeDefinition["AppInsertXportChgDef"];

            oInsertXportDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oEditNetDefinition = oChangeDefinition["AppEditNetChgDef"];

            oEditNetDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oConnectDefinition = oChangeDefinition["AppConnectChgDef"];

            oConnectDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oEditLibraryDefinition = oChangeDefinition["AppEditLibraryChgDef"];

            oEditLibraryDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oAddLibraryDefinition = oChangeDefinition["AppAddLibraryChgDef"];

            oAddLibraryDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oScanLibraryDefinition = oChangeDefinition["AppScanLibraryChgDef"];

            oScanLibraryDefinition.Delete();
            //-----------------------------------------------------------------------------------
            ChangeDefinition oInsertBoltHolesDefinition = oChangeDefinition["AppInsertBoltHolesChgDef"];

            oInsertBoltHolesDefinition.Delete();
            //-----------------------------------------------------------------------------------
            // Release objects.
            //释放对象
            Marshal.ReleaseComObject(m_inventorApplication);
            m_inventorApplication = null;

            GC.Collect();
            GC.WaitForPendingFinalizers();
        }
        public void Activate(ApplicationAddInSite addInSiteObject, bool firstTime)
        {
            // This method is called by Inventor when it loads the addin.
            // The AddInSiteObject provides access to the Inventor Application object.
            // The FirstTime flag indicates if the addin is loaded for the first time.

            // Initialize AddIn members.
            _inventorApplication = addInSiteObject.Application;

            try
            {
                _vaultAddin = _inventorApplication.ApplicationAddIns.ItemById["{48b682bc-42e6-4953-84c5-3d253b52e77b}"];
            }
            catch
            {
                MessageBox.Show(Resources.VaultAddinNotFound, @"MyVaultBrowser", MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                throw;
            }

            _applicationEvents = _inventorApplication.ApplicationEvents;
            _dockableWindowsEvents = _inventorApplication.UserInterfaceManager.DockableWindows.Events;
            _userInterfaceEvents = _inventorApplication.UserInterfaceManager.UserInterfaceEvents;

            _activeProjectType = _inventorApplication.DesignProjectManager.ActiveDesignProject.ProjectType;

            _hwndDic = new Dictionary<Document, IntPtr>();
            Hook.Initialize(this);

            _myVaultBrowser =
                _inventorApplication.UserInterfaceManager.DockableWindows.Add("{ffbbb57a-07f3-4d5c-97b0-e8e302247c7a}",
                    "myvaultbrowser", "MyVaultBrowser");
            _myVaultBrowser.Title = "Vault";
            _myVaultBrowser.ShowTitleBar = true;
            _myVaultBrowser.DisabledDockingStates = DockingStateEnum.kDockBottom | DockingStateEnum.kDockTop;
            _myVaultBrowser.SetMinimumSize(200, 150);

            SetShortCut();

            if (!_myVaultBrowser.IsCustomized)
            {
                _myVaultBrowser.DockingState = DockingStateEnum.kDockRight;
                _myVaultBrowser.Visible = true;
            }

            _applicationEvents.OnActiveProjectChanged += ApplicationEvents_OnActiveProjectChanged;
            _userInterfaceEvents.OnResetShortcuts += UserInterfaceEvents_OnResetShortcuts;

            if (_inventorApplication.Ready)
            {
                if (_activeProjectType == MultiUserModeEnum.kVaultMode)
                    TryLoadVaultAddin();
            }
            else
                _applicationEvents.OnReady += ApplicationEvents_OnReady;

        }
        public void Deactivate()
        {
            // Release objects.
            if (_activeProjectType == MultiUserModeEnum.kVaultMode)
                UnSubscribeEvents();
            _applicationEvents.OnActiveProjectChanged -= ApplicationEvents_OnActiveProjectChanged;
            _userInterfaceEvents.OnResetShortcuts -= UserInterfaceEvents_OnResetShortcuts;

            _userInterfaceEvents = null;
            _dockableWindowsEvents = null;
            _applicationEvents = null;

            _vaultAddin = null;

            _myVaultBrowser = null;

            _hwndDic = null;
            Hook.Clear();

            Marshal.ReleaseComObject(_inventorApplication);
            _inventorApplication = null;

            GC.Collect();
            GC.WaitForPendingFinalizers();
        }
Beispiel #24
0
        public void Activate(Inventor.ApplicationAddInSite addInSiteObject, bool firstTime)
        {
            try
            {
                //the Activate method is called by Inventor when it loads the addin
                //the AddInSiteObject provides access to the Inventor Application object
                //the FirstTime flag indicates if the addin is loaded for the first time

                //initialize AddIn members
                m_inventorApplication      = addInSiteObject.Application;
                Button.InventorApplication = m_inventorApplication;

                //initialize event delegates
                m_userInterfaceEvents = m_inventorApplication.UserInterfaceManager.UserInterfaceEvents;

                UserInterfaceEventsSink_OnResetCommandBarsEventDelegate = new UserInterfaceEventsSink_OnResetCommandBarsEventHandler(UserInterfaceEvents_OnResetCommandBars);
                m_userInterfaceEvents.OnResetCommandBars += UserInterfaceEventsSink_OnResetCommandBarsEventDelegate;

                UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate = new UserInterfaceEventsSink_OnResetEnvironmentsEventHandler(UserInterfaceEvents_OnResetEnvironments);
                m_userInterfaceEvents.OnResetEnvironments += UserInterfaceEventsSink_OnResetEnvironmentsEventDelegate;

                UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate = new UserInterfaceEventsSink_OnResetRibbonInterfaceEventHandler(UserInterfaceEvents_OnResetRibbonInterface);
                m_userInterfaceEvents.OnResetRibbonInterface += UserInterfaceEventsSink_OnResetRibbonInterfaceEventDelegate;

                //load image icons for UI items
                //PROBLEM: i CAN NOT ADD ANOTHER ICON EXCEPT FOR SYSTEM... HOW TO DO THIS?
                //  Icon anisotropyIcon = new Icon(this.GetType(), "\\AddSlotOption.ico");
                Icon addSlotOptionIcon = new Icon(SystemIcons.Exclamation, 32, 32);


                //retrieve the GUID for this class
                GuidAttribute addInCLSID;
                addInCLSID = (GuidAttribute)GuidAttribute.GetCustomAttribute(typeof(StandardAddInServer), typeof(GuidAttribute));
                string addInCLSIDString;
                addInCLSIDString = "{" + addInCLSID.Value + "}";



                //create button
                m_addSlotOptionButton = new AddSlotOptionButton(
                    "Add pattern", "Autodesk:Mugen:AddAnisotropyOptionCmdBtn", CommandTypesEnum.kShapeEditCmdType,
                    addInCLSIDString, "Creates an anisotropic pattern on a given surface",
                    "Add Anisotropic Pattern", addSlotOptionIcon, addSlotOptionIcon, ButtonDisplayEnum.kDisplayTextInLearningMode);


                //create the command category
                CommandCategory slotCmdCategory = m_inventorApplication.CommandManager.CommandCategories.Add("Anisotropy", "Autodesk:Mugen:AnisotropyCmdCat", addInCLSIDString);

                slotCmdCategory.Add(m_addSlotOptionButton.ButtonDefinition);


                if (firstTime == true)
                {
                    //access user interface manager
                    UserInterfaceManager userInterfaceManager;
                    userInterfaceManager = m_inventorApplication.UserInterfaceManager;

                    InterfaceStyleEnum interfaceStyle;
                    interfaceStyle = userInterfaceManager.InterfaceStyle;

                    //create the UI for classic interface
                    if (interfaceStyle == InterfaceStyleEnum.kClassicInterface)
                    {
                        //create toolbar
                        CommandBar slotCommandBar;
                        slotCommandBar = userInterfaceManager.CommandBars.Add("Anisotropy", "Autodesk:Mugen:AnistropyToolbar", CommandBarTypeEnum.kRegularCommandBar, addInCLSIDString);

                        //add buttons to toolbar
                        slotCommandBar.Controls.AddButton(m_addSlotOptionButton.ButtonDefinition, 0);


                        //Get the 2d sketch environment base object
                        Inventor.Environment partSketchEnvironment;
                        partSketchEnvironment = userInterfaceManager.Environments["PMxPartEnvironment"];

                        //make this command bar accessible in the panel menu for the 2d sketch environment.
                        partSketchEnvironment.PanelBar.CommandBarList.Add(slotCommandBar);
                    }
                    //create the UI for ribbon interface
                    else
                    {
                        //get the ribbon associated with part document
                        Inventor.Ribbons ribbons;
                        ribbons = userInterfaceManager.Ribbons;

                        Inventor.Ribbon partRibbon;
                        partRibbon = ribbons["Part"];

                        //get the tabls associated with part ribbon
                        RibbonTabs ribbonTabs;
                        ribbonTabs = partRibbon.RibbonTabs;

                        RibbonTab partSketchRibbonTab;
                        partSketchRibbonTab = ribbonTabs["id_TabTools"];

                        //create a new panel with the tab
                        RibbonPanels ribbonPanels;
                        ribbonPanels = partSketchRibbonTab.RibbonPanels;

                        m_partSketchSlotRibbonPanel = ribbonPanels.Add("Anysotropy", "Autodesk:Mugen:AnysotropyRibbonPanel", "{cc527b4d-c28d-40fb-a46a-4978db960594}", "", false);

                        //add controls to the slot panel
                        CommandControls partSketchSlotRibbonPanelCtrls;
                        partSketchSlotRibbonPanelCtrls = m_partSketchSlotRibbonPanel.CommandControls;

                        //add the buttons to the ribbon panel
                        CommandControl drawSlotCmdBtnCmdCtrl;
                        drawSlotCmdBtnCmdCtrl = partSketchSlotRibbonPanelCtrls.AddButton(m_addSlotOptionButton.ButtonDefinition, false, true, "", false);
                    }
                }

                MessageBox.Show("This is a Carnegie Mellon University :: CERLAB test of \nAnisotropic Geometric Features Pattern Generation \nfor Industrial Design on Higly Curved Surfaces \nUsing Riemannian Metric Tensor fields \n\nAuthor: Diego Andrade \n\n2014");
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }