Add extra_length to Finger Joint Settings
to allow extending the finger joints so burn marks can be ground off. Thanks to all who have been pushing for this feature! Resolves: #270
This commit is contained in:
parent
c4038696f1
commit
a364f603a8
|
@ -680,7 +680,7 @@ Values:
|
||||||
* width : 1.0 : width of finger holes (multiples of thickness)
|
* width : 1.0 : width of finger holes (multiples of thickness)
|
||||||
* edge_width : 1.0 : space below holes of FingerHoleEdge (multiples of thickness)
|
* edge_width : 1.0 : space below holes of FingerHoleEdge (multiples of thickness)
|
||||||
* play : 0.0 : extra space to allow finger move in and out (multiples of thickness)
|
* play : 0.0 : extra space to allow finger move in and out (multiples of thickness)
|
||||||
|
* extra_length : 0.0 : extra material to grind away burn marks (multiples of thickness)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
absolute_params = {
|
absolute_params = {
|
||||||
|
@ -695,6 +695,7 @@ Values:
|
||||||
"width": 1.0,
|
"width": 1.0,
|
||||||
"edge_width": 1.0,
|
"edge_width": 1.0,
|
||||||
"play" : 0.0,
|
"play" : 0.0,
|
||||||
|
"extra_length" : 0.0,
|
||||||
}
|
}
|
||||||
|
|
||||||
def checkValues(self):
|
def checkValues(self):
|
||||||
|
@ -727,18 +728,21 @@ class FingerJointBase:
|
||||||
return fingers, leftover
|
return fingers, leftover
|
||||||
|
|
||||||
def fingerLength(self, angle):
|
def fingerLength(self, angle):
|
||||||
if angle >=90:
|
# sharp corners
|
||||||
return self.settings.thickness, 0
|
if angle >=90 or angle <= -90:
|
||||||
|
return self.settings.thickness + self.settings.extra_length, 0
|
||||||
|
|
||||||
|
# inner blunt corners
|
||||||
if angle < 0:
|
if angle < 0:
|
||||||
return math.sin(math.radians(-angle)) * self.settings.thickness, 0
|
return (math.sin(math.radians(-angle)) * self.settings.thickness +
|
||||||
|
self.settings.extra_length), 0
|
||||||
|
|
||||||
# 0 to 90
|
# 0 to 90 (blunt corners)
|
||||||
a = 90 - (180-angle) / 2.0
|
a = 90 - (180-angle) / 2.0
|
||||||
fingerlength = self.settings.thickness * math.tan(math.radians(a))
|
fingerlength = self.settings.thickness * math.tan(math.radians(a))
|
||||||
b = 90-2*a
|
b = 90-2*a
|
||||||
spacerecess = -math.sin(math.radians(b)) * fingerlength
|
spacerecess = -math.sin(math.radians(b)) * fingerlength
|
||||||
return fingerlength, spacerecess
|
return fingerlength + self.settings.extra_length, spacerecess
|
||||||
|
|
||||||
class FingerJointEdge(BaseEdge, FingerJointBase):
|
class FingerJointEdge(BaseEdge, FingerJointBase):
|
||||||
"""Finger joint edge """
|
"""Finger joint edge """
|
||||||
|
|
|
@ -186,6 +186,9 @@ Finger Joint Settings
|
||||||
style
|
style
|
||||||
how finger joints should look like. There may be more styles to choose from in the future.
|
how finger joints should look like. There may be more styles to choose from in the future.
|
||||||
|
|
||||||
|
extra_length
|
||||||
|
Make the outset part of the finger joint longer to allow grinding off burn marks. Note that this may not be great for non 90° joints where the corner is butted against the opposing cutout.
|
||||||
|
|
||||||
Stackable Edge Settings
|
Stackable Edge Settings
|
||||||
.......................
|
.......................
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue