Fix #3401 warning on multiple solid

- PartDesign only uses the first result shape
  of an operation and discards the rest without
  warning.

- this also fixes #1707
This commit is contained in:
wandererfan
2018-04-04 18:52:26 -04:00
committed by Yorik van Havre
parent 97932a25bc
commit 0d3008e4eb
14 changed files with 106 additions and 2 deletions

View File

@@ -331,6 +331,7 @@ App::DocumentObjectExecReturn *Transformed::execute(void)
// lets check if the result is a solid
if (current.IsNull())
return new App::DocumentObjectExecReturn("Resulting shape is not a solid", *o);
/*std::vector<TopoDS_Shape>::const_iterator individualIt;
for (individualIt = individualTools.begin(); individualIt != individualTools.end(); ++individualIt)
{
@@ -377,6 +378,11 @@ App::DocumentObjectExecReturn *Transformed::execute(void)
for (rej_it_map::const_iterator it = nointersect_trsfms.begin(); it != nointersect_trsfms.end(); ++it)
for (trsf_it::const_iterator it2 = it->second.begin(); it2 != it->second.end(); ++it2)
rejected[it->first].push_back(**it2);
int solidCount = countSolids(support);
if (solidCount > 1) {
return new App::DocumentObjectExecReturn("Transformed: Result has multiple solids. Check parameters.");
}
this->Shape.setValue(getSolid(support));