Merge pull request #26658 from Dimitris75/CAM---Experimental-Waterline-Minor-Fixs

CAM - Experimental Waterline Minor Fix
This commit is contained in:
sliptonic
2026-01-09 10:49:41 -06:00
committed by GitHub

View File

@@ -1897,7 +1897,7 @@ class ObjectWaterline(PathOp.ObjectOp):
if cont:
# Identify solid areas in the offset data
if obj.CutPattern == "Offset" or obj.CutPattern == "None":
ofstSolidFacesList = self._getSolidAreasFromPlanarFaces(ofstArea)
ofstSolidFacesList = self._getSolidAreasFromPlanarFaces(ofstArea.Faces)
if ofstSolidFacesList:
clearArea = Part.makeCompound(ofstSolidFacesList)
self.showDebugObject(clearArea, "ClearArea_{}".format(caCnt))
@@ -2014,6 +2014,12 @@ class ObjectWaterline(PathOp.ObjectOp):
startVect = FreeCAD.Vector(V[0].X, V[0].Y, V[0].Z)
commands.append(Path.Command("N (Wire {}.)".format(w)))
# This ensures the tool is directly above the entry point before plunging,
# preventing diagonal moves through the material.
commands.append(
Path.Command("G0", {"X": startVect.x, "Y": startVect.y, "F": self.horizRapid})
)
(cmds, endVect) = self._wireToPath(obj, wire, startVect)
commands.extend(cmds)
commands.append(Path.Command("G0", {"Z": obj.SafeHeight.Value, "F": self.vertRapid}))
@@ -2303,8 +2309,7 @@ class ObjectWaterline(PathOp.ObjectOp):
pathParams["feedrate"] = self.horizFeed
pathParams["feedrate_v"] = self.vertFeed
pathParams["verbose"] = True
pathParams["resume_height"] = obj.SafeHeight.Value
pathParams["retraction"] = obj.ClearanceHeight.Value
pathParams["retraction"] = obj.SafeHeight.Value
pathParams["return_end"] = True
# Note that emitting preambles between moves breaks some dressups and prevents path optimization on some controllers
pathParams["preamble"] = False