+ allow to set deflection of a mesh with exportStl

This commit is contained in:
wmayer 2014-03-27 10:41:25 +01:00
parent 9414c938c6
commit 6d53d9d50c
3 changed files with 10 additions and 7 deletions

View File

@ -678,7 +678,7 @@ void TopoShape::write(const char *FileName) const
}
else if (File.hasExtension("stl")) {
// read brep-file
exportStl(File.filePath().c_str());
exportStl(File.filePath().c_str(),0);
}
else{
throw Base::Exception("Unknown extension");
@ -754,11 +754,13 @@ void TopoShape::dump(std::ostream& out) const
BRepTools::Dump(this->_Shape, out);
}
void TopoShape::exportStl(const char *filename) const
void TopoShape::exportStl(const char *filename, double deflection) const
{
StlAPI_Writer writer;
//writer.RelativeMode() = false;
//writer.SetDeflection(0.1);
if (deflection > 0) {
writer.RelativeMode() = false;
writer.SetDeflection(deflection);
}
QString fn = QString::fromUtf8(filename);
writer.Write(this->_Shape,(const Standard_CString)fn.toLocal8Bit());
}

View File

@ -128,7 +128,7 @@ public:
void exportStep(const char *FileName) const;
void exportBrep(const char *FileName) const;
void exportBrep(std::ostream&) const;
void exportStl (const char *FileName) const;
void exportStl (const char *FileName, double deflection) const;
void exportFaceSet(double, double, std::ostream&) const;
void exportLineSet(std::ostream&) const;
//@}

View File

@ -424,12 +424,13 @@ PyObject* TopoShapePy::importBrepFromString(PyObject *args)
PyObject* TopoShapePy::exportStl(PyObject *args)
{
char* filename;
if (!PyArg_ParseTuple(args, "s", &filename))
double deflection = 0;
if (!PyArg_ParseTuple(args, "s|d", &filename, &deflection))
return NULL;
try {
// write stl file
getTopoShapePtr()->exportStl(filename);
getTopoShapePtr()->exportStl(filename, deflection);
}
catch (const Base::Exception& e) {
PyErr_SetString(PyExc_Exception,e.what());