diff --git a/CMakeLists.txt b/CMakeLists.txt index 2446e27624..c5b177a445 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -345,6 +345,7 @@ REQUIRES_MODS(BUILD_IDF BUILD_PART) REQUIRES_MODS(BUILD_IMPORT BUILD_PART) REQUIRES_MODS(BUILD_INSPECTION BUILD_MESH BUILD_POINTS BUILD_PART) REQUIRES_MODS(BUILD_JTREADER BUILD_MESH) +REQUIRES_MODS(BUILD_MESH BUILD_PART) REQUIRES_MODS(BUILD_MESH_PART BUILD_PART BUILD_MESH BUILD_SMESH) REQUIRES_MODS(BUILD_FLAT_MESH BUILD_MESH_PART) REQUIRES_MODS(BUILD_OPENSCAD BUILD_MESH_PART BUILD_DRAFT) diff --git a/src/Mod/Mesh/App/CMakeLists.txt b/src/Mod/Mesh/App/CMakeLists.txt index 1f64c340c4..3e2b607382 100644 --- a/src/Mod/Mesh/App/CMakeLists.txt +++ b/src/Mod/Mesh/App/CMakeLists.txt @@ -11,12 +11,14 @@ include_directories( ${XercesC_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR} ${EIGEN3_INCLUDE_DIR} + ${OCC_INCLUDE_DIR} ) set(Mesh_LIBS ${Boost_LIBRARIES} FreeCADBase FreeCADApp + Part ) if (BUILD_QT5) diff --git a/src/Mod/Mesh/App/Exporter.cpp b/src/Mod/Mesh/App/Exporter.cpp index 7c91949c5e..c45638347e 100644 --- a/src/Mod/Mesh/App/Exporter.cpp +++ b/src/Mod/Mesh/App/Exporter.cpp @@ -40,6 +40,8 @@ #include "App/Part.h" +#include + #include using namespace Mesh; @@ -173,6 +175,7 @@ bool MergeExporter::addMeshFeat(App::DocumentObject *obj) bool MergeExporter::addPartFeat(App::DocumentObject *obj, float tol) { auto *shape(obj->getPropertyByName("Shape")); + if (shape && shape->getTypeId().isDerivedFrom(App::PropertyComplexGeoData::getClassTypeId())) { Base::Reference mesh(new MeshObject()); @@ -180,9 +183,14 @@ bool MergeExporter::addPartFeat(App::DocumentObject *obj, float tol) auto geoData( static_cast(shape)->getComplexData() ); if (geoData) { + const Part::TopoShape* ts = static_cast(geoData); + Part::TopoShape tsCopy(*ts); + App::GeoFeature* gf = static_cast(obj); + tsCopy.setPlacement(gf->globalPlacement()); + std::vector aPoints; std::vector aTopo; - geoData->getFaces(aPoints, aTopo, tol); + tsCopy.getFaces(aPoints, aTopo, tol); mesh->addFacets(aTopo, aPoints, false); if (countFacets == 0) diff --git a/src/Mod/Mesh/App/PreCompiled.h b/src/Mod/Mesh/App/PreCompiled.h index 9664300df5..d8139980fd 100644 --- a/src/Mod/Mesh/App/PreCompiled.h +++ b/src/Mod/Mesh/App/PreCompiled.h @@ -30,8 +30,10 @@ // Exporting of App classes #ifdef FC_OS_WIN32 # define MeshExport __declspec(dllexport) +# define PartExport __declspec(dllimport) #else // for Linux # define MeshExport +# define PartExport #endif