#=========================================================================
import os
import math
+from tempfile import TemporaryDirectory
from ModelAPI import *
#=========================================================================
# Common test function
#=========================================================================
-def testExport(theType, theFormat, theFile, theVolume, theDelta):
+def testExport(theType, theFormat, theFile, theVolume, theDelta, theErrorExpected = False):
# Import a reference part
aSession.startOperation("Add part")
aPartFeature = aSession.moduleDocument().addFeature("Part")
aSession.startOperation("Import screw")
anImportFeature = aPart.addFeature("Import")
- anImportFeature.string("file_path").setValue("Data/screw.step")
+ aShapePath = os.path.join(os.getenv("DATA_DIR"), "Shapes", "Step", "screw.step")
+ anImportFeature.string("file_path").setValue(aShapePath)
aSession.finishOperation()
removeFile(theFile)
aSession.startOperation("Export part")
anExportFeature = aPart.addFeature("Export")
anExportFeature.string("file_format").setValue(theFormat)
- print "theFile=",theFile
+ print("theFile=",theFile)
anExportFeature.string("file_path").setValue(theFile)
anExportFeature.string("ExportType").setValue("Regular")
aSelectionListAttr = anExportFeature.selectionList("selection_list")
aSelectionListAttr.append(anImportFeature.firstResult(), anImportFeature.firstResult().shape())
aSession.finishOperation()
- assert os.path.exists(theFile)
+ if theErrorExpected:
+ assert anExportFeature.error() != ""
+ aPart.removeFeature(anExportFeature)
+ else:
+ assert os.path.exists(theFile)
- # Test exported file by importing
- testImport(theType, theFile, theVolume, theDelta)
+ # Test exported file by importing
+ testImport(theType, theFile, theVolume, theDelta)
+
+def testExportXAO(theFile, theEmptyFormat = False):
+ type = "XAO"
+ format = "XAO"
+ if theEmptyFormat:
+ type = "Regular"
+ format = ""
-def testExportXAO():
# Import a reference part
aSession.startOperation("Add part")
aPartFeature = aSession.moduleDocument().addFeature("Part")
aSession.startOperation("Import Box_1")
anImportFeature = aPart.addFeature("Import")
- anImportFeature.string("file_path").setValue("Data/Box_1.brep")
+ aShapePath = os.path.join(os.getenv("DATA_DIR"), "Shapes", "Brep", "box1.brep")
+ anImportFeature.string("file_path").setValue(aShapePath)
aSession.finishOperation()
# Create groups
aGroupFeature.data().setName("")
aSelectionListAttr = aGroupFeature.selectionList("group_list")
aSelectionListAttr.setSelectionType("face")
- aSelectionListAttr.append("Box_1_1/Shape1")
- aSelectionListAttr.append("Box_1_1/Shape2")
+ aSelectionListAttr.append("box1_1/Shape_1")
+ aSelectionListAttr.append("box1_1/Shape_2")
aSession.finishOperation()
aSession.startOperation("Create a field")
aField = aSession.activeDocument().addFeature("Field")
aSelectionListAttr = aField.selectionList("selected")
aSelectionListAttr.setSelectionType("face")
- aSelectionListAttr.append("Box_1_1/Shape1")
- aSelectionListAttr.append("Box_1_1/Shape2")
+ aSelectionListAttr.append("box1_1/Shape_1")
+ aSelectionListAttr.append("box1_1/Shape_2")
aComponentNames = aField.stringArray("components_names")
aComponentNames.setSize(2) # two components
aComponentNames.setValue(0, "temperatue")
# Export
aSession.startOperation("Export to XAO")
anExportFeature = aPart.addFeature("Export")
- anExportFeature.string("xao_file_path").setValue("Data/export.xao")
- anExportFeature.string("file_format").setValue("XAO")
- anExportFeature.string("ExportType").setValue("XAO")
+ anExportFeature.string("xao_file_path").setValue(theFile)
+ anExportFeature.string("file_format").setValue(type)
+ anExportFeature.string("ExportType").setValue(type)
anExportFeature.string("xao_author").setValue("me")
anExportFeature.string("xao_geometry_name").setValue("mygeom")
aSession.finishOperation()
# Check exported file
+ aRefPath = os.path.join(os.getenv("DATA_DIR"), "Shapes", "Xao", "box2.xao")
import filecmp
- assert filecmp.cmp("Data/export.xao", "Data/export_ref.xao")
+ assert filecmp.cmp(theFile, aRefPath)
if __name__ == '__main__':
-#=========================================================================
-# Export a shape into BREP
-#=========================================================================
- aRealVolume = 3.78827401738e-06
- testExport("BREP", "BREP", os.path.join(os.getcwd(), "Data", "screw_export.brep"), aRealVolume, 10 ** -17)
- testExport("BRP", "BREP", os.path.join(os.getcwd(), "Data", "screw_export.brp"), aRealVolume, 10 ** -17)
-#=========================================================================
-# Export a shape into STEP
-#=========================================================================
- testExport("STEP", "STEP", os.path.join(os.getcwd(), "Data", "screw_export.step"), 3.78825807533e-06, 10 ** -17)
- testExport("STP", "STEP", os.path.join(os.getcwd(), "Data", "screw_export.stp"), 3.78825807533e-06, 10 ** -17)
-#=========================================================================
-# Export a shape into IGES
-#=========================================================================
- testExport("IGES-5.1", "IGES-5.1", os.path.join(os.getcwd(), "Data", "screw_export-5.1.iges"), 3.78829613776e-06, 10 ** -17)
- testExport("IGS-5.1", "IGES-5.1", os.path.join(os.getcwd(), "Data", "screw_export-5.1.igs"), 3.78829613776e-06, 10 ** -17)
- testExport("IGES-5.3", "IGES-5.3", os.path.join(os.getcwd(), "Data", "screw_export-5.3.iges"), 3.78827401651e-06, 10 ** -17)
- testExport("IGS-5.3", "IGES-5.3", os.path.join(os.getcwd(), "Data", "screw_export-5.3.igs"), 3.78827401651e-06, 10 ** -17)
-#=========================================================================
-# Export a shape into XAO
-#=========================================================================
- testExportXAO()
-#=========================================================================
-# End of test
-#=========================================================================
-
-assert(model.checkPythonDump())
+ with TemporaryDirectory() as tmp_dir:
+ #=========================================================================
+ # Export a shape into BREP
+ #=========================================================================
+ aRealVolume = 3.78827401738e-06
+ testExport("BREP", "BREP", os.path.join(tmp_dir, "screw_export.brep"), aRealVolume, 10 ** -17)
+ testExport("BRP", "BREP", os.path.join(tmp_dir, "screw_export.brp"), aRealVolume, 10 ** -17)
+ testExport("Regular", "", os.path.join(tmp_dir, "screw_export.brep"), aRealVolume, 10 ** -17)
+ #=========================================================================
+ # Export a shape into STEP
+ #=========================================================================
+ testExport("STEP", "STEP", os.path.join(tmp_dir, "screw_export.step"), 3.78825807533e-06, 10 ** -17)
+ testExport("STP", "STEP", os.path.join(tmp_dir, "screw_export.stp"), 3.78825807533e-06, 10 ** -17)
+ testExport("Regular", "", os.path.join(tmp_dir, "screw_export.step"), 3.78825807533e-06, 10 ** -17)
+ #=========================================================================
+ # Export a shape into IGES
+ #=========================================================================
+ testExport("IGES-5.1", "IGES-5.1", os.path.join(tmp_dir, "screw_export-5.1.iges"), 3.78829613776e-06, 10 ** -17)
+ testExport("IGS-5.1", "IGES-5.1", os.path.join(tmp_dir, "screw_export-5.1.igs"), 3.78829613776e-06, 10 ** -17)
+ testExport("Regular", "", os.path.join(tmp_dir, "screw_export-5.1.iges"), 3.78829613776e-06, 10 ** -17)
+ testExport("IGES-5.3", "IGES-5.3", os.path.join(tmp_dir, "screw_export-5.3.iges"), 3.78827401651e-06, 10 ** -17)
+ testExport("IGS-5.3", "IGES-5.3", os.path.join(tmp_dir, "screw_export-5.3.igs"), 3.78827401651e-06, 10 ** -17)
+ #=========================================================================
+ # Export a shape into XAO
+ #=========================================================================
+ testExportXAO(os.path.join(tmp_dir, "export.xao"))
+ testExportXAO(os.path.join(tmp_dir, "export.xao"), True)
+ #=========================================================================
+ # Check error when export to unsupported format
+ #=========================================================================
+ testExport("Regular", "", os.path.join(tmp_dir, "screw_export.dwg"), 3.78825807533e-06, 10 ** -17, True)
+ #=========================================================================
+ # End of test
+ #=========================================================================
+
+ assert(model.checkPythonDump())