[PD] Fix helix placement

This commit is contained in:
Florian Foinant-Willig
2024-09-03 19:13:42 +02:00
committed by Yorik van Havre
parent c36406c112
commit 05f7047c66
2 changed files with 3 additions and 1 deletions

View File

@@ -377,7 +377,8 @@ TopoDS_Shape Helix::generateHelixPath(double breakAtTurn)
bool turned = axisOffset < 0;
// since the factor does not only change the radius but also the path position, we must shift its offset back
// using the square of the factor
double startOffset = 10000.0 * std::fabs(baseVector * axisVector);
double noAngle = angle == 0. ? 1. : 0.; // alternative to the legacy use of an auxiliary path
double startOffset = 10000.0 * std::fabs(noAngle * (profileCenter * axisVector) - baseVector * axisVector);
if (radius < Precision::Confusion()) {
// in this case ensure that axis is not in the sketch plane

View File

@@ -914,6 +914,7 @@ class TestTopologicalNamingProblem(unittest.TestCase):
helix = self.Doc.addObject("PartDesign::SubtractiveHelix", "SubHelix")
helix.Profile = sketch
helix.ReferenceAxis = (self.Doc.getObject("Sketch"), ["V_Axis"])
helix.Reversed = True
body.addObject(sketch)
body.addObject(helix)
self.Doc.recompute()