Example #1
0
        //------------------------------------------------------------------------------


        public void Interactive_Selection(Inventor.Application application)
        {
            m_interactionEvents = application.CommandManager.CreateInteractionEvents();

            //设置提示
            m_interactionEvents.StatusBarText = "Select an cylinder face.";

            //连接到相关选择事件
            m_selectEvents = m_interactionEvents.SelectEvents;

            //清除过滤器并重新定义圆柱面可选择
            m_selectEvents.ClearSelectionFilter();
            m_selectEvents.AddSelectionFilter(SelectionFilterEnum.kPartFaceCylindricalFilter);

            //单个选择使能
            m_selectEvents.Enabled             = true;
            m_selectEvents.SingleSelectEnabled = true;

            m_selectEvents.MouseMoveEnabled = false;

            //设置委托
            m_Select_OnSelect_Delegate         = new Inventor.SelectEventsSink_OnSelectEventHandler(this.m_SelectEvents_OnSelect);
            m_selectEvents.OnSelect           += m_Select_OnSelect_Delegate;
            m_interaction_OnTerminate_Delegate = new Inventor.InteractionEventsSink_OnTerminateEventHandler(this.m_InteractionEvent_Onterminate);
            m_interactionEvents.OnTerminate   += m_interaction_OnTerminate_Delegate;

            //启动选择进程
            m_interactionEvents.Start();
        }
Example #2
0
        public void StartInteraction(Inventor.Application application, string interactionName, out InteractionEvents interactionEvents)
        {
            try
            {
                //-----------------------------------------------------
                //------------------InteractionEvents------------------
                //-----------------------------------------------------
                //create the InteractionEvents object
                m_interactionEvents = application.CommandManager.CreateInteractionEvents();

                //define that we want select events rather than mouse events
                m_interactionEvents.SelectionActive = true;

                //set the name for the interaction events
                m_interactionEvents.Name = interactionName;

                //connect the interaction event sink
                m_interaction_OnTerminate_Delegate = new InteractionEventsSink_OnTerminateEventHandler(InteractionEvents_OnTerminate);
                m_interactionEvents.OnTerminate   += m_interaction_OnTerminate_Delegate;

                //------------------SelectEvents--------------------
                //set a reference to the select events
                m_selectEvents = m_interactionEvents.SelectEvents;

                //connect the select event sink
                m_Select_OnSelect_Delegate = new SelectEventsSink_OnSelectEventHandler(SelectEvents_OnSelect);
                m_selectEvents.OnSelect   += m_Select_OnSelect_Delegate;

                m_Select_OnPreSelect_Delegate = new SelectEventsSink_OnPreSelectEventHandler(SelectEvents_OnPreSelect);
                m_selectEvents.OnPreSelect   += m_Select_OnPreSelect_Delegate;

                m_Select_OnPreSelectMouseMove_Delegate = new SelectEventsSink_OnPreSelectMouseMoveEventHandler(SelectEvents_OnPreSelectMouseMove);
                m_selectEvents.OnPreSelectMouseMove   += m_Select_OnPreSelectMouseMove_Delegate;

                m_Select_OnStopPreSelect_Delegate = new SelectEventsSink_OnStopPreSelectEventHandler(SelectEvents_OnStopPreSelect);
                m_selectEvents.OnStopPreSelect   += m_Select_OnStopPreSelect_Delegate;

                m_Select_OnUnSelect_Delegate = new SelectEventsSink_OnUnSelectEventHandler(SelectEvents_OnUnSelect);
                m_selectEvents.OnUnSelect   += m_Select_OnUnSelect_Delegate;

                //------------------MouseEvents--------------------
                //set a reference to the mouse events
                m_mouseEvents = m_interactionEvents.MouseEvents;

                //connect the mouse event sink
                m_Mouse_OnMouseMove_Delegate = new MouseEventsSink_OnMouseMoveEventHandler(MouseEvents_OnMouseMove);
                m_mouseEvents.OnMouseMove   += m_Mouse_OnMouseMove_Delegate;

                m_Mouse_OnMouseUp_Delegate = new MouseEventsSink_OnMouseUpEventHandler(MouseEvents_OnMouseUp);
                m_mouseEvents.OnMouseUp   += m_Mouse_OnMouseUp_Delegate;

                m_Mouse_OnMouseDown_Delegate = new MouseEventsSink_OnMouseDownEventHandler(MouseEvents_OnMouseDown);
                m_mouseEvents.OnMouseDown   += m_Mouse_OnMouseDown_Delegate;

                m_Mouse_OnMouseClick_Delegate = new MouseEventsSink_OnMouseClickEventHandler(MouseEvents_OnMouseClick);
                m_mouseEvents.OnMouseClick   += m_Mouse_OnMouseClick_Delegate;

                m_Mouse_OnMouseDoubleClick_Delegate = new MouseEventsSink_OnMouseDoubleClickEventHandler(MouseEvents_OnMouseDoubleClick);
                m_mouseEvents.OnMouseDoubleClick   += m_Mouse_OnMouseDoubleClick_Delegate;

                m_Mouse_OnMouseLeave_Delegate = new MouseEventsSink_OnMouseLeaveEventHandler(MouseEvents_OnMouseLeave);
                m_mouseEvents.OnMouseLeave   += m_Mouse_OnMouseLeave_Delegate;

                //------------------TriadEvents--------------------
                //set a reference to the triad events
                m_triadEvents = m_interactionEvents.TriadEvents;

                //connect the triad event sink
                m_Triad_OnActivate_Delegate = new TriadEventsSink_OnActivateEventHandler(TriadEvents_OnActivate);
                m_triadEvents.OnActivate   += m_Triad_OnActivate_Delegate;

                m_Triad_OnEndMove_Delegate = new TriadEventsSink_OnEndMoveEventHandler(TriadEvents_OnEndMove);
                m_triadEvents.OnEndMove   += m_Triad_OnEndMove_Delegate;

                m_Triad_OnEndSequence_Delegate = new TriadEventsSink_OnEndSequenceEventHandler(TriadEvents_OnEndSequence);
                m_triadEvents.OnEndSequence   += m_Triad_OnEndSequence_Delegate;

                m_Triad_OnMove_Delegate = new TriadEventsSink_OnMoveEventHandler(TriadEvents_OnMove);
                m_triadEvents.OnMove   += m_Triad_OnMove_Delegate;

                m_Triad_OnMoveTriadOnlyToggle_Delegate = new TriadEventsSink_OnMoveTriadOnlyToggleEventHandler(TriadEvents_OnMoveTriadOnlyToggle);
                m_triadEvents.OnMoveTriadOnlyToggle   += m_Triad_OnMoveTriadOnlyToggle_Delegate;

                m_Triad_OnSegmentSelectionChange_Delegate = new TriadEventsSink_OnSegmentSelectionChangeEventHandler(TriadEvents_OnSegmentSelectionChange);
                m_triadEvents.OnSegmentSelectionChange   += m_Triad_OnSegmentSelectionChange_Delegate;

                m_Triad_OnStartMove_Delegate = new TriadEventsSink_OnStartMoveEventHandler(TriadEvents_OnStartMove);
                m_triadEvents.OnStartMove   += m_Triad_OnStartMove_Delegate;

                m_Triad_OnStartSequence_Delegate = new TriadEventsSink_OnStartSequenceEventHandler(TriadEvents_OnStartSequence);
                m_triadEvents.OnStartSequence   += m_Triad_OnStartSequence_Delegate;

                m_Triad_OnTerminate_Delegate = new TriadEventsSink_OnTerminateEventHandler(TriadEvents_OnTerminate);
                m_triadEvents.OnTerminate   += m_Triad_OnTerminate_Delegate;

                //start the InteractionEvents
                m_interactionEvents.Start();
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.ToString());
            }
            finally
            {
                interactionEvents = m_interactionEvents;
            }
        }