SET(_${PROJECT_NAME}_exposed_targets
GEOMArchimede BREPExport BREPImport BlockFix GEOMbasic GEOMAlgo GEOMClient GEOMImpl
GEOMUtils GEOMEngine GEOM_SupervEngine IGESExport IGESImport GEOMSketcher
- SalomeIDLGEOM STEPExport STEPImport STLExport ShHealOper XAO AdvancedEngine OCC2VTK
+ SalomeIDLGEOM STEPExport STEPImport STLExport STLImport ShHealOper XAO AdvancedEngine OCC2VTK
VTKExport
)
IF(SALOME_BUILD_GUI)
SET(GEOM_STEPExport STEPExport)
SET(GEOM_STEPImport STEPImport)
SET(GEOM_STLExport STLExport)
+SET(GEOM_STLImport STLImport)
SET(GEOM_ShHealOper ShHealOper)
SET(GEOM_XAO XAO)
SET(GEOM_AdvancedEngine AdvancedEngine)
FIND_LIBRARY(GEOM_STEPExport STEPExport ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_STEPImport STEPImport ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_STLExport STLExport ${GEOM_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(GEOM_STLImport STLImport ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_ShHealOper ShHealOper ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_XAO XAO ${GEOM_ROOT_DIR}/lib/salome)
FIND_LIBRARY(GEOM_AdvancedEngine AdvancedEngine ${GEOM_ROOT_DIR}/lib/salome)
\page import_export_geom_obj_page Importing/exporting geometrical objects
In Geometry module you can import and export geometrical objects
-from/into BREP, IGES, STEP files. The mechanisms of import and export
+from/into BREP, IGES, STEP, ACIS and STL files. The mechanisms of import and export
are implemented via plug-ins, which gives the opportunity to
expand the range of available formats by adding more plug-ins (for
example, CATIA 5).
-<em>To import geometrical objects from a BREP, IGES, STEP file:</em>
+<em>To import geometrical objects from a BREP, IGES, STEP, ACIS or STL file:</em>
\par
From the \b File menu choose \b Import. In the opening dialog box \b Import
select the required format of the file for importation and search for
-a *.brep, *.iges or *.step file.
+a *.brep, *.iges, *.step, *.sat or *.stl file.
\image html geomimport.png
\image html geomimport_reopen.png
-\n <em>To export geometrical objects into a BREP, IGES, STEP
+\n <em>To export geometrical objects into a BREP, IGES, STEP, ACIS or STL
file:</em>
\par
\b Geometry module of SALOME is destined for:
- \subpage import_export_geom_obj_page "import and export of geometrical models"
- in IGES, BREP and STEP formats;
+ in IGES, BREP, STEP, ACIS and STL formats;
- \subpage create_geom_obj_page "construction of geometrical objects"
using a wide range of functions;
- \subpage view_geom_obj_page "viewing geometrical objects" in the OCC
-Import: BREP|IGES|STEP|ACIS
+Import: BREP|IGES|STEP|STL|ACIS
Export: BREP|IGES|IGES_5_3|STEP|STL_Bin|STL_ASCII|ACIS|VTK
BREP.Import: BREPImport
STEP.Export: STEPExport
STEP.Pattern: STEP Files ( *.step *.stp )
+STL.Import: STLImport
+STL.Pattern: STL Files ( *.stl )
+
STL_Bin.Export: STLExport
STL_Bin.Pattern: STL Binary Files ( *.stl )
##
SET(SUBDIRS_COMMON
ARCHIMEDE BlockFix GEOMAlgo SKETCHER GEOM BREPExport
- BREPImport IGESExport IGESImport STEPExport STEPImport STLExport
+ BREPImport IGESExport IGESImport STEPExport STEPImport STLExport STLImport
ShHealOper GEOMUtils XAO XAO_Swig GEOMImpl GEOM_I GEOMClient GEOM_I_Superv GEOM_SWIG GEOM_PY
AdvancedEngine OCC2VTK VTKExport
)
#include <Standard_Failure.hxx>
#include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
+/**
+ * This function returns the input format name from the original format name.
+ */
+static TCollection_AsciiString GetImportFormatName
+ (const TCollection_AsciiString& theFormatName)
+{
+ Standard_Integer aLastInd = 4;
+
+ if (theFormatName.Search("STL") == 1) {
+ aLastInd = 3;
+ }
+
+ return theFormatName.SubString(1, aLastInd);
+}
+
//=============================================================================
/*!
* constructor
if (aFunction->GetDriverGUID() != GEOMImpl_ImportDriver::GetID()) return result;
Handle(TCollection_HAsciiString) aHLibName;
- if (!IsSupported(Standard_True, theFormatName.SubString(1,4), aHLibName)) {
+ if (!IsSupported
+ (Standard_True, GetImportFormatName(theFormatName), aHLibName)) {
return result;
}
TCollection_AsciiString aLibName = aHLibName->String();
if (theFileName.IsEmpty() || theFormatName.IsEmpty() || theParameterName.IsEmpty()) return aValue;
Handle(TCollection_HAsciiString) aHLibName;
- if (!IsSupported(Standard_True, theFormatName.SubString(1,4), aHLibName)) {
+ if (!IsSupported
+ (Standard_True, GetImportFormatName(theFormatName), aHLibName)) {
return aValue;
}
TCollection_AsciiString aLibName = aHLibName->String();
--- /dev/null
+# Copyright (C) 2012-2013 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.
+#
+# 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
+#
+
+# --- options ---
+
+# additional include directories
+INCLUDE_DIRECTORIES(
+ ${CAS_INCLUDE_DIRS}
+ ${PTHREAD_INCLUDE_DIR}
+ ${KERNEL_INCLUDE_DIRS}
+ )
+
+# additional preprocessor / compiler flags
+ADD_DEFINITIONS(
+ ${CAS_DEFINITIONS}
+ )
+
+# libraries to link to
+SET(_link_LIBRARIES
+ ${CAS_TKSTL}
+ ${KERNEL_SALOMELocalTrace}
+ )
+
+# --- sources ---
+
+SET(STLImport_SOURCES
+ STLImport.cxx
+ )
+
+# --- rules ---
+
+ADD_LIBRARY(STLImport ${STLImport_SOURCES})
+TARGET_LINK_LIBRARIES(STLImport ${_link_LIBRARIES})
+INSTALL(TARGETS STLImport EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
+
+
--- /dev/null
+// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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
+//
+
+// File: STLImport.cxx
+// Author: Sergey KHROMOV
+
+
+#include "utilities.h"
+#include <StlAPI_Reader.hxx>
+#include <TCollection_AsciiString.hxx>
+#include <TopoDS_Shape.hxx>
+#include <TDF_Label.hxx>
+
+
+#ifdef WIN32
+ #if defined STLIMPORT_EXPORTS || defined STLImport_EXPORTS
+ #define STLIMPORT_EXPORT __declspec( dllexport )
+ #else
+ #define STLIMPORT_EXPORT __declspec( dllimport )
+ #endif
+#else
+ #define STLIMPORT_EXPORT
+#endif
+
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+
+extern "C"
+{
+STLIMPORT_EXPORT
+ TopoDS_Shape Import (const TCollection_AsciiString& theFileName,
+ const TCollection_AsciiString& /*theFormatName*/,
+ TCollection_AsciiString& theError,
+ const TDF_Label&)
+ {
+ MESSAGE("Import STL from file " << theFileName.ToCString());
+
+ StlAPI_Reader aReader;
+ TopoDS_Shape aShape;
+
+ aReader.Read(aShape, theFileName.ToCString());
+
+ if (aShape.IsNull()) {
+ theError = "STL Import failed";
+ }
+
+ return aShape;
+ }
+}