From 656154b12cdcca1f1303b26f2978d59681c290d8 Mon Sep 17 00:00:00 2001 From: jfa Date: Mon, 19 Feb 2024 17:06:02 +0000 Subject: [PATCH] [bos #40620] [CEA] XAO export for SHAPER: Allow export of brep in a separate file --- src/ExchangeAPI/ExchangeAPI_Export.cpp | 32 +- src/ExchangeAPI/ExchangeAPI_Export.h | 22 +- .../ExchangePlugin_ExportFeature.cpp | 23 +- .../ExchangePlugin_ExportFeature.h | 13 + src/ExchangePlugin/ExchangePlugin_msg_fr.ts | 7 + .../Test/TestExportToXAO_SeparateShapeFile.py | 169 +++++++++ src/ExchangePlugin/Test/tests.set | 1 + src/ExchangePlugin/doc/TUI_exportFeature.rst | 15 +- src/ExchangePlugin/doc/examples/export.py | 4 - src/ExchangePlugin/doc/examples/exportXAO.py | 20 + src/ExchangePlugin/doc/exportFeature.rst | 45 ++- src/ExchangePlugin/doc/images/ExportXAO.png | Bin 0 -> 16049 bytes src/ExchangePlugin/export_widget.xml | 9 +- src/GeomAlgoAPI/GeomAlgoAPI_XAOExport.cpp | 5 +- src/GeomAlgoAPI/GeomAlgoAPI_XAOExport.h | 3 +- src/ModelHighAPI/ModelHighAPI_Macro.h | 358 +----------------- 16 files changed, 330 insertions(+), 396 deletions(-) create mode 100644 src/ExchangePlugin/Test/TestExportToXAO_SeparateShapeFile.py create mode 100644 src/ExchangePlugin/doc/examples/exportXAO.py create mode 100755 src/ExchangePlugin/doc/images/ExportXAO.png diff --git a/src/ExchangeAPI/ExchangeAPI_Export.cpp b/src/ExchangeAPI/ExchangeAPI_Export.cpp index 6d9193235..cda585a2d 100644 --- a/src/ExchangeAPI/ExchangeAPI_Export.cpp +++ b/src/ExchangeAPI/ExchangeAPI_Export.cpp @@ -41,14 +41,17 @@ ExchangeAPI_Export::ExchangeAPI_Export(const std::shared_ptr& /// Constructor with values for XAO export. ExchangeAPI_Export::ExchangeAPI_Export(const std::shared_ptr& theFeature, - const std::string & theFilePath, - const std::string & theAuthor, - const std::string & theGeometryName) + const std::string & theFilePath, + const std::string & theAuthor, + const std::string & theGeometryName, + const std::string & theShapeFilePath) : ModelHighAPI_Interface(theFeature) { initialize(); fillAttribute("XAO", theFeature->string(ExchangePlugin_ExportFeature::EXPORT_TYPE_ID())); fillAttribute(theFilePath, theFeature->string(ExchangePlugin_ExportFeature::XAO_FILE_PATH_ID())); + fillAttribute(theShapeFilePath, + theFeature->string(ExchangePlugin_ExportFeature::XAO_SHAPE_FILE_PATH_ID())); fillAttribute(theAuthor, theFeature->string(ExchangePlugin_ExportFeature::XAO_AUTHOR_ID())); fillAttribute(theGeometryName, theFeature->string(ExchangePlugin_ExportFeature::XAO_GEOMETRY_NAME_ID())); @@ -106,20 +109,23 @@ ExchangeAPI_Export::ExchangeAPI_Export(const std::shared_ptr& const std::string & theFilePath, const ModelHighAPI_Selection& theResult, const std::string & theAuthor, - const std::string & theGeometryName) + const std::string & theGeometryName, + const std::string & theShapeFilePath) : ModelHighAPI_Interface(theFeature) { initialize(); fillAttribute("XAO", theFeature->string(ExchangePlugin_ExportFeature::EXPORT_TYPE_ID())); fillAttribute(theFilePath, theFeature->string(ExchangePlugin_ExportFeature::XAO_FILE_PATH_ID())); + fillAttribute(theShapeFilePath, + theFeature->string(ExchangePlugin_ExportFeature::XAO_SHAPE_FILE_PATH_ID())); fillAttribute(theAuthor, theFeature->string(ExchangePlugin_ExportFeature::XAO_AUTHOR_ID())); fillAttribute(theGeometryName, - theFeature->string(ExchangePlugin_ExportFeature::XAO_GEOMETRY_NAME_ID())); + theFeature->string(ExchangePlugin_ExportFeature::XAO_GEOMETRY_NAME_ID())); fillAttribute("XAO", theFeature->string(ExchangePlugin_ExportFeature::FILE_FORMAT_ID())); std::list aListOfOneSel; aListOfOneSel.push_back(theResult); fillAttribute(aListOfOneSel, - theFeature->selectionList(ExchangePlugin_ExportFeature::XAO_SELECTION_LIST_ID())); + theFeature->selectionList(ExchangePlugin_ExportFeature::XAO_SELECTION_LIST_ID())); execute(); apply(); // finish operation to make sure the export is done on the current state of the history } @@ -301,14 +307,15 @@ ExportPtr exportToFile(const std::shared_ptr & thePart, } ExportPtr exportToXAO(const std::shared_ptr & thePart, - const std::string & theFilePath, - const std::string & theAuthor, - const std::string & theGeometryName) + const std::string & theFilePath, + const std::string & theAuthor, + const std::string & theGeometryName, + const std::string & theShapeFilePath) { apply(); // finish previous operation to make sure all previous operations are done std::shared_ptr aFeature = thePart->addFeature(ExchangePlugin_ExportFeature::ID()); - return ExportPtr(new ExchangeAPI_Export(aFeature, theFilePath, theAuthor, theGeometryName)); + return ExportPtr(new ExchangeAPI_Export(aFeature, theFilePath, theAuthor, theGeometryName, theShapeFilePath)); } ExportPtr exportToSTL(const std::shared_ptr & thePart, @@ -336,13 +343,14 @@ ExportPtr exportToXAO(const std::shared_ptr & thePart, const std::string & theFilePath, const ModelHighAPI_Selection& theSelectedShape, const std::string & /*theAuthor*/, - const std::string & /*theGeometryName*/) + const std::string & /*theGeometryName*/, + const std::string & theShapeFilePath) { apply(); // finish previous operation to make sure all previous operations are done std::shared_ptr aFeature = thePart->addFeature(ExchangePlugin_ExportFeature::ID()); // special internal case when for XAO a selection list is filled - return ExportPtr(new ExchangeAPI_Export(aFeature, theFilePath, theSelectedShape, "XAO")); + return ExportPtr(new ExchangeAPI_Export(aFeature, theFilePath, theSelectedShape, "XAO", "", theShapeFilePath)); } PyObject* exportToXAOMem(const std::shared_ptr & thePart, diff --git a/src/ExchangeAPI/ExchangeAPI_Export.h b/src/ExchangeAPI/ExchangeAPI_Export.h index 4fc9be602..4500c95db 100644 --- a/src/ExchangeAPI/ExchangeAPI_Export.h +++ b/src/ExchangeAPI/ExchangeAPI_Export.h @@ -54,7 +54,8 @@ public: explicit ExchangeAPI_Export(const std::shared_ptr& theFeature, const std::string & theFilePath, const std::string & theAuthor = std::string(), - const std::string & theGeometryName = std::string()); + const std::string & theGeometryName = std::string(), + const std::string & theShapeFilePath = std::string()); /// Constructor with values for STL of selected result export. EXCHANGEAPI_EXPORT @@ -72,7 +73,8 @@ public: const std::string & theFilePath, const ModelHighAPI_Selection& theResult, const std::string & theAuthor, - const std::string & theGeometryName = std::string()); + const std::string & theGeometryName = std::string(), + const std::string & theShapeFilePath = std::string()); /// Constructor with values for XAO of selected result export to memory buffer. EXCHANGEAPI_EXPORT @@ -92,7 +94,7 @@ public: EXCHANGEAPI_EXPORT virtual ~ExchangeAPI_Export(); - INTERFACE_16(ExchangePlugin_ExportFeature::ID(), + INTERFACE_17(ExchangePlugin_ExportFeature::ID(), exportType, ExchangePlugin_ExportFeature::EXPORT_TYPE_ID(), ModelAPI_AttributeString, /** ExportType */, filePath, ExchangePlugin_ExportFeature::FILE_PATH_ID(), @@ -126,7 +128,9 @@ public: ExchangePlugin_ExportFeature::STL_DEFLECTION_TYPE_RELATIVE(), ModelAPI_AttributeString, /** Type of the defelection */, memoryBuff, ExchangePlugin_ExportFeature::MEMORY_BUFFER_ID(), - ModelAPI_AttributeString, /** Bytes*/) + ModelAPI_AttributeString, /** Bytes*/, + xaoShapeFilePath, ExchangePlugin_ExportFeature::XAO_SHAPE_FILE_PATH_ID(), + ModelAPI_AttributeString, /** xao shape file path */) /// Dump wrapped feature EXCHANGEAPI_EXPORT @@ -150,9 +154,10 @@ ExportPtr exportToFile(const std::shared_ptr & thePart, */ EXCHANGEAPI_EXPORT ExportPtr exportToXAO(const std::shared_ptr & thePart, - const std::string & theFilePath, - const std::string & theAuthor = std::string(), - const std::string & theGeometryName = std::string()); + const std::string & theFilePath, + const std::string & theAuthor = std::string(), + const std::string & theGeometryName = std::string(), + const std::string & theShapeFilePath = std::string()); /**\ingroup CPPHighAPI * \brief Exports to STL file the result of the current document @@ -174,7 +179,8 @@ ExportPtr exportToXAO(const std::shared_ptr & thePart, const std::string & theFilePath, const ModelHighAPI_Selection& theSelectedShape, const std::string & theAuthor = std::string(), - const std::string & theGeometryName = std::string()); + const std::string & theGeometryName = std::string(), + const std::string & theShapeFilePath = std::string()); /**\ingroup CPPHighAPI * \brief Exports to XAO format buffer the selected result with groups parts related to it only. diff --git a/src/ExchangePlugin/ExchangePlugin_ExportFeature.cpp b/src/ExchangePlugin/ExchangePlugin_ExportFeature.cpp index 3924fb733..b536f54ef 100644 --- a/src/ExchangePlugin/ExchangePlugin_ExportFeature.cpp +++ b/src/ExchangePlugin/ExchangePlugin_ExportFeature.cpp @@ -123,6 +123,11 @@ void ExchangePlugin_ExportFeature::initAttributes() data()->addAttribute(ExchangePlugin_ExportFeature::MEMORY_BUFFER_ID(), ModelAPI_AttributeString::typeId()); + data()->addAttribute(ExchangePlugin_ExportFeature::XAO_SHAPE_FILE_PATH_ID(), + ModelAPI_AttributeString::typeId()); + data()->addAttribute(ExchangePlugin_ExportFeature::XAO_SHAPE_FILE_SEPARATE_ID(), + ModelAPI_AttributeBoolean::typeId()); + ModelAPI_Session::get()->validators()->registerNotObligatory(getKind(), ExchangePlugin_ExportFeature::XAO_FILE_PATH_ID()); ModelAPI_Session::get()->validators()->registerNotObligatory(getKind(), @@ -135,6 +140,10 @@ void ExchangePlugin_ExportFeature::initAttributes() ExchangePlugin_ExportFeature::XAO_SELECTION_LIST_ID()); ModelAPI_Session::get()->validators()->registerNotObligatory(getKind(), ExchangePlugin_ExportFeature::MEMORY_BUFFER_ID()); + ModelAPI_Session::get()->validators()->registerNotObligatory(getKind(), + ExchangePlugin_ExportFeature::XAO_SHAPE_FILE_PATH_ID()); + ModelAPI_Session::get()->validators()->registerNotObligatory(getKind(), + ExchangePlugin_ExportFeature::XAO_SHAPE_FILE_SEPARATE_ID()); // to support previous version of document, move the selection list // if the type of export operation is XAO @@ -605,7 +614,19 @@ void ExchangePlugin_ExportFeature::exportXAO(const std::string& theFileName, string(ExchangePlugin_ExportFeature::MEMORY_BUFFER_ID())->setValue(XAOExportMem(&aXao, anError)); } else { - XAOExport(theFileName, &aXao, anError); + std::string aShapeFile (""); + AttributeBooleanPtr aShapeSeparateAttr = boolean(XAO_SHAPE_FILE_SEPARATE_ID()); + if (aShapeSeparateAttr->isInitialized() && + aShapeSeparateAttr->value() == true) { + aShapeFile = theFileName + ".brep"; + } + else { + AttributeStringPtr aShapeFileAttr = string(XAO_SHAPE_FILE_PATH_ID()); + if (aShapeFileAttr->isInitialized()) + aShapeFile = aShapeFileAttr->value(); + } + + XAOExport(theFileName, &aXao, anError, aShapeFile); } if (!anError.empty()) { diff --git a/src/ExchangePlugin/ExchangePlugin_ExportFeature.h b/src/ExchangePlugin/ExchangePlugin_ExportFeature.h index a3f6fb651..295aa7618 100644 --- a/src/ExchangePlugin/ExchangePlugin_ExportFeature.h +++ b/src/ExchangePlugin/ExchangePlugin_ExportFeature.h @@ -150,6 +150,19 @@ public: static const std::string MY_XAO_GEOMETRY_NAME_ID("xao_geometry_name"); return MY_XAO_GEOMETRY_NAME_ID; } + /// attribute name of xao shape file path + inline static const std::string& XAO_SHAPE_FILE_PATH_ID() + { + static const std::string MY_XAO_SHAPE_FILE_PATH_ID("xao_shape_file_path"); + return MY_XAO_SHAPE_FILE_PATH_ID; + } + /// attribute flag to export shape in a separate file during xao export, + /// name of shape file will be xao_file_path + .brep + inline static const std::string& XAO_SHAPE_FILE_SEPARATE_ID() + { + static const std::string MY_XAO_SHAPE_FILE_SEPARATE_ID("xao_shape_file_separate"); + return MY_XAO_SHAPE_FILE_SEPARATE_ID; + } /// attribute string memory buffer inline static const std::string& MEMORY_BUFFER_ID() { diff --git a/src/ExchangePlugin/ExchangePlugin_msg_fr.ts b/src/ExchangePlugin/ExchangePlugin_msg_fr.ts index cd29c1b85..45b2343bf 100644 --- a/src/ExchangePlugin/ExchangePlugin_msg_fr.ts +++ b/src/ExchangePlugin/ExchangePlugin_msg_fr.ts @@ -223,6 +223,13 @@ Veuillez saisir le nom de la géométrie + + Export:xao_shape_file_separate + + Export shape in a separate file + Exporter la forme dans un fichier séparé + + Export:stl_absolute diff --git a/src/ExchangePlugin/Test/TestExportToXAO_SeparateShapeFile.py b/src/ExchangePlugin/Test/TestExportToXAO_SeparateShapeFile.py new file mode 100644 index 000000000..34a3f4271 --- /dev/null +++ b/src/ExchangePlugin/Test/TestExportToXAO_SeparateShapeFile.py @@ -0,0 +1,169 @@ +# Copyright (C) 2018-2024 CEA, EDF +# +# 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 +# + +from salome.shaper import model + +from GeomAPI import * + +import tempfile +import os +import math + +model.begin() +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() + +Cyl_1 = model.addCylinder(Part_1_doc, 7, 13) +Box_1 = model.addBox(Part_1_doc, 10, 10, 10) + +Group_1 = model.addGroup(Part_1_doc, "Faces", [model.selection("FACE", "Box_1_1/Top")]) + +Field_1 = model.addField(Part_1_doc, 1, "STRING", 1, ["Comp 1"], [model.selection("SOLID", "Box_1_1")]) +Field_1.addStep(0, 0, [[""], ["box"]]) + +with tempfile.TemporaryDirectory() as tmpdirname: + # Export entire Part + tmp_file1 = os.path.join(tmpdirname, "Part.xao") + tmp_file2 = os.path.join(tmpdirname, "Part_shape.brep") + + Export_1 = model.exportToXAO(Part_1_doc, tmp_file1, "", "", tmp_file2) + # due to the issue 2530, the export feature is removed after execution, so, + # if export was performed correctly, the feature must become invalid + #assert(Export_1.feature().error() == "") + assert(not Export_1.feature().data().isValid()) + assert(os.path.isfile(tmp_file1)) + assert(os.path.isfile(tmp_file2)) + + # Add two fields and one group to the Box_1 + Field_2 = model.addField(Part_1_doc, 1, "BOOLEAN", 1, ["Comp 1"], [model.selection("FACE", "Box_1_1/Front")]) + Field_2.addStep(0, 0, [[False], [True]]) + + Field_3_objects = [model.selection("VERTEX", "[Box_1_1/Front][Box_1_1/Left][Box_1_1/Top]"), model.selection("VERTEX", "[Box_1_1/Front][Box_1_1/Left][Box_1_1/Bottom]"), model.selection("VERTEX", "[Box_1_1/Front][Box_1_1/Right][Box_1_1/Bottom]"), model.selection("VERTEX", "[Box_1_1/Front][Box_1_1/Right][Box_1_1/Top]")] + Field_3 = model.addField(Part_1_doc, 1, "DOUBLE", 1, ["Comp 1"], Field_3_objects) + Field_3.addStep(0, 0, [[0], [1], [0], [0], [0]]) + + Group_2 = model.addGroup(Part_1_doc, "Edges", [model.selection("EDGE", "[Box_1_1/Top][Box_1_1/Left]"), model.selection("EDGE", "[Box_1_1/Top][Box_1_1/Right]")]) + + tmp_file3 = os.path.join(tmpdirname, "Box.xao") + tmp_file4 = os.path.join(tmpdirname, "Box_shape.brep") + + Export_2 = model.exportToXAO(Part_1_doc, tmp_file3, model.selection("SOLID", "Box_1_1"), + "", "", tmp_file4) + assert(Export_2.feature().error() == "") + assert(os.path.isfile(tmp_file3)) + assert(os.path.isfile(tmp_file4)) + + model.end() + + # Try to import the exported data + model.begin() + partSet = model.moduleDocument() + Part_1 = model.addPart(partSet) + Part_1_doc = Part_1.document() + + Import_1 = model.addImport(Part_1_doc, tmp_file1) + model.do() + assert(Import_1.feature().error() == "") + + model.testNbResults(Import_1, 1) + model.testNbSubResults(Import_1, [2]) + model.testNbSubShapes(Import_1, GeomAPI_Shape.SOLID, [2]) + model.testNbSubShapes(Import_1, GeomAPI_Shape.FACE, [9]) + model.testNbSubShapes(Import_1, GeomAPI_Shape.EDGE, [30]) + model.testNbSubShapes(Import_1, GeomAPI_Shape.VERTEX, [60]) + model.testResultsVolumes(Import_1, [3001.1945203]) + model.testResultsAreas(Import_1, [1479.645943]) + + assert(Import_1.name() == "Part") + assert(Import_1.result().name() == "Part_1") + assert(Import_1.subFeature(0).name() == "Group_1") + assert(Import_1.subFeature(1).name() == "Field_1") + assert(Import_1.subFeature(0).result().name() == "Group_1") + assert(Import_1.subFeature(1).result().name() == "Field_1") + + # check group + assert(Part_1_doc.size("Groups") == 1) + res1 = model.objectToResult(Part_1_doc.object("Groups", 0)) + assert(res1 is not None) + res1It = GeomAPI_ShapeExplorer(res1.shape(), GeomAPI_Shape.FACE) + assert(res1It.more()) + shape1 = res1It.current() + res1It.next() + assert(not res1It.more()) + p1 = res1.shape().middlePoint() + aTol = 1.e-7 + assert(math.fabs(p1.x() - 5) <= aTol and math.fabs(p1.y() - 5) <= aTol and math.fabs(p1.z() - 10) <= aTol), "({}, {}, {}) != ({}, {}, {})".format(p1.x(), p1.y(), p1.z(), 5, 5, 10) + + Import_2 = model.addImport(Part_1_doc, tmp_file3) + model.do() + assert(Import_2.feature().error() == "") + + model.testNbResults(Import_2, 1) + model.testNbSubResults(Import_2, [0]) + model.testNbSubShapes(Import_2, GeomAPI_Shape.SOLID, [1]) + model.testNbSubShapes(Import_2, GeomAPI_Shape.FACE, [6]) + model.testNbSubShapes(Import_2, GeomAPI_Shape.EDGE, [24]) + model.testNbSubShapes(Import_2, GeomAPI_Shape.VERTEX, [48]) + model.testResultsVolumes(Import_2, [1000]) + model.testResultsAreas(Import_2, [600]) + + assert(Import_2.name() == "Box_1_1") + assert(Import_2.result().name() == "Box_1_1_1") + assert(Import_2.subFeature(0).name() == "Group_1") + assert(Import_2.subFeature(1).name() == "Group_2") + assert(Import_2.subFeature(2).name() == "Field_1") + assert(Import_2.subFeature(3).name() == "Field_2") + assert(Import_2.subFeature(4).name() == "Field_3") + assert(Import_2.subFeature(0).result().name() == "Group_1") + assert(Import_2.subFeature(1).result().name() == "Group_2") + assert(Import_2.subFeature(2).result().name() == "Field_1") + assert(Import_2.subFeature(3).result().name() == "Field_2") + assert(Import_2.subFeature(4).result().name() == "Field_3") + + # check groups + assert(Part_1_doc.size("Groups") == 3) + + res1 = model.objectToResult(Part_1_doc.object("Groups", 1)) + assert(res1 is not None) + res1It = GeomAPI_ShapeExplorer(res1.shape(), GeomAPI_Shape.FACE) + assert(res1It.more()) + shape1 = res1It.current() + res1It.next() + assert(not res1It.more()) + p1 = res1.shape().middlePoint() + aTol = 1.e-7 + assert(math.fabs(p1.x() - 5) <= aTol and math.fabs(p1.y() - 5) <= aTol and math.fabs(p1.z() - 10) <= aTol), "({}, {}, {}) != ({}, {}, {})".format(p1.x(), p1.y(), p1.z(), 5, 5, 10) + + res2 = model.objectToResult(Part_1_doc.object("Groups", 2)) + assert(res2 is not None) + res2It = GeomAPI_ShapeExplorer(res2.shape(), GeomAPI_Shape.EDGE) + assert(res2It.more()) + edge1 = res2It.current() + res2It.next() + edge2 = res2It.current() + res2It.next() + assert(not res2It.more()) + p2 = res2.shape().middlePoint() + aTol = 1.e-7 + assert(math.fabs(p1.x() - 5) <= aTol and math.fabs(p1.y() - 5) <= aTol and math.fabs(p1.z() - 10) <= aTol), "({}, {}, {}) != ({}, {}, {})".format(p1.x(), p1.y(), p1.z(), 5, 5, 10) + + pass + +model.end() diff --git a/src/ExchangePlugin/Test/tests.set b/src/ExchangePlugin/Test/tests.set index aae491066..236656414 100755 --- a/src/ExchangePlugin/Test/tests.set +++ b/src/ExchangePlugin/Test/tests.set @@ -23,6 +23,7 @@ SET(TEST_NAMES Test2290.py Test2459.py Test18710.py + TestExportToXAO_SeparateShapeFile.py TestExportToXAOWithFields.py TestExportToXAOWithGroupNotUpdated.py TestExport_FiniteValidator.py diff --git a/src/ExchangePlugin/doc/TUI_exportFeature.rst b/src/ExchangePlugin/doc/TUI_exportFeature.rst index 4ef25d686..6a76f3cad 100644 --- a/src/ExchangePlugin/doc/TUI_exportFeature.rst +++ b/src/ExchangePlugin/doc/TUI_exportFeature.rst @@ -10,6 +10,19 @@ Export File :download:`Download this script ` + + .. _tui_export_file_XAO: + +Export XAO File +=============== + +.. literalinclude:: examples/exportXAO.py + :linenos: + :language: python + +:download:`Download this script ` + + .. _tui_export_file_STL: Export STL File @@ -20,5 +33,3 @@ Export STL File :language: python :download:`Download this script ` - - diff --git a/src/ExchangePlugin/doc/examples/export.py b/src/ExchangePlugin/doc/examples/export.py index 2a807f263..1f9b7c2b5 100644 --- a/src/ExchangePlugin/doc/examples/export.py +++ b/src/ExchangePlugin/doc/examples/export.py @@ -9,9 +9,5 @@ Part_1_doc = Part_1.document() Box_1 = model.addBox(Part_1_doc, 10, 10, 10) Export_1 = model.exportToFile(Part_1_doc, file_path, [model.selection("SOLID", "Box_1_1")]) - -file_xao = os.path.join(os.getenv("DATA_DIR"), "test.xao") -Export_2 = model.exportToXAO(Part_1_doc, file_xao, - model.selection("SOLID", "Box_1_1"), "author", "box") model.do() model.end() diff --git a/src/ExchangePlugin/doc/examples/exportXAO.py b/src/ExchangePlugin/doc/examples/exportXAO.py new file mode 100644 index 000000000..757956cf8 --- /dev/null +++ b/src/ExchangePlugin/doc/examples/exportXAO.py @@ -0,0 +1,20 @@ +from salome.shaper import model +import os + +model.begin() +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() +Box_1 = model.addBox(Part_1_doc, 10, 10, 10) + +file_xao = os.path.join(os.getenv("DATA_DIR"), "test.xao") +Export_1 = model.exportToXAO(Part_1_doc, file_xao, + model.selection("SOLID", "Box_1_1"), "author", "box") + +file_xao = os.path.join(os.getenv("DATA_DIR"), "test1.xao") +file_brep = os.path.join(os.getenv("DATA_DIR"), "test1_shape.brep") +Export_2 = model.exportToXAO(Part_1_doc, file_xao, + model.selection("SOLID", "Box_1_1"), "author", "box", + file_brep) +model.do() +model.end() diff --git a/src/ExchangePlugin/doc/exportFeature.rst b/src/ExchangePlugin/doc/exportFeature.rst index 072c9495a..e8f88c2d3 100644 --- a/src/ExchangePlugin/doc/exportFeature.rst +++ b/src/ExchangePlugin/doc/exportFeature.rst @@ -95,8 +95,6 @@ In case of first choice the format of exported file will be defined according to Selection list in the property panel contains a list of exported objects which can be selected in a viewer or object browser. -*Note*: For XAO format, selection list is not available, the whole part is exported. - **Apply** button exports the file. **Cancel** button cancels the operation. @@ -109,15 +107,48 @@ Selection list in the property panel contains a list of exported objects which c :param string: The file name :param list: A list of exporting objects +Result +"""""" + +The Result of operation is an exported file. + +**See Also** a sample TUI Script of :ref:`tui_export_file` operation. + + +Export to XAO +""""""""""""" +In this case, the following property panel will be opened: + +.. figure:: images/ExportXAO.png + :align: center + + **Dialog box to export in XAO format** -.. py:function:: model.exportToXAO(Part_doc, FileNameString, Author="", GeometryName="") -.. py:function:: model.exportToXAO(Part_doc, FileNameString, Object, Author="", GeometryName="") +The file name and path can be defined in **Export file** field by direct input or browsing with **'...'** button, which opens **Export file** dialog box + +*Note*: For XAO format, selection list is not available, the whole part is exported. + +**Author** Author name, empty by default + +**Geometry name** Geometry name, empty by default + +**Export shape in a separate file** if checked, shape will be exported in a separate BREP file with path = + ".brep" + +**Apply** button exports the file. + +**Cancel** button cancels the operation. + +**TUI Command**: + +.. py:function:: model.exportToXAO(Part_doc, FileNameString, Author="", GeometryName="", ShapeFile="") +.. py:function:: model.exportToXAO(Part_doc, FileNameString, Object, Author="", GeometryName="", ShapeFile="") :param part: The current part object :param string: The file name :param object: An exporting object, if necessary :param string: The name of the author, empty by default :param string: The name for the shape processed in GEOMETRY module, empty by default + :param string: The shape file name. If not empty, shape data will be stored in a separate BREP file, given by this parameter .. py:function:: aBuffer = model.exportToXAOMem(Part_doc, Object, Author="", GeometryName="") @@ -127,12 +158,14 @@ Selection list in the property panel contains a list of exported objects which c :param string: The name of the author, empty by default :param string: The name for the shape processed in GEOMETRY module, empty by default + Result """""" -The Result of operation is an exported file. +The Result of operation is an exported XAO file. + +**See Also** a sample TUI Script of :ref:`tui_export_file_XAO` operation. -**See Also** a sample TUI Script of :ref:`tui_export_file` operation. Export to STL """"""""""""" diff --git a/src/ExchangePlugin/doc/images/ExportXAO.png b/src/ExchangePlugin/doc/images/ExportXAO.png new file mode 100755 index 0000000000000000000000000000000000000000..395844242534f0f52b1f12bb5e7054e2f4acb831 GIT binary patch literal 16049 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 literal 0 HcmV?d00001 diff --git a/src/ExchangePlugin/export_widget.xml b/src/ExchangePlugin/export_widget.xml index 9eff85040..10f812867 100644 --- a/src/ExchangePlugin/export_widget.xml +++ b/src/ExchangePlugin/export_widget.xml @@ -24,12 +24,13 @@ - + placeholder="Please input the author"/> - + placeholder="Please input the geometry name"/> + & theShape, //============================================================================= bool XAOExport(const std::string& theFileName, XAO::Xao* theXao, - std::string& theError) + std::string& theError, + const std::string& theShapeFileName) { #ifdef _DEBUG std::cout << "Export XAO into file " << theFileName << std::endl; @@ -72,7 +73,7 @@ bool XAOExport(const std::string& theFileName, bool aWasFree = aShape.Free(); // make top level topology free, same as imported if (!aWasFree) aShape.Free(Standard_True); - XAO::XaoExporter::saveToFile(theXao, theFileName, ""); + XAO::XaoExporter::saveToFile(theXao, theFileName, theShapeFileName); if (!aWasFree) aShape.Free(Standard_False); } catch (XAO::XAO_Exception& e) { diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_XAOExport.h b/src/GeomAlgoAPI/GeomAlgoAPI_XAOExport.h index d4ec4430b..ed135020f 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_XAOExport.h +++ b/src/GeomAlgoAPI/GeomAlgoAPI_XAOExport.h @@ -40,7 +40,8 @@ bool SetShapeToXAO(const std::shared_ptr& theShape, GEOMALGOAPI_EXPORT bool XAOExport(const std::string& theFileName, XAO::Xao* theXao, - std::string& theError); + std::string& theError, + const std::string& theShapeFileName = std::string()); /// Implementation of the export XAO to memory buffer (std::string) GEOMALGOAPI_EXPORT diff --git a/src/ModelHighAPI/ModelHighAPI_Macro.h b/src/ModelHighAPI/ModelHighAPI_Macro.h index 14f187163..3d6f716bb 100644 --- a/src/ModelHighAPI/ModelHighAPI_Macro.h +++ b/src/ModelHighAPI/ModelHighAPI_Macro.h @@ -535,182 +535,9 @@ SET_ATTRIBUTE(N_13, T_13, AN_13) \ END_INIT() \ public: -//-------------------------------------------------------------------------------------- -#define INTERFACE_15(KIND, \ - N_0, AN_0, T_0, C_0, \ - N_1, AN_1, T_1, C_1, \ - N_2, AN_2, T_2, C_2, \ - N_3, AN_3, T_3, C_3, \ - N_4, AN_4, T_4, C_4, \ - N_5, AN_5, T_5, C_5, \ - N_6, AN_6, T_6, C_6, \ - N_7, AN_7, T_7, C_7, \ - N_8, AN_8, T_8, C_8, \ - N_9, AN_9, T_9, C_9, \ - N_10, AN_10, T_10, C_10, \ - N_11, AN_11, T_11, C_11, \ - N_12, AN_12, T_12, C_12, \ - N_13, AN_13, T_13, C_13, \ - N_14, AN_14, T_14, C_14) \ - public: \ - INTERFACE_COMMON(KIND) \ - DEFINE_ATTRIBUTE(N_0, T_0, C_0) \ - DEFINE_ATTRIBUTE(N_1, T_1, C_1) \ - DEFINE_ATTRIBUTE(N_2, T_2, C_2) \ - DEFINE_ATTRIBUTE(N_3, T_3, C_3) \ - DEFINE_ATTRIBUTE(N_4, T_4, C_4) \ - DEFINE_ATTRIBUTE(N_5, T_5, C_5) \ - DEFINE_ATTRIBUTE(N_6, T_6, C_6) \ - DEFINE_ATTRIBUTE(N_7, T_7, C_7) \ - DEFINE_ATTRIBUTE(N_8, T_8, C_8) \ - DEFINE_ATTRIBUTE(N_9, T_9, C_9) \ - DEFINE_ATTRIBUTE(N_10, T_10, C_10) \ - DEFINE_ATTRIBUTE(N_11, T_11, C_11) \ - DEFINE_ATTRIBUTE(N_12, T_12, C_12) \ - DEFINE_ATTRIBUTE(N_13, T_13, C_13) \ - DEFINE_ATTRIBUTE(N_14, T_14, C_14) \ - protected: \ - START_INIT() \ - SET_ATTRIBUTE(N_0, T_0, AN_0) \ - SET_ATTRIBUTE(N_1, T_1, AN_1) \ - SET_ATTRIBUTE(N_2, T_2, AN_2) \ - SET_ATTRIBUTE(N_3, T_3, AN_3) \ - SET_ATTRIBUTE(N_4, T_4, AN_4) \ - SET_ATTRIBUTE(N_5, T_5, AN_5) \ - SET_ATTRIBUTE(N_6, T_6, AN_6) \ - SET_ATTRIBUTE(N_7, T_7, AN_7) \ - SET_ATTRIBUTE(N_8, T_8, AN_8) \ - SET_ATTRIBUTE(N_9, T_9, AN_9) \ - SET_ATTRIBUTE(N_10, T_10, AN_10) \ - SET_ATTRIBUTE(N_11, T_11, AN_11) \ - SET_ATTRIBUTE(N_12, T_12, AN_12) \ - SET_ATTRIBUTE(N_13, T_13, AN_13) \ - SET_ATTRIBUTE(N_14, T_14, AN_14) \ - END_INIT() \ - public: //-------------------------------------------------------------------------------------- -#define INTERFACE_16(KIND, \ - N_0, AN_0, T_0, C_0, \ - N_1, AN_1, T_1, C_1, \ - N_2, AN_2, T_2, C_2, \ - N_3, AN_3, T_3, C_3, \ - N_4, AN_4, T_4, C_4, \ - N_5, AN_5, T_5, C_5, \ - N_6, AN_6, T_6, C_6, \ - N_7, AN_7, T_7, C_7, \ - N_8, AN_8, T_8, C_8, \ - N_9, AN_9, T_9, C_9, \ - N_10, AN_10, T_10, C_10, \ - N_11, AN_11, T_11, C_11, \ - N_12, AN_12, T_12, C_12, \ - N_13, AN_13, T_13, C_13, \ - N_14, AN_14, T_14, C_14, \ - N_15, AN_15, T_15, C_15) \ - public: \ - INTERFACE_COMMON(KIND) \ - DEFINE_ATTRIBUTE(N_0, T_0, C_0) \ - DEFINE_ATTRIBUTE(N_1, T_1, C_1) \ - DEFINE_ATTRIBUTE(N_2, T_2, C_2) \ - DEFINE_ATTRIBUTE(N_3, T_3, C_3) \ - DEFINE_ATTRIBUTE(N_4, T_4, C_4) \ - DEFINE_ATTRIBUTE(N_5, T_5, C_5) \ - DEFINE_ATTRIBUTE(N_6, T_6, C_6) \ - DEFINE_ATTRIBUTE(N_7, T_7, C_7) \ - DEFINE_ATTRIBUTE(N_8, T_8, C_8) \ - DEFINE_ATTRIBUTE(N_9, T_9, C_9) \ - DEFINE_ATTRIBUTE(N_10, T_10, C_10) \ - DEFINE_ATTRIBUTE(N_11, T_11, C_11) \ - DEFINE_ATTRIBUTE(N_12, T_12, C_12) \ - DEFINE_ATTRIBUTE(N_13, T_13, C_13) \ - DEFINE_ATTRIBUTE(N_14, T_14, C_14) \ - DEFINE_ATTRIBUTE(N_15, T_15, C_15) \ - protected: \ - START_INIT() \ - SET_ATTRIBUTE(N_0, T_0, AN_0) \ - SET_ATTRIBUTE(N_1, T_1, AN_1) \ - SET_ATTRIBUTE(N_2, T_2, AN_2) \ - SET_ATTRIBUTE(N_3, T_3, AN_3) \ - SET_ATTRIBUTE(N_4, T_4, AN_4) \ - SET_ATTRIBUTE(N_5, T_5, AN_5) \ - SET_ATTRIBUTE(N_6, T_6, AN_6) \ - SET_ATTRIBUTE(N_7, T_7, AN_7) \ - SET_ATTRIBUTE(N_8, T_8, AN_8) \ - SET_ATTRIBUTE(N_9, T_9, AN_9) \ - SET_ATTRIBUTE(N_10, T_10, AN_10) \ - SET_ATTRIBUTE(N_11, T_11, AN_11) \ - SET_ATTRIBUTE(N_12, T_12, AN_12) \ - SET_ATTRIBUTE(N_13, T_13, AN_13) \ - SET_ATTRIBUTE(N_14, T_14, AN_14) \ - SET_ATTRIBUTE(N_15, T_15, AN_15) \ - END_INIT() \ - public: - -//-------------------------------------------------------------------------------------- -#define INTERFACE_18(KIND, \ - N_0, AN_0, T_0, C_0, \ - N_1, AN_1, T_1, C_1, \ - N_2, AN_2, T_2, C_2, \ - N_3, AN_3, T_3, C_3, \ - N_4, AN_4, T_4, C_4, \ - N_5, AN_5, T_5, C_5, \ - N_6, AN_6, T_6, C_6, \ - N_7, AN_7, T_7, C_7, \ - N_8, AN_8, T_8, C_8, \ - N_9, AN_9, T_9, C_9, \ - N_10, AN_10, T_10, C_10, \ - N_11, AN_11, T_11, C_11, \ - N_12, AN_12, T_12, C_12, \ - N_13, AN_13, T_13, C_13, \ - N_14, AN_14, T_14, C_14, \ - N_15, AN_15, T_15, C_15, \ - N_16, AN_16, T_16, C_16, \ - N_17, AN_17, T_17, C_17) \ - public: \ - INTERFACE_COMMON(KIND) \ - DEFINE_ATTRIBUTE(N_0, T_0, C_0) \ - DEFINE_ATTRIBUTE(N_1, T_1, C_1) \ - DEFINE_ATTRIBUTE(N_2, T_2, C_2) \ - DEFINE_ATTRIBUTE(N_3, T_3, C_3) \ - DEFINE_ATTRIBUTE(N_4, T_4, C_4) \ - DEFINE_ATTRIBUTE(N_5, T_5, C_5) \ - DEFINE_ATTRIBUTE(N_6, T_6, C_6) \ - DEFINE_ATTRIBUTE(N_7, T_7, C_7) \ - DEFINE_ATTRIBUTE(N_8, T_8, C_8) \ - DEFINE_ATTRIBUTE(N_9, T_9, C_9) \ - DEFINE_ATTRIBUTE(N_10, T_10, C_10) \ - DEFINE_ATTRIBUTE(N_11, T_11, C_11) \ - DEFINE_ATTRIBUTE(N_12, T_12, C_12) \ - DEFINE_ATTRIBUTE(N_13, T_13, C_13) \ - DEFINE_ATTRIBUTE(N_14, T_14, C_14) \ - DEFINE_ATTRIBUTE(N_15, T_15, C_15) \ - DEFINE_ATTRIBUTE(N_16, T_16, C_16) \ - DEFINE_ATTRIBUTE(N_17, T_17, C_17) \ - protected: \ - START_INIT() \ - SET_ATTRIBUTE(N_0, T_0, AN_0) \ - SET_ATTRIBUTE(N_1, T_1, AN_1) \ - SET_ATTRIBUTE(N_2, T_2, AN_2) \ - SET_ATTRIBUTE(N_3, T_3, AN_3) \ - SET_ATTRIBUTE(N_4, T_4, AN_4) \ - SET_ATTRIBUTE(N_5, T_5, AN_5) \ - SET_ATTRIBUTE(N_6, T_6, AN_6) \ - SET_ATTRIBUTE(N_7, T_7, AN_7) \ - SET_ATTRIBUTE(N_8, T_8, AN_8) \ - SET_ATTRIBUTE(N_9, T_9, AN_9) \ - SET_ATTRIBUTE(N_10, T_10, AN_10) \ - SET_ATTRIBUTE(N_11, T_11, AN_11) \ - SET_ATTRIBUTE(N_12, T_12, AN_12) \ - SET_ATTRIBUTE(N_13, T_13, AN_13) \ - SET_ATTRIBUTE(N_14, T_14, AN_14) \ - SET_ATTRIBUTE(N_15, T_15, AN_15) \ - SET_ATTRIBUTE(N_16, T_16, AN_16) \ - SET_ATTRIBUTE(N_17, T_17, AN_17) \ - END_INIT() \ - public: - -//-------------------------------------------------------------------------------------- -#define INTERFACE_20(KIND, \ +#define INTERFACE_17(KIND, \ N_0, AN_0, T_0, C_0, \ N_1, AN_1, T_1, C_1, \ N_2, AN_2, T_2, C_2, \ @@ -727,10 +554,7 @@ N_13, AN_13, T_13, C_13, \ N_14, AN_14, T_14, C_14, \ N_15, AN_15, T_15, C_15, \ - N_16, AN_16, T_16, C_16, \ - N_17, AN_17, T_17, C_17, \ - N_18, AN_18, T_18, C_18, \ - N_19, AN_19, T_19, C_19) \ + N_16, AN_16, T_16, C_16) \ public: \ INTERFACE_COMMON(KIND) \ DEFINE_ATTRIBUTE(N_0, T_0, C_0) \ @@ -750,9 +574,6 @@ DEFINE_ATTRIBUTE(N_14, T_14, C_14) \ DEFINE_ATTRIBUTE(N_15, T_15, C_15) \ DEFINE_ATTRIBUTE(N_16, T_16, C_16) \ - DEFINE_ATTRIBUTE(N_17, T_17, C_17) \ - DEFINE_ATTRIBUTE(N_18, T_18, C_18) \ - DEFINE_ATTRIBUTE(N_19, T_19, C_19) \ protected: \ START_INIT() \ SET_ATTRIBUTE(N_0, T_0, AN_0) \ @@ -772,9 +593,6 @@ SET_ATTRIBUTE(N_14, T_14, AN_14) \ SET_ATTRIBUTE(N_15, T_15, AN_15) \ SET_ATTRIBUTE(N_16, T_16, AN_16) \ - SET_ATTRIBUTE(N_17, T_17, AN_17) \ - SET_ATTRIBUTE(N_18, T_18, AN_18) \ - SET_ATTRIBUTE(N_19, T_19, AN_19) \ END_INIT() \ public: @@ -850,87 +668,6 @@ END_INIT() \ public: -//-------------------------------------------------------------------------------------- -#define INTERFACE_24(KIND, \ - N_0, AN_0, T_0, C_0, \ - N_1, AN_1, T_1, C_1, \ - N_2, AN_2, T_2, C_2, \ - N_3, AN_3, T_3, C_3, \ - N_4, AN_4, T_4, C_4, \ - N_5, AN_5, T_5, C_5, \ - N_6, AN_6, T_6, C_6, \ - N_7, AN_7, T_7, C_7, \ - N_8, AN_8, T_8, C_8, \ - N_9, AN_9, T_9, C_9, \ - N_10, AN_10, T_10, C_10, \ - N_11, AN_11, T_11, C_11, \ - N_12, AN_12, T_12, C_12, \ - N_13, AN_13, T_13, C_13, \ - N_14, AN_14, T_14, C_14, \ - N_15, AN_15, T_15, C_15, \ - N_16, AN_16, T_16, C_16, \ - N_17, AN_17, T_17, C_17, \ - N_18, AN_18, T_18, C_18, \ - N_19, AN_19, T_19, C_19, \ - N_20, AN_20, T_20, C_20, \ - N_21, AN_21, T_21, C_21, \ - N_22, AN_22, T_22, C_22, \ - N_23, AN_23, T_23, C_23) \ - public: \ - INTERFACE_COMMON(KIND) \ - DEFINE_ATTRIBUTE(N_0, T_0, C_0) \ - DEFINE_ATTRIBUTE(N_1, T_1, C_1) \ - DEFINE_ATTRIBUTE(N_2, T_2, C_2) \ - DEFINE_ATTRIBUTE(N_3, T_3, C_3) \ - DEFINE_ATTRIBUTE(N_4, T_4, C_4) \ - DEFINE_ATTRIBUTE(N_5, T_5, C_5) \ - DEFINE_ATTRIBUTE(N_6, T_6, C_6) \ - DEFINE_ATTRIBUTE(N_7, T_7, C_7) \ - DEFINE_ATTRIBUTE(N_8, T_8, C_8) \ - DEFINE_ATTRIBUTE(N_9, T_9, C_9) \ - DEFINE_ATTRIBUTE(N_10, T_10, C_10) \ - DEFINE_ATTRIBUTE(N_11, T_11, C_11) \ - DEFINE_ATTRIBUTE(N_12, T_12, C_12) \ - DEFINE_ATTRIBUTE(N_13, T_13, C_13) \ - DEFINE_ATTRIBUTE(N_14, T_14, C_14) \ - DEFINE_ATTRIBUTE(N_15, T_15, C_15) \ - DEFINE_ATTRIBUTE(N_16, T_16, C_16) \ - DEFINE_ATTRIBUTE(N_17, T_17, C_17) \ - DEFINE_ATTRIBUTE(N_18, T_18, C_18) \ - DEFINE_ATTRIBUTE(N_19, T_19, C_19) \ - DEFINE_ATTRIBUTE(N_20, T_20, C_20) \ - DEFINE_ATTRIBUTE(N_21, T_21, C_21) \ - DEFINE_ATTRIBUTE(N_22, T_22, C_22) \ - DEFINE_ATTRIBUTE(N_23, T_23, C_23) \ - protected: \ - START_INIT() \ - SET_ATTRIBUTE(N_0, T_0, AN_0) \ - SET_ATTRIBUTE(N_1, T_1, AN_1) \ - SET_ATTRIBUTE(N_2, T_2, AN_2) \ - SET_ATTRIBUTE(N_3, T_3, AN_3) \ - SET_ATTRIBUTE(N_4, T_4, AN_4) \ - SET_ATTRIBUTE(N_5, T_5, AN_5) \ - SET_ATTRIBUTE(N_6, T_6, AN_6) \ - SET_ATTRIBUTE(N_7, T_7, AN_7) \ - SET_ATTRIBUTE(N_8, T_8, AN_8) \ - SET_ATTRIBUTE(N_9, T_9, AN_9) \ - SET_ATTRIBUTE(N_10, T_10, AN_10) \ - SET_ATTRIBUTE(N_11, T_11, AN_11) \ - SET_ATTRIBUTE(N_12, T_12, AN_12) \ - SET_ATTRIBUTE(N_13, T_13, AN_13) \ - SET_ATTRIBUTE(N_14, T_14, AN_14) \ - SET_ATTRIBUTE(N_15, T_15, AN_15) \ - SET_ATTRIBUTE(N_16, T_16, AN_16) \ - SET_ATTRIBUTE(N_17, T_17, AN_17) \ - SET_ATTRIBUTE(N_18, T_18, AN_18) \ - SET_ATTRIBUTE(N_19, T_19, AN_19) \ - SET_ATTRIBUTE(N_20, T_20, AN_20) \ - SET_ATTRIBUTE(N_21, T_21, AN_21) \ - SET_ATTRIBUTE(N_22, T_22, AN_22) \ - SET_ATTRIBUTE(N_23, T_23, AN_23) \ - END_INIT() \ - public: - //-------------------------------------------------------------------------------------- #define INTERFACE_25(KIND, \ N_0, AN_0, T_0, C_0, \ @@ -1015,96 +752,5 @@ END_INIT() \ public: - -//-------------------------------------------------------------------------------------- -#define INTERFACE_27(KIND, \ - N_0, AN_0, T_0, C_0, \ - N_1, AN_1, T_1, C_1, \ - N_2, AN_2, T_2, C_2, \ - N_3, AN_3, T_3, C_3, \ - N_4, AN_4, T_4, C_4, \ - N_5, AN_5, T_5, C_5, \ - N_6, AN_6, T_6, C_6, \ - N_7, AN_7, T_7, C_7, \ - N_8, AN_8, T_8, C_8, \ - N_9, AN_9, T_9, C_9, \ - N_10, AN_10, T_10, C_10, \ - N_11, AN_11, T_11, C_11, \ - N_12, AN_12, T_12, C_12, \ - N_13, AN_13, T_13, C_13, \ - N_14, AN_14, T_14, C_14, \ - N_15, AN_15, T_15, C_15, \ - N_16, AN_16, T_16, C_16, \ - N_17, AN_17, T_17, C_17, \ - N_18, AN_18, T_18, C_18, \ - N_19, AN_19, T_19, C_19, \ - N_20, AN_20, T_20, C_20, \ - N_21, AN_21, T_21, C_21, \ - N_22, AN_22, T_22, C_22, \ - N_23, AN_23, T_23, C_23, \ - N_24, AN_24, T_24, C_24, \ - N_25, AN_25, T_25, C_25, \ - N_26, AN_26, T_26, C_26) \ - public: \ - INTERFACE_COMMON(KIND) \ - DEFINE_ATTRIBUTE(N_0, T_0, C_0) \ - DEFINE_ATTRIBUTE(N_1, T_1, C_1) \ - DEFINE_ATTRIBUTE(N_2, T_2, C_2) \ - DEFINE_ATTRIBUTE(N_3, T_3, C_3) \ - DEFINE_ATTRIBUTE(N_4, T_4, C_4) \ - DEFINE_ATTRIBUTE(N_5, T_5, C_5) \ - DEFINE_ATTRIBUTE(N_6, T_6, C_6) \ - DEFINE_ATTRIBUTE(N_7, T_7, C_7) \ - DEFINE_ATTRIBUTE(N_8, T_8, C_8) \ - DEFINE_ATTRIBUTE(N_9, T_9, C_9) \ - DEFINE_ATTRIBUTE(N_10, T_10, C_10) \ - DEFINE_ATTRIBUTE(N_11, T_11, C_11) \ - DEFINE_ATTRIBUTE(N_12, T_12, C_12) \ - DEFINE_ATTRIBUTE(N_13, T_13, C_13) \ - DEFINE_ATTRIBUTE(N_14, T_14, C_14) \ - DEFINE_ATTRIBUTE(N_15, T_15, C_15) \ - DEFINE_ATTRIBUTE(N_16, T_16, C_16) \ - DEFINE_ATTRIBUTE(N_17, T_17, C_17) \ - DEFINE_ATTRIBUTE(N_18, T_18, C_18) \ - DEFINE_ATTRIBUTE(N_19, T_19, C_19) \ - DEFINE_ATTRIBUTE(N_20, T_20, C_20) \ - DEFINE_ATTRIBUTE(N_21, T_21, C_21) \ - DEFINE_ATTRIBUTE(N_22, T_22, C_22) \ - DEFINE_ATTRIBUTE(N_23, T_23, C_23) \ - DEFINE_ATTRIBUTE(N_24, T_24, C_24) \ - DEFINE_ATTRIBUTE(N_25, T_25, C_25) \ - DEFINE_ATTRIBUTE(N_26, T_26, C_26) \ - protected: \ - START_INIT() \ - SET_ATTRIBUTE(N_0, T_0, AN_0) \ - SET_ATTRIBUTE(N_1, T_1, AN_1) \ - SET_ATTRIBUTE(N_2, T_2, AN_2) \ - SET_ATTRIBUTE(N_3, T_3, AN_3) \ - SET_ATTRIBUTE(N_4, T_4, AN_4) \ - SET_ATTRIBUTE(N_5, T_5, AN_5) \ - SET_ATTRIBUTE(N_6, T_6, AN_6) \ - SET_ATTRIBUTE(N_7, T_7, AN_7) \ - SET_ATTRIBUTE(N_8, T_8, AN_8) \ - SET_ATTRIBUTE(N_9, T_9, AN_9) \ - SET_ATTRIBUTE(N_10, T_10, AN_10) \ - SET_ATTRIBUTE(N_11, T_11, AN_11) \ - SET_ATTRIBUTE(N_12, T_12, AN_12) \ - SET_ATTRIBUTE(N_13, T_13, AN_13) \ - SET_ATTRIBUTE(N_14, T_14, AN_14) \ - SET_ATTRIBUTE(N_15, T_15, AN_15) \ - SET_ATTRIBUTE(N_16, T_16, AN_16) \ - SET_ATTRIBUTE(N_17, T_17, AN_17) \ - SET_ATTRIBUTE(N_18, T_18, AN_18) \ - SET_ATTRIBUTE(N_19, T_19, AN_19) \ - SET_ATTRIBUTE(N_20, T_20, AN_20) \ - SET_ATTRIBUTE(N_21, T_21, AN_21) \ - SET_ATTRIBUTE(N_22, T_22, AN_22) \ - SET_ATTRIBUTE(N_23, T_23, AN_23) \ - SET_ATTRIBUTE(N_24, T_24, AN_24) \ - SET_ATTRIBUTE(N_25, T_25, AN_25) \ - SET_ATTRIBUTE(N_26, T_26, AN_26) \ - END_INIT() \ - public: - //-------------------------------------------------------------------------------------- #endif /* SRC_MODELHIGHAPI_MODELHIGHAPI_MACRO_H_ */ -- 2.30.2