コード例 #1
0
ファイル: Description.cs プロジェクト: BHoM/BHoM_Engine
        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}");
        }
コード例 #2
0
        /***************************************************/

        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);
        }
コード例 #3
0
        /***************************************************/

        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);
        }
コード例 #4
0
 /***************************************************/
 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)));
 }
コード例 #5
0
        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));
        }
コード例 #6
0
        /***************************************************/

        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);
        }
コード例 #7
0
        /***************************************************/
        /**** Public Methods - Profiles                 ****/
        /***************************************************/

        public static string Description(this ISectionProfile profile)
        {
            return("I " + profile.Height + "x" + profile.Width + "x" + profile.WebThickness + "x" + profile.FlangeThickness);
        }
コード例 #8
0
        /***************************************************/

        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);
        }
コード例 #9
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);
 }
コード例 #10
0
 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);
 }
コード例 #11
0
ファイル: SectionProperty.cs プロジェクト: BHoM/ETABS_Toolkit
        /***************************************************/

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