Fixed the name collission issue of expressions.

This commit is contained in:
Markus Lampert
2017-10-09 22:56:50 -07:00
parent 14dfa13ee6
commit 704569d1c8
3 changed files with 22 additions and 12 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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