Skip to content

Commit

Permalink
NotesHolder: Add "f" as bottom edge
Browse files Browse the repository at this point in the history
Render "h" edges (finger holes) on the bottom to fit the fingers
  • Loading branch information
florianfesti committed Feb 3, 2024
1 parent c110cdd commit ad20aee
Showing 1 changed file with 24 additions and 8 deletions.
32 changes: 24 additions & 8 deletions boxes/generators/notesholder.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,26 @@

class USlotEdge(Edge):

def __init__(self, boxes, settings, edge="f"):
super().__init__(boxes, settings)
self.e = edge

def __call__(self, length, bedBolts=None, bedBoltSettings=None, **kw):
l = length
o = self.settings
d = length * (1-o/100) / 2
r = min(3*self.thickness, (l-2*d)/2)
self.edges["f"](d)
self.edges[self.e](d)
self.step(-self.edges[self.e].endwidth())
self.polyline(0, 90, 0, (-90, r), l-2*d-2*r, (-90, r), 0, 90)
self.edges["f"](d)
self.step(self.edges[self.e].startwidth())
self.edges[self.e](d)

def margin(self) -> float:
return self.edges["f"].margin()
return self.edges[self.e].margin()

def startwidth(self):
return self.edges[self.e].startwidth()

class HalfStackableEdge(edges.StackableEdge):

Expand Down Expand Up @@ -61,7 +70,12 @@ def __init__(self) -> None:
Boxes.__init__(self)
self.addSettingsArgs(edges.FingerJointSettings, surroundingspaces=1)
self.addSettingsArgs(edges.StackableSettings)
self.buildArgParser(sx="78", y=78, h=35, bottom_edge="s")
self.buildArgParser(sx="78*1", y=78, h=35)
self.argparser.add_argument(
"--bottom_edge", action="store",
type=ArgparseEdgeType("Fhsfe"), choices=list("Fhsfe"),
default="s",
help="edge type for bottom edge")
self.argparser.add_argument(
"--opening", action="store", type=float, default=40,
help="percent of front that's open")
Expand Down Expand Up @@ -134,16 +148,18 @@ def render(self):
self.rectangularWall(y, h, [b, "F", "e", "F"], move="up only")

if self.bottom_edge != "e":
outer_edge = "h" if self.bottom_edge == "f" else "f"
if self.opening == 0.0:
self.rectangularWall(x, y, ["f", "f", "f", "f"], move="up")
self.rectangularWall(x, y, [outer_edge] * 4, move="up")
else:
u_edge = USlotEdge(self, o)
u_edge = USlotEdge(self, o, outer_edge)
print([l for x in sx for l in (x, t)])
front = CompoundEdge(
self,
([u_edge, "e"]*len(sx))[:-1],
([u_edge, edges.OutSetEdge(self, self.edges[outer_edge].startwidth())]*len(sx))[:-1],
([l for x in sx for l in (x, t)])[:-1])
self.rectangularWall(x, y, [front, "f", "f", "f"],
self.rectangularWall(x, y,
[front, outer_edge, outer_edge, outer_edge],
callback=[self.fingerHoleCB(sx, y)],
move="up")
# innner walls
Expand Down

0 comments on commit ad20aee

Please sign in to comment.