예제 #1
0
 /// <inheritdoc />
 public override void UpdateEntities()
 {
     try
     {
         var length = EndPointOCS.DistanceTo(InsertionPointOCS);
         var scale  = GetScale();
         if (EndPointOCS.Equals(Point3d.Origin))
         {
             // Задание точки вставки. Второй точки еще нет - отрисовка типового элемента
             MakeSimplyEntity(UpdateVariant.SetInsertionPoint, scale);
         }
         else if (length < MinDistanceBetweenPoints * scale && MiddlePoints.Count == 0)
         {
             // Задание второй точки - случай когда расстояние между точками меньше минимального
             MakeSimplyEntity(UpdateVariant.SetEndPointMinLength, scale);
         }
         else
         {
             // Задание любой другой точки
             CreateEntities(InsertionPointOCS, MiddlePointsOCS, EndPointOCS, scale);
         }
     }
     catch (Exception exception)
     {
         ExceptionBox.Show(exception);
     }
 }
예제 #2
0
 /// <inheritdoc />
 public override void UpdateEntities()
 {
     try
     {
         var length = EndPointOCS.DistanceTo(InsertionPointOCS);
         var scale  = GetScale();
         if (EndPointOCS.Equals(Point3d.Origin))
         {
             // Задание точки вставки (т.е. второй точки еще нет)
             MakeSimplyEntity(UpdateVariant.SetInsertionPoint, scale);
         }
         else if (length < MinDistanceBetweenPoints * scale)
         {
             // Задание второй точки - случай когда расстояние между точками меньше минимального
             MakeSimplyEntity(UpdateVariant.SetEndPointMinLength, scale);
         }
         else
         {
             // Задание второй точки
             var pts = PointsToCreatePolyline(scale, InsertionPointOCS, EndPointOCS, out List <double> bulges);
             FillMainPolylineWithPoints(pts, bulges);
         }
     }
     catch (Exception exception)
     {
         ExceptionBox.Show(exception);
     }
 }
예제 #3
0
        /// <inheritdoc/>
        public override void UpdateEntities()
        {
            try
            {
                var scale = GetScale();

                //// Задание первой точки (точки вставки). Она же точка начала отсчета
                if (JigState == SecantNodalLeaderJigState.InsertionPoint)
                {
                    var tempEndPoint = new Point3d(
                        InsertionPointOCS.X,
                        InsertionPointOCS.Y + (MinDistanceBetweenPoints * scale),
                        InsertionPointOCS.Z);

                    CreateEntities(InsertionPointOCS, tempEndPoint, scale);
                }
                //// Указание точки выноски
                else
                {
                    // Если конечная точка на расстоянии, менее допустимого
                    if (EndPointOCS.DistanceTo(InsertionPointOCS) < MinDistanceBetweenPoints * scale)
                    {
                        var v            = (EndPointOCS - InsertionPointOCS).GetNormal();
                        var tempEndPoint = InsertionPointOCS + (MinDistanceBetweenPoints * scale * v);

                        CreateEntities(InsertionPointOCS, tempEndPoint, scale);
                    }
                    else
                    {
                        // Прочие случаи
                        CreateEntities(InsertionPointOCS, EndPointOCS, scale);
                    }
                }
            }
            catch (Exception exception)
            {
                ExceptionBox.Show(exception);
            }
        }