diff --git a/Resources/panels/FlangeParameters.ui b/Resources/panels/FlangeParameters.ui
index 1c400ed..a2f20af 100644
--- a/Resources/panels/FlangeParameters.ui
+++ b/Resources/panels/FlangeParameters.ui
@@ -1408,6 +1408,26 @@ min-width: 28px;
+ -
+
+ Material Inside (90° legacy)
+
+
+
+ Icons:SheetMetal_WallPosMatIns.svg
+
+
+
+ -
+
+ Thickness Outside (legacy)
+
+
+
+ Icons:SheetMetal_WallPosThkOut.svg
+
+
+
diff --git a/SheetMetalCmd.py b/SheetMetalCmd.py
index dc56c0d..d158efe 100644
--- a/SheetMetalCmd.py
+++ b/SheetMetalCmd.py
@@ -1263,12 +1263,18 @@ def smBend(
if BendType == "Material Outside":
offset = 0.0
inside = False
- elif BendType == "Material Inside":
+ elif BendType == "Material Inside": # legacy mode for backwards compatibility
offset = -(thk + bendR)
inside = True
- elif BendType == "Thickness Outside":
+ elif BendType == "Thickness Outside": # legacy mode for backwards compatibility
offset = -bendR
inside = True
+ elif BendType == "Material Inside V2":
+ offset = -(thk + bendR) * abs(math.tan(math.radians(bendA * 0.5)))
+ inside = True
+ elif BendType == "Thickness Outside V2":
+ offset = -bendR * abs(math.tan(math.radians(bendA * 0.5)))
+ inside = True
elif BendType == "Offset":
if offset < 0.0:
inside = True
@@ -1278,14 +1284,14 @@ def smBend(
if LengthSpec == "Leg":
pass
elif LengthSpec == "Tangential":
- if bendA >= 90.0:
+ if bendA >= 90.0 or bendA <= -90.0:
extLen -= thk + bendR
else:
- extLen -= (bendR + thk) / math.tan(math.radians(90.0 - bendA / 2))
+ extLen -= (bendR + thk) / abs(math.tan(math.radians(90.0 - bendA / 2)))
elif LengthSpec == "Inner Sharp":
- extLen -= (bendR) / math.tan(math.radians(90.0 - bendA / 2))
+ extLen -= (bendR) / abs(math.tan(math.radians(90.0 - bendA / 2)))
elif LengthSpec == "Outer Sharp":
- extLen -= (bendR + thk) / math.tan(math.radians(90.0 - bendA / 2))
+ extLen -= (bendR + thk) / abs(math.tan(math.radians(90.0 - bendA / 2)))
nogaptrimedgelist = []
if not (sketches):
@@ -1781,7 +1787,9 @@ def addVerifyProperties(self, obj, refAngOffset=None, checkRefFace=False):
obj,
"BendType",
translate("App::Property", "Bend Type"),
- ["Material Outside", "Material Inside", "Thickness Outside", "Offset"],
+ ["Material Outside", "Material Inside V2", "Thickness Outside V2", "Offset",
+ # legacy modes
+ "Material Inside", "Thickness Outside"],
)
SheetMetalTools.smAddEnumProperty(
obj,