Example #1
0
        /***************************************************/
        /**** Private methods                           ****/
        /***************************************************/
        private bool CreateObject(Loadcase bhLoadCase)
        {
            int err;
            int loadCaseId    = bhLoadCase.Number;
            int loadCaseCount = 0;
            int uID           = 1;

            err = St7.St7GetNumLoadCase(uID, ref loadCaseCount);

            if (loadCaseCount < loadCaseId)
            {
                err = St7.St7NewLoadCase(uID, bhLoadCase.Name);
                if (!St7ErrorCustom(err, "Could not create a load case number " + loadCaseId))
                {
                    return(false);
                }
            }
            else // updating
            {
                StringBuilder currentLoadCaseName = new StringBuilder(St7.kMaxStrLen);
                err = St7.St7GetLoadCaseName(uID, loadCaseId, currentLoadCaseName, St7.kMaxStrLen);
                if (!String.Equals(currentLoadCaseName.ToString(), bhLoadCase.Name, StringComparison.OrdinalIgnoreCase))
                {
                    err = St7.St7SetLoadCaseName(uID, loadCaseId, bhLoadCase.Name);
                    if (!St7ErrorCustom(err, "Could not update a load case number " + loadCaseId))
                    {
                        return(false);
                    }
                }
            }
            err = St7.St7SetLoadCaseType(uID, loadCaseId, St7LoadCaseTypeFromNature(bhLoadCase.Nature));
            err = St7.St7EnableLSALoadCase(uID, loadCaseId, 1);
            return(true);
        }
Example #2
0
        /***************************************************/
        /**** Private methods                           ****/
        /***************************************************/

        private bool CreateObject(GravityLoad gravityLoad)
        {
            int      err        = 0;
            Loadcase loadcase   = gravityLoad.Loadcase;
            int      loadCaseId = GetAdapterId <int>(loadcase);

            err = St7.St7SetLoadCaseType(1, loadCaseId, St7.lcGravity);
            err = St7.St7EnableLSALoadCase(1, loadCaseId, 1);
            if (!St7ErrorCustom(err, "Couldn't set gravity for a loadcase " + loadCaseId))
            {
                return(false);
            }
            int gravityDir = 0;

            if (gravityLoad.GravityDirection.X != 0)
            {
                gravityDir = 1;
            }
            if (gravityLoad.GravityDirection.Y != 0)
            {
                gravityDir = 2;
            }
            if (gravityLoad.GravityDirection.Z != 0)
            {
                gravityDir = 3;
            }

            err = St7.St7SetLoadCaseGravityDir(1, loadCaseId, gravityDir);
            if (!St7ErrorCustom(err, "Couldn't set gravity direction for a loadcase " + loadCaseId))
            {
                return(false);
            }

            int[] units = new int[St7.kLastUnit];
            err = St7.St7GetUnits(1, units);
            if (!St7ErrorCustom(err, "Couldn't get default units for a loadcase " + loadCaseId))
            {
                return(false);
            }
            double temp  = St7TempFromTUnints(units[St7.ipTEMPERU]);
            double accel = St7AccelerationFromLUnints(units[St7.ipLENGTHU]);

            // Load case defaults array
            double[] loadVals = new double[13];
            loadVals[St7.ipLoadCaseRefTemp] = temp;
            loadVals[St7.ipLoadCaseAccX]    = gravityDir == 1 ? accel : 0;
            loadVals[St7.ipLoadCaseAccY]    = gravityDir == 2 ? accel : 0;
            loadVals[St7.ipLoadCaseAccZ]    = gravityDir == 3 ? accel : 0;
            err = St7.St7SetLoadCaseDefaults(1, loadCaseId, loadVals);
            if (!St7ErrorCustom(err, "Couldn't set gravity acceleration for a loadcase " + loadCaseId))
            {
                return(false);
            }
            return(true);
        }
Example #3
0
        /***************************************************/
        private bool CreateObject(St7LoadCaseInertia loadCaseInertia)
        {
            int      err        = 0;
            Loadcase loadcase   = loadCaseInertia.Loadcase;
            int      loadCaseId = GetAdapterId <int>(loadcase);

            err = St7.St7SetLoadCaseType(1, loadCaseId, St7.lcGravity);
            err = St7.St7EnableLSALoadCase(1, loadCaseId, 1);
            if (!St7ErrorCustom(err, "Couldn't set gravity for a loadcase " + loadCaseId))
            {
                return(false);
            }
            int gravityDir = 0;

            if (loadCaseInertia.GravityDirection.X != 0)
            {
                gravityDir = 1;
            }
            if (loadCaseInertia.GravityDirection.Y != 0)
            {
                gravityDir = 2;
            }
            if (loadCaseInertia.GravityDirection.Z != 0)
            {
                gravityDir = 3;
            }

            err = St7.St7SetLoadCaseGravityDir(1, loadCaseId, gravityDir);
            if (!St7ErrorCustom(err, "Couldn't set gravity direction for a loadcase " + loadCaseId))
            {
                return(false);
            }

            int[] units = new int[St7.kLastUnit];
            err = St7.St7GetUnits(1, units);
            if (!St7ErrorCustom(err, "Couldn't get default units for a loadcase " + loadCaseId))
            {
                return(false);
            }
            double temp  = St7TempFromTUnints(units[St7.ipTEMPERU]);
            double accel = St7AccelerationFromLUnints(units[St7.ipLENGTHU]);

            // Load case defaults array
            double[] loadVals = new double[13];
            loadVals[St7.ipLoadCaseRefTemp] = temp;
            loadVals[St7.ipLoadCaseAccX]    = gravityDir == 1 ? accel * loadCaseInertia.GravityDirection.X : 0;
            loadVals[St7.ipLoadCaseAccY]    = gravityDir == 2 ? accel * loadCaseInertia.GravityDirection.Y : 0;
            loadVals[St7.ipLoadCaseAccZ]    = gravityDir == 3 ? accel * loadCaseInertia.GravityDirection.Z : 0;
            err = St7.St7SetLoadCaseDefaults(1, loadCaseId, loadVals);
            if (!St7ErrorCustom(err, "Couldn't set gravity acceleration for a loadcase " + loadCaseId))
            {
                return(false);
            }

            //Structural and Non-structural Mass
            int structuralMass    = loadCaseInertia.StructuralMass ? St7.btTrue : St7.btFalse;
            int nonStructuralMass = loadCaseInertia.NonStructuralMass ? St7.btTrue : St7.btFalse;

            err = St7.St7SetLoadCaseMassOption(1, loadCaseId, (byte)structuralMass, (byte)nonStructuralMass);
            if (!St7ErrorCustom(err, "Couldn't set structural Mass for a loadcase " + loadCaseId))
            {
                return(false);
            }
            return(true);
        }