mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-12 01:07:57 -06:00
Trying to improve drilling stability by handling CGAL exceptions
This commit is contained in:
parent
b41c6d7d64
commit
b0aa937215
2 changed files with 21 additions and 6 deletions
|
@ -83,9 +83,9 @@ void SLAPrint::Steps::hollow_model(SLAPrintObject &po)
|
|||
bool drilling_needed = ! po.m_model_object->sla_drain_holes.empty();
|
||||
|
||||
// If the mesh is broken, stop immediately, even before hollowing.
|
||||
if (drilling_needed && po.transformed_mesh().needed_repair())
|
||||
throw std::runtime_error(L("The mesh appears to be too broken "
|
||||
"to drill holes into it reliably."));
|
||||
//if (drilling_needed && po.transformed_mesh().needed_repair())
|
||||
// throw std::runtime_error(L("The mesh appears to be too broken "
|
||||
// "to drill holes into it reliably."));
|
||||
|
||||
if (! po.m_config.hollowing_enable.getBool())
|
||||
BOOST_LOG_TRIVIAL(info) << "Skipping hollowing step!";
|
||||
|
@ -133,7 +133,13 @@ void SLAPrint::Steps::hollow_model(SLAPrintObject &po)
|
|||
|
||||
TriangleMesh &hollowed_mesh = po.m_hollowing_data->hollow_mesh_with_holes;
|
||||
hollowed_mesh = po.get_mesh_to_print();
|
||||
MeshBoolean::cgal::minus(hollowed_mesh, holes_mesh);
|
||||
try {
|
||||
MeshBoolean::cgal::minus(hollowed_mesh, holes_mesh);
|
||||
}
|
||||
catch (const std::runtime_error& ex) {
|
||||
throw std::runtime_error(L("Drilling holes into the mesh failed. "
|
||||
"This is usually caused by broken model. Try to fix it first."));
|
||||
}
|
||||
hollowed_mesh.require_shared_vertices();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue