StorageShelf: Add retainer wall

This patch does not add finger joints to the vertical walls to attach the
retainer walls as the walls are likely to be to small to be able to make use
of them. In hte long run they should be added, though.
This commit is contained in:
Florian Festi 2019-11-09 16:08:17 +01:00
parent f4ad75c5ad
commit 71711baa1a
1 changed files with 17 additions and 3 deletions

View File

@ -29,6 +29,10 @@ class StorageShelf(_TopEdge):
roundedtriangle={"outset" : 1}) roundedtriangle={"outset" : 1})
self.buildArgParser("x", "sy", "sh", "outside", "bottom_edge", self.buildArgParser("x", "sy", "sh", "outside", "bottom_edge",
"top_edge") "top_edge")
self.argparser.add_argument(
"--retainer", action="store", type=float, default=0.0,
help="height of wall atthe front edges")
def ySlots(self): def ySlots(self):
@ -86,12 +90,16 @@ class StorageShelf(_TopEdge):
self.ctx.save() self.ctx.save()
# outer walls # outer walls
# XXX retainer
self.rectangularWall(x, h, [b, "F", t1, "e"], callback=[None, self.hHoles, ], move="up") self.rectangularWall(x, h, [b, "F", t1, "e"], callback=[None, self.hHoles, ], move="up")
self.rectangularWall(x, h, [b, "e", t3, "F"], callback=[None, self.hHoles, ], move="up") self.rectangularWall(x, h, [b, "e", t3, "F"], callback=[None, self.hHoles, ], move="up")
# floor # floor
if b != "e": if b != "e":
self.rectangularWall(x, y, "fffe", callback=[None, self.yHoles], move="up") e = "fffe"
if self.retainer:
e = "ffff"
self.rectangularWall(x, y, e, callback=[None, self.yHoles], move="up")
# inner walls # inner walls
@ -99,6 +107,9 @@ class StorageShelf(_TopEdge):
for i in range(len(self.sh) - 1): for i in range(len(self.sh) - 1):
e = ["f", edges.SlottedEdge(self, self.sy[::-1], "f", slots=0.5 * x), "f", "e"] e = ["f", edges.SlottedEdge(self, self.sy[::-1], "f", slots=0.5 * x), "f", "e"]
if self.retainer:
e[3] = "f"
self.rectangularWall(x, y, e, move="up") self.rectangularWall(x, y, e, move="up")
# top / lid # top / lid
@ -118,6 +129,7 @@ class StorageShelf(_TopEdge):
# inner walls # inner walls
for i in range(len(self.sy) - 1): for i in range(len(self.sy) - 1):
# XXX retainer
e = [be, edges.SlottedEdge(self, self.sh, "e", slots=0.5 * x), e = [be, edges.SlottedEdge(self, self.sh, "e", slots=0.5 * x),
"e", "f"] "e", "f"]
if self.closedtop: if self.closedtop:
@ -125,5 +137,7 @@ class StorageShelf(_TopEdge):
self.rectangularWall(x, h, e, move="up") self.rectangularWall(x, h, e, move="up")
if self.retainer:
for i in range(len(self.sh)):
# XXX finger holes, F edges, left and right
self.rectangularWall(y, self.retainer, "FEeE", move="up")