Merge pull request #27040 from Dimitris75/CAM-Waterline-OCL-Adaptive-Add-Optimize-Linear-Paths

CAM: Waterline OCL Adaptive - Adding Optimize Linear Paths - Removing BoundBox ComboBox
This commit is contained in:
sliptonic
2026-02-27 11:57:53 -06:00
committed by GitHub
2 changed files with 13 additions and 0 deletions
+9
View File
@@ -146,6 +146,8 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
self.form.optimizeEnabled.hide() # Has no independent QLabel object
if Algorithm == "OCL Dropcutter":
self.form.boundBoxSelect.show()
self.form.boundBoxSelect_label.show()
self.form.cutPattern.hide()
self.form.cutPattern_label.hide()
self.form.boundaryAdjustment.hide()
@@ -156,7 +158,10 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
self.form.minSampleInterval_label.hide()
self.form.sampleInterval.show()
self.form.sampleInterval_label.show()
self.form.optimizeEnabled.hide()
elif Algorithm == "OCL Adaptive":
self.form.boundBoxSelect.hide()
self.form.boundBoxSelect_label.hide()
self.form.cutPattern.hide()
self.form.cutPattern_label.hide()
self.form.boundaryAdjustment.hide()
@@ -167,7 +172,10 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
self.form.minSampleInterval_label.show()
self.form.sampleInterval.show()
self.form.sampleInterval_label.show()
self.form.optimizeEnabled.show()
elif Algorithm == "Experimental":
self.form.boundBoxSelect.show()
self.form.boundBoxSelect_label.show()
self.form.cutPattern.show()
self.form.boundaryAdjustment.show()
self.form.cutPattern_label.show()
@@ -182,6 +190,7 @@ class TaskPanelOpPage(PathOpGui.TaskPanelPage):
self.form.minSampleInterval_label.hide()
self.form.sampleInterval.hide()
self.form.sampleInterval_label.hide()
self.form.optimizeEnabled.hide()
def registerSignalHandlers(self, obj):
self.form.algorithmSelect.currentIndexChanged.connect(self.updateVisibility)
+4
View File
@@ -564,6 +564,7 @@ class ObjectWaterline(PathOp.ObjectOp):
obj.setEditorMode("CutPattern", C)
obj.setEditorMode("SampleInterval", G)
obj.setEditorMode("MinSampleInterval", D)
obj.setEditorMode("OptimizeLinearPaths", D)
obj.setEditorMode("LinearDeflection", expMode)
obj.setEditorMode("AngularDeflection", expMode)
@@ -1226,6 +1227,7 @@ class ObjectWaterline(PathOp.ObjectOp):
bb = self.boundBoxes[mdlIdx]
stl = self.modelSTLs[mdlIdx]
depOfst = obj.DepthOffset.Value
optimizeLinear = obj.OptimizeLinearPaths
# Prepare global holdpoint and layerEndPnt containers
if self.holdPoint is None:
@@ -1284,6 +1286,8 @@ class ObjectWaterline(PathOp.ObjectOp):
# Generate G-Code
layTime = time.time()
for loop in scanLines:
if optimizeLinear:
loop = PathUtils.simplify3dLine(loop, tolerance=self.geoTlrnc)
# We pass '0.0' as layDep because Adaptive loops have their own Z embedded
cmds = self._loopToGcode(obj, 0.0, loop)
commands.extend(cmds)