diff --git a/src/Mod/Path/PathScripts/PathJob.py b/src/Mod/Path/PathScripts/PathJob.py index f5aa278a80..7f909f4289 100644 --- a/src/Mod/Path/PathScripts/PathJob.py +++ b/src/Mod/Path/PathScripts/PathJob.py @@ -272,8 +272,8 @@ class ObjectJob: group = self.obj.ToolController PathLog.debug("addToolController(%s): %s" % (tc.Label, [t.Label for t in group])) if tc.Name not in [str(t.Name) for t in group]: - tc.setExpression('VertRapid', "%s.%s" % (self.obj.SetupSheet.Name, PathSetupSheet.Default.VertRapid)) - tc.setExpression('HorizRapid', "%s.%s" % (self.obj.SetupSheet.Name, PathSetupSheet.Default.HorizRapid)) + tc.setExpression('VertRapid', "%s.%s" % (self.setupSheet.expressionReference(), PathSetupSheet.Default.VertRapid)) + tc.setExpression('HorizRapid', "%s.%s" % (self.setupSheet.expressionReference(), PathSetupSheet.Default.HorizRapid)) group.append(tc) self.obj.ToolController = group diff --git a/src/Mod/Path/PathScripts/PathOp.py b/src/Mod/Path/PathScripts/PathOp.py index 658cd405d6..463bd93adb 100644 --- a/src/Mod/Path/PathScripts/PathOp.py +++ b/src/Mod/Path/PathScripts/PathOp.py @@ -255,8 +255,8 @@ class ObjectOp(object): obj.setExpression('StepDown', 'OpToolDiameter') if FeatureHeights & features: - obj.setExpression('SafeHeight', "%s.%s+StartDepth" % (job.SetupSheet.Name, PathSetupSheet.Default.SafeHeight)) - obj.setExpression('ClearanceHeight', "%s.%s+StartDepth" % (job.SetupSheet.Name, PathSetupSheet.Default.ClearanceHeight)) + obj.setExpression('SafeHeight', "%s.%s+StartDepth" % (job.Proxy.setupSheet.expressionReference(), PathSetupSheet.Default.SafeHeight)) + obj.setExpression('ClearanceHeight', "%s.%s+StartDepth" % (job.Proxy.setupSheet.expressionReference(), PathSetupSheet.Default.ClearanceHeight)) if FeatureStartPoint & features: obj.UseStartPoint = False diff --git a/src/Mod/Path/PathScripts/PathSetupSheet.py b/src/Mod/Path/PathScripts/PathSetupSheet.py index b1744aec46..ecf95a4616 100644 --- a/src/Mod/Path/PathScripts/PathSetupSheet.py +++ b/src/Mod/Path/PathScripts/PathSetupSheet.py @@ -48,13 +48,16 @@ class Default: ClearanceHeight = 'DefaultClearanceHeight' class SetupSheet: + '''Spreadsheet used by a Job to hold global reference values. +It's mostly a convencience wrapper around Spreadsheet. + ''' def __init__(self, obj): self.obj = obj def setup(self): - self.obj.SetupSheet = self.obj.Document.addObject('Spreadsheet::Sheet', 'Setup_Sheet') - self.obj.SetupSheet.Label = translate('PathSetupSheet', 'Setup Sheet') + '''setup() ... initializes receiver with default values.''' + self.obj.SetupSheet = self.obj.Document.addObject('Spreadsheet::Sheet', 'SetupSheet') self.obj.SetupSheet.set('A2', translate('PathSetupSheet', 'Tool Rapid Speeds')) self.createSetting(3, Default.HorizRapid, '0 mm/s', translate('PathSetupSheet', 'Horizontal'), translate('PathSetupSheet', 'Default speed for horizzontal rapid moves.')) self.createSetting(4, Default.VertRapid, '0 mm/s', translate('PathSetupSheet', 'Vertical'), translate('PathSetupSheet', 'Default speed for vertical rapid moves.')) @@ -62,22 +65,25 @@ class SetupSheet: self.createSetting(7, Default.SafeHeight, '3 mm', translate('PathSetupSheet', 'Safe Height'), translate('PathSetupSheet', 'Default value added to StartDepth used for the safe height.')) self.createSetting(8, Default.ClearanceHeight, '5 mm', translate('PathSetupSheet', 'Clearance Height'), translate('PathSetupSheet', 'Default value added to StartDepth used for the clearance height.')) - def updateSetting(self, name, value): - cell = self.obj.SetupSheet.getCellFromAlias(name) - PathLog.debug("updateSetting(%s, %s): %s" % (name, value, cell)) + def updateSetting(self, alias, value): + '''updateSetting(alias, value) ... stores a new value for the given value.''' + cell = self.obj.SetupSheet.getCellFromAlias(alias) + PathLog.debug("updateSetting(%s, %s): %s" % (alias, value, cell)) self.obj.SetupSheet.set(cell, value) - def createSetting(self, row, name, value, label, desc): + def createSetting(self, row, alias, value, label, desc): + '''createSetting(row, alias, value, label, desc) ... sets the values of the new setting in the given row.''' labelCell = "B%d" % row valueCell = "C%d" % row descCell = "D%d" % row - PathLog.debug("createSetting(%d, %s, %s): %s" % (row, name, value, valueCell)) + PathLog.debug("createSetting(%d, %s, %s): %s" % (row, alias, value, valueCell)) self.obj.SetupSheet.set(labelCell, label) self.obj.SetupSheet.set(valueCell, value) - self.obj.SetupSheet.setAlias(valueCell, name) + self.obj.SetupSheet.setAlias(valueCell, alias) self.obj.SetupSheet.set(descCell, desc) def setFromTemplate(self, attrs): + '''setFromTemplate(attrs) ... sets the default values from the given dictionary.''' if attrs.get(Default.VertRapid): self.updateSetting(Default.VertRapid, attrs[Default.VertRapid]) if attrs.get(Default.HorizRapid): @@ -88,6 +94,7 @@ class SetupSheet: self.updateSetting(Default.ClearanceHeight, attrs[Default.ClearanceHeight]) def templateAttributes(self, includeRapids, includeHeights): + '''templateAttributes(includeRapids, includeHeights) ... answers a dictionary with the default values.''' attrs = {} if includeRapids: attrs[Default.VertRapid] = self.obj.SetupSheet.DefaultVertRapid.UserString @@ -97,3 +104,6 @@ class SetupSheet: attrs[Default.ClearanceHeight] = self.obj.SetupSheet.DefaultClearanceHeight.UserString return attrs + def expressionReference(self): + '''expressionReference() ... returns the string to be used in expressions''' + return self.obj.SetupSheet.Label