mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-11-13 17:18:36 +05:00
0022315: EDF 2722 GEOM: Import STL in GEOM
This commit is contained in:
parent
7555ded134
commit
a84676a7fa
@ -243,7 +243,7 @@ INCLUDE(CMakePackageConfigHelpers)
|
|||||||
SET(_${PROJECT_NAME}_exposed_targets
|
SET(_${PROJECT_NAME}_exposed_targets
|
||||||
GEOMArchimede BREPExport BREPImport BlockFix GEOMbasic GEOMAlgo GEOMClient GEOMImpl
|
GEOMArchimede BREPExport BREPImport BlockFix GEOMbasic GEOMAlgo GEOMClient GEOMImpl
|
||||||
GEOMUtils GEOMEngine GEOM_SupervEngine IGESExport IGESImport GEOMSketcher
|
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
|
VTKExport
|
||||||
)
|
)
|
||||||
IF(SALOME_BUILD_GUI)
|
IF(SALOME_BUILD_GUI)
|
||||||
|
@ -151,6 +151,7 @@ SET(GEOM_SalomeIDLGEOM SalomeIDLGEOM)
|
|||||||
SET(GEOM_STEPExport STEPExport)
|
SET(GEOM_STEPExport STEPExport)
|
||||||
SET(GEOM_STEPImport STEPImport)
|
SET(GEOM_STEPImport STEPImport)
|
||||||
SET(GEOM_STLExport STLExport)
|
SET(GEOM_STLExport STLExport)
|
||||||
|
SET(GEOM_STLImport STLImport)
|
||||||
SET(GEOM_ShHealOper ShHealOper)
|
SET(GEOM_ShHealOper ShHealOper)
|
||||||
SET(GEOM_XAO XAO)
|
SET(GEOM_XAO XAO)
|
||||||
SET(GEOM_AdvancedEngine AdvancedEngine)
|
SET(GEOM_AdvancedEngine AdvancedEngine)
|
||||||
|
@ -38,6 +38,7 @@ FIND_LIBRARY(GEOM_SalomeIDLGEOM SalomeIDLGEOM ${GEOM_ROOT_DIR}/lib/salome)
|
|||||||
FIND_LIBRARY(GEOM_STEPExport STEPExport ${GEOM_ROOT_DIR}/lib/salome)
|
FIND_LIBRARY(GEOM_STEPExport STEPExport ${GEOM_ROOT_DIR}/lib/salome)
|
||||||
FIND_LIBRARY(GEOM_STEPImport STEPImport ${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_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_ShHealOper ShHealOper ${GEOM_ROOT_DIR}/lib/salome)
|
||||||
FIND_LIBRARY(GEOM_XAO XAO ${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)
|
FIND_LIBRARY(GEOM_AdvancedEngine AdvancedEngine ${GEOM_ROOT_DIR}/lib/salome)
|
||||||
|
@ -3,17 +3,17 @@
|
|||||||
\page import_export_geom_obj_page Importing/exporting geometrical objects
|
\page import_export_geom_obj_page Importing/exporting geometrical objects
|
||||||
|
|
||||||
In Geometry module you can import and export 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
|
are implemented via plug-ins, which gives the opportunity to
|
||||||
expand the range of available formats by adding more plug-ins (for
|
expand the range of available formats by adding more plug-ins (for
|
||||||
example, CATIA 5).
|
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
|
\par
|
||||||
From the \b File menu choose \b Import. In the opening dialog box \b Import
|
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
|
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.png
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ as before this operation.
|
|||||||
|
|
||||||
\image html geomimport_reopen.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>
|
file:</em>
|
||||||
|
|
||||||
\par
|
\par
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
\b Geometry module of SALOME is destined for:
|
\b Geometry module of SALOME is destined for:
|
||||||
- \subpage import_export_geom_obj_page "import and export of geometrical models"
|
- \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"
|
- \subpage create_geom_obj_page "construction of geometrical objects"
|
||||||
using a wide range of functions;
|
using a wide range of functions;
|
||||||
- \subpage view_geom_obj_page "viewing geometrical objects" in the OCC
|
- \subpage view_geom_obj_page "viewing geometrical objects" in the OCC
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
Import: BREP|IGES|STEP|ACIS
|
Import: BREP|IGES|STEP|STL|ACIS
|
||||||
Export: BREP|IGES|IGES_5_3|STEP|STL_Bin|STL_ASCII|ACIS|VTK
|
Export: BREP|IGES|IGES_5_3|STEP|STL_Bin|STL_ASCII|ACIS|VTK
|
||||||
|
|
||||||
BREP.Import: BREPImport
|
BREP.Import: BREPImport
|
||||||
@ -17,6 +17,9 @@ STEP.Import: STEPImport
|
|||||||
STEP.Export: STEPExport
|
STEP.Export: STEPExport
|
||||||
STEP.Pattern: STEP Files ( *.step *.stp )
|
STEP.Pattern: STEP Files ( *.step *.stp )
|
||||||
|
|
||||||
|
STL.Import: STLImport
|
||||||
|
STL.Pattern: STL Files ( *.stl )
|
||||||
|
|
||||||
STL_Bin.Export: STLExport
|
STL_Bin.Export: STLExport
|
||||||
STL_Bin.Pattern: STL Binary Files ( *.stl )
|
STL_Bin.Pattern: STL Binary Files ( *.stl )
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
##
|
##
|
||||||
SET(SUBDIRS_COMMON
|
SET(SUBDIRS_COMMON
|
||||||
ARCHIMEDE BlockFix GEOMAlgo SKETCHER GEOM BREPExport
|
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
|
ShHealOper GEOMUtils XAO XAO_Swig GEOMImpl GEOM_I GEOMClient GEOM_I_Superv GEOM_SWIG GEOM_PY
|
||||||
AdvancedEngine OCC2VTK VTKExport
|
AdvancedEngine OCC2VTK VTKExport
|
||||||
)
|
)
|
||||||
|
@ -74,6 +74,21 @@
|
|||||||
#include <Standard_Failure.hxx>
|
#include <Standard_Failure.hxx>
|
||||||
#include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
|
#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
|
* constructor
|
||||||
@ -236,7 +251,8 @@ Handle(GEOM_Object) GEOMImpl_IInsertOperations::Import
|
|||||||
if (aFunction->GetDriverGUID() != GEOMImpl_ImportDriver::GetID()) return result;
|
if (aFunction->GetDriverGUID() != GEOMImpl_ImportDriver::GetID()) return result;
|
||||||
|
|
||||||
Handle(TCollection_HAsciiString) aHLibName;
|
Handle(TCollection_HAsciiString) aHLibName;
|
||||||
if (!IsSupported(Standard_True, theFormatName.SubString(1,4), aHLibName)) {
|
if (!IsSupported
|
||||||
|
(Standard_True, GetImportFormatName(theFormatName), aHLibName)) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
TCollection_AsciiString aLibName = aHLibName->String();
|
TCollection_AsciiString aLibName = aHLibName->String();
|
||||||
@ -320,7 +336,8 @@ TCollection_AsciiString GEOMImpl_IInsertOperations::ReadValue
|
|||||||
if (theFileName.IsEmpty() || theFormatName.IsEmpty() || theParameterName.IsEmpty()) return aValue;
|
if (theFileName.IsEmpty() || theFormatName.IsEmpty() || theParameterName.IsEmpty()) return aValue;
|
||||||
|
|
||||||
Handle(TCollection_HAsciiString) aHLibName;
|
Handle(TCollection_HAsciiString) aHLibName;
|
||||||
if (!IsSupported(Standard_True, theFormatName.SubString(1,4), aHLibName)) {
|
if (!IsSupported
|
||||||
|
(Standard_True, GetImportFormatName(theFormatName), aHLibName)) {
|
||||||
return aValue;
|
return aValue;
|
||||||
}
|
}
|
||||||
TCollection_AsciiString aLibName = aHLibName->String();
|
TCollection_AsciiString aLibName = aHLibName->String();
|
||||||
|
52
src/STLImport/CMakeLists.txt
Executable file
52
src/STLImport/CMakeLists.txt
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
# 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})
|
||||||
|
|
||||||
|
|
72
src/STLImport/STLImport.cxx
Executable file
72
src/STLImport/STLImport.cxx
Executable file
@ -0,0 +1,72 @@
|
|||||||
|
// 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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user