0023125: EDF 11112 GEOM: Choose the unity of length when exporting to STEP

This commit is contained in:
skv 2015-12-07 15:38:50 +03:00
parent f83b8bcd3a
commit 80a0257573
15 changed files with 414 additions and 20 deletions

View File

@ -24,6 +24,23 @@
module GEOM module GEOM
{ {
/*!
* \brief Units of length
*/
enum length_unit
{
LU_INCH,
LU_MILLIMETER,
LU_FOOT,
LU_MILE,
LU_METER,
LU_KILOMETER,
LU_MILLIINCH,
LU_MICROMETER,
LU_CENTIMETER,
LU_MICROINCH
};
/*! /*!
* \brief Interface for STEPPlugin modeling functions. * \brief Interface for STEPPlugin modeling functions.
*/ */
@ -34,9 +51,11 @@ module GEOM
* *
* \param theObject Shape to be stored in the file. * \param theObject Shape to be stored in the file.
* \param theFileName Name of the file to store the given shape in. * \param theFileName Name of the file to store the given shape in.
* \param theUnit the length unit.
*/ */
void ExportSTEP( in GEOM::GEOM_Object theObject, void ExportSTEP( in GEOM::GEOM_Object theObject,
in string theFileName ); in string theFileName,
in GEOM::length_unit theUnit);
/*! /*!
* \brief Import a shape from the STEP file. * \brief Import a shape from the STEP file.

View File

@ -3563,7 +3563,10 @@ void GEOM_Superv_i::ExportSTEP( GEOM::GEOM_Object_ptr theObject,
beginService( " GEOM_Superv_i::ExportSTEP" ); beginService( " GEOM_Superv_i::ExportSTEP" );
MESSAGE("GEOM_Superv_i::ExportSTEP"); MESSAGE("GEOM_Superv_i::ExportSTEP");
getSTEPPluginOp(); getSTEPPluginOp();
mySTEPOp->ExportSTEP( theObject, theFileName );
const GEOM::length_unit aUnit = GEOM::LU_METER;
mySTEPOp->ExportSTEP( theObject, theFileName, aUnit );
endService( " GEOM_Superv_i::ExportSTEP" ); endService( " GEOM_Superv_i::ExportSTEP" );
} }

View File

@ -19,6 +19,7 @@
# #
from GEOM import ISTEPOperations from GEOM import ISTEPOperations
import GEOM
# Engine Library Name # Engine Library Name
__libraryName__ = "STEPPluginEngine" __libraryName__ = "STEPPluginEngine"
@ -30,17 +31,19 @@ def GetSTEPPluginOperations(self):
## Export the given shape into a file with given name in STEP format. ## Export the given shape into a file with given name in STEP format.
# @param theObject Shape to be stored in the file. # @param theObject Shape to be stored in the file.
# @param theFileName Name of the file to store the given shape in. # @param theFileName Name of the file to store the given shape in.
# @param theUnit the length unit (see GEOM::length_unit). In meters by default.
# @ingroup l2_import_export # @ingroup l2_import_export
def ExportSTEP(self, theObject, theFileName): def ExportSTEP(self, theObject, theFileName, theUnit=GEOM.LU_METER):
""" """
Export the given shape into a file with given name in STEP format. Export the given shape into a file with given name in STEP format.
Parameters: Parameters:
theObject Shape to be stored in the file. theObject Shape to be stored in the file.
theFileName Name of the file to store the given shape in. theFileName Name of the file to store the given shape in.
theUnit the length unit (see GEOM::length_unit). In meters by default.
""" """
anOp = GetSTEPPluginOperations(self) anOp = GetSTEPPluginOperations(self)
anOp.ExportSTEP(theObject, theFileName) anOp.ExportSTEP(theObject, theFileName, theUnit)
if anOp.IsDone() == 0: if anOp.IsDone() == 0:
raise RuntimeError, "Export : " + anOp.GetErrorCode() raise RuntimeError, "Export : " + anOp.GetErrorCode()
pass pass

View File

@ -95,6 +95,7 @@ SET(STEPPluginEngine_HEADERS
STEPPlugin_IExport.hxx STEPPlugin_IExport.hxx
STEPPlugin_IImport.hxx STEPPlugin_IImport.hxx
STEPPlugin_ImportDriver.hxx STEPPlugin_ImportDriver.hxx
STEPPlugin_ExportDlg.h
STEPPlugin_ExportDriver.hxx STEPPlugin_ExportDriver.hxx
STEPPlugin_IECallBack.hxx STEPPlugin_IECallBack.hxx
) )
@ -103,6 +104,7 @@ IF(SALOME_BUILD_GUI)
# header files / to be processed by moc # header files / to be processed by moc
SET(_moc_HEADERS SET(_moc_HEADERS
STEPPlugin_GUI.h STEPPlugin_GUI.h
STEPPlugin_ExportDlg.h
) )
ENDIF() ENDIF()
@ -114,6 +116,7 @@ IF(SALOME_BUILD_GUI)
SET(STEPPluginGUI_SOURCES SET(STEPPluginGUI_SOURCES
STEPPlugin_GUI.cxx STEPPlugin_GUI.cxx
STEPPlugin_ExportDlg.cxx
${_moc_SOURCES} ${_moc_SOURCES}
) )
ENDIF() ENDIF()

View File

@ -0,0 +1,109 @@
// Copyright (C) 2014-2015 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
//
#include "STEPPlugin_ExportDlg.h"
#include <QApplication>
#include <QLabel>
#include <QLayout>
#include <QComboBox>
//=============================================================================
// Constructor
//=============================================================================
STEPPlugin_ExportDlg::STEPPlugin_ExportDlg(QWidget *parent)
: SUIT_FileDlg (parent, false, true, true),
myUnitCB (0)
{
QLabel* aUnitLabel = new QLabel(tr("STEP_LENGTH_UNITS"), this);
myUnitCB = new QComboBox(this);
myUnitCB->addItem(tr("STEP_UNITS_KILOMETER"), GEOM::LU_KILOMETER);
myUnitCB->addItem(tr("STEP_UNITS_METER"), GEOM::LU_METER);
myUnitCB->addItem(tr("STEP_UNITS_CENTIMETER"), GEOM::LU_CENTIMETER);
myUnitCB->addItem(tr("STEP_UNITS_MILLIMETER"), GEOM::LU_MILLIMETER);
myUnitCB->addItem(tr("STEP_UNITS_MICROMETER"), GEOM::LU_MICROMETER);
myUnitCB->addItem(tr("STEP_UNITS_MILE"), GEOM::LU_MILE);
myUnitCB->addItem(tr("STEP_UNITS_FOOT"), GEOM::LU_FOOT);
myUnitCB->addItem(tr("STEP_UNITS_INCH"), GEOM::LU_INCH);
myUnitCB->addItem(tr("STEP_UNITS_MILLIINCH"), GEOM::LU_MILLIINCH);
myUnitCB->addItem(tr("STEP_UNITS_MICROINCH"), GEOM::LU_MICROINCH);
// Meters by default.
myUnitCB->setCurrentIndex(1);
layout()->addWidget(aUnitLabel);
layout()->addWidget(myUnitCB);
}
//=============================================================================
// Destructor
//=============================================================================
STEPPlugin_ExportDlg::~STEPPlugin_ExportDlg()
{
}
//=============================================================================
// getUnits
//=============================================================================
GEOM::length_unit STEPPlugin_ExportDlg::getUnits() const
{
const GEOM::length_unit anUnit =
(GEOM::length_unit) myUnitCB->itemData(myUnitCB->currentIndex()).toInt();
return anUnit;
}
//=============================================================================
// getFileName
//=============================================================================
QString STEPPlugin_ExportDlg::getFileName(const QString &theInitial,
const QString &theFilters,
const QString &theCaption,
QWidget *theParent,
GEOM::length_unit &theUnits)
{
QStringList aFls = theFilters.split(";;", QString::SkipEmptyParts);
QString aTmpFileName = theInitial;
aTmpFileName = aTmpFileName.simplified();
aTmpFileName =
aTmpFileName.replace(QRegExp("\\*"), "").replace(QRegExp("\\?"), "");
STEPPlugin_ExportDlg aDlg(theParent);
aDlg.setFileMode(AnyFile);
aDlg.setFilters(aFls);
aDlg.setWindowTitle(theCaption);
if (!aTmpFileName.isEmpty()) {
aDlg.processPath(aTmpFileName);
}
QString aFileName;
if (aDlg.exec() == QDialog::Accepted) {
aFileName = aDlg.selectedFile();
theUnits = aDlg.getUnits();
}
QApplication::processEvents();
return aFileName;
}

View File

@ -0,0 +1,52 @@
// Copyright (C) 2014-2015 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
//
#ifndef STEPPlugin_ExportDlg_H
#define STEPPlugin_ExportDlg_H
#include <SUIT_FileDlg.h>
#include <SALOMEconfig.h>
#include CORBA_CLIENT_HEADER(STEPPlugin)
class QComboBox;
class STEPPlugin_ExportDlg: public SUIT_FileDlg
{
Q_OBJECT
public:
STEPPlugin_ExportDlg(QWidget *parent);
~STEPPlugin_ExportDlg();
GEOM::length_unit getUnits() const;
static QString getFileName(const QString &theInitial,
const QString &theFilters,
const QString &theCaption,
QWidget *theParent,
GEOM::length_unit &theUnits);
private:
QComboBox *myUnitCB;
};
#endif // STEPPlugin_ExportDlg_H

View File

@ -20,6 +20,7 @@
// internal includes // internal includes
#include "STEPPlugin_ExportDriver.hxx" #include "STEPPlugin_ExportDriver.hxx"
#include "STEPPlugin_IExport.hxx" #include "STEPPlugin_IExport.hxx"
#include "STEPPlugin_IOperations.hxx"
// KERNEL includes // KERNEL includes
#include <utilities.h> #include <utilities.h>
@ -74,6 +75,43 @@ Standard_Integer STEPPlugin_ExportDriver::Execute( TFunction_Logbook& log ) cons
aFunction->SetValue( aShape ); aFunction->SetValue( aShape );
TCollection_AsciiString aFileName = aData.GetFileName(); TCollection_AsciiString aFileName = aData.GetFileName();
Standard_Integer anUnit = aData.GetUnit();
TCollection_AsciiString aWriteUnit;
switch (anUnit) {
case STEPPlugin_IOperations::LengthUnit_Inch:
aWriteUnit = "INCH";
break;
case STEPPlugin_IOperations::LengthUnit_Millimeter:
aWriteUnit = "MM";
break;
case STEPPlugin_IOperations::LengthUnit_Foot:
aWriteUnit = "FT";
break;
case STEPPlugin_IOperations::LengthUnit_Mile:
aWriteUnit = "MI";
break;
case STEPPlugin_IOperations::LengthUnit_Meter:
aWriteUnit = "M";
break;
case STEPPlugin_IOperations::LengthUnit_Kilometer:
aWriteUnit = "KM";
break;
case STEPPlugin_IOperations::LengthUnit_Milliinch:
aWriteUnit = "MIL";
break;
case STEPPlugin_IOperations::LengthUnit_Micrometer:
aWriteUnit = "UM";
break;
case STEPPlugin_IOperations::LengthUnit_Centimeter:
aWriteUnit = "CM";
break;
case STEPPlugin_IOperations::LengthUnit_Microinch:
aWriteUnit = "UIN";
break;
default:
return 0;
}
MESSAGE("Export STEP into file " << aFileName.ToCString()); MESSAGE("Export STEP into file " << aFileName.ToCString());
@ -86,7 +124,7 @@ Standard_Integer STEPPlugin_ExportDriver::Execute( TFunction_Logbook& log ) cons
//VRV: OCC 4.0 migration //VRV: OCC 4.0 migration
STEPControl_Writer aWriter; STEPControl_Writer aWriter;
Interface_Static::SetCVal("xstep.cascade.unit","M"); Interface_Static::SetCVal("xstep.cascade.unit","M");
Interface_Static::SetCVal("write.step.unit", "M"); Interface_Static::SetCVal("write.step.unit", aWriteUnit.ToCString());
Interface_Static::SetIVal("write.step.nonmanifold", 1); Interface_Static::SetIVal("write.step.nonmanifold", 1);
status = aWriter.Transfer( aShape, STEPControl_AsIs ); status = aWriter.Transfer( aShape, STEPControl_AsIs );
//VRV: OCC 4.0 migration //VRV: OCC 4.0 migration

View File

@ -37,6 +37,7 @@
#include "GEOMBase.h" #include "GEOMBase.h"
#include "GEOM_Displayer.h" #include "GEOM_Displayer.h"
#include "GEOM_GenericObjPtr.h" #include "GEOM_GenericObjPtr.h"
#include "STEPPlugin_ExportDlg.h"
#include <SALOMEconfig.h> #include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(STEPPlugin) #include CORBA_SERVER_HEADER(STEPPlugin)
@ -250,11 +251,12 @@ bool STEPPlugin_GUI::exportSTEP( SUIT_Desktop* parent )
if ( CORBA::is_nil( obj ) ) continue; if ( CORBA::is_nil( obj ) ) continue;
QString fileName = app->getFileName( false, GEOM::length_unit anUnit;
QString( io->getName() ), QString fileName = STEPPlugin_ExportDlg::getFileName
(QString( io->getName() ),
tr( "STEP_FILES" ), tr( "STEP_FILES" ),
tr( "EXPORT_TITLE" ), tr( "EXPORT_TITLE" ),
parent ); parent, anUnit);
if ( fileName.isEmpty() ) if ( fileName.isEmpty() )
return false; return false;
@ -268,7 +270,7 @@ bool STEPPlugin_GUI::exportSTEP( SUIT_Desktop* parent )
app->putInfo( tr( "GEOM_PRP_EXPORT" ).arg( fileName ) ); app->putInfo( tr( "GEOM_PRP_EXPORT" ).arg( fileName ) );
transaction.start(); transaction.start();
stepOp->ExportSTEP( obj, fileName.toUtf8().constData() ); stepOp->ExportSTEP( obj, fileName.toUtf8().constData(), anUnit);
if ( stepOp->IsDone() ) if ( stepOp->IsDone() )
{ {

4
src/STEPPlugin/STEPPlugin_IECallBack.cxx Executable file → Normal file
View File

@ -52,7 +52,9 @@ STEPPlugin_IECallBack::Export( int theDocId,
const TCollection_AsciiString& theFormatName ) const TCollection_AsciiString& theFormatName )
{ {
STEPPlugin_IOperations* aPluginOperations = STEPPlugin_OperationsCreator::get( GetEngine(), theDocId ); STEPPlugin_IOperations* aPluginOperations = STEPPlugin_OperationsCreator::get( GetEngine(), theDocId );
aPluginOperations->ExportSTEP( theOriginal, theFileName ); const STEPPlugin_IOperations::LengthUnit aUnit = STEPPlugin_IOperations::LengthUnit_Meter;
aPluginOperations->ExportSTEP( theOriginal, theFileName, aUnit );
return true; return true;
} }

View File

@ -24,6 +24,7 @@
#define EXPORTSTEP_ARG_ORIGINAL 1 #define EXPORTSTEP_ARG_ORIGINAL 1
#define EXPORTSTEP_ARG_FILENAME 2 #define EXPORTSTEP_ARG_FILENAME 2
#define EXPORTSTEP_ARG_UNIT 3
class STEPPlugin_IExport class STEPPlugin_IExport
{ {
@ -40,6 +41,11 @@ public:
{ _func->SetString( EXPORTSTEP_ARG_FILENAME, theFileName ); } { _func->SetString( EXPORTSTEP_ARG_FILENAME, theFileName ); }
TCollection_AsciiString GetFileName() TCollection_AsciiString GetFileName()
{ return _func->GetString( EXPORTSTEP_ARG_FILENAME ); } { return _func->GetString( EXPORTSTEP_ARG_FILENAME ); }
void SetUnit(const Standard_Integer theUnit)
{ _func->SetInteger(EXPORTSTEP_ARG_UNIT, theUnit); }
Standard_Integer GetUnit()
{ return _func->GetInteger(EXPORTSTEP_ARG_UNIT); }
private: private:
Handle(GEOM_Function) _func; Handle(GEOM_Function) _func;

View File

@ -54,18 +54,66 @@ STEPPlugin_IOperations::~STEPPlugin_IOperations()
MESSAGE( "STEPPlugin_IOperations::~STEPPlugin_IOperations" ); MESSAGE( "STEPPlugin_IOperations::~STEPPlugin_IOperations" );
} }
//=============================================================================
/*!
*
*/
//=============================================================================
static GEOM::TPythonDump& operator<<
(GEOM::TPythonDump &theDump,
const STEPPlugin_IOperations::LengthUnit theState)
{
switch (theState) {
case STEPPlugin_IOperations::LengthUnit_Inch:
theDump << "GEOM.LU_INCH";
break;
case STEPPlugin_IOperations::LengthUnit_Millimeter:
theDump << "GEOM.LU_MILLIMETER";
break;
case STEPPlugin_IOperations::LengthUnit_Foot:
theDump << "GEOM.LU_FOOT";
break;
case STEPPlugin_IOperations::LengthUnit_Mile:
theDump << "GEOM.LU_MILE";
break;
case STEPPlugin_IOperations::LengthUnit_Meter:
theDump << "GEOM.LU_METER";
break;
case STEPPlugin_IOperations::LengthUnit_Kilometer:
theDump << "GEOM.LU_KILOMETER";
break;
case STEPPlugin_IOperations::LengthUnit_Milliinch:
theDump << "GEOM.LU_MILLIINCH";
break;
case STEPPlugin_IOperations::LengthUnit_Micrometer:
theDump << "GEOM.LU_MICROMETER";
break;
case STEPPlugin_IOperations::LengthUnit_Centimeter:
theDump << "GEOM.LU_CENTIMETER";
break;
case STEPPlugin_IOperations::LengthUnit_Microinch:
theDump << "GEOM.LU_MICROINCH";
break;
default:
break;
}
return theDump;
}
//============================================================================= //=============================================================================
/*! /*!
* ExportSTEP * ExportSTEP
* Export a shape to STEP format * Export a shape to STEP format
* \param theOriginal The shape to export * \param theOriginal The shape to export
* \param theFileName The name of the file to exported * \param theFileName The name of the file to exported
* \param theIsASCII The format of the exported file (ASCII or Binary) * \param theUnit the length unit
* \param theDeflection The deflection of the shape to exported
*/ */
//============================================================================= //=============================================================================
void STEPPlugin_IOperations::ExportSTEP( const Handle(GEOM_Object) theOriginal, void STEPPlugin_IOperations::ExportSTEP
const TCollection_AsciiString& theFileName ) (const Handle(GEOM_Object) theOriginal,
const TCollection_AsciiString &theFileName,
const LengthUnit theUnit)
{ {
SetErrorCode(KO); SetErrorCode(KO);
if( theOriginal.IsNull() ) return; if( theOriginal.IsNull() ) return;
@ -87,6 +135,7 @@ void STEPPlugin_IOperations::ExportSTEP( const Handle(GEOM_Object) theOrigi
STEPPlugin_IExport aCI( aFunction ); STEPPlugin_IExport aCI( aFunction );
aCI.SetOriginal( aRefFunction ); aCI.SetOriginal( aRefFunction );
aCI.SetFileName( theFileName ); aCI.SetFileName( theFileName );
aCI.SetUnit( theUnit );
//Perform the Export //Perform the Export
try { try {
@ -104,7 +153,7 @@ void STEPPlugin_IOperations::ExportSTEP( const Handle(GEOM_Object) theOrigi
//Make a Python command //Make a Python command
GEOM::TPythonDump(aFunction) << "geompy.ExportSTEP(" << theOriginal << ", \"" GEOM::TPythonDump(aFunction) << "geompy.ExportSTEP(" << theOriginal << ", \""
<< theFileName.ToCString() << "\" )"; << theFileName.ToCString() << "\", " << theUnit << " )";
SetErrorCode(OK); SetErrorCode(OK);
} }

View File

@ -29,12 +29,33 @@
class STEPPLUGINENGINE_EXPORT STEPPlugin_IOperations: public GEOMImpl_IBaseIEOperations class STEPPLUGINENGINE_EXPORT STEPPlugin_IOperations: public GEOMImpl_IBaseIEOperations
{ {
public:
/*!
* \brief Units of length
*/
enum LengthUnit
{
LengthUnit_Inch,
LengthUnit_Millimeter,
LengthUnit_Foot,
LengthUnit_Mile,
LengthUnit_Meter,
LengthUnit_Kilometer,
LengthUnit_Milliinch,
LengthUnit_Micrometer,
LengthUnit_Centimeter,
LengthUnit_Microinch
};
public: public:
STEPPlugin_IOperations( GEOM_Engine*, int ); STEPPlugin_IOperations( GEOM_Engine*, int );
~STEPPlugin_IOperations(); ~STEPPlugin_IOperations();
void ExportSTEP( const Handle(GEOM_Object), void ExportSTEP( const Handle(GEOM_Object),
const TCollection_AsciiString& ); const TCollection_AsciiString&, const LengthUnit );
Handle(TColStd_HSequenceOfTransient) ImportSTEP( const TCollection_AsciiString&, Handle(TColStd_HSequenceOfTransient) ImportSTEP( const TCollection_AsciiString&,
const bool ); const bool );

View File

@ -53,10 +53,12 @@ STEPPlugin_IOperations_i::~STEPPlugin_IOperations_i()
* Export a shape to STEP format * Export a shape to STEP format
* \param theOriginal The shape to export * \param theOriginal The shape to export
* \param theFileName The name of the exported file * \param theFileName The name of the exported file
* \param theUnit the length unit.
*/ */
//============================================================================= //=============================================================================
void STEPPlugin_IOperations_i::ExportSTEP( GEOM::GEOM_Object_ptr theOriginal, void STEPPlugin_IOperations_i::ExportSTEP(GEOM::GEOM_Object_ptr theOriginal,
const char* theFileName ) const char* theFileName,
GEOM::length_unit theUnit)
{ {
// duplicate the original shape // duplicate the original shape
GEOM::GEOM_Object_var aGEOMObject = GEOM::GEOM_Object::_duplicate( theOriginal ); GEOM::GEOM_Object_var aGEOMObject = GEOM::GEOM_Object::_duplicate( theOriginal );
@ -68,8 +70,45 @@ void STEPPlugin_IOperations_i::ExportSTEP( GEOM::GEOM_Object_ptr theOriginal,
Handle(GEOM_Object) anOriginal = GetObjectImpl( theOriginal ); Handle(GEOM_Object) anOriginal = GetObjectImpl( theOriginal );
if (anOriginal.IsNull()) return; if (anOriginal.IsNull()) return;
STEPPlugin_IOperations::LengthUnit aUnit;
switch (theUnit) {
case GEOM::LU_INCH:
aUnit = STEPPlugin_IOperations::LengthUnit_Inch;
break;
case GEOM::LU_MILLIMETER:
aUnit = STEPPlugin_IOperations::LengthUnit_Millimeter;
break;
case GEOM::LU_FOOT:
aUnit = STEPPlugin_IOperations::LengthUnit_Foot;
break;
case GEOM::LU_MILE:
aUnit = STEPPlugin_IOperations::LengthUnit_Mile;
break;
case GEOM::LU_METER:
aUnit = STEPPlugin_IOperations::LengthUnit_Meter;
break;
case GEOM::LU_KILOMETER:
aUnit = STEPPlugin_IOperations::LengthUnit_Kilometer;
break;
case GEOM::LU_MILLIINCH:
aUnit = STEPPlugin_IOperations::LengthUnit_Milliinch;
break;
case GEOM::LU_MICROMETER:
aUnit = STEPPlugin_IOperations::LengthUnit_Micrometer;
break;
case GEOM::LU_CENTIMETER:
aUnit = STEPPlugin_IOperations::LengthUnit_Centimeter;
break;
case GEOM::LU_MICROINCH:
aUnit = STEPPlugin_IOperations::LengthUnit_Microinch;
break;
default:
return;
}
//Export the shape to the file //Export the shape to the file
GetOperations()->ExportSTEP( anOriginal, theFileName ); GetOperations()->ExportSTEP( anOriginal, theFileName, aUnit );
} }
//============================================================================= //=============================================================================

View File

@ -43,7 +43,8 @@ public:
STEPPlugin_IOperations* theImpl ); STEPPlugin_IOperations* theImpl );
~STEPPlugin_IOperations_i(); ~STEPPlugin_IOperations_i();
void ExportSTEP( GEOM::GEOM_Object_ptr, const char* ); void ExportSTEP( GEOM::GEOM_Object_ptr, const char*,
GEOM::length_unit );
GEOM::ListOfGO* ImportSTEP( const char*, const bool ); GEOM::ListOfGO* ImportSTEP( const char*, const bool );
char* ReadValue( const char*, const char* ); char* ReadValue( const char*, const char* );

View File

@ -48,4 +48,51 @@
Ignoring units will cause model scaling (as dimensions are supposed to be specified in meters).</translation> Ignoring units will cause model scaling (as dimensions are supposed to be specified in meters).</translation>
</message> </message>
</context> </context>
<context>
<name>STEPPlugin_ExportDlg</name>
<message>
<source>STEP_LENGTH_UNITS</source>
<translation>Length units</translation>
</message>
<message>
<source>STEP_UNITS_INCH</source>
<translation>inch</translation>
</message>
<message>
<source>STEP_UNITS_MILLIMETER</source>
<translation>millimeter</translation>
</message>
<message>
<source>STEP_UNITS_FOOT</source>
<translation>foot</translation>
</message>
<message>
<source>STEP_UNITS_MILE</source>
<translation>mile</translation>
</message>
<message>
<source>STEP_UNITS_METER</source>
<translation>meter</translation>
</message>
<message>
<source>STEP_UNITS_KILOMETER</source>
<translation>kilometer</translation>
</message>
<message>
<source>STEP_UNITS_MILLIINCH</source>
<translation>milliinch</translation>
</message>
<message>
<source>STEP_UNITS_MICROMETER</source>
<translation>micrometer</translation>
</message>
<message>
<source>STEP_UNITS_CENTIMETER</source>
<translation>centimeter</translation>
</message>
<message>
<source>STEP_UNITS_MICROINCH</source>
<translation>microinch</translation>
</message>
</context>
</TS> </TS>