Fix for SPE-700 (Corrupted slice data)
This commit is contained in:
parent
ece3c74380
commit
70bfa4202f
@ -722,6 +722,10 @@ public:
|
|||||||
return m_pad;
|
return m_pad;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void remove_pad() {
|
||||||
|
m_pad = Pad();
|
||||||
|
}
|
||||||
|
|
||||||
const Pad& pad() const { return m_pad; }
|
const Pad& pad() const { return m_pad; }
|
||||||
|
|
||||||
// WITHOUT THE PAD!!!
|
// WITHOUT THE PAD!!!
|
||||||
@ -1729,6 +1733,11 @@ const TriangleMesh &SLASupportTree::get_pad() const
|
|||||||
return m_impl->pad().tmesh;
|
return m_impl->pad().tmesh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SLASupportTree::remove_pad()
|
||||||
|
{
|
||||||
|
m_impl->remove_pad();
|
||||||
|
}
|
||||||
|
|
||||||
SLASupportTree::SLASupportTree(const PointSet &points,
|
SLASupportTree::SLASupportTree(const PointSet &points,
|
||||||
const EigenMesh3D& emesh,
|
const EigenMesh3D& emesh,
|
||||||
const SupportConfig &cfg,
|
const SupportConfig &cfg,
|
||||||
|
@ -164,6 +164,8 @@ public:
|
|||||||
/// Get the pad geometry
|
/// Get the pad geometry
|
||||||
const TriangleMesh& get_pad() const;
|
const TriangleMesh& get_pad() const;
|
||||||
|
|
||||||
|
void remove_pad();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -198,7 +198,7 @@ PointSet normals(const PointSet& points, const EigenMesh3D& emesh,
|
|||||||
});
|
});
|
||||||
|
|
||||||
if(!neighnorms.empty()) { // there were neighbors to count with
|
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.
|
// This unification seems to be enough.
|
||||||
Vec3d sumnorm(0, 0, 0);
|
Vec3d sumnorm(0, 0, 0);
|
||||||
sumnorm = std::accumulate(neighnorms.begin(), lend, sumnorm);
|
sumnorm = std::accumulate(neighnorms.begin(), lend, sumnorm);
|
||||||
|
@ -560,9 +560,13 @@ void SLAPrint::process()
|
|||||||
// and before the supports had been sliced. (or the slicing has to be
|
// and before the supports had been sliced. (or the slicing has to be
|
||||||
// repeated)
|
// repeated)
|
||||||
|
|
||||||
if(po.m_config.pad_enable.getBool() &&
|
if(!po.m_supportdata || !po.m_supportdata->support_tree_ptr) {
|
||||||
po.m_supportdata &&
|
BOOST_LOG_TRIVIAL(warning) << "Uninitialized support data at "
|
||||||
po.m_supportdata->support_tree_ptr)
|
<< "pad creation.";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(po.m_config.pad_enable.getBool())
|
||||||
{
|
{
|
||||||
double wt = po.m_config.pad_wall_thickness.getFloat();
|
double wt = po.m_config.pad_wall_thickness.getFloat();
|
||||||
double h = po.m_config.pad_wall_height.getFloat();
|
double h = po.m_config.pad_wall_height.getFloat();
|
||||||
@ -586,6 +590,8 @@ void SLAPrint::process()
|
|||||||
|
|
||||||
pcfg.throw_on_cancel = thrfn;
|
pcfg.throw_on_cancel = thrfn;
|
||||||
po.m_supportdata->support_tree_ptr->add_pad(bp, pcfg);
|
po.m_supportdata->support_tree_ptr->add_pad(bp, pcfg);
|
||||||
|
} else {
|
||||||
|
po.m_supportdata->support_tree_ptr->remove_pad();
|
||||||
}
|
}
|
||||||
|
|
||||||
po.throw_if_canceled();
|
po.throw_if_canceled();
|
||||||
|
Loading…
Reference in New Issue
Block a user