Example #1
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);
         }
     }
 }
Example #2
0
 private static StbSecColumn_RC CreateCircleColumn(int croSecId, int cNum, CroSec_Circle circle)
 {
     return(new StbSecColumn_RC
     {
         id = (croSecId + 1).ToString(),
         name = "C" + cNum,
         kind_column = StbSecColumn_RCKind_column.COLUMN,
         StbSecFigureColumn_RC = new StbSecFigureColumn_RC
         {
             Item = new StbSecColumn_RC_Circle {
                 D = circle.getHeight() * 1000
             }
         },
     });
 }
Example #3
0
        private static List <CroSec> StbSecColumnRcToK3dCroSec(IEnumerable <StbSecColumn_RC> columns)
        {
            var k3dCroSecList = new List <CroSec>();

            if (columns == null)
            {
                return(k3dCroSecList);
            }

            foreach (StbSecColumn_RC column in columns)
            {
                string              name;
                CroSec_Beam         k3dCroSec;
                object              figure   = column.StbSecFigureColumn_RC.Item;
                FemMaterial_Isotrop material = Material.StbToRcFemMaterial(column.strength_concrete);
                switch (figure)
                {
                case StbSecColumn_RC_Rect rect:
                    double widthX = rect.width_X / 10d;
                    double widthY = rect.width_Y / 10d;
                    name      = $"CD-{widthX * 10}x{widthY * 10}";
                    k3dCroSec = new CroSec_Trapezoid("RcColRect", name, null, null, material, widthX, widthY, widthY);
                    break;

                case StbSecColumn_RC_Circle circle:
                    double d = circle.D / 10d;
                    name      = $"P-{d * 10}";
                    k3dCroSec = new CroSec_Circle("RcColCircle", name, null, null, material, d, d / 2);
                    break;

                default:
                    throw new ArgumentException("Convert StbSecColumn_RC to karamba3d error");
                }
                k3dCroSec.AddElemId("Id" + column.id);
                k3dCroSecList.Add(k3dCroSec);
            }

            return(k3dCroSecList);
        }