public static string Description(this ISectionProfile profile) { if (profile == null) { return("null profile"); } return($"I {profile.Height:G3}x{profile.Width:G3}x{profile.WebThickness:G3}x{profile.FlangeThickness:G3}"); }
/***************************************************/ public static double WarpingConstant(this ISectionProfile profile) { double width = profile.Width; double height = profile.Height; double tf = profile.FlangeThickness; double tw = profile.WebThickness; return(tf * Math.Pow(height - tf, 2) * Math.Pow(width, 3) / 24); }
/***************************************************/ public static double TorsionalConstant(this ISectionProfile profile) { double b1 = profile.Width; double b2 = profile.Width; double height = profile.Height; double tf = profile.FlangeThickness; double tw = profile.WebThickness; return((b1 * Math.Pow(tf, 3) + b2 * Math.Pow(tf, 3) + (height - tf) * Math.Pow(tw, 3)) / 3); }
/***************************************************/ public static ISectionProfile InterpolateProfile(ISectionProfile startProfile, ISectionProfile endProfile, double parameter, int interpolationOrder, double domainStart = 0, double domainEnd = 1) { return(Create.ISectionProfile( Interpolate(startProfile.Height, endProfile.Height, parameter, interpolationOrder, domainStart, domainEnd), Interpolate(startProfile.Width, endProfile.Width, 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))); }
public static double TorsionalConstant(this ISectionProfile profile) { double b = profile.Width; double h = profile.Height; double tf = profile.FlangeThickness; double tw = profile.WebThickness; double r = profile.RootRadius; double alpha = AlphaTJunction(tw, tf, r); double D = InscribedDiameterTJunction(tw, tf, r); return((2 * b * Math.Pow(tf, 3) + (h - 2 * tf) * Math.Pow(tw, 3)) / 3 + 2 * alpha * Math.Pow(D, 4) - 0.42 * Math.Pow(tf, 4)); }
/***************************************************/ private bool CreateProfile(string name, ISectionProfile profile) { List <double> dimensionList = new List <double> { profile.Width, profile.Height, profile.FlangeThickness, profile.WebThickness, profile.RootRadius }; double[] dimensionArray = dimensionList.ToArray(); //List<string> valueList = new List<string> { "B", "D", "tf", "tw", "r" }; int lusasType = 5; CreateLibrarySection(name, dimensionArray, lusasType); return(true); }
/***************************************************/ /**** Public Methods - Profiles ****/ /***************************************************/ public static string Description(this ISectionProfile profile) { return("I " + profile.Height + "x" + profile.Width + "x" + profile.WebThickness + "x" + profile.FlangeThickness); }
/***************************************************/ private bool SetProfile(ISectionProfile bhomProfile, string sectionName, string matName) { int ret = m_model.PropFrame.SetISection(sectionName, matName, bhomProfile.Height, bhomProfile.Width, bhomProfile.FlangeThickness, bhomProfile.WebThickness, bhomProfile.Width, bhomProfile.FlangeThickness); return(ret == 0); }
private static void SetSpecificDimensions(ISectionProfile dimensions, string sectionName, IMaterialFragment material, cSapModel model) { model.PropFrame.SetISection(sectionName, material.Name, dimensions.Height, dimensions.Width, dimensions.FlangeThickness, dimensions.WebThickness, dimensions.Width, dimensions.FlangeThickness); }
private (double[], int, string) GetProfileDimensions(ISectionProfile profile) { return(new double[] { profile.Width, profile.Width, profile.Height, profile.FlangeThickness, profile.FlangeThickness, profile.WebThickness }, St7.bsISection, profile.Name); }
/***************************************************/ private bool SetProfile(ISectionProfile profile, string sectionName, IMaterialFragment material) { return(m_model.PropFrame.SetISection(sectionName, material?.DescriptionOrName() ?? "", profile.Height, profile.Width, profile.FlangeThickness, profile.WebThickness, profile.Width, profile.FlangeThickness) == 0); }