Added automatic setting of operation values from the setup sheet during creation.

This commit is contained in:
Markus Lampert
2018-08-25 15:55:26 -07:00
parent ebe76319b8
commit 954771ccba
4 changed files with 26 additions and 8 deletions

View File

@@ -163,7 +163,10 @@ class ObjectOp(object):
self.initOperation(obj)
if not hasattr(obj, 'DoNotSetDefaultValues') or not obj.DoNotSetDefaultValues:
if self.setDefaultValues(obj):
job = self.setDefaultValues(obj)
if job:
job.SetupSheet.Proxy.setOperationProperties(obj, name)
obj.recompute()
obj.Proxy = self
def setEditorModes(self, obj, features):
@@ -290,7 +293,7 @@ class ObjectOp(object):
else:
obj.ToolController = PathUtils.findToolController(obj)
if not obj.ToolController:
return False
return None
obj.OpToolDiameter = obj.ToolController.Tool.Diameter
if FeatureDepths & features:
@@ -321,8 +324,7 @@ class ObjectOp(object):
obj.UseStartPoint = False
self.opSetDefaultValues(obj, job)
obj.recompute()
return True
return job
def _setBaseAndStock(self, obj, ignoreErrors=False):
job = PathUtils.findParentJob(obj)

View File

@@ -29,6 +29,7 @@ import PathScripts.PathLog as PathLog
import PathScripts.PathSetupSheetOpPrototype as PathSetupSheetOpPrototype
import PathScripts.PathUtil as PathUtil
import PySide
import traceback
__title__ = "Setup Sheet for a Job."
__author__ = "sliptonic (Brad Collette)"
@@ -37,7 +38,7 @@ __doc__ = "A container for all default values and job specific configuration val
_RegisteredOps = {}
if False:
if True:
PathLog.setLevel(PathLog.Level.DEBUG, PathLog.thisModule())
PathLog.trackModule()
else:
@@ -246,6 +247,18 @@ class SetupSheet:
break
return ops
def setOperationProperties(self, obj, opName):
PathLog.track(obj.Label, opName)
try:
op = _RegisteredOps[opName]
for prop in op.properties():
propName = OpPropertyName(opName, prop)
if hasattr(self.obj, propName):
setattr(obj, prop, getattr(self.obj, propName))
except Exception as exc:
PathLog.track(exc)
traceback.print_exc(exc)
pass
def Create(name = 'SetupSheet'):
obj = FreeCAD.ActiveDocument.addObject('App::FeaturePython', name)

View File

@@ -250,6 +250,7 @@ class TaskPanel:
self.rapidHorizontal.updateProperty()
def updateUI(self):
PathLog.track()
self.globalForm.startDepthExpr.setText( self.obj.StartDepthExpression)
self.globalForm.finalDepthExpr.setText( self.obj.FinalDepthExpression)
self.globalForm.stepDownExpr.setText( self.obj.StepDownExpression)
@@ -261,6 +262,7 @@ class TaskPanel:
self.rapidHorizontal.updateSpinBox()
def updateModel(self):
PathLog.track()
self.getFields()
self.updateUI()
FreeCAD.ActiveDocument.recompute()

View File

@@ -67,12 +67,13 @@ class Property(object):
return "Property"
def setupProperty(self, obj, name, category, value):
created = False
if not hasattr(obj, name):
obj.addProperty(self.propType, name, category, self.info)
self.initProperty(obj, name)
setattr(obj, name, value)
return True
return False
created = True
setattr(obj, name, value)
return created
def initProperty(self, obj, name):
pass