Salome HOME
Implementation of DXFPLUGIN as a GEOM plugin (added files)
[plugins/dxfplugin.git] / src / DXFPluginBuilder.py
diff --git a/src/DXFPluginBuilder.py b/src/DXFPluginBuilder.py
new file mode 100644 (file)
index 0000000..72b5c73
--- /dev/null
@@ -0,0 +1,89 @@
+#  -*- coding: iso-8859-1 -*-
+# Copyright (C) 2014  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# 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 DXFPlugin import GEOM_IDXFPluginOperations
+
+# Engine Library Name
+__libraryName__ = "DXFPluginEngine"
+
+def GetDXFPluginOperations(self):
+    anOp = self.GetPluginOperations(self.myStudyId, __libraryName__)
+    return anOp._narrow(GEOM_IDXFPluginOperations)
+
+## Export the given shape into a file with given name in DXF format.
+#  @param theObject Shape to be stored in the file.
+#  @param theFileName Name of the file to store the given shape in.
+def ExportDXF(self, theObject, theFileName):
+    """
+    Export the given shape into a file with given name in DXF format.
+
+    Parameters: 
+        theObject Shape to be stored in the file.
+        theFileName Name of the file to store the given shape in.
+    """
+    anOp = GetDXFPluginOperations(self)
+    anOp.ExportDXF(theObject, theFileName)
+    if anOp.IsDone() == 0:
+        raise RuntimeError,  "Export : " + anOp.GetErrorCode()
+        pass
+    pass
+
+
+## Import a shape from the DXF file
+#  @param theFileName The file, containing the shape.
+#  @param theName Object name; when specified, this parameter is used
+#         for result publication in the study. Otherwise, if automatic
+#         publication is switched on, default value is used for result name.
+#
+#  @return New GEOM.GEOM_Object, containing the imported shape.
+#          If material names are imported it returns the list of
+#          objects. The first one is the imported object followed by
+#          material groups.
+#  @note Auto publishing is allowed for the shape itself. Imported
+#        material groups are not automatically published.
+def ImportDXF(self, theFileName, theName=None):
+    """
+    Import a shape from the DXF file
+
+    Parameters: 
+        theFileName The file, containing the shape.
+        theName Object name; when specified, this parameter is used
+                for result publication in the study. Otherwise, if automatic
+                publication is switched on, default value is used for result name.
+
+    Returns:
+        New GEOM.GEOM_Object, containing the imported shape.
+        If material names are imported it returns the list of
+        objects. The first one is the imported object followed by
+        material groups.
+    Note:
+        Auto publishing is allowed for the shape itself. Imported
+        material groups are not automatically published.
+    """
+    from salome.geom.geomBuilder import RaiseIfFailed
+    anOp = GetDXFPluginOperations(self)
+    aListObj = anOp.ImportDXF(theFileName)
+    RaiseIfFailed("ImportDXF", anOp)
+    aNbObj = len(aListObj)
+    if aNbObj > 0:
+        self._autoPublish(aListObj[0], theName, "imported")
+    if aNbObj == 1:
+        return aListObj[0]
+    return aListObj