Fix for SPE-700 (Corrupted slice data)

This commit is contained in:
tamasmeszaros 2018-12-20 15:22:58 +01:00
parent ece3c74380
commit 70bfa4202f
4 changed files with 21 additions and 4 deletions

View File

@ -722,6 +722,10 @@ public:
return m_pad;
}
void remove_pad() {
m_pad = Pad();
}
const Pad& pad() const { return m_pad; }
// WITHOUT THE PAD!!!
@ -1729,6 +1733,11 @@ const TriangleMesh &SLASupportTree::get_pad() const
return m_impl->pad().tmesh;
}
void SLASupportTree::remove_pad()
{
m_impl->remove_pad();
}
SLASupportTree::SLASupportTree(const PointSet &points,
const EigenMesh3D& emesh,
const SupportConfig &cfg,

View File

@ -164,6 +164,8 @@ public:
/// Get the pad geometry
const TriangleMesh& get_pad() const;
void remove_pad();
};
}

View File

@ -198,7 +198,7 @@ PointSet normals(const PointSet& points, const EigenMesh3D& emesh,
});
if(!neighnorms.empty()) { // there were neighbors to count with
// sum up the normals and than normalize the result again.
// sum up the normals and then normalize the result again.
// This unification seems to be enough.
Vec3d sumnorm(0, 0, 0);
sumnorm = std::accumulate(neighnorms.begin(), lend, sumnorm);

View File

@ -560,9 +560,13 @@ void SLAPrint::process()
// and before the supports had been sliced. (or the slicing has to be
// repeated)
if(po.m_config.pad_enable.getBool() &&
po.m_supportdata &&
po.m_supportdata->support_tree_ptr)
if(!po.m_supportdata || !po.m_supportdata->support_tree_ptr) {
BOOST_LOG_TRIVIAL(warning) << "Uninitialized support data at "
<< "pad creation.";
return;
}
if(po.m_config.pad_enable.getBool())
{
double wt = po.m_config.pad_wall_thickness.getFloat();
double h = po.m_config.pad_wall_height.getFloat();
@ -586,6 +590,8 @@ void SLAPrint::process()
pcfg.throw_on_cancel = thrfn;
po.m_supportdata->support_tree_ptr->add_pad(bp, pcfg);
} else {
po.m_supportdata->support_tree_ptr->remove_pad();
}
po.throw_if_canceled();