From 76bd68e672f7103092e1be04cfa4c426ad0b11ae Mon Sep 17 00:00:00 2001 From: Chris Hennes Date: Sun, 21 Dec 2025 21:57:41 -0600 Subject: [PATCH] PD: Fix missing silent mode check in GetTopoShapeVerifiedFace Also ensure that all calls to this method actually verify the result. --- src/Mod/PartDesign/App/FeatureSketchBased.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Mod/PartDesign/App/FeatureSketchBased.cpp b/src/Mod/PartDesign/App/FeatureSketchBased.cpp index e67936a917..e319ea0141 100644 --- a/src/Mod/PartDesign/App/FeatureSketchBased.cpp +++ b/src/Mod/PartDesign/App/FeatureSketchBased.cpp @@ -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();