private static AcDimPrecision Clasf_precision(PrecisionCota presicionCota)
 {
     if (presicionCota == PrecisionCota.Cero)
     {
         return(AcDimPrecision.acDimPrecisionZero);
     }
     else if (presicionCota == PrecisionCota.Uno)
     {
         return(AcDimPrecision.acDimPrecisionOne);
     }
     else if (presicionCota == PrecisionCota.Dos)
     {
         return(AcDimPrecision.acDimPrecisionTwo);
     }
     else if (presicionCota == PrecisionCota.Tres)
     {
         return(AcDimPrecision.acDimPrecisionThree);
     }
     else if (presicionCota == PrecisionCota.Cuatro)
     {
         return(AcDimPrecision.acDimPrecisionFour);
     }
     else if (presicionCota == PrecisionCota.Cinco)
     {
         return(AcDimPrecision.acDimPrecisionFive);
     }
     else if (presicionCota == PrecisionCota.Seis)
     {
         return(AcDimPrecision.acDimPrecisionSix);
     }
     else
     {
         return(AcDimPrecision.acDimPrecisionTwo);
     }
 }
        /// <summary>
        /// Añadir nueva cota al documento actual.
        /// </summary>
        /// <param name="P1_XY">Punto Inicial [System.Drawing]</param>
        /// <param name="P2_XY">Punto Final [System.Drawing]</param>
        /// <param name="Layer">Capa de la cota.</param>
        /// <param name="Style">Estilo de la cota.</param>
        /// <param name="DesplazCota">Desplazamiento de la Cota perpendicularmente a la línea formada.</param>
        /// <param name="DeplazaTextX">Desplazamiento en X del texto asociado a la cota</param>
        /// <param name="DeplazaTextY">Desplazamiento en Y del texto asociado a la cota</param>
        /// <param name="Precision">Cantidad de decimales de la cota. Ejemplo: (0,0.0,0.00,0.000)</param>
        /// <param name="Text">Cambia la medición original al texto establecido.</param>
        /// <param name="TextHeight">Alto del texto.</param>
        /// <param name="ArrowheadSize">Tamaño de las puntas de la cota.</param>
        /// <param name="headType1">Tipo de cabeza de la cota en la punta inicial.</param>
        /// <param name="headType2">Tipo de cabeza de la cota en la punta final.</param>
        /// <param name="TextRotation">Angulo de rotación en grados del texto.</param>
        /// <param name="RA">Aplicar rotación automatica.</param>
        public static void AddCota(PointF P1_XY, PointF P2_XY, string Layer, string Style, float DesplazCota = 0, float DeplazaTextX = 0, float DeplazaTextY = 0, PrecisionCota Precision = PrecisionCota.Dos, string Text = "", double TextHeight = 0.0015,
                                   double ArrowheadSize = 0.001, ArrowHeadType headType1 = ArrowHeadType.ArrowDot, ArrowHeadType headType2 = ArrowHeadType.ArrowDot, double TextRotation  = 0, bool RA = true)
        {
            try
            {
                double[] P1_XYZ = ConvertirPuntoEnDobules3D(P1_XY);
                double[] P2_XYZ = ConvertirPuntoEnDobules3D(P2_XY);
                if (AcadDoc != null && P1_XYZ.Length == 3 && P2_XYZ.Length == 3)
                {
                    double Rotation_Rad;
                    double X = P2_XYZ[0] - P1_XYZ[0];
                    double Y = P2_XYZ[1] - P1_XYZ[1];
                    //Encontrar Angulo
                    Rotation_Rad = Math.Abs(Math.Atan(Y / X));
                    double DesX           = (Distancia(P1_XYZ, P2_XYZ) / 2) * Math.Cos(Rotation_Rad);
                    double DesY           = (Distancia(P1_XYZ, P2_XYZ) / 2) * Math.Sin(Rotation_Rad);
                    double DesplazarXCota = DesplazCota * Math.Sin(Rotation_Rad);
                    double DesplazarYCota = DesplazCota * Math.Cos(Rotation_Rad);

                    double[] LocationText = new double[] { P1_XYZ[0] + DesX + DesplazarXCota, P1_XYZ[1] + DesY + DesplazarYCota, P1_XYZ[2] + (P2_XYZ[2] - P1_XYZ[2]) / 2 };
                    double[] TextPosition = new double[] { LocationText[0] + DeplazaTextX, LocationText[1] + DeplazaTextY, LocationText[2] };
                    if (!RA)
                    {
                        Rotation_Rad = 0;
                    }
                    AcadDimRotated cota = AcadDoc.ModelSpace.AddDimRotated(P1_XYZ, P2_XYZ, LocationText, Rotation_Rad);

                    //Cotas siempre con Puntas Redondas

                    cota.Layer                 = Layer;
                    cota.StyleName             = Layer;
                    cota.TextStyle             = Style;
                    cota.TextHeight            = TextHeight;
                    cota.ArrowheadSize         = ArrowheadSize;
                    cota.PrimaryUnitsPrecision = Clasf_precision(Precision);
                    cota.TextPosition          = TextPosition;
                    cota.Arrowhead1Type        = Clasf_ArrowHeadType(headType1);
                    cota.Arrowhead2Type        = Clasf_ArrowHeadType(headType2);
                    cota.TextRotation          = TextRotation * Math.PI / 180;
                    if (Text != "")
                    {
                        cota.TextOverride = Text;
                    }

                    cota.Update();
                }
            }
            catch
            {
                NotificadorErrores?.Invoke("Error inesperado.");
            }
        }