diff --git a/src/Mod/PartDesign/App/FeatureHole.cpp b/src/Mod/PartDesign/App/FeatureHole.cpp index 4da6482bf5..2848cd02aa 100644 --- a/src/Mod/PartDesign/App/FeatureHole.cpp +++ b/src/Mod/PartDesign/App/FeatureHole.cpp @@ -985,6 +985,9 @@ App::DocumentObjectExecReturn *Hole::execute(void) else xDir = gp_Vec(0, -zDir.Z(), zDir.Y()); + // Normalize xDir; this is needed as the computation above does not necessarily give a unit-length vector. + xDir.Normalize(); + if ( method == "Dimension" ) length = Depth.getValue(); else if ( method == "UpToFirst" ) {