Add labels to some generators
This commit is contained in:
parent
c998509a7e
commit
ece304bf1f
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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<n-1 else "right up")
|
||||
move="right" if i<n-1 else "right up", label="horizontal Wall " + str(i+1))
|
||||
else:
|
||||
# bottom
|
||||
self.rectangularWall(th, d, "fFeF", callback=[self.sideCB],
|
||||
move="up")
|
||||
move="up", label="bottom")
|
||||
# top
|
||||
self.rectangularWall(th, d+s, "fFeF", callback=[self.topCB],
|
||||
move="up")
|
||||
move="up", label="top")
|
||||
# vertical walls
|
||||
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
|
||||
for i in range(n):
|
||||
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:
|
||||
# bottom wall
|
||||
self.rectangularWall(h, d, "ffef", move="up")
|
||||
self.rectangularWall(h, d, "ffef", move="up", label="bottom wall")
|
||||
else:
|
||||
# vertical wall
|
||||
self.wall(d, d+s, h, move="up")
|
||||
self.wall(d, d+s, h, move="up", label="vertical wall")
|
||||
|
||||
# Colored windows
|
||||
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))
|
||||
|
||||
|
||||
|
|
|
@ -37,14 +37,14 @@ class UBox(_TopEdge, _ChestLid):
|
|||
help="additional lid")
|
||||
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)
|
||||
|
||||
w = self.edges["f"].spacing()
|
||||
tw = x+2*w
|
||||
th = y+w+e.spacing()
|
||||
if self.move(tw, th, move, True):
|
||||
if self.move(tw, th, move, True, label=label):
|
||||
return
|
||||
|
||||
self.moveTo(w+r, w)
|
||||
|
@ -57,9 +57,9 @@ class UBox(_TopEdge, _ChestLid):
|
|||
self.edges["f"](y-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]
|
||||
|
||||
|
@ -68,7 +68,7 @@ class UBox(_TopEdge, _ChestLid):
|
|||
|
||||
tw = 2*y + x - 4*(cl-r) + e[0].spacing() + e[1].spacing()
|
||||
th = h + 2*w
|
||||
if self.move(tw, th, move, True):
|
||||
if self.move(tw, th, move, True, label=label):
|
||||
return
|
||||
|
||||
self.moveTo(e[0].spacing())
|
||||
|
@ -86,7 +86,7 @@ class UBox(_TopEdge, _ChestLid):
|
|||
e[nr](h)
|
||||
self.edgeCorner(e[nr], "F")
|
||||
|
||||
self.move(tw, th, move)
|
||||
self.move(tw, th, move, label=label)
|
||||
|
||||
def render(self):
|
||||
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)
|
||||
|
||||
self.U(x, y, r, t1, move="right")
|
||||
self.U(x, y, r, t3, move="up")
|
||||
self.U(x, y, r, t3, move="left only")
|
||||
self.Uwall(x, y, h, r, [t2, t4], move="up")
|
||||
self.U(x, y, r, t1, move="right", label="left")
|
||||
self.U(x, y, r, t3, move="up", label="right")
|
||||
self.U(x, y, r, t3, move="left only", label="invisible")
|
||||
self.Uwall(x, y, h, r, [t2, t4], move="up", label="wall")
|
||||
|
||||
self.drawLid(x, h, self.top_edge)
|
||||
self.drawAddOnLid(x, h, self.lid)
|
||||
|
|
|
@ -80,29 +80,29 @@ class UniversalBox(_TopEdge, _ChestLid):
|
|||
with self.saved_context():
|
||||
self.rectangularWall(x, h, [b, sideedge, t1, sideedge],
|
||||
ignore_widths=[1, 6],
|
||||
bedBolts=[d2], move="up")
|
||||
bedBolts=[d2], move="up", label="left")
|
||||
self.rectangularWall(x, h, [b, sideedge, t3, sideedge],
|
||||
ignore_widths=[1, 6],
|
||||
bedBolts=[d2], move="up")
|
||||
bedBolts=[d2], move="up", label="right")
|
||||
|
||||
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":
|
||||
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=[
|
||||
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.drawLid(x, y, self.top_edge, [d2, d3])
|
||||
self.drawAddOnLid(x, y, self.lid)
|
||||
|
||||
self.rectangularWall(x, h, [b, sideedge, t3, sideedge],
|
||||
ignore_widths=[1, 6],
|
||||
bedBolts=[d2], move="right only")
|
||||
bedBolts=[d2], move="right only", label="invisible")
|
||||
self.rectangularWall(y, h, [b, "f", t2, "f"],
|
||||
ignore_widths=[1, 6],
|
||||
bedBolts=[d3], move="up")
|
||||
bedBolts=[d3], move="up", label="back")
|
||||
self.rectangularWall(y, h, [b, "f", t4, "f"],
|
||||
ignore_widths=[1, 6],
|
||||
bedBolts=[d3], move="up")
|
||||
bedBolts=[d3], move="up", label="front")
|
||||
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ class _ChestLid(Boxes):
|
|||
r = d / 2.0 / math.cos(math.radians(angle))
|
||||
return r
|
||||
|
||||
def side(self, x, angle=0, move=""):
|
||||
def side(self, x, angle=0, move="", label=""):
|
||||
if "a" not in self.edges:
|
||||
s = edges.FingerJointSettings(self.thickness, True,
|
||||
finger=1.0, space=1.0)
|
||||
|
@ -32,7 +32,7 @@ class _ChestLid(Boxes):
|
|||
|
||||
t = self.thickness
|
||||
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
|
||||
|
||||
self.moveTo(t, 0)
|
||||
|
@ -43,9 +43,9 @@ class _ChestLid(Boxes):
|
|||
self.edges["a"](3*t)
|
||||
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:
|
||||
s = edges.FingerJointSettings(self.thickness, True,
|
||||
finger=1.0, space=1.0)
|
||||
|
@ -57,7 +57,7 @@ class _ChestLid(Boxes):
|
|||
tw = l + 6*t
|
||||
th = y+2*t
|
||||
|
||||
if self.move(tw, th, move, True):
|
||||
if self.move(tw, th, move, True, label=label):
|
||||
return
|
||||
|
||||
self.edges["A"](3*t)
|
||||
|
@ -73,17 +73,17 @@ class _ChestLid(Boxes):
|
|||
self.edge(y+2*t)
|
||||
self.corner(90)
|
||||
|
||||
self.move(tw, th, move)
|
||||
self.move(tw, th, move, label=label)
|
||||
|
||||
def drawAddOnLid(self, x, y, style):
|
||||
if style == "flat":
|
||||
self.rectangularWall(x, y, "eeee", move="right")
|
||||
self.rectangularWall(x, y, "EEEE", move="up")
|
||||
self.rectangularWall(x, y, "eeee", move="right", label="lid bottom")
|
||||
self.rectangularWall(x, y, "EEEE", move="up", label="lid top")
|
||||
elif style == "chest":
|
||||
self.side(x, move="right")
|
||||
self.side(x, move="up")
|
||||
self.side(x, move="left only")
|
||||
self.top(x, y, move="up")
|
||||
self.side(x, move="right", label="lid right")
|
||||
self.side(x, move="up", label="lid left")
|
||||
self.side(x, move="left only", label="invisible")
|
||||
self.top(x, y, move="up", label="lid top")
|
||||
else:
|
||||
return False
|
||||
return True
|
||||
|
@ -122,32 +122,32 @@ class _TopEdge(Boxes):
|
|||
def drawLid(self, x, y, top_edge, bedBolts=[None, None]):
|
||||
d2, d3 = bedBolts
|
||||
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":
|
||||
self.rectangularWall(x, y, "FFFF", move="up")
|
||||
self.rectangularWall(x, y, "FFFF", move="up", label="top")
|
||||
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":
|
||||
self.rectangularWall(x, y, "nlmE", move="up")
|
||||
self.rectangularWall(x, y, "nlmE", move="up", label="lid top")
|
||||
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":
|
||||
outset = self.edges["k"].settings.outset
|
||||
self.edges["k"].settings.setValues(self.thickness, outset=True)
|
||||
lx = x/2.0-0.1*self.thickness
|
||||
self.edges['k'].settings.setValues(self.thickness, grip_length=5)
|
||||
self.rectangularWall(lx, y, "IeJe", move="right")
|
||||
self.rectangularWall(lx, y, "IeJe", move="up")
|
||||
self.rectangularWall(lx, y, "IeJe", move="left only")
|
||||
self.rectangularWall(lx, y, "IeJe", move="right", label="lid top left")
|
||||
self.rectangularWall(lx, y, "IeJe", move="up", label="lid top right")
|
||||
self.rectangularWall(lx, y, "IeJe", move="left only", label="invisible")
|
||||
self.edges["k"].settings.setValues(self.thickness, outset=outset)
|
||||
elif top_edge == "S":
|
||||
self.rectangularWall(x, y, "ffff", move="up")
|
||||
self.rectangularWall(x, 0, "sFeF", move="up")
|
||||
self.rectangularWall(x, 0, "sFeF", move="up")
|
||||
self.rectangularWall(y, 0, "sfef", move="up")
|
||||
self.rectangularWall(y, 0, "sfef", move="up")
|
||||
self.rectangularWall(x, y, "ffff", move="up", label="lid top")
|
||||
self.rectangularWall(x, 0, "sFeF", move="up", label="lid top left")
|
||||
self.rectangularWall(x, 0, "sFeF", move="up", label="lid top right")
|
||||
self.rectangularWall(y, 0, "sfef", move="up", label="lid top front")
|
||||
self.rectangularWall(y, 0, "sfef", move="up", label="lid top back")
|
||||
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")
|
||||
else:
|
||||
return False
|
||||
|
|
|
@ -25,7 +25,7 @@ class Parts:
|
|||
def __getattr__(self, 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
|
||||
|
||||
:param diameter: diameter of the disc
|
||||
|
@ -36,7 +36,7 @@ class Parts:
|
|||
size = diameter
|
||||
r = diameter / 2.0
|
||||
|
||||
if self.move(size, size, move, before=True):
|
||||
if self.move(size, size, move, before=True, label=label):
|
||||
return
|
||||
|
||||
self.moveTo(size / 2, size / 2)
|
||||
|
@ -47,7 +47,7 @@ class Parts:
|
|||
self.cc(callback, None, 0, 0)
|
||||
self.moveTo(r + self.burn, 0, 90)
|
||||
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=""):
|
||||
"""Disc with a waivy edge to be easier to be gripped
|
||||
|
|
Loading…
Reference in New Issue