PD: Fix missing silent mode check in GetTopoShapeVerifiedFace

Also ensure that all calls to this method actually verify the result.
This commit is contained in:
Chris Hennes
2025-12-21 21:57:41 -06:00
committed by Kacper Donat
parent 7665675de9
commit 76bd68e672

View File

@@ -235,6 +235,9 @@ TopoShape ProfileBased::getTopoShapeVerifiedFace(
if (subshape.isNull()) {
if (silent) {
return {};
}
FC_THROWM(
Base::CADKernelError,
"Sub shape not found: " << obj->getFullName() << "." << sub
@@ -622,7 +625,7 @@ TopoShape ProfileBased::getTopoShapeSupportFace() const
TopoShape shape;
const Part::Part2DObject* sketch = getVerifiedSketch(true);
if (!sketch) {
shape = getTopoShapeVerifiedFace();
shape = getTopoShapeVerifiedFace(true);
}
else if (sketch->MapMode.getValue() == Attacher::mmFlatFace
&& sketch->AttachmentSupport.getValue()) {
@@ -1374,6 +1377,10 @@ Base::Vector3d ProfileBased::getProfileNormal() const
TopoShape shape = getTopoShapeVerifiedFace(true, true, true); //, _ProfileBasedVersion.getValue()
//<= 0);
if (shape.isNull()) {
return SketchVector;
}
gp_Pln pln;
if (shape.findPlane(pln)) {
gp_Dir dir = pln.Axis().Direction();