diff --git a/src/Mod/Path/PathScripts/PathAreaOp.py b/src/Mod/Path/PathScripts/PathAreaOp.py index c5880a8381..a1501ade22 100644 --- a/src/Mod/Path/PathScripts/PathAreaOp.py +++ b/src/Mod/Path/PathScripts/PathAreaOp.py @@ -140,8 +140,8 @@ class ObjectOp(PathOp.ObjectOp): '''opSetDefaultValues(obj) ... base implementation, do not overwrite. The base implementation sets the depths and heights based on the areaOpShapeForDepths() return value. - Do not overwrite, overwrite areaOpSetDefaultValues(obj) instead.''' - PathLog.debug("opSetDefaultValues(%s)" % (obj.Label)) + Do not overwrite, overwrite areaOpSetDefaultValues(obj, job) instead.''' + PathLog.debug("opSetDefaultValues(%s, %s)" % (obj.Label, job.Label)) if PathOp.FeatureDepths & self.opFeatures(obj): try: shape = self.areaOpShapeForDepths(obj) @@ -156,10 +156,10 @@ class ObjectOp(PathOp.ObjectOp): obj.OpStartDepth = 1.0 obj.OpFinalDepth = 0.0 - self.areaOpSetDefaultValues(obj) + self.areaOpSetDefaultValues(obj, job) - def areaOpSetDefaultValues(self, obj): - '''areaOpSetDefaultValues(obj) ... overwrite to set initial values of operation specific properties. + def areaOpSetDefaultValues(self, obj, job): + '''areaOpSetDefaultValues(obj, job) ... overwrite to set initial values of operation specific properties. Can safely be overwritten by subclasses.''' pass diff --git a/src/Mod/Path/PathScripts/PathChamfer.py b/src/Mod/Path/PathScripts/PathChamfer.py index 4e35c74ee7..d8778771bb 100644 --- a/src/Mod/Path/PathScripts/PathChamfer.py +++ b/src/Mod/Path/PathScripts/PathChamfer.py @@ -113,8 +113,8 @@ class ObjectChamfer(PathEngraveBase.ObjectOp): '''The chamfer op can only deal with features of the base model, all others are rejected.''' return base != self.baseobject - def opSetDefaultValues(self, obj): - PathLog.track(obj.Label) + def opSetDefaultValues(self, obj, job): + PathLog.track(obj.Label, job.Label) obj.Width = '1 mm' obj.ExtraDepth = '0.1 mm' obj.Join = 'Round' diff --git a/src/Mod/Path/PathScripts/PathDrilling.py b/src/Mod/Path/PathScripts/PathDrilling.py index 99b1bc1b53..4a3a872c19 100644 --- a/src/Mod/Path/PathScripts/PathDrilling.py +++ b/src/Mod/Path/PathScripts/PathDrilling.py @@ -116,8 +116,8 @@ class ObjectDrilling(PathCircularHoleBase.ObjectOp): self.commandlist.append(Path.Command('G80')) - def opSetDefaultValues(self, obj): - '''opSetDefaultValues(obj) ... set default value for RetractHeight''' + def opSetDefaultValues(self, obj, job): + '''opSetDefaultValues(obj, job) ... set default value for RetractHeight''' obj.RetractHeight = 10 def Create(name): diff --git a/src/Mod/Path/PathScripts/PathEngrave.py b/src/Mod/Path/PathScripts/PathEngrave.py index 8240c56dfa..b855fdb101 100644 --- a/src/Mod/Path/PathScripts/PathEngrave.py +++ b/src/Mod/Path/PathScripts/PathEngrave.py @@ -147,7 +147,8 @@ class ObjectEngrave(PathEngraveBase.ObjectOp): def opUpdateDepths(self, obj, ignoreErrors=False): '''updateDepths(obj) ... engraving is always done at the top most z-value''' - self.opSetDefaultValues(obj) + job = PathUtils.findParentJob(obj) + self.opSetDefaultValues(obj, job) def Create(name): '''Create(name) ... Creates and returns an Engrave operation.''' diff --git a/src/Mod/Path/PathScripts/PathEngraveBase.py b/src/Mod/Path/PathScripts/PathEngraveBase.py index 3fa66be937..583fa2b33b 100644 --- a/src/Mod/Path/PathScripts/PathEngraveBase.py +++ b/src/Mod/Path/PathScripts/PathEngraveBase.py @@ -150,10 +150,9 @@ class ObjectOp(PathOp.ObjectOp): params.update({'Z': z, 'F': self.horizFeed}) self.commandlist.append(Path.Command(cmd.Name, params)) - def opSetDefaultValues(self, obj): - '''opSetDefaultValues(obj) ... set depths for engraving''' + def opSetDefaultValues(self, obj, job): + '''opSetDefaultValues(obj, job) ... set depths for engraving''' if PathOp.FeatureDepths & self.opFeatures(obj): - job = PathUtils.findParentJob(obj) if job and job.Base: bb = job.Base.Shape.BoundBox obj.OpStartDepth = bb.ZMax diff --git a/src/Mod/Path/PathScripts/PathHelix.py b/src/Mod/Path/PathScripts/PathHelix.py index 535a2efb61..367f83927e 100644 --- a/src/Mod/Path/PathScripts/PathHelix.py +++ b/src/Mod/Path/PathScripts/PathHelix.py @@ -187,7 +187,7 @@ class ObjectHelix(PathCircularHoleBase.ObjectOp): return out - def opSetDefaultValues(self, obj): + def opSetDefaultValues(self, obj, job): obj.Direction = "CW" obj.StartSide = "Inside" obj.StepOver = 100 diff --git a/src/Mod/Path/PathScripts/PathMillFace.py b/src/Mod/Path/PathScripts/PathMillFace.py index 71d6188e87..fb3f605ef3 100644 --- a/src/Mod/Path/PathScripts/PathMillFace.py +++ b/src/Mod/Path/PathScripts/PathMillFace.py @@ -124,13 +124,11 @@ class ObjectFace(PathPocketBase.ObjectPocket): return [(env, False)] - def areaOpSetDefaultValues(self, obj): - '''areaOpSetDefaultValues(obj) ... initialize mill facing properties''' + def areaOpSetDefaultValues(self, obj, job): + '''areaOpSetDefaultValues(obj, job) ... initialize mill facing properties''' obj.StepOver = 50 obj.ZigZagAngle = 45.0 - job = PathUtils.findParentJob(obj) - # need to overwrite the default depth calculations for facing if job and job.Base: obj.OpStartDepth = job.Stock.Shape.BoundBox.ZMax diff --git a/src/Mod/Path/PathScripts/PathOp.py b/src/Mod/Path/PathScripts/PathOp.py index aebbbd68d9..23e7320db9 100644 --- a/src/Mod/Path/PathScripts/PathOp.py +++ b/src/Mod/Path/PathScripts/PathOp.py @@ -236,8 +236,8 @@ class ObjectOp(object): Can safely be overwritten by subclasses.''' pass - def opSetDefaultValues(self, obj): - '''opSetDefaultValues(obj) ... overwrite to set initial default values. + def opSetDefaultValues(self, obj, job): + '''opSetDefaultValues(obj, job) ... overwrite to set initial default values. Called after the receiver has been fully created with all properties. Can safely be overwritten by subclasses.''' pass @@ -319,7 +319,7 @@ class ObjectOp(object): if FeatureStartPoint & features: obj.UseStartPoint = False - self.opSetDefaultValues(obj) + self.opSetDefaultValues(obj, job) obj.recompute() return True diff --git a/src/Mod/Path/PathScripts/PathPocket.py b/src/Mod/Path/PathScripts/PathPocket.py index 3c9f7b6f80..2441f150b2 100644 --- a/src/Mod/Path/PathScripts/PathPocket.py +++ b/src/Mod/Path/PathScripts/PathPocket.py @@ -88,8 +88,8 @@ class ObjectPocket(PathPocketBase.ObjectPocket): removalshapes = [(obj.removalshape, False)] return removalshapes - def areaOpSetDefaultValues(self, obj): - '''areaOpSetDefaultValues(obj) ... set default values''' + def areaOpSetDefaultValues(self, obj, job): + '''areaOpSetDefaultValues(obj, job) ... set default values''' obj.StepOver = 100 obj.ZigZagAngle = 45 diff --git a/src/Mod/Path/PathScripts/PathPocketShape.py b/src/Mod/Path/PathScripts/PathPocketShape.py index a5604489fb..321ad3eee1 100644 --- a/src/Mod/Path/PathScripts/PathPocketShape.py +++ b/src/Mod/Path/PathScripts/PathPocketShape.py @@ -147,11 +147,10 @@ class ObjectPocket(PathPocketBase.ObjectPocket): obj.removalshape = self.removalshapes[0][0] return self.removalshapes - def areaOpSetDefaultValues(self, obj): - '''areaOpSetDefaultValues(obj) ... set default values''' + def areaOpSetDefaultValues(self, obj, job): + '''areaOpSetDefaultValues(obj, job) ... set default values''' obj.StepOver = 100 obj.ZigZagAngle = 45 - job = PathUtils.findParentJob(obj) if job and job.Stock: bb = job.Stock.Shape.BoundBox obj.OpFinalDepth = bb.ZMin diff --git a/src/Mod/Path/PathScripts/PathProfileBase.py b/src/Mod/Path/PathScripts/PathProfileBase.py index 5262e27ff3..ba83b6e8c7 100644 --- a/src/Mod/Path/PathScripts/PathProfileBase.py +++ b/src/Mod/Path/PathScripts/PathProfileBase.py @@ -135,8 +135,8 @@ class ObjectProfile(PathAreaOp.ObjectOp): '''areaOpUseProjection(obj) ... returns True''' return True - def areaOpSetDefaultValues(self, obj): - '''areaOpSetDefaultValues(obj) ... sets default values. + def areaOpSetDefaultValues(self, obj, job): + '''areaOpSetDefaultValues(obj, job) ... sets default values. Do not overwrite.''' obj.Side = "Outside" obj.OffsetExtra = 0.0 diff --git a/src/Mod/Path/PathScripts/PathProfileContour.py b/src/Mod/Path/PathScripts/PathProfileContour.py index 1e46429a12..3eb2b0490c 100644 --- a/src/Mod/Path/PathScripts/PathProfileContour.py +++ b/src/Mod/Path/PathScripts/PathProfileContour.py @@ -73,9 +73,9 @@ class ObjectContour(PathProfileBase.ObjectProfile): def areaOpOnDocumentRestored(self, obj): obj.setEditorMode('Side', 2) # it's always outside - def areaOpSetDefaultValues(self, obj): - '''areaOpSetDefaultValues(obj) ... call super's implementation and set Side="Outside".''' - self.baseObject().areaOpSetDefaultValues(obj) + def areaOpSetDefaultValues(self, obj, job): + '''areaOpSetDefaultValues(obj, job) ... call super's implementation and set Side="Outside".''' + self.baseObject().areaOpSetDefaultValues(obj, job) obj.Side = 'Outside' def areaOpShapes(self, obj): diff --git a/src/Mod/Path/PathScripts/PathProfileFaces.py b/src/Mod/Path/PathScripts/PathProfileFaces.py index 8795bd9830..a3c4f2a26e 100644 --- a/src/Mod/Path/PathScripts/PathProfileFaces.py +++ b/src/Mod/Path/PathScripts/PathProfileFaces.py @@ -130,9 +130,9 @@ class ObjectProfile(PathProfileBase.ObjectProfile): PathLog.debug("%d shapes" % len(shapes)) return shapes - def areaOpSetDefaultValues(self, obj): - '''areaOpSetDefaultValues(obj) ... sets default values for hole, circle and perimeter processing.''' - self.baseObject().areaOpSetDefaultValues(obj) + def areaOpSetDefaultValues(self, obj, job): + '''areaOpSetDefaultValues(obj, job) ... sets default values for hole, circle and perimeter processing.''' + self.baseObject().areaOpSetDefaultValues(obj, job) obj.processHoles = False obj.processCircles = False diff --git a/src/Mod/Path/PathScripts/PathSurface.py b/src/Mod/Path/PathScripts/PathSurface.py index cf9b25fbd8..b324029440 100644 --- a/src/Mod/Path/PathScripts/PathSurface.py +++ b/src/Mod/Path/PathScripts/PathSurface.py @@ -308,13 +308,12 @@ class ObjectSurface(PathOp.ObjectOp): def pocketInvertExtraOffset(self): return True - def opSetDefaultValues(self, obj): - '''opSetDefaultValues(obj) ... initialize defauts''' + def opSetDefaultValues(self, obj, job): + '''opSetDefaultValues(obj, job) ... initialize defauts''' # obj.ZigZagAngle = 45.0 obj.StepOver = 50 # need to overwrite the default depth calculations for facing - job = PathUtils.findParentJob(obj) if job and job.Base: d = PathUtils.guessDepths(job.Base.Shape, None) obj.OpStartDepth = d.start_depth