Exemplo n.º 1
0
        public static bool St7Units(bool active, St7UnitEnum st7UnitEnum)
        {
            if (!active)
            {
                return(false);
            }

            int[] units = new int[St7.kLastUnit];
            if (st7UnitEnum == St7UnitEnum.kN_m)
            {
                units[St7.ipFORCEU]  = St7.fuKILONEWTON;
                units[St7.ipLENGTHU] = St7.luMETRE;
                units[St7.ipSTRESSU] = St7.suKILOPASCAL;
            }
            else if (st7UnitEnum == St7UnitEnum.N_mm)
            {
                units[St7.ipLENGTHU] = St7.luMILLIMETRE;
                units[St7.ipFORCEU]  = St7.fuNEWTON;
                units[St7.ipSTRESSU] = St7.suMEGAPASCAL;
            }

            units[St7.ipMASSU]   = St7.muKILOGRAM;
            units[St7.ipTEMPERU] = St7.tuKELVIN;
            units[St7.ipENERGYU] = St7.euJOULE;
            int err = St7.St7SetUnits(1, units);

            return(St7Error(err));
        }
Exemplo n.º 2
0
        public static bool St7ImportRhino(string fileName, string fileDir, St7UnitEnum st7UnitEnum, bool active = false)
        {
            if (!active)
            {
                return(false);
            }
            int uID = 1;
            int err = 0;

            fileDir = fileDir.EndsWith(Path.DirectorySeparatorChar.ToString()) ? fileDir : fileDir + Path.DirectorySeparatorChar;
            string tempDir = string.Concat(fileDir, "tmp" + Path.DirectorySeparatorChar);

            if (!Directory.Exists(tempDir))
            {
                Directory.CreateDirectory(tempDir);
            }


            int[] Integers = new int[5];
            Integers[St7.ipGeomImportProperty]         = 1;
            Integers[St7.ipGeomImportCurvesToBeams]    = St7.btFalse;
            Integers[St7.ipGeomImportGroupsAs]         = St7.ggLayers;
            Integers[St7.ipGeomImportColourAsProperty] = St7.btTrue;
            if (st7UnitEnum == St7UnitEnum.N_mm)
            {
                Integers[St7.ipGeomImportLengthUnit] = St7.luGeomMillimetre;
            }
            else if (st7UnitEnum == St7UnitEnum.kN_m)
            {
                Integers[St7.ipGeomImportLengthUnit] = St7.luGeomMetre;
            }

            double[] Doubles = new double[] { 0.001 };

            int Mode = St7.ieQuietRun;

            err = St7.St7ImportRhino(uID, string.Concat(fileDir, fileName), Integers, Doubles, Mode);
            int numFaces = 0;

            err = St7.St7GetTotal(uID, St7.tyGEOMETRYFACE, ref numFaces);
            foreach (int i in Enumerable.Range(1, numFaces + 1))
            {
                err = St7.St7SetEntitySelectState(uID, St7.tyGEOMETRYFACE, i, 0, St7.btTrue);
            }
            err = St7.St7SetKeepSelect(1, St7.btFalse);
            if (st7UnitEnum == St7UnitEnum.N_mm)
            {
                err = St7.St7GraftEdgesToFaces(1, St7.ztAbsolute, 0.01);
            }
            else if (st7UnitEnum == St7UnitEnum.kN_m)
            {
                err = St7.St7GraftEdgesToFaces(1, St7.ztAbsolute, 0.0001);
            }

            return(St7Error(err));
        }