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