/***************************************************/ private bool SetProfile(ZSectionProfile bhomProfile, string sectionName, string matName) { if (bhomProfile.FlangeThickness != bhomProfile.WebThickness) { CreatePropertyWarning(sectionName, "Z Section with unequal web and flange thickness", bhomProfile.BHoM_Guid.ToString()); } double t = Math.Max(bhomProfile.FlangeThickness, bhomProfile.WebThickness); int ret = m_model.PropFrame.SetColdZ(sectionName, matName, bhomProfile.Height, bhomProfile.FlangeWidth, t, bhomProfile.RootRadius, 0, 0); return(ret == 0); }
/***************************************************/ public static double TorsionalConstant(this ZSectionProfile profile) { double b1 = profile.FlangeWidth; double b2 = profile.FlangeWidth; double height = profile.Height; double tf1 = profile.FlangeThickness; double tf2 = profile.FlangeThickness; double tw = profile.WebThickness; return((b1 * Math.Pow(tf1, 3) + b2 * Math.Pow(tf2, 3) + (height - tf1) * Math.Pow(tw, 3)) / 3); }
/***************************************************/ public static ZSectionProfile InterpolateProfile(ZSectionProfile startProfile, ZSectionProfile endProfile, double parameter, int interpolationOrder, double domainStart = 0, double domainEnd = 1) { return(Create.ZSectionProfile( Interpolate(startProfile.Height, endProfile.Height, parameter, interpolationOrder, domainStart, domainEnd), Interpolate(startProfile.FlangeWidth, endProfile.FlangeWidth, parameter, interpolationOrder, domainStart, domainEnd), Interpolate(startProfile.WebThickness, endProfile.WebThickness, parameter, interpolationOrder, domainStart, domainEnd), Interpolate(startProfile.FlangeThickness, endProfile.FlangeThickness, parameter, interpolationOrder, domainStart, domainEnd), Interpolate(startProfile.RootRadius, endProfile.RootRadius, parameter, interpolationOrder, domainStart, domainEnd), Interpolate(startProfile.ToeRadius, endProfile.ToeRadius, parameter, interpolationOrder, domainStart, domainEnd))); }
/***************************************************/ private bool CreateProfile(string name, ZSectionProfile profile) { Engine.Base.Compute.RecordWarning("Lusas only supports constant thickness Z sections, flange thickness used as thickness"); Engine.Base.Compute.RecordWarning("Toe radius not supported for ZSection"); List <double> dimensionList = new List <double> { profile.Height, profile.FlangeWidth, profile.FlangeWidth, profile.FlangeThickness, profile.RootRadius }; double[] dimensionArray = dimensionList.ToArray(); //List<string> valueList = new List<string> { "D", "E", "F", "t", "r" }; int lusasType = 16; CreateLibrarySection(name, dimensionArray, lusasType); return(true); }
private static void SetSpecificDimensions(ZSectionProfile dimensions, string sectionName, IMaterialFragment material, cSapModel model) { Engine.Reflection.Compute.RecordWarning("Z-Section currently not supported in the Etabs adapter. Section with name " + sectionName + " has not been pushed."); }
private (double[], int, string) GetProfileDimensions(ZSectionProfile profile) { return(new double[] { profile.FlangeWidth, profile.FlangeWidth, profile.Height, profile.FlangeThickness, profile.FlangeThickness, profile.WebThickness }, St7.bsZSection, profile.Name); }