示例#1
0
        public void CalcularCoordenadasPorCadaAngulo(int Angulo)
        {
            List <double> CoordRotacion = B_Operaciones_Matricialesl.Operaciones.Rotacion(Coord[0], Coord[1], (Angulo * Math.PI) / 180);

            float[] CoordeRotadas = new float[] { (float)CoordRotacion[0], (float)CoordRotacion[1] };
            Coordenadas_PorCadaAngulo.Add(new Tuple <float[], int>(CoordeRotadas, Angulo));
        }
示例#2
0
        public void CalcularDeformacion(List <float> C, float ecu, int Angulo, float FY, float ES, float Ymax, Secciones.TipodeSeccion pseccion)
        {
            float[]      CoordenadasAngulo = Coordenadas_PorCadaAngulo.Find(x => x.Item2 == Angulo).Item1;
            List <float> Fuerzas           = new List <float>();
            List <float> Deform            = new List <float>();
            List <float> Esfuerz           = new List <float>();
            List <float> Momento           = new List <float>();

            if (pseccion != Secciones.TipodeSeccion.Circle)
            {
                for (int i = 0; i < C.Count; i++)
                {
                    float C_Original = Ymax - C[i];
                    float d          = Ymax - CoordenadasAngulo[1];
                    float esi        = ((C_Original - d) / C_Original) * ecu;

                    float fs = ES * esi;

                    if (Math.Abs(fs) > FY)
                    {
                        if (esi < 0)
                        {
                            fs = -FY;
                        }
                        else
                        {
                            fs = FY;
                        }
                    }

                    float FS;
                    float Mi;

                    FS = fs * (float)As_Long;
                    Mi = Math.Abs(FS) * Math.Abs(CoordenadasAngulo[1]);

                    Fuerzas.Add(FS);
                    Momento.Add(Mi);
                    Esfuerz.Add(fs);
                    Deform.Add(esi);
                }
            }
            else
            {
                for (int i = 0; i < C.Count; i++)
                {
                    float Magnitud_Di, Magnitud_Ci;
                    Magnitud_Ci = C[i] + Ymax;
                    Magnitud_Di = CoordenadasAngulo[1] + Ymax;

                    float esi = ((Magnitud_Ci - Magnitud_Di) / Magnitud_Ci) * ecu;

                    float fs = ES * esi;

                    if (Math.Abs(fs) > FY)
                    {
                        if (esi < 0)
                        {
                            fs = -FY;
                        }
                        else
                        {
                            fs = FY;
                        }
                    }

                    float FS;
                    float Mi;

                    FS = fs * (float)As_Long;
                    Mi = Math.Abs(FS) * Math.Abs(Ymax - Magnitud_Di);

                    Fuerzas.Add(FS);
                    Momento.Add(Mi);
                    Esfuerz.Add(fs);
                    Deform.Add(esi);
                }
            }

            Esfuerzos_PorCadaCPorCadaAngulo.Add(new Tuple <List <float>, int>(Esfuerz, Angulo));
            Deformacion_PorCadaCPorCadaAngulo.Add(new Tuple <List <float>, int>(Deform, Angulo));
            Fuerzas_PorCadaCPorCadaAngulo.Add(new Tuple <List <float>, int>(Fuerzas, Angulo));
            Momento_PorCadaCPorCadaAngulo.Add(new Tuple <List <float>, int>(Momento, Angulo));
        }