Added automatic setting of operation values from the setup sheet during creation.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user