X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FExchangePlugin%2FTest%2FTestExport.py;h=8a6f1e320eceb40448228fe50d0d0c27ec3085b4;hb=a1baede8e41ab33d4d133cfa42f1fbafb50c8438;hp=2f8d4144b2507e21626afb73dc015a250ec8978f;hpb=5fd9c62cf47f0bb3ef1de7666b4ac911d3eccf95;p=modules%2Fshaper.git diff --git a/src/ExchangePlugin/Test/TestExport.py b/src/ExchangePlugin/Test/TestExport.py index 2f8d4144b..8a6f1e320 100644 --- a/src/ExchangePlugin/Test/TestExport.py +++ b/src/ExchangePlugin/Test/TestExport.py @@ -1,3 +1,23 @@ +## Copyright (C) 2014-2017 CEA/DEN, EDF R&D +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +## +## See http:##www.salome-platform.org/ or +## email : webmaster.salome@opencascade.com +## + """ TestExport.py Unit test of ExchangePlugin_TestExport class @@ -7,12 +27,13 @@ #========================================================================= import os import math +from tempfile import TemporaryDirectory from ModelAPI import * from TestImport import testImport -import model +from salome.shaper import model __updated__ = "2015-05-22" @@ -37,23 +58,22 @@ def testExport(theType, theFormat, theFile, theVolume, theDelta): aPart = aSession.activeDocument() aSession.startOperation("Import screw") - anImport = model.addImport(aPart, "Data/screw.step") -# anImportFeature = aPart.addFeature("Import") -# anImportFeature.string("file_path").setValue("Data/screw.step") -# anImportFeature.execute() + anImportFeature = aPart.addFeature("Import") + aShapePath = os.path.join(os.getenv("DATA_DIR"), "Shapes", "Step", "screw.step") + anImportFeature.string("file_path").setValue(aShapePath) aSession.finishOperation() removeFile(theFile) # Export a part aSession.startOperation("Export part") - model.exportToFile(aPart, theFile, anImport.result(), theFormat) -# anExportFeature = aPart.addFeature("Export") -# anExportFeature.string("file_format").setValue(theFormat) -# anExportFeature.string("file_path").setValue(theFile) -# aSelectionListAttr = anExportFeature.selectionList("selection_list") -# aSelectionListAttr.setSelectionType("solids") -# aSelectionListAttr.append(anImportFeature.firstResult(), anImportFeature.firstResult().shape()) -# anExportFeature.execute() + anExportFeature = aPart.addFeature("Export") + anExportFeature.string("file_format").setValue(theFormat) + print("theFile=",theFile) + anExportFeature.string("file_path").setValue(theFile) + anExportFeature.string("ExportType").setValue("Regular") + aSelectionListAttr = anExportFeature.selectionList("selection_list") + aSelectionListAttr.setSelectionType("solids") + aSelectionListAttr.append(anImportFeature.firstResult(), anImportFeature.firstResult().shape()) aSession.finishOperation() assert os.path.exists(theFile) @@ -61,7 +81,7 @@ def testExport(theType, theFormat, theFile, theVolume, theDelta): # Test exported file by importing testImport(theType, theFile, theVolume, theDelta) -def testExportXAO(): +def testExportXAO(theFile): # Import a reference part aSession.startOperation("Add part") aPartFeature = aSession.moduleDocument().addFeature("Part") @@ -69,79 +89,94 @@ def testExportXAO(): aPart = aSession.activeDocument() aSession.startOperation("Import Box_1") - anImport = model.addImport(aPart, "Data/Box_1.brep") -# anImportFeature = aPart.addFeature("Import") -# anImportFeature.string("file_path").setValue("Data/Box_1.brep") -# anImportFeature.execute() + anImportFeature = aPart.addFeature("Import") + aShapePath = os.path.join(os.getenv("DATA_DIR"), "Shapes", "Brep", "box1.brep") + anImportFeature.string("file_path").setValue(aShapePath) aSession.finishOperation() # Create groups - aSession.startOperation() - aGroup = model.addGroup(aPart, anImport.result()) - aGroup.defaultResult().data().setName("boite_1") - aGroup.groupList().setSelectionType("solid") -# aGroupFeature = aSession.activeDocument().addFeature("Group") -# aGroupFeature.data().setName("boite_1") -# aSelectionListAttr = aGroupFeature.selectionList("group_list") -# aSelectionListAttr.setSelectionType("solid") -# aSelectionListAttr.append(anImport.feature().lastResult(), None) -# aGroupFeature.execute() + aSession.startOperation("First group") + aGroupFeature = aSession.activeDocument().addFeature("Group") + aGroupFeature.data().setName("boite_1") + aSelectionListAttr = aGroupFeature.selectionList("group_list") + aSelectionListAttr.setSelectionType("solid") + aSelectionListAttr.append(anImportFeature.lastResult(), None) + aSession.finishOperation() + + aSession.startOperation("Second Group") + aGroupFeature = aSession.activeDocument().addFeature("Group") + aGroupFeature.data().setName("") + aSelectionListAttr = aGroupFeature.selectionList("group_list") + aSelectionListAttr.setSelectionType("face") + aSelectionListAttr.append("box1_1/Shape1") + aSelectionListAttr.append("box1_1/Shape2") aSession.finishOperation() - aSession.startOperation() - aGroup = model.addGroup(aPart, []) - aGroup.defaultResult().data().setName("") - aGroup.groupList().setSelectionType("face") - aGroup.groupList().append("Box_1_1/Shape1_1") - aGroup.groupList().append("Box_1_1/Shape2_1") -# aGroupFeature = aSession.activeDocument().addFeature("Group") -# aGroupFeature.data().setName("") -# aSelectionListAttr = aGroupFeature.selectionList("group_list") -# aSelectionListAttr.setSelectionType("face") -# aSelectionListAttr.append("Box_1_1/Shape1_1") -# aSelectionListAttr.append("Box_1_1/Shape2_1") -# aGroupFeature.execute() + aSession.startOperation("Create a field") + aField = aSession.activeDocument().addFeature("Field") + aSelectionListAttr = aField.selectionList("selected") + aSelectionListAttr.setSelectionType("face") + aSelectionListAttr.append("box1_1/Shape1") + aSelectionListAttr.append("box1_1/Shape2") + aComponentNames = aField.stringArray("components_names") + aComponentNames.setSize(2) # two components + aComponentNames.setValue(0, "temperatue") + aComponentNames.setValue(1, "porosity") + aStamps = aField.intArray("stamps") + aStamps.setSize(1) # one step + aStamps.setValue(0, 10) + aTables = aField.tables("values") + aTables.setType(2) # double + aTables.setSize(1 + 2, 2, 1) # default row + number of selected, number of compoents, number of steps (tables) + aTables.setValue(1., 0, 0, 0) # value, index of selection, index of component, index of step + aTables.setValue(2., 1, 0, 0) + aTables.setValue(3., 2, 0, 0) + aTables.setValue(4., 0, 1, 0) + aTables.setValue(5., 1, 1, 0) + aTables.setValue(6., 2, 1, 0) aSession.finishOperation() # Export - aSession.startOperation("Export") - model.exportToXAO(aPart, "Data/export.xao", "me", "mygeom") -# anExportFeature = aPart.addFeature("Export") -# # anExportFeature.string("ExportType").setValue("XAO") -# anExportFeature.string("file_path").setValue("Data/export.xao") -# # anExportFeature.string("file_format").setValue("XAO") -# anExportFeature.string("xao_author").setValue("me") -# anExportFeature.string("xao_geometry_name").setValue("mygeom") -# anExportFeature.execute() + aSession.startOperation("Export to XAO") + anExportFeature = aPart.addFeature("Export") + anExportFeature.string("xao_file_path").setValue(theFile) + anExportFeature.string("file_format").setValue("XAO") + anExportFeature.string("ExportType").setValue("XAO") + 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 -#========================================================================= + 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) + #========================================================================= + # 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) + #========================================================================= + # 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("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")) + #========================================================================= + # End of test + #========================================================================= + + assert(model.checkPythonDump())