as pyocct uses a newer smesh than freecad, and therefor if both libraries are installed in the same environment both libraries are not working properly.
So I would like to use smesh as an external library. But therefor we have to port to the newer smesh.
As I am not very comfortable with c++ I will put here some question to solve problems that come up during the porting.
~/projects/FreeCAD/src/Mod/MeshPart/App/Mesher.cpp:413:55: error: invalid use of incomplete type ‘class SMESHDS_Mesh’
SMDS_FaceIteratorPtr aFaceIter = mesh->GetMeshDS()->facesIterator();
thanks, it seems to be a problem with definitions. HAVE_NETGEN wasn't set if FREECAD_USE_EXTERNAL_SMESH was enabled. Also I don't know if
BUILD_FEM_NETGEN should be enabled or not.
CMakeFiles/Fem.dir/FemMesh.cpp.o: In function `Fem::FemMesh::getGenerator()':
FemMesh.cpp:(.text+0xe09): undefined reference to `Fem::FemMesh::_mesh_gen'
collect2: error: ld returned 1 exit status
I was interested in tackling this during GSoC if I get in but I'm glad you're tackling it in advance! I can help on the "getting this into Debian" part as well as following along with your work on it.
Like my FreeCAD work? I'd appreciate any level of support via Patreon, Liberapay, or PayPal! Read more about what I do at my blog.
I was interested in tackling this during GSoC if I get in but I'm glad you're tackling it in advance! I can help on the "getting this into Debian" part as well as following along with your work on it.
I guess there is way too much work for the summer anyway I started this because I want to use pyocct and freecad together.
#0 /lib/x86_64-linux-gnu/libc.so.6(+0x354b0) [0x7f4858e8f4b0]
#1 0x7f47d5d926a7 in Standard_Transient::DecrementRefCounter() const from ~/env/cmake/../lib/libTKernel.so.7+0x7
#2 0x7f479c380982 in netgen::OCCGeometry::~OCCGeometry() from ~/env/cmake/../lib/./libocc.so+0xe2
#3 0x7f47c07bb40e in NETGENPlugin_Mesher::Compute() from ~/env/cmake/../lib/libNETGENPlugin.so+0x3fe
#4 0x7f47c07c7934 in NETGENPlugin_NETGEN_2D::Compute(SMESH_Mesh&, TopoDS_Shape const&) from ~/env/cmake/../lib/libNETGENPlugin.so+0xa4
#5 0x7f47c05478c3 in SMESH_subMesh::ComputeStateEngine(SMESH_subMesh::compute_event) from ~/env/cmake/../lib/libSMESH.so+0x1173
#6 0x7f47c049a225 in SMESH_Gen::Compute(SMESH_Mesh&, TopoDS_Shape const&, int, MeshDimension, std::set<int, std::less<int>, std::allocator<int> >*) from ~/env/cmake/../lib/libSMESH.so+0x6d5
#7 0x7f47c0e8fac9 in MeshPart::Mesher::createMesh() const from ~/work/Mod/MeshPart/MeshPart.so+0x1279
#8 0x7f47c0e83281 in MeshPart::Module::meshFromShape(Py::Tuple const&, Py::Dict const&) from ~/work/Mod/MeshPart/MeshPart.so+0xe81
#9 0x7f47c0e7e95b in Py::ExtensionModule<MeshPart::Module>::invoke_method_keyword(void*, Py::Tuple const&, Py::Dict const&) from ~/work/Mod/MeshPart/MeshPart.so+0x2b
Before I dive into smesh, are there any critical occt7.2.0 changes we made to smesh. Maybe the 8.3 needs to see some updates too.