start new Jt Reader

This commit is contained in:
jriegel
2014-12-09 23:48:22 +01:00
committed by Stefan Tröger
parent 5a8919f943
commit 5a4c14ecc1
17 changed files with 755 additions and 106 deletions

View File

@@ -36,11 +36,9 @@
#include <Mod/Mesh/App/Core/MeshKernel.h>
#include <Mod/Mesh/App/Core/Elements.h>
#include <Mod/Mesh/App/MeshPy.h>
#include <Mod/Mesh/App/MeshPy.h>
#include <Mod/Mesh/App/MeshFeature.h>
#include "JtReader.h"
#include "TestJtReader.h"
using std::vector;
using namespace MeshCore;
@@ -57,31 +55,29 @@ static PyObject * read(PyObject *self, PyObject *args)
PyMem_Free(Name);
PY_TRY {
std::auto_ptr<MeshCore::MeshKernel> apcKernel(new MeshCore::MeshKernel());
//std::auto_ptr<MeshCore::MeshKernel> apcKernel(new MeshCore::MeshKernel());
readFile(EncodedName.c_str(),0);
//vector<MeshGeomFacet> facets;
//facets.resize(0 /* some size*/);
vector<MeshGeomFacet> facets;
facets.resize(iterSize());
//const SimpleMeshFacet* It=iterStart();
//int i=0;
//while(It=iterGetNext())
//{
// facets[i]._aclPoints[0].x = It->p1[0];
// facets[i]._aclPoints[0].y = It->p1[1];
// facets[i]._aclPoints[0].z = It->p1[2];
// facets[i]._aclPoints[1].x = It->p2[0];
// facets[i]._aclPoints[1].y = It->p2[1];
// facets[i]._aclPoints[1].z = It->p2[2];
// facets[i]._aclPoints[2].x = It->p3[0];
// facets[i]._aclPoints[2].y = It->p3[1];
// facets[i]._aclPoints[2].z = It->p3[2];
//}
//(*apcKernel) = facets;
const SimpleMeshFacet* It=iterStart();
int i=0;
while(It=iterGetNext())
{
facets[i]._aclPoints[0].x = It->p1[0];
facets[i]._aclPoints[0].y = It->p1[1];
facets[i]._aclPoints[0].z = It->p1[2];
facets[i]._aclPoints[1].x = It->p2[0];
facets[i]._aclPoints[1].y = It->p2[1];
facets[i]._aclPoints[1].z = It->p2[2];
facets[i]._aclPoints[2].x = It->p3[0];
facets[i]._aclPoints[2].y = It->p3[1];
facets[i]._aclPoints[2].z = It->p3[2];
}
clearData();
(*apcKernel) = facets;
return new Mesh::MeshPy(new Mesh::MeshObject(*(apcKernel.release())));
//return new Mesh::MeshPy(new Mesh::MeshObject(*(apcKernel.release())));
} PY_CATCH;
@@ -108,38 +104,46 @@ open(PyObject *self, PyObject *args)
if(file.hasExtension("jt"))
{
TestJtReader reader;
reader.setFile(EncodedName.c_str());
reader.readToc();
// create new document and add Import feature
App::Document *pcDoc = App::GetApplication().newDocument("Unnamed");
Mesh::Feature *pcFeature = (Mesh::Feature*)pcDoc->addObject("Mesh::Feature",file.fileNamePure().c_str());
std::auto_ptr<MeshCore::MeshKernel> apcKernel(new MeshCore::MeshKernel());
// App::Document *pcDoc = App::GetApplication().newDocument("Unnamed");
// Mesh::Feature *pcFeature = (Mesh::Feature*)pcDoc->addObject("Mesh::Feature",file.fileNamePure().c_str());
//
// std::auto_ptr<MeshCore::MeshKernel> apcKernel(new MeshCore::MeshKernel());
readFile(EncodedName.c_str(),0);
// readFile(EncodedName.c_str(),0);
vector<MeshGeomFacet> facets;
facets.resize(iterSize());
// vector<MeshGeomFacet> facets;
// facets.resize(iterSize());
const SimpleMeshFacet* It=iterStart();
int i=0;
while(It=iterGetNext())
{
facets[i]._aclPoints[0].x = It->p1[0];
facets[i]._aclPoints[0].y = It->p1[1];
facets[i]._aclPoints[0].z = It->p1[2];
facets[i]._aclPoints[1].x = It->p2[0];
facets[i]._aclPoints[1].y = It->p2[1];
facets[i]._aclPoints[1].z = It->p2[2];
facets[i]._aclPoints[2].x = It->p3[0];
facets[i]._aclPoints[2].y = It->p3[1];
facets[i]._aclPoints[2].z = It->p3[2];
i++;
}
clearData();
(*apcKernel) = facets;
pcFeature->Mesh.setValue(*(apcKernel.get()));
// const SimpleMeshFacet* It=iterStart();
// int i=0;
// while(It=iterGetNext())
// {
// facets[i]._aclPoints[0].x = It->p1[0];
// facets[i]._aclPoints[0].y = It->p1[1];
// facets[i]._aclPoints[0].z = It->p1[2];
// facets[i]._aclPoints[1].x = It->p2[0];
// facets[i]._aclPoints[1].y = It->p2[1];
// facets[i]._aclPoints[1].z = It->p2[2];
// facets[i]._aclPoints[2].x = It->p3[0];
// facets[i]._aclPoints[2].y = It->p3[1];
// facets[i]._aclPoints[2].z = It->p3[2];
// i++;
// }
// clearData();
// (*apcKernel) = facets;
// pcFeature->Mesh.setValue(*(apcKernel.get()));
//pcFeature->FileName.setValue( Name );
pcDoc->recompute();
////pcFeature->FileName.setValue( Name );
// pcDoc->recompute();
}
else
{
@@ -183,42 +187,42 @@ insert(PyObject *self, PyObject *args)
Py_Error(Base::BaseExceptionFreeCADError,szBuf);
}
readFile(EncodedName.c_str(),0);
//readFile(EncodedName.c_str(),0);
vector<MeshGeomFacet> facets;
//vector<MeshGeomFacet> facets;
if(iterSize()>0){
facets.resize(iterSize());
//if(iterSize()>0){
// facets.resize(iterSize());
const SimpleMeshFacet* It=iterStart();
int i=0;
while(It=iterGetNext())
{
facets[i]._aclPoints[0].x = It->p1[0];
facets[i]._aclPoints[0].y = It->p1[1];
facets[i]._aclPoints[0].z = It->p1[2];
facets[i]._aclPoints[1].x = It->p2[0];
facets[i]._aclPoints[1].y = It->p2[1];
facets[i]._aclPoints[1].z = It->p2[2];
facets[i]._aclPoints[2].x = It->p3[0];
facets[i]._aclPoints[2].y = It->p3[1];
facets[i]._aclPoints[2].z = It->p3[2];
i++;
}
clearData();
Mesh::Feature *pcFeature = (Mesh::Feature*)pcDoc->addObject("Mesh::Feature",file.fileNamePure().c_str());
std::auto_ptr<MeshCore::MeshKernel> apcKernel(new MeshCore::MeshKernel());
(*apcKernel) = facets;
pcFeature->Mesh.setValue(*(apcKernel.get()));
// const SimpleMeshFacet* It=iterStart();
// int i=0;
// while(It=iterGetNext())
// {
// facets[i]._aclPoints[0].x = It->p1[0];
// facets[i]._aclPoints[0].y = It->p1[1];
// facets[i]._aclPoints[0].z = It->p1[2];
// facets[i]._aclPoints[1].x = It->p2[0];
// facets[i]._aclPoints[1].y = It->p2[1];
// facets[i]._aclPoints[1].z = It->p2[2];
// facets[i]._aclPoints[2].x = It->p3[0];
// facets[i]._aclPoints[2].y = It->p3[1];
// facets[i]._aclPoints[2].z = It->p3[2];
// i++;
// }
// clearData();
// Mesh::Feature *pcFeature = (Mesh::Feature*)pcDoc->addObject("Mesh::Feature",file.fileNamePure().c_str());
//
// std::auto_ptr<MeshCore::MeshKernel> apcKernel(new MeshCore::MeshKernel());
// (*apcKernel) = facets;
// pcFeature->Mesh.setValue(*(apcKernel.get()));
//pcDoc->recompute();
// //pcDoc->recompute();
}else{
clearData();
//Py_Error(Base::BaseExceptionFreeCADError,"No Mesh in file");
Base::Console().Warning("No Mesh in file: %s\n",EncodedName.c_str());
}
//}else{
// clearData();
// //Py_Error(Base::BaseExceptionFreeCADError,"No Mesh in file");
// Base::Console().Warning("No Mesh in file: %s\n",EncodedName.c_str());
//}
}
else
{