Renamed Settings to SetupSheet.

This commit is contained in:
Markus Lampert
2017-10-09 22:03:49 -07:00
parent 6f93bdc1a1
commit 15dda40edd
7 changed files with 50 additions and 49 deletions

View File

@@ -74,7 +74,7 @@ SET(PathScripts_SRCS
PathScripts/PathProfileFacesGui.py
PathScripts/PathSanity.py
PathScripts/PathSelection.py
PathScripts/PathSettings.py
PathScripts/PathSetupSheet.py
PathScripts/PathSimpleCopy.py
PathScripts/PathStock.py
PathScripts/PathStop.py

View File

@@ -115,7 +115,7 @@
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enable to include the default values in the template.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="title">
<string>Settings</string>
<string>Setup Sheet</string>
</property>
<property name="checkable">
<bool>true</bool>

View File

@@ -27,7 +27,7 @@ import Draft
import FreeCAD
import PathScripts.PathIconViewProvider as PathIconViewProvider
import PathScripts.PathLog as PathLog
import PathScripts.PathSettings as PathSettings
import PathScripts.PathSetupSheet as PathSetupSheet
import PathScripts.PathStock as PathStock
import PathScripts.PathToolController as PathToolController
import PathScripts.PathUtil as PathUtil
@@ -57,7 +57,7 @@ class JobTemplate:
PostProcessor = 'Post'
PostProcessorArgs = 'PostArgs'
PostProcessorOutputFile = 'Output'
Settings = 'Settings'
SetupSheet = 'SetupSheet'
Stock = 'Stock'
ToolController = 'ToolController'
Version = 'Version'
@@ -121,7 +121,7 @@ class ObjectJob:
obj.setEditorMode('Operations', 2) # hide
obj.setEditorMode('Placement', 2)
self.setupSettings(obj)
self.setupSetupSheet(obj)
obj.Base = createResourceClone(obj, base, 'Base', 'BaseGeometry')
obj.Proxy = self
@@ -136,11 +136,11 @@ class ObjectJob:
if obj.Stock.ViewObject:
obj.Stock.ViewObject.Visibility = False
def setupSettings(self, obj):
self.settings = PathSettings.Settings(obj)
if not hasattr(obj, 'Settings'):
obj.addProperty('App::PropertyLink', 'Settings', 'Base', QtCore.QT_TRANSLATE_NOOP('PathJob', 'Spreadsheet holding the settings for this job'))
self.settings.setup()
def setupSetupSheet(self, obj):
self.setupSheet = PathSetupSheet.SetupSheet(obj)
if not hasattr(obj, 'SetupSheet'):
obj.addProperty('App::PropertyLink', 'SetupSheet', 'Base', QtCore.QT_TRANSLATE_NOOP('PathJob', 'Spreadsheet holding the settings for this job'))
self.setupSheet.setup()
def onDelete(self, obj, arg2=None):
'''Called by the view provider, there doesn't seem to be a callback on the obj itself.'''
@@ -171,9 +171,9 @@ class ObjectJob:
for tc in obj.ToolController:
doc.removeObject(tc.Name)
obj.ToolController = []
# Settings
doc.removeObject(obj.Settings.Name)
obj.Settings = None
# SetupSheet
doc.removeObject(obj.SetupSheet.Name)
obj.SetupSheet = None
def fixupResourceClone(self, obj, name, icon):
if not isResourceClone(obj, name, name) and not isArchPanelSheet(obj):
@@ -183,7 +183,7 @@ class ObjectJob:
def onDocumentRestored(self, obj):
self.fixupResourceClone(obj, 'Base', 'BaseGeometry')
self.setupSettings(obj)
self.setupSetupSheet(obj)
def onChanged(self, obj, prop):
if prop == "PostProcessor" and obj.PostProcessor:
@@ -206,8 +206,8 @@ class ObjectJob:
attrs = json.load(fp)
if attrs.get(JobTemplate.Version) and 1 == int(attrs[JobTemplate.Version]):
if attrs.get(JobTemplate.Settings):
self.settings.setFromTemplate(attrs[JobTemplate.Settings])
if attrs.get(JobTemplate.SetupSheet):
self.setupSheet.setFromTemplate(attrs[JobTemplate.SetupSheet])
if attrs.get(JobTemplate.GeometryTolerance):
obj.GeometryTolerance = float(attrs.get(JobTemplate.GeometryTolerance))
@@ -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.Settings.Name, PathSettings.Default.VertRapid))
tc.setExpression('HorizRapid', "%s.%s" % (self.obj.Settings.Name, PathSettings.Default.HorizRapid))
tc.setExpression('VertRapid', "%s.%s" % (self.obj.SetupSheet.Name, PathSetupSheet.Default.VertRapid))
tc.setExpression('HorizRapid', "%s.%s" % (self.obj.SetupSheet.Name, PathSetupSheet.Default.HorizRapid))
group.append(tc)
self.obj.ToolController = group

View File

@@ -252,14 +252,14 @@ class CommandJobTemplateExport:
if stockAttrs:
attrs[PathJob.JobTemplate.Stock] = stockAttrs
# settings
settingsAttrs = None
# setup sheet
setupSheetAttrs = None
if dialog:
settingsAttrs = job.Proxy.settings.templateAttributes(dialog.includeDefaultToolRapid(), dialog.includeDefaultOperationHeights())
setupSheetAttrs = job.Proxy.setupSheet.templateAttributes(dialog.includeDefaultToolRapid(), dialog.includeDefaultOperationHeights())
else:
settingsAttrs = job.Proxy.settings.templateAttributes(True, True)
if settingsAttrs:
attrs[PathJob.JobTemplate.Settings] = settingsAttrs
setupSheetAttrs = job.Proxy.setupSheet.templateAttributes(True, True)
if setupSheetAttrs:
attrs[PathJob.JobTemplate.SetupSheet] = setupSheetAttrs
# write template
with open(unicode(path), 'wb') as fp:

View File

@@ -156,9 +156,9 @@ class ViewProvider:
children.append(self.obj.Base)
if self.obj.Stock:
children.append(self.obj.Stock)
if hasattr(self.obj, 'Settings'):
# when loading a job that didn't have settings they might not've been created yet
children.append(self.obj.Settings)
if hasattr(self.obj, 'SetupSheet'):
# when loading a job that didn't have a setup sheet they might not've been created yet
children.append(self.obj.SetupSheet)
return children
def onDelete(self, vobj, arg2=None):

View File

@@ -25,7 +25,7 @@
import FreeCAD
import Path
import PathScripts.PathLog as PathLog
import PathScripts.PathSettings as PathSettings
import PathScripts.PathSetupSheet as PathSetupSheet
import PathScripts.PathUtil as PathUtil
import PathScripts.PathUtils as PathUtils
@@ -255,8 +255,8 @@ class ObjectOp(object):
obj.setExpression('StepDown', 'OpToolDiameter')
if FeatureHeights & features:
obj.setExpression('SafeHeight', "%s.%s+StartDepth" % (job.Settings.Name, PathSettings.Default.SafeHeight))
obj.setExpression('ClearanceHeight', "%s.%s+StartDepth" % (job.Settings.Name, PathSettings.Default.ClearanceHeight))
obj.setExpression('SafeHeight', "%s.%s+StartDepth" % (job.SetupSheet.Name, PathSetupSheet.Default.SafeHeight))
obj.setExpression('ClearanceHeight', "%s.%s+StartDepth" % (job.SetupSheet.Name, PathSetupSheet.Default.ClearanceHeight))
if FeatureStartPoint & features:
obj.UseStartPoint = False

View File

@@ -27,7 +27,7 @@ import Path
import PathScripts.PathLog as PathLog
import PySide
__title__ = "Settings for a Job."
__title__ = "Setup Sheet for a Job."
__author__ = "sliptonic (Brad Collette)"
__url__ = "http://www.freecadweb.org"
__doc__ = "A container for all default values and job specific configuration values."
@@ -47,34 +47,35 @@ class Default:
SafeHeight = 'DefaultSafeHeight'
ClearanceHeight = 'DefaultClearanceHeight'
class Settings:
class SetupSheet:
def __init__(self, obj):
self.obj = obj
def setup(self):
self.obj.Settings = self.obj.Document.addObject('Spreadsheet::Sheet', 'Settings')
self.obj.Settings.set('A2', translate('PathSettings', 'Tool Rapid Speeds'))
self.createSetting(3, Default.HorizRapid, '0 mm/s', translate('PathSettings', 'Horizontal'), translate('PathSettings', 'Default speed for horizzontal rapid moves.'))
self.createSetting(4, Default.VertRapid, '0 mm/s', translate('PathSettings', 'Vertical'), translate('PathSettings', 'Default speed for vertical rapid moves.'))
self.obj.Settings.set('A6', translate('PathSettings', 'Operation Heights'))
self.createSetting(7, Default.SafeHeight, '3 mm', translate('PathSettings', 'Safe Height'), translate('PathSettings', 'Default value added to StartDepth used for the safe height.'))
self.createSetting(8, Default.ClearanceHeight, '5 mm', translate('PathSettings', 'Clearance Height'), translate('PathSettings', 'Default value added to StartDepth used for the clearance height.'))
self.obj.SetupSheet = self.obj.Document.addObject('Spreadsheet::Sheet', 'Setup_Sheet')
self.obj.SetupSheet.Label = translate('PathSetupSheet', 'Setup Sheet')
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.'))
self.obj.SetupSheet.set('A6', translate('PathSetupSheet', 'Operation Heights'))
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.Settings.getCellFromAlias(name)
cell = self.obj.SetupSheet.getCellFromAlias(name)
PathLog.debug("updateSetting(%s, %s): %s" % (name, value, cell))
self.obj.Settings.set(cell, value)
self.obj.SetupSheet.set(cell, value)
def createSetting(self, row, name, value, label, desc):
labelCell = "B%d" % row
valueCell = "C%d" % row
descCell = "D%d" % row
PathLog.debug("createSetting(%d, %s, %s): %s" % (row, name, value, valueCell))
self.obj.Settings.set(labelCell, label)
self.obj.Settings.set(valueCell, value)
self.obj.Settings.setAlias(valueCell, name)
self.obj.Settings.set(descCell, desc)
self.obj.SetupSheet.set(labelCell, label)
self.obj.SetupSheet.set(valueCell, value)
self.obj.SetupSheet.setAlias(valueCell, name)
self.obj.SetupSheet.set(descCell, desc)
def setFromTemplate(self, attrs):
if attrs.get(Default.VertRapid):
@@ -89,10 +90,10 @@ class Settings:
def templateAttributes(self, includeRapids, includeHeights):
attrs = {}
if includeRapids:
attrs[Default.VertRapid] = self.obj.Settings.DefaultVertRapid.UserString
attrs[Default.HorizRapid] = self.obj.Settings.DefaultHorizRapid.UserString
attrs[Default.VertRapid] = self.obj.SetupSheet.DefaultVertRapid.UserString
attrs[Default.HorizRapid] = self.obj.SetupSheet.DefaultHorizRapid.UserString
if includeHeights:
attrs[Default.SafeHeight] = self.obj.Settings.DefaultSafeHeight.UserString
attrs[Default.ClearanceHeight] = self.obj.Settings.DefaultClearanceHeight.UserString
attrs[Default.SafeHeight] = self.obj.SetupSheet.DefaultSafeHeight.UserString
attrs[Default.ClearanceHeight] = self.obj.SetupSheet.DefaultClearanceHeight.UserString
return attrs