Fix #3329 globalPosition in Stl export

This commit is contained in:
wandererfan
2018-07-22 09:02:54 -04:00
committed by Yorik van Havre
parent e45a3674f0
commit e267eac7bb
4 changed files with 14 additions and 1 deletions

View File

@@ -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)

View File

@@ -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)

View File

@@ -40,6 +40,8 @@
#include "App/Part.h"
#include <Mod/Part/App/TopoShape.h>
#include <zipios++/zipoutputstream.h>
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<MeshObject> mesh(new MeshObject());
@@ -180,9 +183,14 @@ bool MergeExporter::addPartFeat(App::DocumentObject *obj, float tol)
auto geoData( static_cast<App::PropertyComplexGeoData*>(shape)->getComplexData() );
if (geoData) {
const Part::TopoShape* ts = static_cast<const Part::TopoShape*>(geoData);
Part::TopoShape tsCopy(*ts);
App::GeoFeature* gf = static_cast<App::GeoFeature*>(obj);
tsCopy.setPlacement(gf->globalPlacement());
std::vector<Base::Vector3d> aPoints;
std::vector<Data::ComplexGeoData::Facet> aTopo;
geoData->getFaces(aPoints, aTopo, tol);
tsCopy.getFaces(aPoints, aTopo, tol);
mesh->addFacets(aTopo, aPoints, false);
if (countFacets == 0)

View File

@@ -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