mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-12-27 09:50:34 +05:00
Export XAO with the shape in a seperated BREP file.
This allows to avoid too big xml files.
This commit is contained in:
parent
e648381815
commit
926f7982e5
@ -668,7 +668,8 @@ module GEOM
|
|||||||
in ListOfGO groups,
|
in ListOfGO groups,
|
||||||
in ListOfFields fields,
|
in ListOfFields fields,
|
||||||
in string author,
|
in string author,
|
||||||
in string fileName );
|
in string fileName,
|
||||||
|
in string shapeFileName );
|
||||||
boolean ImportXAO( in string fileName,
|
boolean ImportXAO( in string fileName,
|
||||||
out GEOM_Object shape,
|
out GEOM_Object shape,
|
||||||
out ListOfGO subShapes,
|
out ListOfGO subShapes,
|
||||||
|
@ -36,13 +36,15 @@ module GEOM
|
|||||||
* \param fields The list of fields to export
|
* \param fields The list of fields to export
|
||||||
* \param author The author of the export
|
* \param author The author of the export
|
||||||
* \param fileName The name of the file to export
|
* \param fileName The name of the file to export
|
||||||
|
* \param shapeFileName The name of the file to export the shape in an external file
|
||||||
* \return boolean indicating if export was successful.
|
* \return boolean indicating if export was successful.
|
||||||
*/
|
*/
|
||||||
boolean ExportXAO( in GEOM::GEOM_Object shape,
|
boolean ExportXAO( in GEOM::GEOM_Object shape,
|
||||||
in GEOM::ListOfGO groups,
|
in GEOM::ListOfGO groups,
|
||||||
in GEOM::ListOfFields fields,
|
in GEOM::ListOfFields fields,
|
||||||
in string author,
|
in string author,
|
||||||
in string fileName );
|
in string fileName,
|
||||||
|
in string shapeFileName );
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Import a shape from XAO format
|
* Import a shape from XAO format
|
||||||
|
@ -3633,12 +3633,14 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::ImportIGES( const char* theFileName,
|
|||||||
CORBA::Boolean GEOM_Superv_i::ExportXAO( GEOM::GEOM_Object_ptr shape,
|
CORBA::Boolean GEOM_Superv_i::ExportXAO( GEOM::GEOM_Object_ptr shape,
|
||||||
const GEOM::ListOfGO& groups,
|
const GEOM::ListOfGO& groups,
|
||||||
const GEOM::ListOfFields& fields,
|
const GEOM::ListOfFields& fields,
|
||||||
const char* author, const char* fileName )
|
const char* author,
|
||||||
|
const char* fileName,
|
||||||
|
const char* shapeFileName )
|
||||||
{
|
{
|
||||||
beginService( " GEOM_Superv_i::ExportXAO" );
|
beginService( " GEOM_Superv_i::ExportXAO" );
|
||||||
MESSAGE("GEOM_Superv_i::ExportXAO");
|
MESSAGE("GEOM_Superv_i::ExportXAO");
|
||||||
getXAOPluginOp();
|
getXAOPluginOp();
|
||||||
CORBA::Boolean isGood = myXAOOp->ExportXAO( shape, groups, fields, author, fileName );
|
CORBA::Boolean isGood = myXAOOp->ExportXAO( shape, groups, fields, author, fileName, shapeFileName );
|
||||||
endService( " GEOM_Superv_i::ExportXAO" );
|
endService( " GEOM_Superv_i::ExportXAO" );
|
||||||
return isGood;
|
return isGood;
|
||||||
}
|
}
|
||||||
|
@ -744,7 +744,8 @@ public:
|
|||||||
const GEOM::ListOfGO& groups,
|
const GEOM::ListOfGO& groups,
|
||||||
const GEOM::ListOfFields& fields,
|
const GEOM::ListOfFields& fields,
|
||||||
const char* author,
|
const char* author,
|
||||||
const char* fileName);
|
const char* fileName,
|
||||||
|
const char* shapeFileName);
|
||||||
CORBA::Boolean ImportXAO( const char* fileName,
|
CORBA::Boolean ImportXAO( const char* fileName,
|
||||||
GEOM::GEOM_Object_out shape,
|
GEOM::GEOM_Object_out shape,
|
||||||
GEOM::ListOfGO_out subShapes,
|
GEOM::ListOfGO_out subShapes,
|
||||||
|
@ -33,10 +33,11 @@ def GetXAOPluginOperations(self):
|
|||||||
# @param fields The list of fields to export
|
# @param fields The list of fields to export
|
||||||
# @param author The author of the file
|
# @param author The author of the file
|
||||||
# @param fileName The name of the file to export
|
# @param fileName The name of the file to export
|
||||||
|
# @param shapeFileName The name of the BRep file to export
|
||||||
# @return True if operation is successful or False otherwise
|
# @return True if operation is successful or False otherwise
|
||||||
#
|
#
|
||||||
# @ingroup l2_import_export
|
# @ingroup l2_import_export
|
||||||
def ExportXAO(self, shape, groups, fields, author, fileName):
|
def ExportXAO(self, shape, groups, fields, author, fileName, shapeFileName = ""):
|
||||||
"""
|
"""
|
||||||
Export a shape to XAO format
|
Export a shape to XAO format
|
||||||
|
|
||||||
@ -52,7 +53,7 @@ def ExportXAO(self, shape, groups, fields, author, fileName):
|
|||||||
"""
|
"""
|
||||||
from salome.geom.geomBuilder import RaiseIfFailed
|
from salome.geom.geomBuilder import RaiseIfFailed
|
||||||
anOp = GetXAOPluginOperations(self)
|
anOp = GetXAOPluginOperations(self)
|
||||||
res = anOp.ExportXAO(shape, groups, fields, author, fileName)
|
res = anOp.ExportXAO(shape, groups, fields, author, fileName, shapeFileName)
|
||||||
RaiseIfFailed("ExportXAO", anOp)
|
RaiseIfFailed("ExportXAO", anOp)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
@ -65,6 +65,25 @@ void BrepGeometry::setShapeString(const std::string& shape)
|
|||||||
initIds();
|
initIds();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BrepGeometry::writeShapeFile(const std::string& fileName)
|
||||||
|
throw (XAO_Exception)
|
||||||
|
{
|
||||||
|
bool res = BRepTools::Write(m_shape, fileName.c_str());
|
||||||
|
if (!res)
|
||||||
|
throw XAO_Exception(MsgBuilder() << "Cannot write BRep file: " << fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrepGeometry::readShapeFile(const std::string& fileName)
|
||||||
|
throw (XAO_Exception)
|
||||||
|
{
|
||||||
|
BRep_Builder builder;
|
||||||
|
bool res = BRepTools::Read(m_shape, fileName.c_str(), builder);
|
||||||
|
if (!res)
|
||||||
|
throw XAO_Exception(MsgBuilder() << "Cannot read BRep file: " << fileName);
|
||||||
|
|
||||||
|
initIds();
|
||||||
|
}
|
||||||
|
|
||||||
TopoDS_Shape BrepGeometry::getTopoDS_Shape()
|
TopoDS_Shape BrepGeometry::getTopoDS_Shape()
|
||||||
{
|
{
|
||||||
return m_shape;
|
return m_shape;
|
||||||
|
@ -75,6 +75,18 @@ namespace XAO
|
|||||||
*/
|
*/
|
||||||
virtual void setShapeString(const std::string& shape);
|
virtual void setShapeString(const std::string& shape);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Writes shape to a file
|
||||||
|
* @param fileName the path to the file
|
||||||
|
*/
|
||||||
|
virtual void writeShapeFile(const std::string& fileName) throw (XAO_Exception);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads shape from a file
|
||||||
|
* @param fileName the path to the file
|
||||||
|
*/
|
||||||
|
virtual void readShapeFile(const std::string& fileName) throw (XAO_Exception);
|
||||||
|
|
||||||
#ifdef SWIG
|
#ifdef SWIG
|
||||||
%pythoncode %{
|
%pythoncode %{
|
||||||
def setShape(self, shape):
|
def setShape(self, shape):
|
||||||
|
@ -94,6 +94,8 @@ namespace XAO
|
|||||||
|
|
||||||
virtual const std::string getShapeString() = 0;
|
virtual const std::string getShapeString() = 0;
|
||||||
virtual void setShapeString(const std::string& shape) = 0;
|
virtual void setShapeString(const std::string& shape) = 0;
|
||||||
|
virtual void writeShapeFile(const std::string& fileName) = 0;
|
||||||
|
virtual void readShapeFile(const std::string& fileName) = 0;
|
||||||
|
|
||||||
const int countElements(const XAO::Dimension& dim) const throw (XAO_Exception);
|
const int countElements(const XAO::Dimension& dim) const throw (XAO_Exception);
|
||||||
const int countVertices() const { return m_vertices.getSize(); }
|
const int countVertices() const { return m_vertices.getSize(); }
|
||||||
|
@ -241,9 +241,9 @@ bool Xao::removeField(Field* field)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool Xao::exportXAO(const std::string& fileName)
|
const bool Xao::exportXAO(const std::string& fileName, const std::string& shapeFileName)
|
||||||
{
|
{
|
||||||
return XaoExporter::saveToFile(this, fileName);
|
return XaoExporter::saveToFile(this, fileName, shapeFileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::string Xao::getXML()
|
const std::string Xao::getXML()
|
||||||
|
@ -215,9 +215,10 @@ namespace XAO
|
|||||||
/**
|
/**
|
||||||
* Exports this XAO object to a file.
|
* Exports this XAO object to a file.
|
||||||
* \param fileName the name of the file to create.
|
* \param fileName the name of the file to create.
|
||||||
|
* \param shapeFileName if not empty, export the shape to this external file.
|
||||||
* \return true is the export is successful.
|
* \return true is the export is successful.
|
||||||
*/
|
*/
|
||||||
const bool exportXAO(const std::string& fileName);
|
const bool exportXAO(const std::string& fileName, const std::string& shapeFileName);
|
||||||
/**
|
/**
|
||||||
* Gets the XML corresponding to this XAO.
|
* Gets the XML corresponding to this XAO.
|
||||||
* \return the XML as a string.
|
* \return the XML as a string.
|
||||||
|
@ -28,6 +28,12 @@
|
|||||||
#include "XAO_Step.hxx"
|
#include "XAO_Step.hxx"
|
||||||
#include "XAO_XaoUtils.hxx"
|
#include "XAO_XaoUtils.hxx"
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
# define _separator_ '\\'
|
||||||
|
#else
|
||||||
|
# define _separator_ '/'
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace XAO
|
namespace XAO
|
||||||
{
|
{
|
||||||
const xmlChar* C_TAG_XAO = (xmlChar*)"XAO";
|
const xmlChar* C_TAG_XAO = (xmlChar*)"XAO";
|
||||||
@ -39,6 +45,7 @@ namespace XAO
|
|||||||
|
|
||||||
const xmlChar* C_TAG_SHAPE = (xmlChar*)"shape";
|
const xmlChar* C_TAG_SHAPE = (xmlChar*)"shape";
|
||||||
const xmlChar* C_ATTR_SHAPE_FORMAT = (xmlChar*)"format";
|
const xmlChar* C_ATTR_SHAPE_FORMAT = (xmlChar*)"format";
|
||||||
|
const xmlChar* C_ATTR_SHAPE_FILE = (xmlChar*)"file";
|
||||||
|
|
||||||
const xmlChar* C_TAG_TOPOLOGY = (xmlChar*)"topology";
|
const xmlChar* C_TAG_TOPOLOGY = (xmlChar*)"topology";
|
||||||
const xmlChar* C_TAG_VERTICES = (xmlChar*)"vertices";
|
const xmlChar* C_TAG_VERTICES = (xmlChar*)"vertices";
|
||||||
@ -83,8 +90,8 @@ namespace XAO
|
|||||||
using namespace XAO;
|
using namespace XAO;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
xmlDocPtr exportXMLDoc(Xao* xaoObject);
|
xmlDocPtr exportXMLDoc(Xao* xaoObject, const std::string& shapeFileName);
|
||||||
void exportGeometry(Geometry* xaoGeometry, xmlDocPtr doc, xmlNodePtr xao);
|
void exportGeometry(Geometry* xaoGeometry, xmlDocPtr doc, xmlNodePtr xao, const std::string& shapeFileName);
|
||||||
void exportGeometricElements(Geometry* xaoGeometry, xmlNodePtr topology,
|
void exportGeometricElements(Geometry* xaoGeometry, xmlNodePtr topology,
|
||||||
XAO::Dimension dim, const xmlChar* colTag, const xmlChar* eltTag);
|
XAO::Dimension dim, const xmlChar* colTag, const xmlChar* eltTag);
|
||||||
void exportGroups(Xao* xaoObject, xmlNodePtr xao);
|
void exportGroups(Xao* xaoObject, xmlNodePtr xao);
|
||||||
@ -109,13 +116,15 @@ namespace {
|
|||||||
void parseStepElementNode(xmlNodePtr eltNode, Step* step);
|
void parseStepElementNode(xmlNodePtr eltNode, Step* step);
|
||||||
|
|
||||||
std::string readStringProp(xmlNodePtr node, const xmlChar* attribute,
|
std::string readStringProp(xmlNodePtr node, const xmlChar* attribute,
|
||||||
const bool& required, const std::string& defaultValue, const std::string& exception = std::string(""));
|
const bool& required, const std::string& defaultValue,
|
||||||
|
const std::string& exception = std::string(""));
|
||||||
int readIntegerProp(xmlNodePtr node, const xmlChar* attribute,
|
int readIntegerProp(xmlNodePtr node, const xmlChar* attribute,
|
||||||
const bool& required, const int& defaultValue, const std::string& exception = std::string(""));
|
const bool& required, const int& defaultValue,
|
||||||
|
const std::string& exception = std::string(""));
|
||||||
|
|
||||||
std::string readStringProp(xmlNodePtr node, const xmlChar* attribute,
|
std::string readStringProp(xmlNodePtr node, const xmlChar* attribute,
|
||||||
const bool& required, const std::string& defaultValue,
|
const bool& required, const std::string& defaultValue,
|
||||||
const std::string& exception /*= std::string() */)
|
const std::string& exception /*= std::string() */)
|
||||||
{
|
{
|
||||||
xmlChar* strAttr = xmlGetProp(node, attribute);
|
xmlChar* strAttr = xmlGetProp(node, attribute);
|
||||||
if (strAttr == NULL)
|
if (strAttr == NULL)
|
||||||
@ -161,7 +170,7 @@ namespace {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
xmlDocPtr exportXMLDoc(Xao* xaoObject)
|
xmlDocPtr exportXMLDoc(Xao* xaoObject, const std::string& shapeFileName)
|
||||||
{
|
{
|
||||||
// Creating the Xml document
|
// Creating the Xml document
|
||||||
xmlDocPtr masterDocument = xmlNewDoc(BAD_CAST "1.0");
|
xmlDocPtr masterDocument = xmlNewDoc(BAD_CAST "1.0");
|
||||||
@ -173,7 +182,7 @@ namespace {
|
|||||||
|
|
||||||
if (xaoObject->getGeometry() != NULL)
|
if (xaoObject->getGeometry() != NULL)
|
||||||
{
|
{
|
||||||
exportGeometry(xaoObject->getGeometry(), masterDocument, xao);
|
exportGeometry(xaoObject->getGeometry(), masterDocument, xao, shapeFileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
exportGroups(xaoObject, xao);
|
exportGroups(xaoObject, xao);
|
||||||
@ -199,7 +208,8 @@ namespace {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void exportGeometry(Geometry* xaoGeometry, xmlDocPtr doc, xmlNodePtr xao)
|
void exportGeometry(Geometry* xaoGeometry, xmlDocPtr doc, xmlNodePtr xao,
|
||||||
|
const std::string& shapeFileName)
|
||||||
{
|
{
|
||||||
// Geometric part
|
// Geometric part
|
||||||
xmlNodePtr geometry = xmlNewChild(xao, 0, C_TAG_GEOMETRY, 0);
|
xmlNodePtr geometry = xmlNewChild(xao, 0, C_TAG_GEOMETRY, 0);
|
||||||
@ -207,9 +217,20 @@ namespace {
|
|||||||
|
|
||||||
xmlNodePtr shape = xmlNewChild(geometry, 0, C_TAG_SHAPE, 0);
|
xmlNodePtr shape = xmlNewChild(geometry, 0, C_TAG_SHAPE, 0);
|
||||||
xmlNewProp(shape, C_ATTR_SHAPE_FORMAT, BAD_CAST XaoUtils::shapeFormatToString(xaoGeometry->getFormat()).c_str());
|
xmlNewProp(shape, C_ATTR_SHAPE_FORMAT, BAD_CAST XaoUtils::shapeFormatToString(xaoGeometry->getFormat()).c_str());
|
||||||
std::string txtShape = xaoGeometry->getShapeString();
|
|
||||||
xmlNodePtr cdata = xmlNewCDataBlock(doc, BAD_CAST txtShape.c_str(), txtShape.size());
|
if (shapeFileName == "")
|
||||||
xmlAddChild(shape, cdata);
|
{
|
||||||
|
// export the shape in the XAO file
|
||||||
|
std::string txtShape = xaoGeometry->getShapeString();
|
||||||
|
xmlNodePtr cdata = xmlNewCDataBlock(doc, BAD_CAST txtShape.c_str(), txtShape.size());
|
||||||
|
xmlAddChild(shape, cdata);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// export the shape in an external file
|
||||||
|
xmlNewProp(shape, C_ATTR_SHAPE_FILE, BAD_CAST shapeFileName.c_str());
|
||||||
|
xaoGeometry->writeShapeFile(shapeFileName);
|
||||||
|
}
|
||||||
|
|
||||||
xmlNodePtr topology = xmlNewChild(geometry, 0, C_TAG_TOPOLOGY, 0);
|
xmlNodePtr topology = xmlNewChild(geometry, 0, C_TAG_TOPOLOGY, 0);
|
||||||
|
|
||||||
@ -361,11 +382,20 @@ namespace {
|
|||||||
{
|
{
|
||||||
if (geometry->getFormat() == XAO::BREP)
|
if (geometry->getFormat() == XAO::BREP)
|
||||||
{
|
{
|
||||||
xmlChar* data = xmlNodeGetContent(shapeNode->children);
|
std::string strFile = readStringProp(shapeNode, C_ATTR_SHAPE_FILE, false, "");
|
||||||
if (data == NULL)
|
if (strFile != "")
|
||||||
throw XAO_Exception("Missing BREP");
|
{
|
||||||
geometry->setShapeString((char*)data);
|
geometry->readShapeFile(strFile);
|
||||||
xmlFree(data);
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// read brep from node content
|
||||||
|
xmlChar* data = xmlNodeGetContent(shapeNode->children);
|
||||||
|
if (data == NULL)
|
||||||
|
throw XAO_Exception("Missing BREP");
|
||||||
|
geometry->setShapeString((char*)data);
|
||||||
|
xmlFree(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -608,10 +638,10 @@ namespace {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool XaoExporter::saveToFile(Xao* xaoObject, const std::string& fileName)
|
const bool XaoExporter::saveToFile(Xao* xaoObject, const std::string& fileName, const std::string& shapeFileName)
|
||||||
throw (XAO_Exception)
|
throw (XAO_Exception)
|
||||||
{
|
{
|
||||||
xmlDocPtr doc = exportXMLDoc(xaoObject);
|
xmlDocPtr doc = exportXMLDoc(xaoObject, shapeFileName);
|
||||||
xmlSaveFormatFileEnc(fileName.c_str(), doc, "UTF-8", 1); // format = 1 for node indentation
|
xmlSaveFormatFileEnc(fileName.c_str(), doc, "UTF-8", 1); // format = 1 for node indentation
|
||||||
xmlFreeDoc(doc);
|
xmlFreeDoc(doc);
|
||||||
|
|
||||||
@ -621,7 +651,7 @@ throw (XAO_Exception)
|
|||||||
const std::string XaoExporter::saveToXml(Xao* xaoObject)
|
const std::string XaoExporter::saveToXml(Xao* xaoObject)
|
||||||
throw (XAO_Exception)
|
throw (XAO_Exception)
|
||||||
{
|
{
|
||||||
xmlDocPtr doc = exportXMLDoc(xaoObject);
|
xmlDocPtr doc = exportXMLDoc(xaoObject, "");
|
||||||
|
|
||||||
xmlChar *xmlbuff;
|
xmlChar *xmlbuff;
|
||||||
int buffersize;
|
int buffersize;
|
||||||
|
@ -44,9 +44,10 @@ namespace XAO
|
|||||||
* Saves the XAO object to a file.
|
* Saves the XAO object to a file.
|
||||||
* @param xaoObject the object to export.
|
* @param xaoObject the object to export.
|
||||||
* @param fileName the path of the file to create.
|
* @param fileName the path of the file to create.
|
||||||
|
* @param shapeFileName if not empty save the shape in an this external file.
|
||||||
* @return true if the export was successful, false otherwise.
|
* @return true if the export was successful, false otherwise.
|
||||||
*/
|
*/
|
||||||
static const bool saveToFile(Xao* xaoObject, const std::string& fileName)
|
static const bool saveToFile(Xao* xaoObject, const std::string& fileName, const std::string& shapeFileName)
|
||||||
throw (XAO_Exception);
|
throw (XAO_Exception);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -46,7 +46,7 @@ void ImportExportTest::testExportNoGeometry()
|
|||||||
{
|
{
|
||||||
Xao xao("me", "1.0");
|
Xao xao("me", "1.0");
|
||||||
|
|
||||||
bool res = xao.exportXAO("empty.xao");
|
bool res = xao.exportXAO("empty.xao", "");
|
||||||
CPPUNIT_ASSERT(res);
|
CPPUNIT_ASSERT(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,7 +103,7 @@ void ImportExportTest::testExportGeometry()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool res = xao.exportXAO("mygeom.xao");
|
bool res = xao.exportXAO("mygeom.xao", "");
|
||||||
CPPUNIT_ASSERT(res);
|
CPPUNIT_ASSERT(res);
|
||||||
|
|
||||||
std::string xml = xao.getXML();
|
std::string xml = xao.getXML();
|
||||||
|
@ -54,6 +54,7 @@
|
|||||||
#include <QRadioButton>
|
#include <QRadioButton>
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
#include <QCheckBox>
|
||||||
#include <QMap>
|
#include <QMap>
|
||||||
|
|
||||||
//=================================================================================
|
//=================================================================================
|
||||||
@ -101,6 +102,7 @@ XAOPlugin_ExportDlg::XAOPlugin_ExportDlg(GeometryGUI* geometryGUI, QWidget* pare
|
|||||||
ledShape->setMinimumSize(QSize(100, 0));
|
ledShape->setMinimumSize(QSize(100, 0));
|
||||||
|
|
||||||
int line = 0, col = 0;
|
int line = 0, col = 0;
|
||||||
|
// adWidget(widget, fromRow, fromColumn, rowSpan, columnSpan)
|
||||||
gridLayoutExport->addWidget(lblShape, line, col++, 1, 1);
|
gridLayoutExport->addWidget(lblShape, line, col++, 1, 1);
|
||||||
gridLayoutExport->addWidget(btnShapeSelect, line, col++, 1, 1);
|
gridLayoutExport->addWidget(btnShapeSelect, line, col++, 1, 1);
|
||||||
gridLayoutExport->addWidget(ledShape, line, col++, 1, 1);
|
gridLayoutExport->addWidget(ledShape, line, col++, 1, 1);
|
||||||
@ -121,10 +123,17 @@ XAOPlugin_ExportDlg::XAOPlugin_ExportDlg(GeometryGUI* geometryGUI, QWidget* pare
|
|||||||
ledAuthor = new QLineEdit(gbxExport);
|
ledAuthor = new QLineEdit(gbxExport);
|
||||||
|
|
||||||
line++; col = 0;
|
line++; col = 0;
|
||||||
gridLayoutExport->addWidget(lblAuthor, line, col++, 2, 1);
|
gridLayoutExport->addWidget(lblAuthor, line, col++, 1, 1);
|
||||||
col++; // span
|
col++; // span
|
||||||
gridLayoutExport->addWidget(ledAuthor, line, col++, 1, 1);
|
gridLayoutExport->addWidget(ledAuthor, line, col++, 1, 1);
|
||||||
|
|
||||||
|
// Line 3
|
||||||
|
ckxUseSeparateFile = new QCheckBox(tr("XAOPLUGIN_EXPORT_SHAPEFILE"), gbxExport);
|
||||||
|
|
||||||
|
line++; col = 0;
|
||||||
|
gridLayoutExport->addWidget(ckxUseSeparateFile, line, col++, 1, 2);
|
||||||
|
|
||||||
|
|
||||||
//****************************
|
//****************************
|
||||||
// Filter Group box
|
// Filter Group box
|
||||||
QGroupBox* gbxFilter = new QGroupBox(parent);
|
QGroupBox* gbxFilter = new QGroupBox(parent);
|
||||||
@ -410,6 +419,12 @@ bool XAOPlugin_ExportDlg::execute()
|
|||||||
|
|
||||||
QString author = ledAuthor->text();
|
QString author = ledAuthor->text();
|
||||||
QString fileName = ledFileName->text();
|
QString fileName = ledFileName->text();
|
||||||
|
QString shapeFileName = QString("");//ledShapeFile->text();
|
||||||
|
if (ckxUseSeparateFile->isChecked())
|
||||||
|
{
|
||||||
|
shapeFileName = fileName;
|
||||||
|
shapeFileName.append(".brep");
|
||||||
|
}
|
||||||
|
|
||||||
// get selected groups
|
// get selected groups
|
||||||
QList<QListWidgetItem*> selGroups;
|
QList<QListWidgetItem*> selGroups;
|
||||||
@ -451,6 +466,7 @@ bool XAOPlugin_ExportDlg::execute()
|
|||||||
GEOM::IXAOOperations_var aXAOOp = GEOM::IXAOOperations::_narrow( getOperation() );
|
GEOM::IXAOOperations_var aXAOOp = GEOM::IXAOOperations::_narrow( getOperation() );
|
||||||
res = aXAOOp->ExportXAO(m_mainObj, groups, fields,
|
res = aXAOOp->ExportXAO(m_mainObj, groups, fields,
|
||||||
author.toUtf8().constData(),
|
author.toUtf8().constData(),
|
||||||
fileName.toUtf8().constData());
|
fileName.toUtf8().constData(),
|
||||||
|
shapeFileName.toStdString().c_str());
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@ class QLineEdit;
|
|||||||
class QButtonGroup;
|
class QButtonGroup;
|
||||||
class QListWidget;
|
class QListWidget;
|
||||||
class QPushButton;
|
class QPushButton;
|
||||||
|
class QCheckBox;
|
||||||
|
|
||||||
//=================================================================================
|
//=================================================================================
|
||||||
// class : XAOPlugin_ExportDlg
|
// class : XAOPlugin_ExportDlg
|
||||||
@ -58,6 +59,7 @@ private:
|
|||||||
QLineEdit* ledShape;
|
QLineEdit* ledShape;
|
||||||
QLineEdit* ledFileName;
|
QLineEdit* ledFileName;
|
||||||
QLineEdit* ledAuthor;
|
QLineEdit* ledAuthor;
|
||||||
|
QCheckBox* ckxUseSeparateFile;
|
||||||
QListWidget* lstGroups;
|
QListWidget* lstGroups;
|
||||||
QListWidget* lstFields;
|
QListWidget* lstFields;
|
||||||
QPushButton* btnShapeSelect;
|
QPushButton* btnShapeSelect;
|
||||||
|
@ -48,9 +48,10 @@ XAOPlugin_IECallBack::~XAOPlugin_IECallBack()
|
|||||||
//=============================================================================
|
//=============================================================================
|
||||||
bool
|
bool
|
||||||
XAOPlugin_IECallBack::Export( int theDocId,
|
XAOPlugin_IECallBack::Export( int theDocId,
|
||||||
const Handle(GEOM_Object) theOriginal,
|
const Handle(GEOM_Object) theOriginal,
|
||||||
const TCollection_AsciiString& theFileName,
|
const TCollection_AsciiString& theFileName,
|
||||||
const TCollection_AsciiString& theFormatName )
|
const TCollection_AsciiString& theFormatName,
|
||||||
|
const TCollection_AsciiString& theShapeFileName )
|
||||||
{
|
{
|
||||||
XAOPlugin_IOperations* aPluginOperations = XAOPlugin_OperationsCreator::get( GetEngine(), theDocId );
|
XAOPlugin_IOperations* aPluginOperations = XAOPlugin_OperationsCreator::get( GetEngine(), theDocId );
|
||||||
GEOMImpl_IShapesOperations* aShapesOperations = GetEngine()->GetIShapesOperations( theDocId );
|
GEOMImpl_IShapesOperations* aShapesOperations = GetEngine()->GetIShapesOperations( theDocId );
|
||||||
@ -63,7 +64,7 @@ XAOPlugin_IECallBack::Export( int theDocId,
|
|||||||
lgroups.push_back( Handle(GEOM_Object)::DownCast( groups->Value(i) ) );
|
lgroups.push_back( Handle(GEOM_Object)::DownCast( groups->Value(i) ) );
|
||||||
for (int i = 1; i <= fields->Length(); i++)
|
for (int i = 1; i <= fields->Length(); i++)
|
||||||
lfields.push_back( Handle(GEOM_Field)::DownCast( fields->Value(i) ) );
|
lfields.push_back( Handle(GEOM_Field)::DownCast( fields->Value(i) ) );
|
||||||
aPluginOperations->ExportXAO( theOriginal, lgroups, lfields, "SIMAN Author", theFileName.ToCString() );
|
aPluginOperations->ExportXAO( theOriginal, lgroups, lfields, "SIMAN Author", theFileName.ToCString(), theShapeFileName.ToCString() );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,9 +37,10 @@ public:
|
|||||||
~XAOPlugin_IECallBack();
|
~XAOPlugin_IECallBack();
|
||||||
|
|
||||||
virtual bool Export( int theDocId,
|
virtual bool Export( int theDocId,
|
||||||
const Handle(GEOM_Object) theOriginal,
|
const Handle(GEOM_Object) theOriginal,
|
||||||
const TCollection_AsciiString& theFileName,
|
const TCollection_AsciiString& theFileName,
|
||||||
const TCollection_AsciiString& theFormatName );
|
const TCollection_AsciiString& theFormatName,
|
||||||
|
const TCollection_AsciiString& theshapeFileName );
|
||||||
|
|
||||||
virtual
|
virtual
|
||||||
Handle(TColStd_HSequenceOfTransient) Import( int theDocId,
|
Handle(TColStd_HSequenceOfTransient) Import( int theDocId,
|
||||||
|
@ -311,7 +311,8 @@ bool XAOPlugin_IOperations::ExportXAO( Handle(GEOM_Object) shape,
|
|||||||
std::list<Handle(GEOM_Object)> groupList,
|
std::list<Handle(GEOM_Object)> groupList,
|
||||||
std::list<Handle(GEOM_Field)> fieldList,
|
std::list<Handle(GEOM_Field)> fieldList,
|
||||||
const char* author,
|
const char* author,
|
||||||
const char* fileName )
|
const char* fileName,
|
||||||
|
const char* shapeFileName )
|
||||||
{
|
{
|
||||||
SetErrorCode(KO);
|
SetErrorCode(KO);
|
||||||
|
|
||||||
@ -348,7 +349,7 @@ bool XAOPlugin_IOperations::ExportXAO( Handle(GEOM_Object) shape,
|
|||||||
exportFields(fieldList, xaoObject, geometry);
|
exportFields(fieldList, xaoObject, geometry);
|
||||||
|
|
||||||
// export the XAO to the file
|
// export the XAO to the file
|
||||||
xaoObject->exportXAO(fileName);
|
xaoObject->exportXAO(fileName, shapeFileName);
|
||||||
|
|
||||||
// make a Python command
|
// make a Python command
|
||||||
GEOM::TPythonDump pd(exportFunction);
|
GEOM::TPythonDump pd(exportFunction);
|
||||||
@ -378,7 +379,7 @@ bool XAOPlugin_IOperations::ExportXAO( Handle(GEOM_Object) shape,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
pd << "], ";
|
pd << "], ";
|
||||||
pd << "\"" << author << "\", \"" << fileName << "\")";
|
pd << "\"" << author << "\", \"" << fileName << "\", \"" << shapeFileName << "\")";
|
||||||
|
|
||||||
SetErrorCode(OK);
|
SetErrorCode(OK);
|
||||||
delete xaoObject;
|
delete xaoObject;
|
||||||
|
@ -47,7 +47,8 @@ public:
|
|||||||
std::list<Handle(GEOM_Object)> groupList,
|
std::list<Handle(GEOM_Object)> groupList,
|
||||||
std::list<Handle(GEOM_Field)> fieldList,
|
std::list<Handle(GEOM_Field)> fieldList,
|
||||||
const char* author,
|
const char* author,
|
||||||
const char* fileName );
|
const char* fileName,
|
||||||
|
const char* shapeFileName );
|
||||||
|
|
||||||
bool ImportXAO( const char* fileName,
|
bool ImportXAO( const char* fileName,
|
||||||
Handle(GEOM_Object)& shape,
|
Handle(GEOM_Object)& shape,
|
||||||
|
@ -55,14 +55,16 @@ XAOPlugin_IOperations_i::~XAOPlugin_IOperations_i()
|
|||||||
* \param fields The list of fields to export
|
* \param fields The list of fields to export
|
||||||
* \param author The author of the export
|
* \param author The author of the export
|
||||||
* \param fileName The name of the exported file
|
* \param fileName The name of the exported file
|
||||||
|
* \param shapeFileName If not empty, save to shape to this external file
|
||||||
* \return boolean indicating if export was succeful.
|
* \return boolean indicating if export was succeful.
|
||||||
*/
|
*/
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
CORBA::Boolean XAOPlugin_IOperations_i::ExportXAO( GEOM::GEOM_Object_ptr shape,
|
CORBA::Boolean XAOPlugin_IOperations_i::ExportXAO( GEOM::GEOM_Object_ptr shape,
|
||||||
const GEOM::ListOfGO& groups,
|
const GEOM::ListOfGO& groups,
|
||||||
const GEOM::ListOfFields& fields,
|
const GEOM::ListOfFields& fields,
|
||||||
const char* author,
|
const char* author,
|
||||||
const char* fileName)
|
const char* fileName,
|
||||||
|
const char* shapeFileName)
|
||||||
{
|
{
|
||||||
bool isGood = false;
|
bool isGood = false;
|
||||||
// Set a not done flag
|
// Set a not done flag
|
||||||
@ -94,7 +96,7 @@ CORBA::Boolean XAOPlugin_IOperations_i::ExportXAO( GEOM::GEOM_Object_ptr shape,
|
|||||||
if( !reference.IsNull() )
|
if( !reference.IsNull() )
|
||||||
{
|
{
|
||||||
// Export XAO
|
// Export XAO
|
||||||
isGood = GetOperations()->ExportXAO( reference, groupsObj, fieldsObj, author, fileName );
|
isGood = GetOperations()->ExportXAO( reference, groupsObj, fieldsObj, author, fileName, shapeFileName );
|
||||||
}
|
}
|
||||||
|
|
||||||
return isGood;
|
return isGood;
|
||||||
|
@ -47,7 +47,8 @@ public:
|
|||||||
const GEOM::ListOfGO& groups,
|
const GEOM::ListOfGO& groups,
|
||||||
const GEOM::ListOfFields& fields,
|
const GEOM::ListOfFields& fields,
|
||||||
const char* author,
|
const char* author,
|
||||||
const char* fileName );
|
const char* fileName,
|
||||||
|
const char* shapeFileName );
|
||||||
|
|
||||||
CORBA::Boolean ImportXAO( const char* fileName,
|
CORBA::Boolean ImportXAO( const char* fileName,
|
||||||
GEOM::GEOM_Object_out shape,
|
GEOM::GEOM_Object_out shape,
|
||||||
|
@ -62,6 +62,10 @@
|
|||||||
<source>XAOPLUGIN_EXPORT_AUTHOR</source>
|
<source>XAOPLUGIN_EXPORT_AUTHOR</source>
|
||||||
<translation>Author</translation>
|
<translation>Author</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>XAOPLUGIN_EXPORT_SHAPEFILE</source>
|
||||||
|
<translation>Export shape in a separate file</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>XAOPLUGIN_EXPORT_LGROUPS</source>
|
<source>XAOPLUGIN_EXPORT_LGROUPS</source>
|
||||||
<translation>Groups</translation>
|
<translation>Groups</translation>
|
||||||
|
@ -62,6 +62,10 @@
|
|||||||
<source>XAOPLUGIN_EXPORT_AUTHOR</source>
|
<source>XAOPLUGIN_EXPORT_AUTHOR</source>
|
||||||
<translation>Auteur</translation>
|
<translation>Auteur</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>XAOPLUGIN_EXPORT_SHAPEFILE</source>
|
||||||
|
<translation>Exporter la forme dans un fichier séparé</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>XAOPLUGIN_EXPORT_LGROUPS</source>
|
<source>XAOPLUGIN_EXPORT_LGROUPS</source>
|
||||||
<translation>Groupes</translation>
|
<translation>Groupes</translation>
|
||||||
|
Loading…
Reference in New Issue
Block a user