コード例 #1
0
 private static void SetFlatBarSection(StbSections sections, FemMaterial material, CroSecFamilyName familyName, ICollection <CroSec> k3dCroSecList)
 {
     if (sections.StbSecSteel.StbSecFlatBar != null)
     {
         foreach (StbSecFlatBar flatBar in sections.StbSecSteel.StbSecFlatBar)
         {
             var k3dCroSec = new CroSec_Trapezoid(familyName.FB, flatBar.name, null, null, material, flatBar.B, flatBar.t, flatBar.t);
             SetK3dCroSecElemId(sections, k3dCroSec, flatBar.name);
             k3dCroSecList.Add(k3dCroSec);
         }
     }
 }
コード例 #2
0
 private static void SetPipeSection(StbSections sections, FemMaterial material, CroSecFamilyName familyName, ICollection <CroSec> k3dCroSecList)
 {
     if (sections.StbSecSteel.StbSecPipe != null)
     {
         foreach (StbSecPipe pipe in sections.StbSecSteel.StbSecPipe)
         {
             var k3dCroSec = new CroSec_Circle(familyName.Circle, pipe.name, null, null, material,
                                               pipe.D / 10d, pipe.t / 10d);
             SetK3dCroSecElemId(sections, k3dCroSec, pipe.name);
             k3dCroSecList.Add(k3dCroSec);
         }
     }
 }
コード例 #3
0
 private static void SetRoundBarSection(StbSections sections, FemMaterial material, CroSecFamilyName familyName, ICollection <CroSec> k3dCroSecList)
 {
     if (sections.StbSecSteel.StbSecRoundBar != null)
     {
         foreach (StbSecRoundBar roundBar in sections.StbSecSteel.StbSecRoundBar)
         {
             // TODO: Karambaは中実円断面ないため、矩形の等価断面。
             double eqLength  = Math.Sqrt(roundBar.R * roundBar.R * Math.PI) / 10d;
             var    k3dCroSec = new CroSec_Trapezoid(familyName.Circle, roundBar.name, null, null, material, eqLength, eqLength, eqLength);
             SetK3dCroSecElemId(sections, k3dCroSec, roundBar.name);
             k3dCroSecList.Add(k3dCroSec);
         }
     }
 }
コード例 #4
0
 private static void SetBuildBoxSection(StbSections sections, FemMaterial material, CroSecFamilyName familyName, ICollection <CroSec> k3dCroSecList)
 {
     if (sections.StbSecSteel.StbSecBuildBOX != null)
     {
         foreach (StbSecBuildBOX buildBOX in sections.StbSecSteel.StbSecBuildBOX)
         {
             var k3dCroSec = new CroSec_Box(familyName.Box, buildBOX.name, null, null, material,
                                            buildBOX.A / 10d, buildBOX.B / 10d, buildBOX.B / 10d,
                                            buildBOX.t2 / 10d, buildBOX.t2 / 10d, buildBOX.t1 / 10d, 0, -1);
             SetK3dCroSecElemId(sections, k3dCroSec, buildBOX.name);
             k3dCroSecList.Add(k3dCroSec);
         }
     }
 }
コード例 #5
0
 private static void SetRollTSection(StbSections sections, FemMaterial material, CroSecFamilyName familyName, ICollection <CroSec> k3dCroSecList)
 {
     if (sections.StbSecSteel.StbSecRollT != null)
     {
         foreach (StbSecRollT rollT in sections.StbSecSteel.StbSecRollT)
         {
             var k3dCroSec = new CroSec_T(familyName.T, rollT.name, null, null, material,
                                          rollT.A / 10d, rollT.B / 10d,
                                          rollT.t2 / 10d, rollT.t1 / 10d, rollT.r / 10d, rollT.r / 10d);
             SetK3dCroSecElemId(sections, k3dCroSec, rollT.name);
             k3dCroSecList.Add(k3dCroSec);
         }
     }
 }
コード例 #6
0
 private static void SetRollBoxSection(StbSections sections, FemMaterial material, CroSecFamilyName familyName, ICollection <CroSec> k3dCroSecList)
 {
     if (sections.StbSecSteel.StbSecRollBOX != null)
     {
         foreach (StbSecRollBOX rollBOX in sections.StbSecSteel.StbSecRollBOX)
         {
             var k3dCroSec = new CroSec_Box(familyName.Box, rollBOX.name, null, null, material,
                                            rollBOX.A / 10d, rollBOX.B / 10d, rollBOX.B / 10d,
                                            rollBOX.t / 10d, rollBOX.t / 10d, rollBOX.t / 10d, rollBOX.r / 10d, rollBOX.r / 10d);
             SetK3dCroSecElemId(sections, k3dCroSec, rollBOX.name);
             k3dCroSecList.Add(k3dCroSec);
         }
     }
 }
コード例 #7
0
 private static void SetBuildHSection(StbSections sections, FemMaterial material, CroSecFamilyName familyName, ICollection <CroSec> k3dCroSecList)
 {
     if (sections.StbSecSteel.StbSecBuildH != null)
     {
         foreach (StbSecBuildH buildH in sections.StbSecSteel.StbSecBuildH)
         {
             var k3dCroSec = new CroSec_I(familyName.H, buildH.name, null, null, material,
                                          buildH.A / 10d, buildH.B / 10d, buildH.B / 10d,
                                          buildH.t2 / 10d, buildH.t2 / 10d, buildH.t1 / 10d);
             SetK3dCroSecElemId(sections, k3dCroSec, buildH.name);
             k3dCroSecList.Add(k3dCroSec);
         }
     }
 }
コード例 #8
0
 private static void SetLipCSection(StbSections sections, FemMaterial material, CroSecFamilyName familyName, ICollection <CroSec> k3dCroSecList)
 {
     if (sections.StbSecSteel.StbSecLipC != null)
     {
         foreach (StbSecLipC lipC in sections.StbSecSteel.StbSecLipC)
         {
             // TODO: 正確な形状に合わせて等価断面計算する。フィレットは非考慮
             int typeFactor = lipC.type == StbSecLipCType.SINGLE ? 1 : 2;
             var eqLength   = Math.Sqrt((2 * lipC.A * lipC.t + lipC.H * lipC.t + 2 * lipC.C * lipC.t - 4 * lipC.t * lipC.t) * typeFactor) / 10d;
             var k3dCroSec  = new CroSec_Trapezoid(familyName.Circle, lipC.name, null, null, material, eqLength, eqLength, eqLength);
             SetK3dCroSecElemId(sections, k3dCroSec, lipC.name);
             k3dCroSecList.Add(k3dCroSec);
         }
     }
 }
コード例 #9
0
 private static void SetRollLSection(StbSections sections, FemMaterial material, CroSecFamilyName familyName, ICollection <CroSec> k3dCroSecList)
 {
     if (sections.StbSecSteel.StbSecRollL != null)
     {
         foreach (StbSecRollL rollL in sections.StbSecSteel.StbSecRollL)
         {
             // TODO: 正確な形状に合わせて等価断面計算する。フィレットは非考慮
             int typeFactor = rollL.type == StbSecRollLType.SINGLE ? 1 : 2;
             var eqLength   = Math.Sqrt((rollL.A * rollL.t1 + rollL.B * rollL.t2 - rollL.t1 * rollL.t2) * typeFactor) / 10d;
             var k3dCroSec  = new CroSec_Trapezoid(familyName.Circle, rollL.name, null, null, material, eqLength, eqLength, eqLength);
             SetK3dCroSecElemId(sections, k3dCroSec, rollL.name);
             k3dCroSecList.Add(k3dCroSec);
         }
     }
 }
コード例 #10
0
        private static string getRMaterialName(ref Material rMaterial, FemMaterial kMaterial)
        {
            if (kMaterial.family == "Concrete")
            {
                return("Beton " + kMaterial.name);
            }
            else if (kMaterial.family == "Steel")
            {
                return("NameID|Baustahl S " + kMaterial.name.Substring(1) + "@TypeID|STEEL@NormID|SFS EN 1993-1-1");
            }
            //else if (kMaterial.family == "Steel") { return "Baustahl S" + kMaterial.name.Substring(1); }

            else
            {
                return("Beton C30/37");
            }
        }
コード例 #11
0
        private static List <CroSec> StbSecSteelToK3dCroSec(StbSections sections, FemMaterial material, CroSecFamilyName familyName)
        {
            var k3dCroSecList = new List <CroSec>();

            if (sections.StbSecSteel == null)
            {
                return(k3dCroSecList);
            }

            SetRollHSection(sections, material, familyName, k3dCroSecList);
            SetBuildHSection(sections, material, familyName, k3dCroSecList);
            SetRollBoxSection(sections, material, familyName, k3dCroSecList);
            SetBuildBoxSection(sections, material, familyName, k3dCroSecList);
            SetRollTSection(sections, material, familyName, k3dCroSecList);
            SetPipeSection(sections, material, familyName, k3dCroSecList);
            SetRollCSection(sections, material, familyName, k3dCroSecList);
            SetRollLSection(sections, material, familyName, k3dCroSecList);
            SetLipCSection(sections, material, familyName, k3dCroSecList);
            SetFlatBarSection(sections, material, familyName, k3dCroSecList);
            SetRoundBarSection(sections, material, familyName, k3dCroSecList);

            return(k3dCroSecList);
        }
コード例 #12
0
        //Add Material
        public void convertMaterial(FemMaterial material, int materialIndex)
        {
            int value = addInstruction("MAT TITL " + material.name + " NO " + materialIndex + " E " + material.E() / 1000.0 + " G " + material.G3() / 1000.0 + " GAM " + material.gamma() + " ALFA " + material.alphaT());

            _mat_inst.Add(material.guid, (uint)materialIndex);
        }