edges: code style
This commit is contained in:
parent
7cdb8749bf
commit
2a044e7829
|
@ -57,6 +57,7 @@ def argparseSections(s):
|
|||
|
||||
return result
|
||||
|
||||
|
||||
def getDescriptions():
|
||||
d = {edge.char: edge.description for edge in globals().values()
|
||||
if inspect.isclass(edge) and issubclass(edge, BaseEdge)
|
||||
|
@ -285,6 +286,7 @@ class Settings:
|
|||
return self.values[name]
|
||||
raise AttributeError
|
||||
|
||||
|
||||
#############################################################################
|
||||
### Edges
|
||||
#############################################################################
|
||||
|
@ -367,6 +369,7 @@ class OutSetEdge(Edge):
|
|||
def startwidth(self):
|
||||
return self.boxes.thickness
|
||||
|
||||
|
||||
#############################################################################
|
||||
#### MountingEdge
|
||||
#############################################################################
|
||||
|
@ -544,7 +547,6 @@ class GroovedEdgeBase(BaseEdge):
|
|||
def is_inverse(self):
|
||||
return self.settings.inverse != self.inverse
|
||||
|
||||
|
||||
def groove_arc(self, width, angle=90, inv=-1.0):
|
||||
side_length = width / math.sin(math.radians(angle)) / 2
|
||||
self.corner(inv * -angle)
|
||||
|
@ -552,7 +554,6 @@ class GroovedEdgeBase(BaseEdge):
|
|||
self.corner(inv * angle, side_length)
|
||||
self.corner(inv * -angle)
|
||||
|
||||
|
||||
def groove_soft_arc(self, width, angle=60, inv=-1.0):
|
||||
side_length = width / math.sin(math.radians(angle)) / 4
|
||||
self.corner(inv * -angle, side_length)
|
||||
|
@ -560,7 +561,6 @@ class GroovedEdgeBase(BaseEdge):
|
|||
self.corner(inv * angle, side_length)
|
||||
self.corner(inv * -angle, side_length)
|
||||
|
||||
|
||||
def groove_triangle(self, width, angle=45, inv=-1.0):
|
||||
side_length = width / math.cos(math.radians(angle)) / 2
|
||||
self.corner(inv * -angle)
|
||||
|
@ -569,7 +569,6 @@ class GroovedEdgeBase(BaseEdge):
|
|||
self.edge(side_length)
|
||||
self.corner(inv * -angle)
|
||||
|
||||
|
||||
def __call__(self, length, **kw):
|
||||
if length == 0.0:
|
||||
return
|
||||
|
@ -674,6 +673,7 @@ Values:
|
|||
edges = [GrippingEdge(boxes, self)]
|
||||
return self._edgeObjects(edges, boxes, chars, add)
|
||||
|
||||
|
||||
class GrippingEdge(BaseEdge):
|
||||
description = """Corrugated edge useful as an gipping area"""
|
||||
char = 'g'
|
||||
|
@ -867,6 +867,7 @@ Values:
|
|||
]
|
||||
return self._edgeObjects(edges, boxes, chars, add)
|
||||
|
||||
|
||||
class FingerJointBase:
|
||||
|
||||
def calcFingers(self, length, bedBolts):
|
||||
|
@ -905,6 +906,7 @@ class FingerJointBase:
|
|||
spacerecess = -math.sin(math.radians(b)) * fingerlength
|
||||
return fingerlength + self.settings.extra_length, spacerecess
|
||||
|
||||
|
||||
class FingerJointEdge(BaseEdge, FingerJointBase):
|
||||
"""Finger joint edge """
|
||||
char = 'f'
|
||||
|
@ -1063,6 +1065,7 @@ class FingerHoles(FingerJointBase):
|
|||
self.boxes.rectangularHole(pos + 0.5 * f, 0,
|
||||
f + p, self.settings.width + p)
|
||||
|
||||
|
||||
class FingerHoleEdge(BaseEdge):
|
||||
"""Edge with holes for a parallel finger joint"""
|
||||
char = 'h'
|
||||
|
@ -1101,6 +1104,7 @@ class FingerHoleEdge(BaseEdge):
|
|||
else:
|
||||
return 0
|
||||
|
||||
|
||||
class CrossingFingerHoleEdge(Edge):
|
||||
"""Edge with holes for finger joints 90° above"""
|
||||
|
||||
|
@ -1121,6 +1125,7 @@ class CrossingFingerHoleEdge(Edge):
|
|||
def startwidth(self):
|
||||
return self.outset
|
||||
|
||||
|
||||
#############################################################################
|
||||
#### Stackable Joints
|
||||
#############################################################################
|
||||
|
@ -1169,6 +1174,7 @@ Values:
|
|||
]
|
||||
return self._edgeObjects(edges, boxes, chars, add)
|
||||
|
||||
|
||||
class StackableBaseEdge(BaseEdge):
|
||||
"""Edge for having stackable Boxes. The Edge creates feet on the bottom
|
||||
and has matching recesses on the top corners."""
|
||||
|
@ -1218,6 +1224,7 @@ class StackableBaseEdge(BaseEdge):
|
|||
else:
|
||||
return self.settings.height
|
||||
|
||||
|
||||
class StackableEdge(StackableBaseEdge):
|
||||
"""Edge for having stackable Boxes. The Edge creates feet on the bottom
|
||||
and has matching recesses on the top corners."""
|
||||
|
@ -1233,11 +1240,13 @@ class StackableEdge(StackableBaseEdge):
|
|||
length, 0)
|
||||
super().__call__(length, **kw)
|
||||
|
||||
|
||||
class StackableEdgeTop(StackableBaseEdge):
|
||||
char = "S"
|
||||
description = "Stackable (top)"
|
||||
bottom = False
|
||||
|
||||
|
||||
class StackableFeet(StackableBaseEdge):
|
||||
char = "š"
|
||||
description = "Stackable feet (bottom)"
|
||||
|
@ -1245,6 +1254,7 @@ class StackableFeet(StackableBaseEdge):
|
|||
def _height(self):
|
||||
return self.settings.height
|
||||
|
||||
|
||||
class StackableHoleEdgeTop(StackableBaseEdge):
|
||||
char = "Š"
|
||||
description = "Stackable edge with finger holes (top)"
|
||||
|
@ -1261,6 +1271,7 @@ class StackableHoleEdgeTop(StackableBaseEdge):
|
|||
length, 0)
|
||||
super().__call__(length, **kw)
|
||||
|
||||
|
||||
#############################################################################
|
||||
#### Hinges
|
||||
#############################################################################
|
||||
|
@ -1311,6 +1322,7 @@ Values:
|
|||
]
|
||||
return self._edgeObjects(edges, boxes, chars, add)
|
||||
|
||||
|
||||
class Hinge(BaseEdge):
|
||||
char = 'i'
|
||||
description = "Straight edge with hinge eye"
|
||||
|
@ -1526,6 +1538,7 @@ class HingePin(BaseEdge):
|
|||
self.edge(l - plen - glen, tabs=2)
|
||||
getattr(self, self.settings.style, self.outset)(True)
|
||||
|
||||
|
||||
#############################################################################
|
||||
#### Chest Hinge
|
||||
#############################################################################
|
||||
|
@ -1574,8 +1587,8 @@ Values:
|
|||
]
|
||||
return self._edgeObjects(edges, boxes, chars, add)
|
||||
|
||||
class ChestHinge(BaseEdge):
|
||||
|
||||
class ChestHinge(BaseEdge):
|
||||
description = "Edge with chest hinge"
|
||||
|
||||
char = "o"
|
||||
|
@ -1631,6 +1644,7 @@ class ChestHinge(BaseEdge):
|
|||
return 0
|
||||
return self.settings.pin_height + self.settings.hinge_strength
|
||||
|
||||
|
||||
class ChestHingeTop(ChestHinge):
|
||||
"""Edge above a chest hinge"""
|
||||
|
||||
|
@ -1681,8 +1695,8 @@ class ChestHingeTop(ChestHinge):
|
|||
else:
|
||||
return 1 * (self.settings.play + self.settings.pin_height + self.settings.hinge_strength)
|
||||
|
||||
class ChestHingePin(BaseEdge):
|
||||
|
||||
class ChestHingePin(BaseEdge):
|
||||
description = "Edge with pins for an chest hinge"
|
||||
|
||||
char = "q"
|
||||
|
@ -1710,7 +1724,6 @@ class ChestHingePin(BaseEdge):
|
|||
|
||||
|
||||
class ChestHingeFront(Edge):
|
||||
|
||||
description = "Edge opposing a chest hinge"
|
||||
|
||||
char = "Q"
|
||||
|
@ -1718,6 +1731,7 @@ class ChestHingeFront(Edge):
|
|||
def startwidth(self):
|
||||
return self.settings.pin_height + self.settings.hinge_strength
|
||||
|
||||
|
||||
#############################################################################
|
||||
#### Cabinet Hinge
|
||||
#############################################################################
|
||||
|
@ -1762,6 +1776,7 @@ Values:
|
|||
e.char = c
|
||||
return self._edgeObjects(edges, boxes, chars, add)
|
||||
|
||||
|
||||
class CabinetHingeEdge(BaseEdge):
|
||||
"""Edge with cabinet hinges"""
|
||||
|
||||
|
@ -1777,7 +1792,6 @@ class CabinetHingeEdge(BaseEdge):
|
|||
def startwidth(self):
|
||||
return self.settings.thickness if self.top and self.angled else 0.0
|
||||
|
||||
|
||||
def __poly(self):
|
||||
n = self.settings.eyes_per_hinge
|
||||
p = self.settings.play
|
||||
|
@ -1909,6 +1923,7 @@ class CabinetHingeEdge(BaseEdge):
|
|||
|
||||
self.move(th, tw, move, label="hinges")
|
||||
|
||||
|
||||
#############################################################################
|
||||
#### Slide-on lid
|
||||
#############################################################################
|
||||
|
@ -1953,6 +1968,7 @@ Values:
|
|||
]
|
||||
return self._edgeObjects(edges, boxes, chars, add)
|
||||
|
||||
|
||||
class LidEdge(FingerJointEdge):
|
||||
char = "l"
|
||||
description = "Edge for slide on lid (back)"
|
||||
|
@ -1966,6 +1982,7 @@ class LidEdge(FingerJointEdge):
|
|||
else:
|
||||
super().__call__(length)
|
||||
|
||||
|
||||
class LidHoleEdge(FingerHoleEdge):
|
||||
char = "L"
|
||||
description = "Edge for slide on lid (box back)"
|
||||
|
@ -1979,6 +1996,7 @@ class LidHoleEdge(FingerHoleEdge):
|
|||
else:
|
||||
super().__call__(length)
|
||||
|
||||
|
||||
class LidRight(BaseEdge):
|
||||
char = "n"
|
||||
description = "Edge for slide on lid (right)"
|
||||
|
@ -2029,11 +2047,13 @@ class LidRight(BaseEdge):
|
|||
else:
|
||||
return 0.0
|
||||
|
||||
|
||||
class LidLeft(LidRight):
|
||||
char = "m"
|
||||
description = "Edge for slide on lid (left)"
|
||||
rightside = False
|
||||
|
||||
|
||||
class LidSideRight(BaseEdge):
|
||||
char = "N"
|
||||
description = "Edge for slide on lid (box right)"
|
||||
|
@ -2082,11 +2102,13 @@ class LidSideRight(BaseEdge):
|
|||
def margin(self):
|
||||
return self.boxes.thickness + self.settings.edge_width + self.settings.play / 2 if not self.rightside else 0.0
|
||||
|
||||
|
||||
class LidSideLeft(LidSideRight):
|
||||
char = "M"
|
||||
description = "Edge for slide on lid (box left)"
|
||||
rightside = False
|
||||
|
||||
|
||||
#############################################################################
|
||||
#### Click Joints
|
||||
#############################################################################
|
||||
|
@ -2119,6 +2141,7 @@ Values:
|
|||
ClickEdge(boxes, self)]
|
||||
return self._edgeObjects(edges, boxes, chars, add)
|
||||
|
||||
|
||||
class ClickConnector(BaseEdge):
|
||||
char = "c"
|
||||
description = "Click on (bottom side)"
|
||||
|
@ -2266,6 +2289,7 @@ Values:
|
|||
DoveTailJointCounterPart(boxes, self)]
|
||||
return self._edgeObjects(edges, boxes, chars, add)
|
||||
|
||||
|
||||
class DoveTailJoint(BaseEdge):
|
||||
"""Edge with dove tail joints """
|
||||
|
||||
|
@ -2357,6 +2381,7 @@ Values:
|
|||
if self.width < 0.1:
|
||||
raise ValueError("Flex Settings: width parameter must be > 0.1mm")
|
||||
|
||||
|
||||
class FlexEdge(BaseEdge):
|
||||
"""Edge with flex cuts - use straight edge for the opposing side"""
|
||||
char = 'X'
|
||||
|
@ -2411,6 +2436,7 @@ class FlexEdge(BaseEdge):
|
|||
self.ctx.line_to(x, 0)
|
||||
self.ctx.translate(*self.ctx.get_current_point())
|
||||
|
||||
|
||||
class GearSettings(Settings):
|
||||
"""Settings for rack (and pinion) edge
|
||||
Values:
|
||||
|
@ -2431,8 +2457,8 @@ Values:
|
|||
|
||||
relative_params = {}
|
||||
|
||||
class RackEdge(BaseEdge):
|
||||
|
||||
class RackEdge(BaseEdge):
|
||||
char = "R"
|
||||
|
||||
description = "Rack (and pinion) Edge"
|
||||
|
@ -2457,6 +2483,7 @@ class RackEdge(BaseEdge):
|
|||
def margin(self):
|
||||
return self.settings.dimension * 1.1
|
||||
|
||||
|
||||
class RoundedTriangleEdgeSettings(Settings):
|
||||
"""Settings for RoundedTriangleEdge
|
||||
Values:
|
||||
|
@ -2488,11 +2515,13 @@ Values:
|
|||
RoundedTriangleFingerHolesEdge(boxes, self)]
|
||||
return self._edgeObjects(edges, boxes, chars, add)
|
||||
|
||||
|
||||
class RoundedTriangleEdge(Edge):
|
||||
"""Makes an 'edge' with a rounded triangular bumpout and
|
||||
optional hole"""
|
||||
description = "Triangle for handle"
|
||||
char = "t"
|
||||
|
||||
def __call__(self, length, **kw):
|
||||
length += 2 * self.settings.outset
|
||||
r = self.settings.radius
|
||||
|
@ -2525,8 +2554,8 @@ class RoundedTriangleEdge(Edge):
|
|||
def margin(self):
|
||||
return self.settings.height + self.settings.radius
|
||||
|
||||
class RoundedTriangleFingerHolesEdge(RoundedTriangleEdge):
|
||||
|
||||
class RoundedTriangleFingerHolesEdge(RoundedTriangleEdge):
|
||||
char = "T"
|
||||
|
||||
def startwidth(self):
|
||||
|
@ -2572,6 +2601,7 @@ Values:
|
|||
HandleHoleEdge(boxes, self)]
|
||||
return self._edgeObjects(edges, boxes, chars, add)
|
||||
|
||||
|
||||
# inspiration came from https://www.thingiverse.com/thing:327393
|
||||
|
||||
class HandleEdge(Edge):
|
||||
|
@ -2631,6 +2661,7 @@ class HandleEdge(Edge):
|
|||
def margin(self):
|
||||
return self.settings.height
|
||||
|
||||
|
||||
class HandleHoleEdge(HandleEdge):
|
||||
"""Extends an 'edge' by adding a rounded bumpout with optional holes and holes for parallel finger joint"""
|
||||
description = "Handle with holes for parallel finger joint"
|
||||
|
|
Loading…
Reference in New Issue