From ece304bf1f4fb83615a0d5e3752dfba392575995 Mon Sep 17 00:00:00 2001 From: SuksAE <101243305+SuksAE@users.noreply.github.com> Date: Sat, 14 May 2022 10:35:58 +0200 Subject: [PATCH] Add labels to some generators --- boxes/Color.py | 14 ++++++--- boxes/edges.py | 6 ++-- boxes/generators/bintray.py | 16 +++++----- boxes/generators/storageshelf.py | 20 ++++++------ boxes/generators/trafficlight.py | 28 ++++++++--------- boxes/generators/ubox.py | 20 ++++++------ boxes/generators/universalbox.py | 16 +++++----- boxes/lids.py | 52 ++++++++++++++++---------------- boxes/parts.py | 6 ++-- 9 files changed, 91 insertions(+), 87 deletions(-) diff --git a/boxes/Color.py b/boxes/Color.py index d16940a..884c12b 100644 --- a/boxes/Color.py +++ b/boxes/Color.py @@ -1,12 +1,16 @@ class Color: - BLACK = [ 0.0, 0.0, 0.0 ] - BLUE = [ 0.0, 0.0, 1.0 ] - GREEN = [ 0.0, 1.0, 0.0 ] - RED = [ 1.0, 0.0, 0.0 ] - WHITE = [ 1.0, 1.0, 1.0 ] + BLACK = [ 0.0, 0.0, 0.0 ] + BLUE = [ 0.0, 0.0, 1.0 ] + GREEN = [ 0.0, 1.0, 0.0 ] + RED = [ 1.0, 0.0, 0.0 ] + CYAN = [ 0.0, 1.0, 1.0 ] + YELLOW = [ 1.0, 1.0, 0.0 ] + MAGENTA = [ 1.0, 0.0, 1.0 ] + WHITE = [ 1.0, 1.0, 1.0 ] # TODO: Make this configurable OUTER_CUT = BLACK INNER_CUT = BLUE ANNOTATIONS = RED ETCHING = GREEN + ETCHING_DEEP = CYAN diff --git a/boxes/edges.py b/boxes/edges.py index 97f67f3..7efad96 100644 --- a/boxes/edges.py +++ b/boxes/edges.py @@ -1608,7 +1608,7 @@ class CabinetHingeEdge(BaseEdge): th = 4*e+3*t+self.boxes.spacing tw = max(e, 2*t) * pairs - if self.move(tw, th, move, True): + if self.move(tw, th, move, True, label="hinges"): return if self.settings.style == "outside": @@ -1631,7 +1631,7 @@ class CabinetHingeEdge(BaseEdge): 90, t, 90, (ax+t)-e, -90, l-3*t, (90, e)) self.moveTo(2*max(e, 1.5*t) + self.boxes.spacing) - self.move(tw, th, move) + self.move(tw, th, move, label="hinges") return if e <= 2*t: @@ -1651,7 +1651,7 @@ class CabinetHingeEdge(BaseEdge): if i % 2: self.moveTo(2*max(e, 2*t) + 2*self.boxes.spacing) - self.move(th, tw, move) + self.move(th, tw, move, label="hinges") ############################################################################# #### Slide-on lid diff --git a/boxes/generators/bintray.py b/boxes/generators/bintray.py index 682ebd0..e0760a8 100644 --- a/boxes/generators/bintray.py +++ b/boxes/generators/bintray.py @@ -117,28 +117,28 @@ class BinTray(Boxes): # outer walls e = ["F", "f", edges.SlottedEdge(self, self.sx[::-1], "G"), "f"] - self.rectangularWall(x, h, e, callback=[self.xHoles], move="right") - self.rectangularWall(y, h, "FFbF", callback=[self.yHoles, ], move="up") - self.rectangularWall(y, h, "FFbF", callback=[self.yHoles, ]) - self.rectangularWall(x, h, "Ffef", callback=[self.xHoles, ], move="left") + self.rectangularWall(x, h, e, callback=[self.xHoles], move="right", label="bottom") + self.rectangularWall(y, h, "FFbF", callback=[self.yHoles, ], move="up", label="left") + self.rectangularWall(y, h, "FFbF", callback=[self.yHoles, ], label="right") + self.rectangularWall(x, h, "Ffef", callback=[self.xHoles, ], move="left", label="top") self.rectangularWall(y, h, "FFBF", move="up only") # floor - self.rectangularWall(x, y, "ffff", callback=[self.xSlots, self.ySlots],move="right") + self.rectangularWall(x, y, "ffff", callback=[self.xSlots, self.ySlots],move="right", label="back") # Inner walls for i in range(len(self.sx) - 1): e = [edges.SlottedEdge(self, self.sy, "f"), "f", "B", "f"] - self.rectangularWall(y, hi, e, move="up") + self.rectangularWall(y, hi, e, move="up", label="inner vertical " + str(i+1)) for i in range(len(self.sy) - 1): e = [edges.SlottedEdge(self, self.sx, "f", slots=0.5 * hi), "f", edges.SlottedEdge(self, self.sx[::-1], "G"), "f"] - self.rectangularWall(x, hi, e, move="up") + self.rectangularWall(x, hi, e, move="up", label="inner horizontal " + str(i+1)) # Front walls for i in range(len(self.sy)): e = [edges.SlottedEdge(self, self.sx, "g"), "F", "e", "F"] - self.rectangularWall(x, self.sy[i]*self.front*2**0.5, e, callback=[self.frontHoles(i)], move="up") + self.rectangularWall(x, self.sy[i]*self.front*2**0.5, e, callback=[self.frontHoles(i)], move="up", label="retainer " + str(i+1)) diff --git a/boxes/generators/storageshelf.py b/boxes/generators/storageshelf.py index 7cc30d4..96c226e 100644 --- a/boxes/generators/storageshelf.py +++ b/boxes/generators/storageshelf.py @@ -31,7 +31,7 @@ class StorageShelf(_TopEdge): "top_edge") self.argparser.add_argument( "--retainer", action="store", type=float, default=0.0, - help="height of wall atthe front edges") + help="height of retaining wall at the front edges") self.argparser.add_argument( "--retainer_hole_edge", action="store", type=boolarg, default=False, help="use finger hole edge for retainer walls") @@ -92,15 +92,15 @@ class StorageShelf(_TopEdge): # 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") + self.rectangularWall(x, h, [b, "F", t1, "e"], callback=[None, self.hHoles, ], move="up", label="left") + self.rectangularWall(x, h, [b, "e", t3, "F"], callback=[None, self.hHoles, ], move="up", label="right") # floor if b != "e": e = "fffe" if self.retainer: e = "ffff" - self.rectangularWall(x, y, e, callback=[None, self.yHoles], move="up") + self.rectangularWall(x, y, e, callback=[None, self.yHoles], move="up", label="bottom") # inner walls @@ -111,22 +111,22 @@ class StorageShelf(_TopEdge): if self.retainer: e[3] = "f" - self.rectangularWall(x, y, e, move="up") + self.rectangularWall(x, y, e, move="up", label="inner horizontal " + str(i+1)) # top / lid if self.closedtop: e = "FFFe" if self.top_edge == "f" else "fffe" - self.rectangularWall(x, y, e, callback=[None, self.yHoles, ], move="up") + self.rectangularWall(x, y, e, callback=[None, self.yHoles, ], move="up", label="top") else: self.drawLid(x, y, self.top_edge) self.ctx.restore() - self.rectangularWall(x, h, "ffff", move="right only") + self.rectangularWall(x, h, "ffff", move="right only", label="invisible") # y walls # outer walls - self.rectangularWall(y, h, [b, "f", t2, "f"], callback=[self.ySlots, self.hSlots,], move="up") + self.rectangularWall(y, h, [b, "f", t2, "f"], callback=[self.ySlots, self.hSlots,], move="up", label="back") # inner walls for i in range(len(self.sy) - 1): @@ -135,7 +135,7 @@ class StorageShelf(_TopEdge): "e", "f"] if self.closedtop: e = [be, edges.SlottedEdge(self, self.sh, "e", slots=0.5 * x),"f", "f"] - self.rectangularWall(x, h, e, move="up") + self.rectangularWall(x, h, e, move="up", label="inner vertical " + str(i+1)) if self.retainer: @@ -144,4 +144,4 @@ class StorageShelf(_TopEdge): e = "FEeE" if self.retainer_hole_edge or (i == 0 and b == "h"): e = "hEeE" - self.rectangularWall(y, self.retainer, e, move="up") + self.rectangularWall(y, self.retainer, e, move="up", label="retainer " + str(i+1)) diff --git a/boxes/generators/trafficlight.py b/boxes/generators/trafficlight.py index 2d9e4cf..2ba76ea 100644 --- a/boxes/generators/trafficlight.py +++ b/boxes/generators/trafficlight.py @@ -85,13 +85,13 @@ When turned by 90°, it can be also used to create a bottle holder.""" def frontCB(self): self.hole(self.h/2, self.h/2, self.h/2-self.thickness) - def wall(self, h1, h2, w, edges="ffef", callback=None, move=""): + def wall(self, h1, h2, w, edges="ffef", callback=None, move="", label = ""): edges = [self.edges.get(e, e) for e in edges] edges += edges # append for wrapping around overallwidth = w + edges[-1].spacing() + edges[1].spacing() overallheight = max(h1, h2) + edges[0].spacing() + edges[2].spacing() - if self.move(overallwidth, overallheight, move, before=True): + if self.move(overallwidth, overallheight, move, before=True, label= label): return a = math.atan((h2-h1)/float(w)) @@ -112,7 +112,7 @@ When turned by 90°, it can be also used to create a bottle holder.""" edges[3](h1) self.edgeCorner(edges[3], edges[3 + 1], 90) - self.move(overallwidth, overallheight, move) + self.move(overallwidth, overallheight, move, label = label) def render(self): # adjust to the variables you want in the local scope @@ -126,44 +126,44 @@ When turned by 90°, it can be also used to create a bottle holder.""" self.addPart(ShadyEdge(self, None)) # back - self.rectangularWall(th, h, "FFFF", callback=[self.backCB], move="up") + self.rectangularWall(th, h, "FFFF", callback=[self.backCB], move="up", label = "back") if self.upright: # sides - self.rectangularWall(th, d, "fFsF", callback=[self.sideCB], move="up") - self.rectangularWall(th, d, "fFsF", callback=[self.sideCB], move="up") + self.rectangularWall(th, d, "fFsF", callback=[self.sideCB], move="up", label = "left") + self.rectangularWall(th, d, "fFsF", callback=[self.sideCB], move="up", label = "right") # horizontal Walls / blinds tops e = edges.CompoundEdge(self, "fF", (d, s)) e2 = edges.CompoundEdge(self, "Ff", (s, d)) for i in range(n): self.rectangularWall(h, d+s, ['f', e, 'e', e2], - move="right" if i