PartDesign: Extrude: Fix upToShape document not recomputing correctly (#26696)

* PartDesign: Extrude: Fix dir for upToShape

* Update FeatureExtrude.h

* Update FeatureExtrude.h

* Update FeatureExtrude.cpp

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update FeatureExtrude.cpp

* Update FeatureExtrude.h

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
PaddleStroke
2026-01-13 00:07:47 +01:00
committed by GitHub
parent 4e0bac6386
commit 847263fa5e
2 changed files with 23 additions and 11 deletions

View File

@@ -494,7 +494,8 @@ App::DocumentObjectExecReturn* FeatureExtrude::buildExtrusion(ExtrudeOptions opt
dir,
offset1,
makeface,
base
base,
invObjLoc
);
prisms.push_back(prism1);
}
@@ -517,7 +518,8 @@ App::DocumentObjectExecReturn* FeatureExtrude::buildExtrusion(ExtrudeOptions opt
dir,
offset1,
makeface,
base
base,
invObjLoc
);
if (!prism1.isNull() && !prism1.getShape().IsNull()) {
prisms.push_back(prism1);
@@ -535,7 +537,8 @@ App::DocumentObjectExecReturn* FeatureExtrude::buildExtrusion(ExtrudeOptions opt
dir2,
offset1,
makeface,
base
base,
invObjLoc
);
if (!prism2.isNull() && !prism2.getShape().IsNull()) {
prisms.push_back(prism2);
@@ -561,7 +564,8 @@ App::DocumentObjectExecReturn* FeatureExtrude::buildExtrusion(ExtrudeOptions opt
dir,
offset1,
makeface,
base
base,
invObjLoc
);
if (!prism1.isNull() && !prism1.getShape().IsNull()) {
prisms.push_back(prism1);
@@ -580,7 +584,8 @@ App::DocumentObjectExecReturn* FeatureExtrude::buildExtrusion(ExtrudeOptions opt
dir,
offset1,
makeface,
base
base,
invObjLoc
);
prisms.push_back(prism1);
@@ -624,7 +629,8 @@ App::DocumentObjectExecReturn* FeatureExtrude::buildExtrusion(ExtrudeOptions opt
dir2,
offset2,
makeface,
base
base,
invObjLoc
);
if (!prism.isNull() && !prism.getShape().IsNull()) {
prisms.push_back(prism);
@@ -646,7 +652,8 @@ App::DocumentObjectExecReturn* FeatureExtrude::buildExtrusion(ExtrudeOptions opt
dir,
offset1,
makeface,
base
base,
invObjLoc
);
if (!prism.isNull() && !prism.getShape().IsNull()) {
prisms.push_back(prism);
@@ -663,7 +670,8 @@ App::DocumentObjectExecReturn* FeatureExtrude::buildExtrusion(ExtrudeOptions opt
dir,
offset1,
makeface,
base
base,
invObjLoc
);
if (!prism1.isNull() && !prism1.getShape().IsNull()) {
prisms.push_back(prism1);
@@ -680,7 +688,8 @@ App::DocumentObjectExecReturn* FeatureExtrude::buildExtrusion(ExtrudeOptions opt
dir2,
offset2,
makeface,
base
base,
invObjLoc
);
if (!prism2.isNull() && !prism2.getShape().IsNull()) {
prisms.push_back(prism2);
@@ -830,7 +839,8 @@ TopoShape FeatureExtrude::generateSingleExtrusionSide(
gp_Dir dir,
double offsetVal,
bool makeFace,
const TopoShape& base
const TopoShape& base,
TopLoc_Location& invObjLoc
)
{
TopoShape prism(0, getDocument()->getStringHasher());

View File

@@ -31,6 +31,7 @@
class gp_Dir;
class TopoDS_Face;
class TopoDS_Shape;
class TopLoc_Location;
namespace PartDesign
{
@@ -115,7 +116,8 @@ protected:
gp_Dir dir,
double offsetVal,
bool makeFace,
const TopoShape& base // The base shape for context (global CS)
const TopoShape& base, // The base shape for context (global CS)
TopLoc_Location& invObjLoc // MUST be passed. Cannot be re-accessed, see #26677
);
};