From 71711baa1a2427638cf91732ca3c0614208162be Mon Sep 17 00:00:00 2001 From: Florian Festi Date: Sat, 9 Nov 2019 16:08:17 +0100 Subject: [PATCH] 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. --- boxes/generators/storageshelf.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/boxes/generators/storageshelf.py b/boxes/generators/storageshelf.py index 2d2d412..ac51ac0 100644 --- a/boxes/generators/storageshelf.py +++ b/boxes/generators/storageshelf.py @@ -29,6 +29,10 @@ class StorageShelf(_TopEdge): roundedtriangle={"outset" : 1}) self.buildArgParser("x", "sy", "sh", "outside", "bottom_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): @@ -86,12 +90,16 @@ class StorageShelf(_TopEdge): self.ctx.save() # outer walls + # XXX retainer 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") # floor 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 @@ -99,6 +107,9 @@ class StorageShelf(_TopEdge): for i in range(len(self.sh) - 1): 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") # top / lid @@ -118,6 +129,7 @@ class StorageShelf(_TopEdge): # inner walls for i in range(len(self.sy) - 1): + # XXX retainer e = [be, edges.SlottedEdge(self, self.sh, "e", slots=0.5 * x), "e", "f"] if self.closedtop: @@ -125,5 +137,7 @@ class StorageShelf(_TopEdge): 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")