Esempio n. 1
0
        /// <summary>
        /// Method that reacts to the click event by the user to instantiate the rectangle. This method starts
        /// the ChangeProcessor which encapsulates the drawing of the rectangle into one undo/redo mechanism.
        /// </summary>
        /// <param name="button"></param>
        /// <param name="shiftKeys"></param>
        /// <param name="modelPosition"></param>
        /// <param name="viewPosition"></param>
        /// <param name="view"></param>
        protected void OnMouseClick_LockTheRectangle(MouseButtonEnum button, ShiftStateEnum shiftKeys, Point modelPosition,
                                                     Point2d viewPosition, Inventor.View view)
        {
            try
            {
                if (button == MouseButtonEnum.kLeftMouseButton)
                {
                    _mouseEvents.MouseMoveEnabled = false;

                    if (_mouseEvents.PointInferences.Count > 0)
                    {
                        _inferredFinalPositionPoint = _mouseEvents.PointInferences[1];
                    }

                    _finalPosition = modelPosition;

                    _changeProcessor.Connect();

                    ResetRectangle();

                    _rectangleButton.ButtonPressed = false;
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }
        //////////////////////////////////////////////////////////////////////////////////////////////
        // OnMouseDown event, creates and start drawing the line graphics
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseDown(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            if (Button != MouseButtonEnum.kLeftMouseButton)
            {
                return;
            }

            _lineGraph = _clientGraphicsMng.DrawLine(
                AdnInventorUtilities.ToArray(ModelPosition),
                AdnInventorUtilities.ToArray(ModelPosition),
                null);

            _interactionManager.MouseEvents.MouseMoveEnabled = true;

            _interactionManager.MouseEvents.OnMouseDown -=
                new MouseEventsSink_OnMouseDownEventHandler(MouseEvents_OnMouseDown);

            _interactionManager.MouseEvents.OnMouseMove +=
                new MouseEventsSink_OnMouseMoveEventHandler(MouseEvents_OnMouseMove);
        }
        //////////////////////////////////////////////////////////////////////////////////////////////
        // OnMouseDown Event: we create symbol in the sheet graphics by using SetGraphicsSource(sheet)
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseDown(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            if (Button != MouseButtonEnum.kLeftMouseButton)
            {
                return;
            }

            // Define symbol inputs: center, normal, radius

            Point center = ModelPosition;

            UnitVector normal = _Tg.CreateUnitVector(0, 0, 1);

            double radius = _sheet.Width / 30;

            // Add new symbol to the sheet graphics...
            _clientGraphicsMng.SetGraphicsSource(_sheet);

            DrawSymbol(normal, center, radius);

            _clientGraphicsMng.UpdateView();

            _clientGraphicsMng.SetGraphicsSource(
                _interactionManager.InteractionEvents);

            _symbolNode = null;
        }
Esempio n. 4
0
        private void OnMouseMove(MouseButtonEnum Button, ShiftStateEnum ShiftKeys, Point ModelPosition, Point2d ViewPosition, View View)
        {
            if (Button == MouseButtonEnum.kLeftMouseButton && mMouseDown == true && null != mSelectedFace)
            {
                mCurPos.X = ModelPosition.X;
                mCurPos.Y = ModelPosition.Y;
                mCurPos.Z = ModelPosition.Z;

                double[] del = { mCurPos.X - mLastPos.X, mCurPos.Y - mLastPos.Y, mCurPos.Z - mLastPos.Z };
                if (Math.Abs(del[0]) > 0.0001 || Math.Abs(del[1]) > 0.0001 || Math.Abs(del[2]) > 0.0001)
                {
                    int layer = -1, direction = -1, clockwise = -1;
                    GetLayer(del, ref layer, ref direction, ref clockwise);

                    if (null != OnPlayEvent)
                    {
                        OnPlayEvent(layer, direction, clockwise);
                    }
                    mSelectedFace = null;
                }
                mLastPos.X = mCurPos.X;
                mLastPos.Y = mCurPos.Y;
                mLastPos.Z = mCurPos.Z;
            }
        }
Esempio n. 5
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        //
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseDown(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            if (Button != MouseButtonEnum.kLeftMouseButton)
            {
                return;
            }

            if (_lineStripGraph == null)
            {
                double[] front    = AdnInventorUtilities.ToArray(ModelPosition);
                double[] back     = AdnInventorUtilities.ToArray(ModelPosition);
                double[] combined = front.Concat(back).ToArray();

                _rd = new Random();

                _lineStripGraph = _clientGraphicsMng.DrawLineStrip(
                    combined,
                    null);

                _lineStripGraph.ColorBinding = ColorBindingEnum.kPerItemColors;

                int id = _clientGraphicsMng.WorkingGraphics.GetDataSetFreeId();

                _lineStripGraph.ColorSet =
                    _clientGraphicsMng.WorkingGraphics.GraphicsDataSets.CreateColorSet(id);

                _lineStripGraph.ColorSet.Add(
                    _lineStripGraph.ColorSet.Count + 1,
                    (byte)_rd.Next(0, 255),
                    (byte)_rd.Next(0, 255),
                    (byte)_rd.Next(0, 255));

                _lineStripGraph.LineWeight = 5;

                _interactionManager.MouseEvents.MouseMoveEnabled = true;

                _interactionManager.MouseEvents.OnMouseMove +=
                    new MouseEventsSink_OnMouseMoveEventHandler(MouseEvents_OnMouseMove);
            }
            else
            {
                _lineStripGraph.CoordinateSet.Add(
                    _lineStripGraph.CoordinateSet.Count + 1,
                    ModelPosition);

                _lineStripGraph.ColorSet.Add(
                    _lineStripGraph.ColorSet.Count + 1,
                    (byte)_rd.Next(0, 255),
                    (byte)_rd.Next(0, 255),
                    (byte)_rd.Next(0, 255));
            }
        }
Esempio n. 6
0
 private void OnMouseDown(MouseButtonEnum Button, ShiftStateEnum ShiftKeys, Point ModelPosition, Point2d ViewPosition, View View)
 {
     if (Button == MouseButtonEnum.kLeftMouseButton)
     {
         mMouseDown = true;
         mLastPos   = mInventorApp.TransientGeometry.CreatePoint(ModelPosition.X, ModelPosition.Y, ModelPosition.Z);
         mCurPos    = mInventorApp.TransientGeometry.CreatePoint(ModelPosition.X, ModelPosition.Y, ModelPosition.Z);
     }
 }
        //////////////////////////////////////////////////////////////////////////////////////////////
        // OnMouseMove events we update end point of the graphic line with current mouse position
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseMove(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            _lineGraph.CoordinateSet[2] = ModelPosition;

            _clientGraphicsMng.UpdateView();
        }
Esempio n. 8
0
        private void OnMouseUp(MouseButtonEnum Button, ShiftStateEnum ShiftKeys, Point ModelPosition, Point2d ViewPosition, View View)
        {
            if (Button == MouseButtonEnum.kLeftMouseButton)
            {
                mMouseDown    = false;
                mSelectedFace = null;

                mCurPos.PutPointData(new double[] { 0, 0, 0 });
                mLastPos.PutPointData(new double[] { 0, 0, 0 });
                mRadius = 0;
            }
        }
Esempio n. 9
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // OnMouseMove event we update the position of our dimension lines and text
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseMove(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            Vector normal = View.Camera.Eye.VectorTo(View.Camera.Target);

            UpdateDimension(_dimData, ModelPosition, normal);

            _clientGraphicsMng.UpdateView();
        }
Esempio n. 10
0
 private void mouseClick(MouseButtonEnum Button, ShiftStateEnum ShiftKeys, Inventor.Point ModelPosition, Point2d ViewPosition, Inventor.View View)
 {
     if (Button == MouseButtonEnum.kLeftMouseButton && pt1 == null)
     {
         pt    = ModelPosition;
         pt1   = ViewPosition;
         pt1.X = pt.X;
         pt1.Y = pt.Y;
         interEvts.StatusBarText = "Вторая точка выноски:";
         objs.Add(pt1);
         if (selEvts.SelectedEntities.Count != 0)
         {
             dcs = (Inventor.DrawingCurveSegment)selEvts.SelectedEntities[1];
         }
         dc = dcs.Parent;
     }
     else if (Button == MouseButtonEnum.kLeftMouseButton && pt2 == null)
     {
         try
         {
             pt2   = ViewPosition;
             pt2.X = ModelPosition.X; pt2.Y = ModelPosition.Y;
             objs.Add(pt2);
             interEvts.Stop();
             obj = dc.ModelGeometry;
             try
             {
                 compOcc = ((Inventor.FaceProxy)obj).ContainingOccurrence;
             }
             catch (Exception)
             {
                 try
                 {
                     compOcc = ((Inventor.EdgeProxy)obj).ContainingOccurrence;
                 }
                 catch (Exception ex1)
                 {
                     MessageBox.Show(ex1.ToString());
                 }
             }
             gInt = m_DrwDoc.ActiveSheet.CreateGeometryIntent(dc);
             objs.Add(gInt);
             ball = m_DrwDoc.ActiveSheet.Balloons.Add(objs);
             ball.BalloonValueSets.Add(m_AsmDoc.ComponentDefinition.Occurrences[1]);
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.ToString());
         }
     }
 }
Esempio n. 11
0
        public override void OnMouseUp(MouseButtonEnum button, ShiftStateEnum shiftKeys, Point modelPosition, Point2d viewPosition, Inventor.View view)
        {
            if ((m_withThisFace != null) && m_mouseFlag == true)
            {
                m_Point = ProjectPoint(modelPosition);
                m_editCavityLibrary.tby.Text = (GetDistanceBtwPointandLine(m_Point, m_UCS.XAxis) * 10.0).ToString("F2");
                m_editCavityLibrary.tbx.Text = (GetDistanceBtwPointandLine(m_Point, m_UCS.YAxis) * 10.0).ToString("F2");

                UpdateCommandStatus();
                m_mouseFlag = false;
                m_editCavityLibrary.btninsertsure.Enabled = true;
                m_selectEvents.Enabled = false;
            }
        }
Esempio n. 12
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // OnMouseMove event we update the 3rd vertex of our triangle graphics with current position
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseMove(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            //Retrieve coordinates and update the 3rd vextex of our graphics triangle
            _triangleGraph.CoordinateSet[3] = ModelPosition;

            //Update active view to see result
            _interactionEvents.InteractionGraphics.UpdateOverlayGraphics(
                AdnInventorUtilities.InvApplication.ActiveView);
        }
Esempio n. 13
0
        /// <summary>
        /// This method reacts to the Mouse Move event and calls a method to reposition the points that make
        /// up the rectangle and also subscribes to the mouse click event for when the rectangle is to be
        /// instantiated by the user.
        /// </summary>
        /// <param name="button"></param>
        /// <param name="shiftKeys"></param>
        /// <param name="modelPosition"></param>
        /// <param name="viewPosition"></param>
        /// <param name="view"></param>
        protected void OnMouseMove_DragCornerOfRectangle(MouseButtonEnum button, ShiftStateEnum shiftKeys, Point modelPosition,
                                                         Point2d viewPosition, Inventor.View view)
        {
            AdjustRectanglePosition(modelPosition);


            if (_onMouseClick_Delegate == null)
            {
                _onMouseClick_Delegate     = new MouseEventsSink_OnMouseClickEventHandler(OnMouseClick_LockTheRectangle);
                _mouseEvents.OnMouseClick += _onMouseClick_Delegate;

                _userInputEvents_OnContextMenuDelegate += new UserInputEventsSink_OnContextMenuEventHandler(UserInputEvents_OnContextMenu);
                _userInputEvents.OnContextMenu         += _userInputEvents_OnContextMenuDelegate;
            }
        }
Esempio n. 14
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        //
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseMove(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            Matrix transfo = _compGraph.Parent.Transformation;

            Vector Tx = AdnInventorUtilities.InvApplication.TransientGeometry.CreateVector(
                ModelPosition.X, ModelPosition.Y, ModelPosition.Z);

            transfo.SetTranslation(Tx, false);

            _compGraph.Parent.Transformation = transfo;

            _clientGraphicsMng.UpdateView();
        }
Esempio n. 15
0
        public override void OnMouseUp(MouseButtonEnum Button, ShiftStateEnum ShiftKeys, Point ModelPosition, Point2d ViewPosition, View View)
        {
            SelectSet oSelectSet;

            oSelectSet = m_inventorApplication.ActiveDocument.SelectSet;

            if ((oSelectSet.Count == 1) && (oSelectSet[1].Type == (int)ObjectTypeEnum.kWorkPointObject))
            {
                FixedWorkPointDef oWPDef;
                oWPDef = m_workPoint.Definition;

                Inventor.Point oProjectedPoint;
                this.ProjectPoint(ModelPosition, oWPDef.Point, out oProjectedPoint);

                //Reposition the fixed work point
                oWPDef.Point = oProjectedPoint;
                m_inventorApplication.ActiveDocument.Update();
                m_interactionEvents.Stop();
            }
        }
 private void mouseClick(MouseButtonEnum Button, ShiftStateEnum ShiftKeys, Inventor.Point ModelPosition, Point2d ViewPosition, Inventor.View View)
 {
     if (Button == MouseButtonEnum.kLeftMouseButton)
     {
         if (pt1 == null)
         {
             //m_View = (DrawingView)View;
             pt    = ModelPosition;
             pt1   = ViewPosition;
             pt1.X = pt.X;
             pt1.Y = pt.Y;
             interEvts.StatusBarText = "Вторая точка разрыва:";
         }
         else
         {
             pt    = ModelPosition;
             pt2   = ViewPosition;
             pt2.X = pt.X;
             pt2.Y = pt.Y;
             interEvts.Stop();
             try
             {
                 if (horizont)
                 {
                     oBreak = m_View.BreakOperations.Add(BreakOrientationEnum.kHorizontalBreakOrientation,
                                                         pt1, pt2, BreakStyleEnum.kRectangularBreakStyle, num, gap, 1, false);
                 }
                 else
                 {
                     oBreak = m_View.BreakOperations.Add(BreakOrientationEnum.kVerticalBreakOrientation,
                                                         pt1, pt2, BreakStyleEnum.kRectangularBreakStyle, num, gap, 1, false);
                 }
             }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.ToString());
                 mouseEvts.OnMouseClick -= new MouseEventsSink_OnMouseClickEventHandler(mouseClick);
             }
         }
     }
 }
Esempio n. 17
0
        public override void OnDrag(DragStateEnum DragState, ShiftStateEnum ShiftKeys, Point ModelPosition, Point2d ViewPosition, View View, NameValueMap AdditionalInfo, out HandlingCodeEnum HandlingCode)
        {
            SelectSet oSelectSet;

            oSelectSet = m_inventorApplication.ActiveDocument.SelectSet;

            if (DragState == DragStateEnum.kDragStateDragHandlerSelection)
            {
                if (oSelectSet.Count == 1 && oSelectSet[1].Type == (int)ObjectTypeEnum.kWorkPointObject)
                {
                    m_workPoint = oSelectSet[1];

                    if (m_workPoint.DefinitionType == WorkPointDefinitionEnum.kFixedWorkPoint)
                    {
                        HandlingCode = HandlingCodeEnum.kEventCanceled;

                        this.StartInteraction();

                        m_interactionEvents.MouseEvents.MouseMoveEnabled = true;

                        m_interactionGrapgics = m_interactionEvents.InteractionGraphics;
                        m_interactionEvents.SetCursor(CursorTypeEnum.kCursorBuiltInCommonSketchDrag);
                        m_interactionEvents.Start();
                    }
                    else
                    {
                        base.OnDrag(DragState, ShiftKeys, ModelPosition, ViewPosition, View, AdditionalInfo, out HandlingCode);
                    }
                }
                else
                {
                    base.OnDrag(DragState, ShiftKeys, ModelPosition, ViewPosition, View, AdditionalInfo, out HandlingCode);
                }
            }
            else
            {
                base.OnDrag(DragState, ShiftKeys, ModelPosition, ViewPosition, View, AdditionalInfo, out HandlingCode);
            }
        }
Esempio n. 18
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // OnMouseDown event we create the client feature that holds the dimension graphics
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseDown(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            if (Button != MouseButtonEnum.kLeftMouseButton)
            {
                return;
            }

            Vector normal = View.Camera.Eye.VectorTo(View.Camera.Target);

            CreateClientFeature(
                _dimData.Point1,
                _dimData.Point2,
                ModelPosition,
                normal);

            _interactionManager.Terminate();
        }
Esempio n. 19
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        //
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseDown(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            if (Button != MouseButtonEnum.kLeftMouseButton)
            {
                return;
            }

            InsertAsSurfaceGraphics(_compGraph.Parent.Transformation);

            _clientGraphicsMng.SetGraphicsSource(
                _interactionManager.InteractionEvents);

            ComponentDefinition compDef =
                AdnInventorUtilities.GetCompDefinition(_componentDocument);

            _compGraph = _clientGraphicsMng.DrawComponent(compDef);
        }
        //////////////////////////////////////////////////////////////////////////////////////////////
        // OnMouseMove Event is used to transform  current GraphicsNode moved by the user
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseMove(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            if (_symbolNode == null)
            {
                // Define symbol inputs: center, normal, radius
                Point center = _Tg.CreatePoint(0, 0, 0);

                UnitVector normal = _Tg.CreateUnitVector(0, 0, 1);

                double radius = _sheet.Width / 30;

                _symbolNode = DrawSymbol(normal, center, radius);
            }

            SetNodePosition(_symbolNode, ModelPosition);

            _clientGraphicsMng.UpdateView();
        }
Esempio n. 21
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // OnMouseDown event, creates and start drawing the line graphics
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseDown(
            MouseButtonEnum Button, 
            ShiftStateEnum ShiftKeys, 
            Inventor.Point ModelPosition, 
            Point2d ViewPosition, 
            Inventor.View View)
        {
            if (Button != MouseButtonEnum.kLeftMouseButton)
                return;

            _lineGraph = _clientGraphicsMng.DrawLine(
                AdnInventorUtilities.ToArray(ModelPosition),
                AdnInventorUtilities.ToArray(ModelPosition),
                null);

            _interactionManager.MouseEvents.MouseMoveEnabled = true;

            _interactionManager.MouseEvents.OnMouseDown -=
                new MouseEventsSink_OnMouseDownEventHandler(MouseEvents_OnMouseDown);

            _interactionManager.MouseEvents.OnMouseMove +=
                new MouseEventsSink_OnMouseMoveEventHandler(MouseEvents_OnMouseMove);
        }
Esempio n. 22
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        //
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseMove(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            Point point = AdnInventorUtilities.ProjectOnPlane(ModelPosition, _plane);

            double radius = _center.DistanceTo(
                AdnInventorUtilities.ProjectOnPlane(
                    ModelPosition,
                    _plane));

            Circle circle = AdnInventorUtilities.InvApplication.TransientGeometry.CreateCircle(
                _center,
                _plane.Normal,
                radius);

            _curveGraph.Curve = circle;

            _clientGraphicsMng.UpdateView();
        }
Esempio n. 23
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // OnMouseMove event we update the 3rd vertex of our triangle graphics with current position
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseMove(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            //Retrieve coordinates and update the 3rd vextex of our graphics triangle
            _triangleGraph.CoordinateSet[3] = ModelPosition;

            //Update active view to see result
            _interactionEvents.InteractionGraphics.UpdateOverlayGraphics(
                AdnInventorUtilities.InvApplication.ActiveView);
        }
        /// <summary>
        /// This method reacts to the Mouse Move event and calls a method to reposition the points that make
        /// up the rectangle and also subscribes to the mouse click event for when the rectangle is to be 
        /// instantiated by the user.
        /// </summary>
        /// <param name="button"></param>
        /// <param name="shiftKeys"></param>
        /// <param name="modelPosition"></param>
        /// <param name="viewPosition"></param>
        /// <param name="view"></param>
        protected void OnMouseMove_DragCornerOfRectangle(MouseButtonEnum button, ShiftStateEnum shiftKeys, Point modelPosition,
            Point2d viewPosition, Inventor.View view)
        {
            AdjustRectanglePosition(modelPosition);

            if (_onMouseClick_Delegate == null)
            {
                _onMouseClick_Delegate = new MouseEventsSink_OnMouseClickEventHandler(OnMouseClick_LockTheRectangle);
                _mouseEvents.OnMouseClick += _onMouseClick_Delegate;

                _userInputEvents_OnContextMenuDelegate += new UserInputEventsSink_OnContextMenuEventHandler(UserInputEvents_OnContextMenu);
                _userInputEvents.OnContextMenu += _userInputEvents_OnContextMenuDelegate;
            }
        }
Esempio n. 25
0
        /// <summary>
        /// When the user clicks on a point in the model, this method runs and creates an interaction graphics rectangle.
        /// It also subscribes to the Mouse Move event to allow for the size of the rectangle to be driven by the location
        /// of the mouse on the sketch. Ultimately, this method waits for the next click event, in which case it calls a
        /// new method to actually create the sketched rectangle.  It has separate paths to react to whether it's a part
        /// sketch or a drawing sketch.
        /// </summary>
        /// <param name="button"></param>
        /// <param name="shiftKeys"></param>
        /// <param name="modelPosition"></param>
        /// <param name="viewPosition"></param>
        /// <param name="view"></param>
        protected void OnMouseClick_CreateRectangle(MouseButtonEnum button, ShiftStateEnum shiftKeys, Point modelPosition,
                                                    Point2d viewPosition, Inventor.View view)
        {
            try
            {
                if (button == MouseButtonEnum.kLeftMouseButton)
                {
                    _onMouseMove_Delegate                  = new MouseEventsSink_OnMouseMoveEventHandler(OnMouseMove_DragCornerOfRectangle);
                    _mouseEvents.OnMouseClick             -= _onMouseClick_Delegate;
                    _onMouseClick_Delegate                 = null;
                    _userInputEvents.OnContextMenu        -= _userInputEvents_OnContextMenuDelegate;
                    _userInputEvents_OnContextMenuDelegate = null;

                    if (_inventorApplication.ActiveEditObject is PlanarSketch)
                    {
                        _planarSketch = (PlanarSketch)_inventorApplication.ActiveEditObject;

                        if (_mouseEvents.PointInferences.Count > 0)
                        {
                            _inferredOriginPoint = _mouseEvents.PointInferences[1];

                            switch (_inferredOriginPoint.InferenceType)
                            {
                            case PointInferenceEnum.kPtAtIntersection:
                                _firstSelectedSketchEntity            = (SketchEntity)_inferredOriginPoint.Entity[1];
                                _firstInferredIntersectedSketchEntity = (SketchEntity)_inferredOriginPoint.Entity[2];
                                break;

                            case PointInferenceEnum.kPtOnCurve:
                                _firstSelectedSketchEntity = (SketchEntity)_inferredOriginPoint.Entity[1];
                                break;

                            case PointInferenceEnum.kPtOnPt:
                                _firstSelectedSketchEntity  = (SketchPoint)_inferredOriginPoint.Entity[1];
                                _pickedSketchPoint          = (SketchPoint)_firstSelectedSketchEntity;
                                _rectangleOriginSketchPoint = _pickedSketchPoint;
                                break;

                            case PointInferenceEnum.kPtAtMidPoint:
                                _firstSelectedSketchEntity = (SketchLine)_inferredOriginPoint.Entity[1];
                                break;
                            }
                        }

                        _pickedPoint2d = _planarSketch.ModelToSketchSpace(modelPosition);

                        DrawInteractionRectangle();

                        _mouseEvents.OnMouseMove     += _onMouseMove_Delegate;
                        _mouseEvents.MouseMoveEnabled = true;
                    }
                    else if (_inventorApplication.ActiveEditObject is DrawingSketch)
                    {
                        _drawingSketch = (DrawingSketch)_inventorApplication.ActiveEditObject;

                        if (_mouseEvents.PointInferences.Count > 0)
                        {
                            _inferredOriginPoint = _mouseEvents.PointInferences[1];

                            switch (_inferredOriginPoint.InferenceType)
                            {
                            case PointInferenceEnum.kPtAtIntersection:
                                _firstSelectedSketchEntity            = (SketchEntity)_inferredOriginPoint.Entity[1];
                                _firstInferredIntersectedSketchEntity = (SketchEntity)_inferredOriginPoint.Entity[2];
                                break;

                            case PointInferenceEnum.kPtOnCurve:
                                _firstSelectedSketchEntity = (SketchEntity)_inferredOriginPoint.Entity[1];
                                break;

                            case PointInferenceEnum.kPtOnPt:
                                _firstSelectedSketchEntity  = (SketchPoint)_inferredOriginPoint.Entity[1];
                                _pickedSketchPoint          = (SketchPoint)_firstSelectedSketchEntity;
                                _rectangleOriginSketchPoint = _pickedSketchPoint;
                                break;

                            case PointInferenceEnum.kPtAtMidPoint:
                                _firstSelectedSketchEntity = (SketchLine)_inferredOriginPoint.Entity[1];
                                break;
                            }
                        }
                        PointToPoint2d(modelPosition, out _pickedPoint2d);

                        DrawInteractionRectangle();

                        _mouseEvents.OnMouseMove     += _onMouseMove_Delegate;
                        _mouseEvents.MouseMoveEnabled = true;
                    }
                    else
                    {
                        MessageBox.Show("You must be editing a sketch in order to use this tool.");
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }
Esempio n. 26
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // 
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseDown(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            if (Button != MouseButtonEnum.kLeftMouseButton)
                return;

            if (_lineStripGraph == null)
            {
                double[] front = AdnInventorUtilities.ToArray(ModelPosition);
                double[] back = AdnInventorUtilities.ToArray(ModelPosition);
                double[] combined = front.Concat(back).ToArray();

                _rd = new Random();

                _lineStripGraph = _clientGraphicsMng.DrawLineStrip(
                    combined,
                    null);

                _lineStripGraph.ColorBinding = ColorBindingEnum.kPerItemColors;

                int id = _clientGraphicsMng.WorkingGraphics.GetDataSetFreeId();

                _lineStripGraph.ColorSet =
                    _clientGraphicsMng.WorkingGraphics.GraphicsDataSets.CreateColorSet(id);

                _lineStripGraph.ColorSet.Add(
                    _lineStripGraph.ColorSet.Count + 1, 
                    (byte)_rd.Next(0, 255), 
                    (byte)_rd.Next(0, 255),
                    (byte)_rd.Next(0, 255));

                _lineStripGraph.LineWeight = 5;

                _interactionManager.MouseEvents.MouseMoveEnabled = true;

                _interactionManager.MouseEvents.OnMouseMove +=
                    new MouseEventsSink_OnMouseMoveEventHandler(MouseEvents_OnMouseMove);
            }
            else
            {
                _lineStripGraph.CoordinateSet.Add(
                    _lineStripGraph.CoordinateSet.Count + 1,
                    ModelPosition);

                 _lineStripGraph.ColorSet.Add(
                    _lineStripGraph.ColorSet.Count + 1, 
                    (byte)_rd.Next(0, 255), 
                    (byte)_rd.Next(0, 255),
                    (byte)_rd.Next(0, 255));
            }
        }
Esempio n. 27
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // 
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseMove(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        { 
            int count = _lineStripGraph.CoordinateSet.Count;

            _lineStripGraph.CoordinateSet[count] = ModelPosition;

            _clientGraphicsMng.UpdateView();   
        }
Esempio n. 28
0
 //-----------------------------------------------------------------------------
 public void MouseEvents_OnMouseLeave(MouseButtonEnum button, ShiftStateEnum shiftKeys, View view)
 {
     m_parentCmd.OnMouseLeave(button, shiftKeys, view);
 }
Esempio n. 29
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // 
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseDown(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            if (Button != MouseButtonEnum.kLeftMouseButton)
                return;

            InsertAsSurfaceGraphics(_compGraph.Parent.Transformation);

            _clientGraphicsMng.SetGraphicsSource(
               _interactionManager.InteractionEvents);

            ComponentDefinition compDef =
                AdnInventorUtilities.GetCompDefinition(_componentDocument);

            _compGraph = _clientGraphicsMng.DrawComponent(compDef);
        }
Esempio n. 30
0
 //******************************************************************************
 //               Implementation of UserInput Events sink method
 //******************************************************************************
 virtual public void OnDrag(DragStateEnum DragState, ShiftStateEnum ShiftKeys, Point ModelPosition, Point2d ViewPosition, View View, NameValueMap AdditionalInfo, out HandlingCodeEnum HandlingCode)
 {
     //not implementation
     HandlingCode = HandlingCodeEnum.kEventNotHandled;
 }
Esempio n. 31
0
 //-----------------------------------------------------------------------------
 virtual public void OnStartMove(TriadSegmentEnum selectedTriadSegment, ShiftStateEnum shiftKeys, Matrix coordinateSystem, NameValueMap context, out HandlingCodeEnum handlingCode)
 {
     // Not implemented
     handlingCode = HandlingCodeEnum.kEventNotHandled;
 }
Esempio n. 32
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // OnMouseMove event we update the position of our dimension lines and text
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseMove(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            Vector normal = View.Camera.Eye.VectorTo(View.Camera.Target);

            UpdateDimension(_dimData, ModelPosition, normal);

            _clientGraphicsMng.UpdateView(); 
        }
Esempio n. 33
0
 private void mouseMove(MouseButtonEnum Button, ShiftStateEnum ShiftKeys, Inventor.Point ModelPosition, Point2d ViewPosition, Inventor.View View)
 {
 }
        /// <summary>
        /// When the user clicks on a point in the model, this method runs and creates an interaction graphics rectangle. 
        /// It also subscribes to the Mouse Move event to allow for the size of the rectangle to be driven by the location 
        /// of the mouse on the sketch. Ultimately, this method waits for the next click event, in which case it calls a 
        /// new method to actually create the sketched rectangle.  It has separate paths to react to whether it's a part
        /// sketch or a drawing sketch.
        /// </summary>
        /// <param name="button"></param>
        /// <param name="shiftKeys"></param>
        /// <param name="modelPosition"></param>
        /// <param name="viewPosition"></param>
        /// <param name="view"></param>
        protected void OnMouseClick_CreateRectangle(MouseButtonEnum button, ShiftStateEnum shiftKeys, Point modelPosition,
            Point2d viewPosition, Inventor.View view)
        {
            try
            {
                if (button == MouseButtonEnum.kLeftMouseButton)
                {
                    _onMouseMove_Delegate = new MouseEventsSink_OnMouseMoveEventHandler(OnMouseMove_DragCornerOfRectangle);
                    _mouseEvents.OnMouseClick -= _onMouseClick_Delegate;
                    _onMouseClick_Delegate = null;
                    _userInputEvents.OnContextMenu -= _userInputEvents_OnContextMenuDelegate;
                    _userInputEvents_OnContextMenuDelegate = null;

                    if (_inventorApplication.ActiveEditObject is PlanarSketch)
                    {
                        _planarSketch = (PlanarSketch)_inventorApplication.ActiveEditObject;

                        if (_mouseEvents.PointInferences.Count > 0)
                        {
                            _inferredOriginPoint = _mouseEvents.PointInferences[1];

                            switch (_inferredOriginPoint.InferenceType)
                            {
                                case PointInferenceEnum.kPtAtIntersection:
                                    _firstSelectedSketchEntity = (SketchEntity)_inferredOriginPoint.Entity[1];
                                    _firstInferredIntersectedSketchEntity = (SketchEntity)_inferredOriginPoint.Entity[2];
                                    break;
                                case PointInferenceEnum.kPtOnCurve:
                                    _firstSelectedSketchEntity = (SketchEntity)_inferredOriginPoint.Entity[1];
                                    break;
                                case PointInferenceEnum.kPtOnPt:
                                    _firstSelectedSketchEntity = (SketchPoint)_inferredOriginPoint.Entity[1];
                                    _pickedSketchPoint = (SketchPoint)_firstSelectedSketchEntity;
                                    _rectangleOriginSketchPoint = _pickedSketchPoint;
                                    break;
                                case PointInferenceEnum.kPtAtMidPoint:
                                    _firstSelectedSketchEntity = (SketchLine)_inferredOriginPoint.Entity[1];
                                    break;
                            }
                        }

                        _pickedPoint2d = _planarSketch.ModelToSketchSpace(modelPosition);

                        DrawInteractionRectangle();

                        _mouseEvents.OnMouseMove += _onMouseMove_Delegate;
                        _mouseEvents.MouseMoveEnabled = true;
                    }
                    else if (_inventorApplication.ActiveEditObject is DrawingSketch)
                    {
                        _drawingSketch = (DrawingSketch)_inventorApplication.ActiveEditObject;

                        if (_mouseEvents.PointInferences.Count > 0)
                        {
                            _inferredOriginPoint = _mouseEvents.PointInferences[1];

                            switch (_inferredOriginPoint.InferenceType)
                            {
                                case PointInferenceEnum.kPtAtIntersection:
                                    _firstSelectedSketchEntity = (SketchEntity)_inferredOriginPoint.Entity[1];
                                    _firstInferredIntersectedSketchEntity = (SketchEntity)_inferredOriginPoint.Entity[2];
                                    break;
                                case PointInferenceEnum.kPtOnCurve:
                                    _firstSelectedSketchEntity = (SketchEntity)_inferredOriginPoint.Entity[1];
                                    break;
                                case PointInferenceEnum.kPtOnPt:
                                    _firstSelectedSketchEntity = (SketchPoint)_inferredOriginPoint.Entity[1];
                                    _pickedSketchPoint = (SketchPoint)_firstSelectedSketchEntity;
                                    _rectangleOriginSketchPoint = _pickedSketchPoint;
                                    break;
                                case PointInferenceEnum.kPtAtMidPoint:
                                    _firstSelectedSketchEntity = (SketchLine)_inferredOriginPoint.Entity[1];
                                    break;
                            }
                        }
                        PointToPoint2d(modelPosition, out _pickedPoint2d);

                        DrawInteractionRectangle();

                        _mouseEvents.OnMouseMove += _onMouseMove_Delegate;
                        _mouseEvents.MouseMoveEnabled = true;
                    }
                    else
                        MessageBox.Show("You must be editing a sketch in order to use this tool.");
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }
Esempio n. 35
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // OnMouseDown Event: we create symbol in the sheet graphics by using SetGraphicsSource(sheet)
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseDown(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            if (Button != MouseButtonEnum.kLeftMouseButton)
                return;

            // Define symbol inputs: center, normal, radius

            Point center = ModelPosition;

            UnitVector normal = _Tg.CreateUnitVector(0, 0, 1);
            
            double radius = _sheet.Width / 30;

            // Add new symbol to the sheet graphics...
            _clientGraphicsMng.SetGraphicsSource(_sheet);

            DrawSymbol(normal, center, radius);

            _clientGraphicsMng.UpdateView();

            _clientGraphicsMng.SetGraphicsSource(
               _interactionManager.InteractionEvents);

            _symbolNode = null;
        }
Esempio n. 36
0
 public override void OnMouseUp(MouseButtonEnum button, ShiftStateEnum shiftKeys, Point modelPosition, Point2d viewPosition, Inventor.View view)
 {
     AddInformation();
 }
Esempio n. 37
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // 
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseMove(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            Matrix transfo = _compGraph.Parent.Transformation;

            Vector Tx = AdnInventorUtilities.InvApplication.TransientGeometry.CreateVector(
                ModelPosition.X, ModelPosition.Y, ModelPosition.Z);

            transfo.SetTranslation(Tx, false);

            _compGraph.Parent.Transformation = transfo;

            _clientGraphicsMng.UpdateView();
        }
        /// <summary>
        /// Method that reacts to the click event by the user to instantiate the rectangle. This method starts 
        /// the ChangeProcessor which encapsulates the drawing of the rectangle into one undo/redo mechanism.
        /// </summary>
        /// <param name="button"></param>
        /// <param name="shiftKeys"></param>
        /// <param name="modelPosition"></param>
        /// <param name="viewPosition"></param>
        /// <param name="view"></param>
        protected void OnMouseClick_LockTheRectangle(MouseButtonEnum button, ShiftStateEnum shiftKeys, Point modelPosition,
            Point2d viewPosition, Inventor.View view)
        {
            try
            {
                if (button == MouseButtonEnum.kLeftMouseButton)
                {
                    _mouseEvents.MouseMoveEnabled = false;

                    if (_mouseEvents.PointInferences.Count > 0)
                    {
                        _inferredFinalPositionPoint = _mouseEvents.PointInferences[1];
                    }

                    _finalPosition = modelPosition;

                    _changeProcessor.Connect();

                    ResetRectangle();

                    _rectangleButton.ButtonPressed = false;
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }
Esempio n. 39
0
 //-----------------------------------------------------------------------------
 virtual public void OnMouseMove(MouseButtonEnum button, ShiftStateEnum shiftKeys, Point modelPosition, Point2d viewPosition, View view)
 {
     // Not implemented
 }
Esempio n. 40
0
 //-----------------------------------------------------------------------------
 public void TriadEvents_OnStartMove(TriadSegmentEnum selectedTriadSegment, ShiftStateEnum shiftKeys, Matrix coordinateSystem, NameValueMap context, out HandlingCodeEnum handlingCode)
 {
     m_parentCmd.OnStartMove(selectedTriadSegment, shiftKeys, coordinateSystem, context, out handlingCode);
 }
Esempio n. 41
0
 //-----------------------------------------------------------------------------
 virtual public void OnMouseLeave(MouseButtonEnum button, ShiftStateEnum shiftKeys, View view)
 {
     // Not implemented
 }
Esempio n. 42
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // OnMouseDown event we create the client feature that holds the dimension graphics
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseDown(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            if (Button != MouseButtonEnum.kLeftMouseButton)
                return;

            Vector normal = View.Camera.Eye.VectorTo(View.Camera.Target);

            CreateClientFeature(
                _dimData.Point1, 
                _dimData.Point2, 
                ModelPosition, 
                normal);

            _interactionManager.Terminate();
        }
Esempio n. 43
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // 
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseMove(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            Point point = AdnInventorUtilities.ProjectOnPlane(ModelPosition, _plane);

            double radius = _center.DistanceTo(
                AdnInventorUtilities.ProjectOnPlane(
                    ModelPosition,
                    _plane));

            Circle circle = AdnInventorUtilities.InvApplication.TransientGeometry.CreateCircle(
                _center,
                _plane.Normal,
                radius);

            _curveGraph.Curve = circle;

            _clientGraphicsMng.UpdateView();
        }
Esempio n. 44
0
        //////////////////////////////////////////////////////////////////////////////////////////////
        // OnMouseMove Event is used to transform  current GraphicsNode moved by the user
        //
        //////////////////////////////////////////////////////////////////////////////////////////////
        void MouseEvents_OnMouseMove(
            MouseButtonEnum Button,
            ShiftStateEnum ShiftKeys,
            Inventor.Point ModelPosition,
            Point2d ViewPosition,
            Inventor.View View)
        {
            if (_symbolNode == null)
            {
                // Define symbol inputs: center, normal, radius
                Point center = _Tg.CreatePoint(0, 0, 0);

                UnitVector normal = _Tg.CreateUnitVector(0, 0, 1);

                double radius = _sheet.Width / 30;

                _symbolNode = DrawSymbol(normal, center, radius);
            }

            SetNodePosition(_symbolNode, ModelPosition);

            _clientGraphicsMng.UpdateView();
        }