Add labels to some generators

This commit is contained in:
SuksAE 2022-05-14 10:35:58 +02:00 committed by GitHub
parent c998509a7e
commit ece304bf1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 91 additions and 87 deletions

View File

@ -1,12 +1,16 @@
class Color: class Color:
BLACK = [ 0.0, 0.0, 0.0 ] BLACK = [ 0.0, 0.0, 0.0 ]
BLUE = [ 0.0, 0.0, 1.0 ] BLUE = [ 0.0, 0.0, 1.0 ]
GREEN = [ 0.0, 1.0, 0.0 ] GREEN = [ 0.0, 1.0, 0.0 ]
RED = [ 1.0, 0.0, 0.0 ] RED = [ 1.0, 0.0, 0.0 ]
WHITE = [ 1.0, 1.0, 1.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 # TODO: Make this configurable
OUTER_CUT = BLACK OUTER_CUT = BLACK
INNER_CUT = BLUE INNER_CUT = BLUE
ANNOTATIONS = RED ANNOTATIONS = RED
ETCHING = GREEN ETCHING = GREEN
ETCHING_DEEP = CYAN

View File

@ -1608,7 +1608,7 @@ class CabinetHingeEdge(BaseEdge):
th = 4*e+3*t+self.boxes.spacing th = 4*e+3*t+self.boxes.spacing
tw = max(e, 2*t) * pairs tw = max(e, 2*t) * pairs
if self.move(tw, th, move, True): if self.move(tw, th, move, True, label="hinges"):
return return
if self.settings.style == "outside": if self.settings.style == "outside":
@ -1631,7 +1631,7 @@ class CabinetHingeEdge(BaseEdge):
90, t, 90, (ax+t)-e, -90, l-3*t, (90, e)) 90, t, 90, (ax+t)-e, -90, l-3*t, (90, e))
self.moveTo(2*max(e, 1.5*t) + self.boxes.spacing) self.moveTo(2*max(e, 1.5*t) + self.boxes.spacing)
self.move(tw, th, move) self.move(tw, th, move, label="hinges")
return return
if e <= 2*t: if e <= 2*t:
@ -1651,7 +1651,7 @@ class CabinetHingeEdge(BaseEdge):
if i % 2: if i % 2:
self.moveTo(2*max(e, 2*t) + 2*self.boxes.spacing) 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 #### Slide-on lid

View File

@ -117,28 +117,28 @@ class BinTray(Boxes):
# outer walls # outer walls
e = ["F", "f", edges.SlottedEdge(self, self.sx[::-1], "G"), "f"] e = ["F", "f", edges.SlottedEdge(self, self.sx[::-1], "G"), "f"]
self.rectangularWall(x, h, e, callback=[self.xHoles], move="right") self.rectangularWall(x, h, e, callback=[self.xHoles], move="right", label="bottom")
self.rectangularWall(y, h, "FFbF", callback=[self.yHoles, ], move="up") self.rectangularWall(y, h, "FFbF", callback=[self.yHoles, ], move="up", label="left")
self.rectangularWall(y, h, "FFbF", callback=[self.yHoles, ]) self.rectangularWall(y, h, "FFbF", callback=[self.yHoles, ], label="right")
self.rectangularWall(x, h, "Ffef", callback=[self.xHoles, ], move="left") self.rectangularWall(x, h, "Ffef", callback=[self.xHoles, ], move="left", label="top")
self.rectangularWall(y, h, "FFBF", move="up only") self.rectangularWall(y, h, "FFBF", move="up only")
# floor # 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 # Inner walls
for i in range(len(self.sx) - 1): for i in range(len(self.sx) - 1):
e = [edges.SlottedEdge(self, self.sy, "f"), "f", "B", "f"] 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): for i in range(len(self.sy) - 1):
e = [edges.SlottedEdge(self, self.sx, "f", slots=0.5 * hi), "f", e = [edges.SlottedEdge(self, self.sx, "f", slots=0.5 * hi), "f",
edges.SlottedEdge(self, self.sx[::-1], "G"), "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 # Front walls
for i in range(len(self.sy)): for i in range(len(self.sy)):
e = [edges.SlottedEdge(self, self.sx, "g"), "F", "e", "F"] 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))

View File

@ -31,7 +31,7 @@ class StorageShelf(_TopEdge):
"top_edge") "top_edge")
self.argparser.add_argument( self.argparser.add_argument(
"--retainer", action="store", type=float, default=0.0, "--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( self.argparser.add_argument(
"--retainer_hole_edge", action="store", type=boolarg, default=False, "--retainer_hole_edge", action="store", type=boolarg, default=False,
help="use finger hole edge for retainer walls") help="use finger hole edge for retainer walls")
@ -92,15 +92,15 @@ class StorageShelf(_TopEdge):
# outer walls # outer walls
# XXX retainer # 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", label="left")
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", label="right")
# floor # floor
if b != "e": if b != "e":
e = "fffe" e = "fffe"
if self.retainer: if self.retainer:
e = "ffff" 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 # inner walls
@ -111,22 +111,22 @@ class StorageShelf(_TopEdge):
if self.retainer: if self.retainer:
e[3] = "f" 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 # top / lid
if self.closedtop: if self.closedtop:
e = "FFFe" if self.top_edge == "f" else "fffe" 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: else:
self.drawLid(x, y, self.top_edge) self.drawLid(x, y, self.top_edge)
self.ctx.restore() self.ctx.restore()
self.rectangularWall(x, h, "ffff", move="right only") self.rectangularWall(x, h, "ffff", move="right only", label="invisible")
# y walls # y walls
# outer 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 # inner walls
for i in range(len(self.sy) - 1): for i in range(len(self.sy) - 1):
@ -135,7 +135,7 @@ class StorageShelf(_TopEdge):
"e", "f"] "e", "f"]
if self.closedtop: if self.closedtop:
e = [be, edges.SlottedEdge(self, self.sh, "e", slots=0.5 * x),"f", "f"] 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: if self.retainer:
@ -144,4 +144,4 @@ class StorageShelf(_TopEdge):
e = "FEeE" e = "FEeE"
if self.retainer_hole_edge or (i == 0 and b == "h"): if self.retainer_hole_edge or (i == 0 and b == "h"):
e = "hEeE" e = "hEeE"
self.rectangularWall(y, self.retainer, e, move="up") self.rectangularWall(y, self.retainer, e, move="up", label="retainer " + str(i+1))

View File

@ -85,13 +85,13 @@ When turned by 90°, it can be also used to create a bottle holder."""
def frontCB(self): def frontCB(self):
self.hole(self.h/2, self.h/2, self.h/2-self.thickness) 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 = [self.edges.get(e, e) for e in edges]
edges += edges # append for wrapping around edges += edges # append for wrapping around
overallwidth = w + edges[-1].spacing() + edges[1].spacing() overallwidth = w + edges[-1].spacing() + edges[1].spacing()
overallheight = max(h1, h2) + edges[0].spacing() + edges[2].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 return
a = math.atan((h2-h1)/float(w)) 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) edges[3](h1)
self.edgeCorner(edges[3], edges[3 + 1], 90) self.edgeCorner(edges[3], edges[3 + 1], 90)
self.move(overallwidth, overallheight, move) self.move(overallwidth, overallheight, move, label = label)
def render(self): def render(self):
# adjust to the variables you want in the local scope # 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)) self.addPart(ShadyEdge(self, None))
# back # 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: if self.upright:
# sides # sides
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") self.rectangularWall(th, d, "fFsF", callback=[self.sideCB], move="up", label = "right")
# horizontal Walls / blinds tops # horizontal Walls / blinds tops
e = edges.CompoundEdge(self, "fF", (d, s)) e = edges.CompoundEdge(self, "fF", (d, s))
e2 = edges.CompoundEdge(self, "Ff", (s, d)) e2 = edges.CompoundEdge(self, "Ff", (s, d))
for i in range(n): for i in range(n):
self.rectangularWall(h, d+s, ['f', e, 'e', e2], self.rectangularWall(h, d+s, ['f', e, 'e', e2],
move="right" if i<n-1 else "right up") move="right" if i<n-1 else "right up", label="horizontal Wall " + str(i+1))
else: else:
# bottom # bottom
self.rectangularWall(th, d, "fFeF", callback=[self.sideCB], self.rectangularWall(th, d, "fFeF", callback=[self.sideCB],
move="up") move="up", label="bottom")
# top # top
self.rectangularWall(th, d+s, "fFeF", callback=[self.topCB], self.rectangularWall(th, d+s, "fFeF", callback=[self.topCB],
move="up") move="up", label="top")
# vertical walls # vertical walls
for i in range(n): for i in range(n):
self.wall(d, d+s, h, move="right" if i<n-1 else "right up") self.wall(d, d+s, h, move="right" if i<n-1 else "right up", label="vertical wall " + str(i+1))
# fronts # fronts
for i in range(n): for i in range(n):
self.rectangularWall(h, h, "efef", callback=[self.frontCB], self.rectangularWall(h, h, "efef", callback=[self.frontCB],
move="left" if i<n-1 else "left up") move="left" if i<n-1 else "left up", label="front " + str(i+1))
if self.upright: if self.upright:
# bottom wall # bottom wall
self.rectangularWall(h, d, "ffef", move="up") self.rectangularWall(h, d, "ffef", move="up", label="bottom wall")
else: else:
# vertical wall # vertical wall
self.wall(d, d+s, h, move="up") self.wall(d, d+s, h, move="up", label="vertical wall")
# Colored windows # Colored windows
for i in range(n): for i in range(n):
self.parts.disc(h-2*t, move="right") self.parts.disc(h-2*t, move="right", label="colored window " + str(i+1))

View File

@ -37,14 +37,14 @@ class UBox(_TopEdge, _ChestLid):
help="additional lid") help="additional lid")
self.angle = 0 self.angle = 0
def U(self, x, y, r, edge="e", move=None): def U(self, x, y, r, edge="e", move=None, label=""):
e = self.edges.get(edge, edge) e = self.edges.get(edge, edge)
w = self.edges["f"].spacing() w = self.edges["f"].spacing()
tw = x+2*w tw = x+2*w
th = y+w+e.spacing() th = y+w+e.spacing()
if self.move(tw, th, move, True): if self.move(tw, th, move, True, label=label):
return return
self.moveTo(w+r, w) self.moveTo(w+r, w)
@ -57,9 +57,9 @@ class UBox(_TopEdge, _ChestLid):
self.edges["f"](y-r) self.edges["f"](y-r)
self.corner(90, r) self.corner(90, r)
self.move(tw, th, move) self.move(tw, th, move, label=label)
def Uwall(self, x, y, h, r, edges="ee", move=None): def Uwall(self, x, y, h, r, edges="ee", move=None, label=""):
e = [self.edges.get(edge, edge) for edge in edges] e = [self.edges.get(edge, edge) for edge in edges]
@ -68,7 +68,7 @@ class UBox(_TopEdge, _ChestLid):
tw = 2*y + x - 4*(cl-r) + e[0].spacing() + e[1].spacing() tw = 2*y + x - 4*(cl-r) + e[0].spacing() + e[1].spacing()
th = h + 2*w th = h + 2*w
if self.move(tw, th, move, True): if self.move(tw, th, move, True, label=label):
return return
self.moveTo(e[0].spacing()) self.moveTo(e[0].spacing())
@ -86,7 +86,7 @@ class UBox(_TopEdge, _ChestLid):
e[nr](h) e[nr](h)
self.edgeCorner(e[nr], "F") self.edgeCorner(e[nr], "F")
self.move(tw, th, move) self.move(tw, th, move, label=label)
def render(self): def render(self):
x, y, h, r = self.x, self.y, self.h, self.radius x, y, h, r = self.x, self.y, self.h, self.radius
@ -96,10 +96,10 @@ class UBox(_TopEdge, _ChestLid):
t1, t2, t3, t4 = self.topEdges(self.top_edge) t1, t2, t3, t4 = self.topEdges(self.top_edge)
self.U(x, y, r, t1, move="right") self.U(x, y, r, t1, move="right", label="left")
self.U(x, y, r, t3, move="up") self.U(x, y, r, t3, move="up", label="right")
self.U(x, y, r, t3, move="left only") self.U(x, y, r, t3, move="left only", label="invisible")
self.Uwall(x, y, h, r, [t2, t4], move="up") self.Uwall(x, y, h, r, [t2, t4], move="up", label="wall")
self.drawLid(x, h, self.top_edge) self.drawLid(x, h, self.top_edge)
self.drawAddOnLid(x, h, self.lid) self.drawAddOnLid(x, h, self.lid)

View File

@ -80,29 +80,29 @@ class UniversalBox(_TopEdge, _ChestLid):
with self.saved_context(): with self.saved_context():
self.rectangularWall(x, h, [b, sideedge, t1, sideedge], self.rectangularWall(x, h, [b, sideedge, t1, sideedge],
ignore_widths=[1, 6], ignore_widths=[1, 6],
bedBolts=[d2], move="up") bedBolts=[d2], move="up", label="left")
self.rectangularWall(x, h, [b, sideedge, t3, sideedge], self.rectangularWall(x, h, [b, sideedge, t3, sideedge],
ignore_widths=[1, 6], ignore_widths=[1, 6],
bedBolts=[d2], move="up") bedBolts=[d2], move="up", label="right")
if self.bottom_edge != "e": if self.bottom_edge != "e":
self.rectangularWall(x, y, "ffff", bedBolts=[d2, d3, d2, d3], move="up") self.rectangularWall(x, y, "ffff", bedBolts=[d2, d3, d2, d3], move="up", label="bottom")
if self.top_edge in "fF": if self.top_edge in "fF":
self.set_source_color(Color.RED) self.set_source_color(Color.MAGENTA) # I don't know why this part has a different color, but RED is not a good choice because RED is used for annotations
self.rectangularWall(x+4*t, y+4*t, callback=[ self.rectangularWall(x+4*t, y+4*t, callback=[
lambda:self.top_hole(x, y, self.top_edge)], move="up") lambda:self.top_hole(x, y, self.top_edge)], move="up", label="top hole")
self.set_source_color(Color.BLACK) self.set_source_color(Color.BLACK)
self.drawLid(x, y, self.top_edge, [d2, d3]) self.drawLid(x, y, self.top_edge, [d2, d3])
self.drawAddOnLid(x, y, self.lid) self.drawAddOnLid(x, y, self.lid)
self.rectangularWall(x, h, [b, sideedge, t3, sideedge], self.rectangularWall(x, h, [b, sideedge, t3, sideedge],
ignore_widths=[1, 6], ignore_widths=[1, 6],
bedBolts=[d2], move="right only") bedBolts=[d2], move="right only", label="invisible")
self.rectangularWall(y, h, [b, "f", t2, "f"], self.rectangularWall(y, h, [b, "f", t2, "f"],
ignore_widths=[1, 6], ignore_widths=[1, 6],
bedBolts=[d3], move="up") bedBolts=[d3], move="up", label="back")
self.rectangularWall(y, h, [b, "f", t4, "f"], self.rectangularWall(y, h, [b, "f", t4, "f"],
ignore_widths=[1, 6], ignore_widths=[1, 6],
bedBolts=[d3], move="up") bedBolts=[d3], move="up", label="front")

View File

@ -24,7 +24,7 @@ class _ChestLid(Boxes):
r = d / 2.0 / math.cos(math.radians(angle)) r = d / 2.0 / math.cos(math.radians(angle))
return r return r
def side(self, x, angle=0, move=""): def side(self, x, angle=0, move="", label=""):
if "a" not in self.edges: if "a" not in self.edges:
s = edges.FingerJointSettings(self.thickness, True, s = edges.FingerJointSettings(self.thickness, True,
finger=1.0, space=1.0) finger=1.0, space=1.0)
@ -32,7 +32,7 @@ class _ChestLid(Boxes):
t = self.thickness t = self.thickness
r = self.getR(x, angle) r = self.getR(x, angle)
if self.move(x+2*t, 0.5*x+3*t, move, True): if self.move(x+2*t, 0.5*x+3*t, move, True, label=label):
return return
self.moveTo(t, 0) self.moveTo(t, 0)
@ -43,9 +43,9 @@ class _ChestLid(Boxes):
self.edges["a"](3*t) self.edges["a"](3*t)
self.corner(90+angle) self.corner(90+angle)
self.move(x+2*t, 0.5*x+3*t, move, False) self.move(x+2*t, 0.5*x+3*t, move, False, label=label)
def top(self, x, y, angle=0, move=None): def top(self, x, y, angle=0, move=None, label=""):
if "a" not in self.edges: if "a" not in self.edges:
s = edges.FingerJointSettings(self.thickness, True, s = edges.FingerJointSettings(self.thickness, True,
finger=1.0, space=1.0) finger=1.0, space=1.0)
@ -57,7 +57,7 @@ class _ChestLid(Boxes):
tw = l + 6*t tw = l + 6*t
th = y+2*t th = y+2*t
if self.move(tw, th, move, True): if self.move(tw, th, move, True, label=label):
return return
self.edges["A"](3*t) self.edges["A"](3*t)
@ -73,17 +73,17 @@ class _ChestLid(Boxes):
self.edge(y+2*t) self.edge(y+2*t)
self.corner(90) self.corner(90)
self.move(tw, th, move) self.move(tw, th, move, label=label)
def drawAddOnLid(self, x, y, style): def drawAddOnLid(self, x, y, style):
if style == "flat": if style == "flat":
self.rectangularWall(x, y, "eeee", move="right") self.rectangularWall(x, y, "eeee", move="right", label="lid bottom")
self.rectangularWall(x, y, "EEEE", move="up") self.rectangularWall(x, y, "EEEE", move="up", label="lid top")
elif style == "chest": elif style == "chest":
self.side(x, move="right") self.side(x, move="right", label="lid right")
self.side(x, move="up") self.side(x, move="up", label="lid left")
self.side(x, move="left only") self.side(x, move="left only", label="invisible")
self.top(x, y, move="up") self.top(x, y, move="up", label="lid top")
else: else:
return False return False
return True return True
@ -122,32 +122,32 @@ class _TopEdge(Boxes):
def drawLid(self, x, y, top_edge, bedBolts=[None, None]): def drawLid(self, x, y, top_edge, bedBolts=[None, None]):
d2, d3 = bedBolts d2, d3 = bedBolts
if top_edge == "c": if top_edge == "c":
self.rectangularWall(x, y, "CCCC", bedBolts=[d2, d3, d2, d3], move="up") self.rectangularWall(x, y, "CCCC", bedBolts=[d2, d3, d2, d3], move="up", label="top")
elif top_edge == "f": elif top_edge == "f":
self.rectangularWall(x, y, "FFFF", move="up") self.rectangularWall(x, y, "FFFF", move="up", label="top")
elif top_edge in "FhŠ": elif top_edge in "FhŠ":
self.rectangularWall(x, y, "ffff", move="up") self.rectangularWall(x, y, "ffff", move="up", label="top")
elif top_edge == "L": elif top_edge == "L":
self.rectangularWall(x, y, "nlmE", move="up") self.rectangularWall(x, y, "nlmE", move="up", label="lid top")
elif top_edge == "i": elif top_edge == "i":
self.rectangularWall(x, y, "IEJe", move="up") self.rectangularWall(x, y, "IEJe", move="up", label="lid top")
elif top_edge == "k": elif top_edge == "k":
outset = self.edges["k"].settings.outset outset = self.edges["k"].settings.outset
self.edges["k"].settings.setValues(self.thickness, outset=True) self.edges["k"].settings.setValues(self.thickness, outset=True)
lx = x/2.0-0.1*self.thickness lx = x/2.0-0.1*self.thickness
self.edges['k'].settings.setValues(self.thickness, grip_length=5) self.edges['k'].settings.setValues(self.thickness, grip_length=5)
self.rectangularWall(lx, y, "IeJe", move="right") self.rectangularWall(lx, y, "IeJe", move="right", label="lid top left")
self.rectangularWall(lx, y, "IeJe", move="up") self.rectangularWall(lx, y, "IeJe", move="up", label="lid top right")
self.rectangularWall(lx, y, "IeJe", move="left only") self.rectangularWall(lx, y, "IeJe", move="left only", label="invisible")
self.edges["k"].settings.setValues(self.thickness, outset=outset) self.edges["k"].settings.setValues(self.thickness, outset=outset)
elif top_edge == "S": elif top_edge == "S":
self.rectangularWall(x, y, "ffff", move="up") self.rectangularWall(x, y, "ffff", move="up", label="lid top")
self.rectangularWall(x, 0, "sFeF", move="up") self.rectangularWall(x, 0, "sFeF", move="up", label="lid top left")
self.rectangularWall(x, 0, "sFeF", move="up") self.rectangularWall(x, 0, "sFeF", move="up", label="lid top right")
self.rectangularWall(y, 0, "sfef", move="up") self.rectangularWall(y, 0, "sfef", move="up", label="lid top front")
self.rectangularWall(y, 0, "sfef", move="up") self.rectangularWall(y, 0, "sfef", move="up", label="lid top back")
elif top_edge == "v": elif top_edge == "v":
self.rectangularWall(x, y, "VEEE", move="up") self.rectangularWall(x, y, "VEEE", move="up", label="lid top")
self.edges["v"].parts(move="up") self.edges["v"].parts(move="up")
else: else:
return False return False

View File

@ -25,7 +25,7 @@ class Parts:
def __getattr__(self, name): def __getattr__(self, name):
return getattr(self.boxes, name) return getattr(self.boxes, name)
def disc(self, diameter, hole=0, callback=None, move=""): def disc(self, diameter, hole=0, callback=None, move="", label=""):
"""Simple disc """Simple disc
:param diameter: diameter of the disc :param diameter: diameter of the disc
@ -36,7 +36,7 @@ class Parts:
size = diameter size = diameter
r = diameter / 2.0 r = diameter / 2.0
if self.move(size, size, move, before=True): if self.move(size, size, move, before=True, label=label):
return return
self.moveTo(size / 2, size / 2) self.moveTo(size / 2, size / 2)
@ -47,7 +47,7 @@ class Parts:
self.cc(callback, None, 0, 0) self.cc(callback, None, 0, 0)
self.moveTo(r + self.burn, 0, 90) self.moveTo(r + self.burn, 0, 90)
self.corner(360, r, tabs=6) self.corner(360, r, tabs=6)
self.move(size, size, move) self.move(size, size, move, label=label)
def waivyKnob(self, diameter, n=20, angle=45, hole=0, callback=None, move=""): def waivyKnob(self, diameter, n=20, angle=45, hole=0, callback=None, move=""):
"""Disc with a waivy edge to be easier to be gripped """Disc with a waivy edge to be easier to be gripped