Skip to content

Commit

Permalink
Handle setting the coolant mode on the setupsheet
Browse files Browse the repository at this point in the history
  • Loading branch information
dubstar-04 committed Aug 28, 2019
1 parent 3f58362 commit 3250913
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 3 deletions.
29 changes: 26 additions & 3 deletions src/Mod/Path/PathScripts/PathSetupSheet.py
Expand Up @@ -52,6 +52,7 @@ class Template:

HorizRapid = 'HorizRapid'
VertRapid = 'VertRapid'
CoolantMode = 'CoolantMode'
SafeHeightOffset = 'SafeHeightOffset'
SafeHeightExpression = 'SafeHeightExpression'
ClearanceHeightOffset = 'ClearanceHeightOffset'
Expand All @@ -60,7 +61,7 @@ class Template:
FinalDepthExpression = 'FinalDepthExpression'
StepDownExpression = 'StepDownExpression'

All = [HorizRapid, VertRapid, SafeHeightOffset, SafeHeightExpression, ClearanceHeightOffset, ClearanceHeightExpression, StartDepthExpression, FinalDepthExpression, StepDownExpression]
All = [HorizRapid, VertRapid, CoolantMode, SafeHeightOffset, SafeHeightExpression, ClearanceHeightOffset, ClearanceHeightExpression, StartDepthExpression, FinalDepthExpression, StepDownExpression]


def _traverseTemplateAttributes(attrs, codec):
Expand All @@ -86,19 +87,24 @@ class SetupSheet:
TemplateReference = '${SetupSheet}'

DefaultSafeHeightOffset = '3 mm'
DefaultClearanceHeightOffset = '5 mm'
DefaultClearanceHeightOffset = '5 mm'
DefaultSafeHeightExpression = "OpStockZMax+${SetupSheet}.SafeHeightOffset"
DefaultClearanceHeightExpression = "OpStockZMax+${SetupSheet}.ClearanceHeightOffset"

DefaultStartDepthExpression = 'OpStartDepth'
DefaultFinalDepthExpression = 'OpFinalDepth'
DefaultStepDownExpression = 'OpToolDiameter'

DefaultCoolantModes = ['None', 'Flood', 'Mist']

def __init__(self, obj):
self.obj = obj
obj.addProperty('App::PropertySpeed', 'VertRapid', 'ToolController', translate('PathSetupSheet', 'Default speed for horizontal rapid moves.'))
obj.addProperty('App::PropertySpeed', 'HorizRapid', 'ToolController', translate('PathSetupSheet', 'Default speed for vertical rapid moves.'))

obj.addProperty('App::PropertyStringList', 'CoolantModes', 'CoolantMode', translate('PathSetupSheet', 'Coolant Modes'))
obj.addProperty('App::PropertyEnumeration', 'CoolantMode', 'CoolantMode', translate('PathSetupSheet', 'Default coolant mode.'))

obj.addProperty('App::PropertyLength', 'SafeHeightOffset', 'OperationHeights', translate('PathSetupSheet', 'The usage of this field depends on SafeHeightExpression - by default its value is added to StartDepth and used for SafeHeight of an operation.'))
obj.addProperty('App::PropertyString', 'SafeHeightExpression', 'OperationHeights', translate('PathSetupSheet', 'Expression set for the SafeHeight of new operations.'))
obj.addProperty('App::PropertyLength', 'ClearanceHeightOffset', 'OperationHeights', translate('PathSetupSheet', 'The usage of this field depends on ClearanceHeightExpression - by default is value is added to StartDepth and used for ClearanceHeight of an operation.'))
Expand All @@ -117,6 +123,9 @@ def __init__(self, obj):
obj.FinalDepthExpression = self.decodeAttributeString(self.DefaultFinalDepthExpression)
obj.StepDownExpression = self.decodeAttributeString(self.DefaultStepDownExpression)

obj.CoolantModes = self.DefaultCoolantModes
obj.CoolantMode = self.DefaultCoolantModes

obj.Proxy = self

def __getstate__(self):
Expand Down Expand Up @@ -171,14 +180,17 @@ def setFromTemplate(self, attrs):
prop.setupProperty(self.obj, propertyName, propertyGroup, prop.valueFromString(value))


def templateAttributes(self, includeRapids=True, includeHeights=True, includeDepths=True, includeOps=None):
def templateAttributes(self, includeRapids=True, includeCoolantMode=True, includeHeights=True, includeDepths=True, includeOps=None):
'''templateAttributes(includeRapids, includeHeights, includeDepths) ... answers a dictionary with the default values.'''
attrs = {}

if includeRapids:
attrs[Template.VertRapid] = self.obj.VertRapid.UserString
attrs[Template.HorizRapid] = self.obj.HorizRapid.UserString

if includeCoolantMode:
attrs[Template.CoolantMode] = self.obj.CoolantMode.UserString

if includeHeights:
attrs[Template.SafeHeightOffset] = self.obj.SafeHeightOffset.UserString
attrs[Template.SafeHeightExpression] = self.obj.SafeHeightExpression
Expand Down Expand Up @@ -265,6 +277,17 @@ def setOperationProperties(self, obj, opName):
PathLog.info("SetupSheet has no support for {}".format(opName))
#traceback.print_exc()

def onDocumentRestored(self, obj):

if not hasattr(obj, 'CoolantModes'):
obj.addProperty('App::PropertyStringList', 'CoolantModes', 'CoolantMode', translate('PathSetupSheet', 'Coolant Modes'))
obj.CoolantModes = self.DefaultCoolantModes


if not hasattr(obj, 'CoolantMode'):
obj.addProperty('App::PropertyEnumeration', 'CoolantMode', 'CoolantMode', translate('PathSetupSheet', 'Default coolant mode.'))
obj.CoolantMode = self.DefaultCoolantModes

def Create(name = 'SetupSheet'):
obj = FreeCAD.ActiveDocument.addObject('App::FeaturePython', name)
obj.Proxy = SetupSheet(obj)
Expand Down
13 changes: 13 additions & 0 deletions src/Mod/Path/PathScripts/PathSetupSheetGui.py
Expand Up @@ -295,6 +295,7 @@ def __init__(self, obj, form):
self.safeHeightOffs = None
self.rapidHorizontal = None
self.rapidVertical = None
#self.coolantMode = None

def reject(self):
pass
Expand All @@ -318,6 +319,16 @@ def updateExpression(name, widget):
self.safeHeightOffs.updateProperty()
self.rapidVertical.updateProperty()
self.rapidHorizontal.updateProperty()
#self.coolantMode.updateProperty()
self.obj.CoolantMode = self.form.setupCoolantMode.currentText()

def selectInComboBox(self, name, combo):
'''selectInComboBox(name, combo) ... helper function to select a specific value in a combo box.'''
index = combo.findText(name, QtCore.Qt.MatchFixedString)
if index >= 0:
combo.blockSignals(True)
combo.setCurrentIndex(index)
combo.blockSignals(False)

def updateUI(self):
PathLog.track()
Expand All @@ -330,6 +341,7 @@ def updateUI(self):
self.safeHeightOffs.updateSpinBox()
self.rapidVertical.updateSpinBox()
self.rapidHorizontal.updateSpinBox()
self.selectInComboBox(self.obj.CoolantMode, self.form.setupCoolantMode)

def updateModel(self, recomp = True):
PathLog.track()
Expand All @@ -346,6 +358,7 @@ def setupUi(self):
self.safeHeightOffs = PathGui.QuantitySpinBox(self.form.setupSafeHeightOffs, self.obj, 'SafeHeightOffset')
self.rapidHorizontal = PathGui.QuantitySpinBox(self.form.setupRapidHorizontal, self.obj, 'HorizRapid')
self.rapidVertical = PathGui.QuantitySpinBox(self.form.setupRapidVertical, self.obj, 'VertRapid')
self.form.setupCoolantMode.addItems(self.obj.CoolantModes)
self.setFields()

class TaskPanel:
Expand Down

0 comments on commit 3250913

Please sign in to comment.