Path: Fix InverseAngle feature

The `ReverseDirection` property is now hidden by default.  It should not be necessary due to recent implementation of `isFaceUp()` method.
This commit is contained in:
Russell Johnson
2020-08-02 13:19:58 -05:00
parent 015eb0421b
commit 32f82a9b5e
2 changed files with 20 additions and 11 deletions

View File

@@ -909,10 +909,11 @@ class ObjectOp(PathOp.ObjectOp):
elif axis == 'Y':
vect = FreeCAD.Vector(0, 1, 0)
if obj.InverseAngle is True:
angle = -1 * angle
if math.fabs(angle) == 0.0:
angle = 0.0
# Commented out to fix PocketShape InverseAngle rotation problem
# if obj.InverseAngle is True:
# angle = -1 * angle
# if math.fabs(angle) == 0.0:
# angle = 0.0
# Create a temporary clone of model for rotational use.
(clnBase, clnStock, tag) = self.cloneBaseAndStock(obj, base, angle, axis, subCount)
@@ -939,7 +940,7 @@ class ObjectOp(PathOp.ObjectOp):
clnStock.purgeTouched()
# Update property and angle values
obj.InverseAngle = True
obj.AttemptInverseAngle = False
# obj.AttemptInverseAngle = False
angle = -1 * angle
PathLog.debug(translate("Path", "Rotated to inverse angle."))

View File

@@ -299,13 +299,13 @@ class ObjectPocket(PathPocketBase.ObjectPocket):
self.setEditorProperties(obj)
def setEditorProperties(self, obj):
obj.setEditorMode('ReverseDirection', 2)
if obj.EnableRotation == 'Off':
obj.setEditorMode('ReverseDirection', 2)
obj.setEditorMode('InverseAngle', 2)
obj.setEditorMode('AttemptInverseAngle', 2)
obj.setEditorMode('LimitDepthToFace', 2)
else:
obj.setEditorMode('ReverseDirection', 0)
# obj.setEditorMode('ReverseDirection', 0)
obj.setEditorMode('InverseAngle', 0)
obj.setEditorMode('AttemptInverseAngle', 0)
obj.setEditorMode('LimitDepthToFace', 0)
@@ -446,6 +446,7 @@ class ObjectPocket(PathPocketBase.ObjectPocket):
for (base, subList) in obj.Base:
baseSubsTuples.append((base, subList, 0.0, 'X', stock))
else:
PathLog.debug('Rotation is active...')
for p in range(0, len(obj.Base)):
(base, subsList) = obj.Base[p]
isLoop = False
@@ -478,8 +479,10 @@ class ObjectPocket(PathPocketBase.ObjectPocket):
break
if rtn is False:
PathLog.debug(translate("Path", "Face appears misaligned after initial rotation."))
if obj.InverseAngle is False:
PathLog.debug(translate("Path", "Face appears misaligned after initial rotation.") + ' 1')
if obj.InverseAngle:
(clnBase, clnStock, angle) = self.applyInverseAngle(obj, clnBase, clnStock, axis, angle)
else:
if obj.AttemptInverseAngle is True:
(clnBase, clnStock, angle) = self.applyInverseAngle(obj, clnBase, clnStock, axis, angle)
else:
@@ -543,8 +546,13 @@ class ObjectPocket(PathPocketBase.ObjectPocket):
angle -= 180.0
if rtn is True:
PathLog.debug(translate("Path", "Face appears misaligned after initial rotation."))
if obj.InverseAngle is False:
PathLog.debug(translate("Path", "Face appears misaligned after initial rotation.") + ' 2')
if obj.InverseAngle:
(clnBase, clnStock, angle) = self.applyInverseAngle(obj, clnBase, clnStock, axis, angle)
if self.isFaceUp(clnBase, faceIA) is False:
PathLog.debug('isFaceUp is False')
angle += 180.0
else:
if obj.AttemptInverseAngle is True:
(clnBase, clnStock, angle) = self.applyInverseAngle(obj, clnBase, clnStock, axis, angle)
else: