Exemple #1
0
        private StatCrossSection GetWbeamStatCrossSection(sFrame jb, StatMaterial mat)
        {
            double a;
            double tw;
            double d;
            double tf;
            double bf;
            double nw;
            double ix;
            double sx;
            double rx;
            double zx;
            double iy;
            double sy;
            double ry;
            double zy;
            double rts;
            double ho;
            double j;
            double c;

            var t = jb;

            jb.crossSection.GetWBeamDimensions(jb.crossSection.shapeName, out a, out tw, out d, out tf, out bf, out nw, out ix, out sx, out rx, out zx, out iy, out sy, out ry, out zy, out rts, out ho, out j, out c);

            StatCrossSection cs = new StatCrossSection(jb.crossSection.shapeName, mat);

            //cs.Wbeam(d * 0.0254, bf * 0.0254, tf * 0.0254, tw * 0.0254);
            double ijFac   = 4.162314256E-07;
            double areaFac = 0.00064516;

            cs.Generic(a * areaFac, ix * ijFac, iy * ijFac, j * ijFac);

            return(cs);
        }
Exemple #2
0
        private StatCrossSection GetHSSRectangleStatCrossSection(sFrame jb, StatMaterial mat)
        {
            double w; ///list of variables
            double d;
            double t;
            double ar;
            double ix;
            double sx;
            double rx;
            double zx;
            double iy;
            double sy;
            double ry;
            double zy;
            double jt;
            double ct;
            double nw;

            jb.crossSection.GetHSSRecDimensions(jb.crossSection.shapeName, out w, out d, out t, out ar, out ix, out sx, out rx, out zx, out iy, out sy, out ry, out zy, out jt, out ct, out nw);

            StatCrossSection cs = new StatCrossSection(jb.crossSection.shapeName, mat);

            //cs.RectangleHollow(w * 0.0254, d * 0.0254, t * 0.0254);
            double ijFac   = 4.162314256E-07;
            double areaFac = 0.00064516;

            cs.Generic(ar * areaFac, ix * ijFac, iy * ijFac, jt * ijFac);

            return(cs);
        }
Exemple #3
0
        public StatCrossSection ToStatCrossSection(sFrame jb, bool minuteDensity = false)
        {
            StatCrossSection cs  = null;
            StatMaterial     mat = GetStatMaterial(jb, minuteDensity);

            if (jb.crossSection.sectionType == eSectionType.AISC_I_BEAM)
            {
                cs = GetWbeamStatCrossSection(jb, mat);
            }
            else if (jb.crossSection.sectionType == eSectionType.HSS_REC)
            {
                cs = GetHSSRectangleStatCrossSection(jb, mat);
            }
            else if (jb.crossSection.sectionType == eSectionType.HSS_ROUND)
            {
                cs = GetHSSRoundStatCrossSection(jb, mat);
            }
            else if (jb.crossSection.sectionType == eSectionType.SQUARE)
            {
                cs = GetSquareStatCrossSection(jb, mat);
            }
            else if (jb.crossSection.sectionType == eSectionType.RECTANGLAR)
            {
                cs = GetRectangleStatCrossSection(jb, mat);
            }
            else if (jb.crossSection.sectionType == eSectionType.ROUND)
            {
                cs = GetRoundCrossSection(jb, mat);
            }

            return(cs);
        }
Exemple #4
0
        private StatMaterial GetStatMaterial(sFrame jb, bool minuteDensity = false)
        {
            StatMaterial mat = null;

            if (jb.crossSection.material.materialType.ToString().Contains("STEEL"))
            {
                //mat = new StatMaterial(MATERIALTYPES.STEEL, "StatSteel");
                mat    = new StatMaterial(MATERIALTYPES.GENERIC, "StatSteel");
                mat.Em = 1.999E11;
                mat.Gm = 7.69E10;
                if (minuteDensity)
                {
                    mat.Density = 0.000000001;
                }
                else
                {
                    mat.Density = 7849.0474;
                }
                mat.Poisson = 0.3;
            }
            else if (jb.crossSection.material.materialType.ToString().Contains("ALUMINUM"))
            {
                mat = new StatMaterial(MATERIALTYPES.ALUMINUM, "StatAluminum");
            }
            else if (jb.crossSection.material.materialType.ToString().Contains("CONCRETE"))
            {
                mat = new StatMaterial(MATERIALTYPES.CONCRETE, "StatConcrete");
            }
            else if (jb.crossSection.material.materialType.ToString().Contains("CARBONFRP"))
            {
                mat = new StatMaterial(MATERIALTYPES.CARBONFRP, "StatConcrete");
            }
            else if (jb.crossSection.material.materialType.ToString().Contains("OAK"))
            {
                mat = new StatMaterial(MATERIALTYPES.OAK, "StatConcrete");
            }
            else if (jb.crossSection.material.materialType.ToString().Contains("STAINLESSSTEEL"))
            {
                mat = new StatMaterial(MATERIALTYPES.STAINLESSSTEEL, "StatConcrete");
            }
            else if (jb.crossSection.material.materialType.ToString().Contains("Isotropic"))
            {
                mat = new StatMaterial(MATERIALTYPES.GENERIC, "StatIsotropic");
                //how to assure unit??
                //
                mat.Em      = jb.crossSection.material.E;
                mat.Density = jb.crossSection.material.massPerVol;

                //what else??
            }

            return(mat);
        }
Exemple #5
0
        private StatCrossSection GetRectangleStatCrossSection(sFrame jb, StatMaterial mat)
        {
            StatCrossSection cs = new StatCrossSection(jb.crossSection.shapeName, mat);

            //currently cannot trust Millipede
            if (jb.crossSection.dimensions.Count > 0)
            {
                if (jb.crossSection.dimensions.Count == 2)
                {
                    double wid = jb.crossSection.dimensions[0];
                    double dep = jb.crossSection.dimensions[1];

                    double area;
                    double iyy;
                    double izz;
                    double jxx;
                    GetRectangularSolidProperties(wid, dep, out area, out iyy, out izz, out jxx);

                    //no factor as it is calculated in metric
                    cs.Generic(area, iyy, izz, jxx);

                    //cs.RectangleSolid(jb.crossSection.dimensions[0], jb.crossSection.dimensions[1]);
                }
                else if (jb.crossSection.dimensions.Count == 3)
                {
                    double wid = jb.crossSection.dimensions[0];
                    double dep = jb.crossSection.dimensions[1];
                    double th  = jb.crossSection.dimensions[2];

                    double area;
                    double iyy;
                    double izz;
                    double jxx;
                    GetRectangularHollowProperties(wid, dep, th, out area, out iyy, out izz, out jxx);

                    //no factor as it is calculated in metric
                    cs.Generic(area, iyy, izz, jxx);

                    //cs.RectangleHollow(jb.crossSection.dimensions[0], jb.crossSection.dimensions[1], jb.crossSection.dimensions[2]);
                }
            }
            return(cs);
        }
Exemple #6
0
        private StatCrossSection GetRoundCrossSection(sFrame jb, StatMaterial mat)
        {
            StatCrossSection cs = new StatCrossSection(jb.crossSection.shapeName, mat);

            if (jb.crossSection.dimensions.Count > 0)
            {
                if (jb.crossSection.dimensions.Count == 1)
                {
                    double or = jb.crossSection.dimensions[0] * 0.5;
                    cs.CircSolid(or);
                }
                else if (jb.crossSection.dimensions.Count == 2)
                {
                    double or = jb.crossSection.dimensions[0] * 0.5;
                    double ir = (jb.crossSection.dimensions[0] * 0.5) - jb.crossSection.dimensions[1];

                    cs.CircHollow(ir, or);
                }
            }
            return(cs);
        }
Exemple #7
0
        private StatCrossSection GetHSSRoundStatCrossSection(sFrame jb, StatMaterial mat)
        {
            double od;
            double th;
            double a;
            double i;
            double s;
            double r;
            double z;
            double j;
            double c;
            double nw;

            jb.crossSection.GetHSSRoundDimensions(jb.crossSection.shapeName, out od, out th, out a, out i, out s, out r, out z, out j, out c, out nw);
            StatCrossSection cs = new StatCrossSection(jb.crossSection.shapeName, mat);

            //cs.RectangleHollow(w * 0.0254, d * 0.0254, t * 0.0254);
            double ijFac   = 4.162314256E-07;
            double areaFac = 0.00064516;

            cs.Generic(a * areaFac, i * ijFac, i * ijFac, j * ijFac);

            return(cs);
        }