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); } } }
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 } }, }); }
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); }