AngledBox: Add bottom_edge parameter
Also fix bug with non matching finger joints between side walls and miss alignment of the bottom and top pieces
This commit is contained in:
parent
ecaba08aa6
commit
cd884c63bf
|
@ -26,7 +26,7 @@ class AngledBox(Boxes):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
Boxes.__init__(self)
|
Boxes.__init__(self)
|
||||||
self.addSettingsArgs(edges.FingerJointSettings)
|
self.addSettingsArgs(edges.FingerJointSettings)
|
||||||
self.buildArgParser("x", "y", "h", "outside")
|
self.buildArgParser("x", "y", "h", "outside", "bottom_edge")
|
||||||
self.argparser.add_argument(
|
self.argparser.add_argument(
|
||||||
"--n", action="store", type=int, default=5,
|
"--n", action="store", type=int, default=5,
|
||||||
help="number of walls at one side (1+)")
|
help="number of walls at one side (1+)")
|
||||||
|
@ -52,7 +52,7 @@ class AngledBox(Boxes):
|
||||||
if self.move(tx, ty, move, before=True):
|
if self.move(tx, ty, move, before=True):
|
||||||
return
|
return
|
||||||
|
|
||||||
self.moveTo((tx-lx)/2., 0)
|
self.moveTo((tx-lx)/2., edge.margin())
|
||||||
|
|
||||||
if hole:
|
if hole:
|
||||||
with self.saved_context():
|
with self.saved_context():
|
||||||
|
@ -75,6 +75,7 @@ class AngledBox(Boxes):
|
||||||
def render(self):
|
def render(self):
|
||||||
|
|
||||||
x, y, h, n = self.x, self.y, self.h, self.n
|
x, y, h, n = self.x, self.y, self.h, self.n
|
||||||
|
b = self.bottom_edge
|
||||||
|
|
||||||
if n < 1:
|
if n < 1:
|
||||||
n = self.n = 1
|
n = self.n = 1
|
||||||
|
@ -106,7 +107,8 @@ class AngledBox(Boxes):
|
||||||
fingerJointSettings.edgeObjects(self, chars="gGH")
|
fingerJointSettings.edgeObjects(self, chars="gGH")
|
||||||
|
|
||||||
with self.saved_context():
|
with self.saved_context():
|
||||||
self.floor(x, y , n, edge='F', move="right")
|
if b != "e":
|
||||||
|
self.floor(x, y , n, edge='f', move="right")
|
||||||
if self.top == "angled lid":
|
if self.top == "angled lid":
|
||||||
self.floor(x, y, n, edge='e', move="right")
|
self.floor(x, y, n, edge='e', move="right")
|
||||||
self.floor(x, y, n, edge='E', move="right")
|
self.floor(x, y, n, edge='E', move="right")
|
||||||
|
@ -119,23 +121,23 @@ class AngledBox(Boxes):
|
||||||
fingers = self.top in ("angled lid2", "angled hole")
|
fingers = self.top in ("angled lid2", "angled hole")
|
||||||
|
|
||||||
self.rectangularWall(lx, h, move="right",
|
self.rectangularWall(lx, h, move="right",
|
||||||
edges="fGfG" if fingers else "fGeG")
|
edges=b+"GfG" if fingers else b+"GeG")
|
||||||
|
|
||||||
for i in range(2):
|
for i in range(2):
|
||||||
for i in range(n):
|
for i in range(n):
|
||||||
if i % 2:
|
if i % 2:
|
||||||
self.rectangularWall(side, h, move="right",
|
self.rectangularWall(side, h, move="right",
|
||||||
edges="fGfG" if fingers else "fGeG")
|
edges=b+"GfG" if fingers else b+"GeG")
|
||||||
else:
|
else:
|
||||||
self.rectangularWall(side, h, move="right",
|
self.rectangularWall(side, h, move="right",
|
||||||
edges="fgfg" if fingers else "fgeg")
|
edges=b+"gfg" if fingers else b+"geg")
|
||||||
|
|
||||||
if i % 2:
|
if i % 2:
|
||||||
self.rectangularWall(lx, h, move="right",
|
self.rectangularWall(lx, h, move="right",
|
||||||
edges="fgfg" if fingers else "fGeG")
|
edges=b+"gfg" if fingers else b+"geg")
|
||||||
else:
|
else:
|
||||||
self.rectangularWall(lx, h, move="right",
|
self.rectangularWall(lx, h, move="right",
|
||||||
edges="fGfG" if fingers else "fGeG")
|
edges=b+"GfG" if fingers else b+"GeG")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue