Пример #1
0
        public static string Description(this FabricatedISectionProfile profile)
        {
            if (profile == null)
            {
                return("null profile");
            }

            return($"FabI {profile.Height:G3}x{profile.TopFlangeWidth:G3}x{profile.BotFlangeWidth:G3}x" +
                   $"{profile.WebThickness:G3}x{profile.TopFlangeThickness:G3}x{profile.BotFlangeThickness:G3}");
        }
Пример #2
0
        /***************************************************/

        public static double TorsionalConstant(this FabricatedISectionProfile profile)
        {
            double b1     = profile.TopFlangeWidth;
            double b2     = profile.BotFlangeWidth;
            double height = profile.Height;
            double tf1    = profile.TopFlangeThickness;
            double tf2    = profile.BotFlangeThickness;
            double tw     = profile.WebThickness;

            return((b1 * Math.Pow(tf1, 3) + b2 * Math.Pow(tf2, 3) + (height - (tf1 + tf2) / 2) * Math.Pow(tw, 3)) / 3);
        }
Пример #3
0
        /***************************************************/

        public static FabricatedISectionProfile InterpolateProfile(FabricatedISectionProfile startProfile, FabricatedISectionProfile endProfile, double parameter, int interpolationOrder,
                                                                   double domainStart = 0, double domainEnd = 1)
        {
            return(Create.FabricatedISectionProfile(
                       Interpolate(startProfile.Height, endProfile.Height, parameter, interpolationOrder, domainStart, domainEnd),
                       Interpolate(startProfile.TopFlangeWidth, endProfile.TopFlangeWidth, parameter, interpolationOrder, domainStart, domainEnd),
                       Interpolate(startProfile.BotFlangeWidth, endProfile.BotFlangeWidth, parameter, interpolationOrder, domainStart, domainEnd),
                       Interpolate(startProfile.WebThickness, endProfile.WebThickness, parameter, interpolationOrder, domainStart, domainEnd),
                       Interpolate(startProfile.TopFlangeThickness, endProfile.TopFlangeThickness, parameter, interpolationOrder, domainStart, domainEnd),
                       Interpolate(startProfile.BotFlangeThickness, endProfile.TopFlangeThickness, parameter, interpolationOrder, domainStart, domainEnd),
                       Interpolate(startProfile.WeldSize, endProfile.WeldSize, parameter, interpolationOrder, domainStart, domainEnd)));
        }
Пример #4
0
        /***************************************************/

        public static double WarpingConstant(this FabricatedISectionProfile profile)
        {
            double b1     = profile.TopFlangeWidth;
            double b2     = profile.BotFlangeWidth;
            double height = profile.Height;
            double tf1    = profile.TopFlangeThickness;
            double tf2    = profile.BotFlangeThickness;
            double tw     = profile.WebThickness;


            if (tf1 == tf2 && b1 == b2)
            {
                return(tf1 * Math.Pow(height - tf1, 2) * Math.Pow(b1, 3) / 24);
            }
            else
            {
                return(tf1 * Math.Pow(height - (tf1 + tf2) / 2, 2) / 12 * (Math.Pow(b1, 3) * Math.Pow(b2, 3) / (Math.Pow(b1, 3) + Math.Pow(b2, 3))));
            }
        }
Пример #5
0
        /***************************************************/

        private bool CreateProfile(string name, FabricatedISectionProfile profile)
        {
            List <double> dimensionList = new List <double> {
                profile.TopFlangeWidth,
                profile.BotFlangeWidth, profile.Height, profile.TopFlangeThickness, profile.BotFlangeThickness,
                profile.WebThickness, profile.WeldSize
            };

            double[] dimensionArray = dimensionList.ToArray();

            //List<string> valueList = new List<string> { "Bt", "Bb", "D", "tft", "bft", "tw", "r" };

            int lusasType = 14;

            CreateLibrarySection(name, dimensionArray, lusasType);

            Engine.Base.Compute.RecordWarning("Weld size assumed to be root radius for " + profile.GetType().ToString());

            return(true);
        }
Пример #6
0
        /***************************************************/

        public static string Description(this FabricatedISectionProfile profile)
        {
            return("FabI " + profile.Height + "x" + profile.TopFlangeWidth + "x" + profile.BotFlangeWidth + "x" + profile.WebThickness + "x" + profile.TopFlangeThickness + "x" + profile.BotFlangeThickness);
        }
Пример #7
0
        /***************************************************/

        private bool SetProfile(FabricatedISectionProfile bhomProfile, string sectionName, string matName)
        {
            int ret = m_model.PropFrame.SetISection(sectionName, matName, bhomProfile.Height, bhomProfile.TopFlangeWidth, bhomProfile.TopFlangeThickness, bhomProfile.WebThickness, bhomProfile.BotFlangeWidth, bhomProfile.BotFlangeThickness);

            return(ret == 0);
        }
Пример #8
0
 private static void SetSpecificDimensions(FabricatedISectionProfile dimensions, string sectionName, IMaterialFragment material, cSapModel model)
 {
     model.PropFrame.SetISection(sectionName, material.Name, dimensions.Height, dimensions.TopFlangeWidth, dimensions.TopFlangeThickness, dimensions.WebThickness, dimensions.BotFlangeWidth, dimensions.BotFlangeThickness);
 }
Пример #9
0
 private (double[], int, string) GetProfileDimensions(FabricatedISectionProfile profile)
 {
     return(new double[] { profile.TopFlangeWidth, profile.BotFlangeWidth, profile.Height, profile.TopFlangeThickness, profile.BotFlangeThickness, profile.WebThickness }, St7.bsISection, profile.Name);
 }
Пример #10
0
        /***************************************************/

        private bool SetProfile(FabricatedISectionProfile profile, string sectionName, IMaterialFragment material)
        {
            return(m_model.PropFrame.SetISection(sectionName, material?.DescriptionOrName() ?? "", profile.Height, profile.TopFlangeWidth, profile.TopFlangeThickness, profile.WebThickness, profile.BotFlangeWidth, profile.BotFlangeThickness) == 0);
        }