Beispiel #1
0
 void Init()
 {
     _nodes       = new StbNodes();
     _storys      = new StbStorys();
     _slabs       = new StbSlabs();
     _secColumnRC = new StbSecColRC();
     _secBeamRC   = new StbSecBeamRC();
     _secColumnS  = new StbSecColumnS();
     _secBeamS    = new StbSecBeamS();
     _secBraceS   = new StbSecBraceS();
     _stbSecSteel = new StbSecSteel();
 }
Beispiel #2
0
 private void Init()
 {
     Nodes       = new StbNodes();
     Columns     = new StbColumns();
     Posts       = new StbPosts();
     Girders     = new StbGirders();
     Beams       = new StbBeams();
     Braces      = new StbBraces();
     Slabs       = new StbSlabs();
     Walls       = new StbWalls();
     SecColumnRc = new StbSecColumnRc();
     SecBeamRc   = new StbSecBeamRc();
     SecColumnS  = new StbSecColumnS();
     SecBeamS    = new StbSecBeamS();
     SecBraceS   = new StbSecBraceS();
     SecSteel    = new StbSecSteel();
 }
Beispiel #3
0
        public static Curve GetCurve(StbSecSteel secSteel, string shape, Point3d point, Utils.SectionType type, Vector3d[] localAxis)
        {
            // TODO: foreach なのに最初にマッチしたもので return しているのでが変なので直す。
            if (secSteel.StbSecBuildBOX != null)
            {
                foreach (var box in secSteel.StbSecBuildBOX.Where(box => box.name == shape))
                {
                    return(CurveFromStbSecBox(localAxis, point, type, box.A, box.B));
                }
            }

            if (secSteel.StbSecRollBOX != null)
            {
                foreach (StbSecRollBOX box in secSteel.StbSecRollBOX.Where(box => box.name == shape))
                {
                    return(CurveFromStbSecBox(localAxis, point, type, box.A, box.B));
                }
            }

            if (secSteel.StbSecFlatBar != null)
            {
                foreach (StbSecFlatBar flatBar in secSteel.StbSecFlatBar.Where(bar => bar.name == shape))
                {
                    return(CurveFromStbSecBox(localAxis, point, type, flatBar.B, flatBar.t));
                }
            }

            if (secSteel.StbSecBuildH != null)
            {
                foreach (StbSecBuildH buildH in secSteel.StbSecBuildH.Where(buildH => buildH.name == shape))
                {
                    return(CurveFromStbSecH(localAxis, point, type, buildH.A, buildH.B, buildH.t1, buildH.t2));
                }
            }

            if (secSteel.StbSecRollH != null)
            {
                foreach (StbSecRollH rollH in secSteel.StbSecRollH.Where(rollH => rollH.name == shape))
                {
                    return(CurveFromStbSecH(localAxis, point, type, rollH.A, rollH.B, rollH.t1, rollH.t2));
                }
            }

            if (secSteel.StbSecRollL != null)
            {
                foreach (StbSecRollL rollL in secSteel.StbSecRollL.Where(rollL => rollL.name == shape))
                {
                    return(CurveFromStbSecL(localAxis, point, type, rollL));
                }
            }

            if (secSteel.StbSecPipe != null)
            {
                foreach (StbSecPipe pipe in secSteel.StbSecPipe.Where(pipe => pipe.name == shape))
                {
                    return(CurveFromStbSecPipe(localAxis, point, type, pipe.D));
                }
            }

            if (secSteel.StbSecRoundBar != null)
            {
                foreach (StbSecRoundBar bar in secSteel.StbSecRoundBar.Where(pipe => pipe.name == shape))
                {
                    return(CurveFromStbSecPipe(localAxis, point, type, bar.R));
                }
            }

            // TODO: C 断面を実装する
            if (secSteel.StbSecRollC != null || secSteel.StbSecLipC != null)
            {
                throw new ArgumentException("StbSecRollC & StbSecLipC is not supported");
            }

            throw new ArgumentException("There are no matching steel section");
        }