DrillStand: Use finger holes to fix bottom in place
Otherwise all the weight of the drills is just held up by glue
This commit is contained in:
parent
28d7dc16b9
commit
b190a11cb4
|
@ -15,6 +15,7 @@
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from boxes import *
|
from boxes import *
|
||||||
|
import boxes
|
||||||
|
|
||||||
class DrillStand(Boxes):
|
class DrillStand(Boxes):
|
||||||
"""Box for drills with each compartment of a different height"""
|
"""Box for drills with each compartment of a different height"""
|
||||||
|
@ -145,7 +146,16 @@ Assembly: Start with putting the slots of the inner walls together. Then add the
|
||||||
self.moveTo(edges[3].spacing(), eh+edges[0].margin(), -a)
|
self.moveTo(edges[3].spacing(), eh+edges[0].margin(), -a)
|
||||||
|
|
||||||
self.edge(t*math.tan(math.radians(a)))
|
self.edge(t*math.tan(math.radians(a)))
|
||||||
|
if isinstance(edges[0], boxes.edges.FingerHoleEdge):
|
||||||
|
with self.saved_context():
|
||||||
|
self.moveTo(0, 0, a)
|
||||||
|
self.fingerHolesAt(
|
||||||
|
0, 1.5*t, x*fa - t*math.tan(math.radians(a)), -a)
|
||||||
|
self.edge(x*fa - t*math.tan(math.radians(a)))
|
||||||
|
elif isinstance(edges[0], boxes.edges.FingerJointEdge):
|
||||||
edges[0](x*fa - t*math.tan(math.radians(a)))
|
edges[0](x*fa - t*math.tan(math.radians(a)))
|
||||||
|
else:
|
||||||
|
raise ValueError("Only edges h and f supported: ")
|
||||||
self.corner(a)
|
self.corner(a)
|
||||||
self.edgeCorner(edges[0], edges[1], 90)
|
self.edgeCorner(edges[0], edges[1], 90)
|
||||||
edges[1](eh+h)
|
edges[1](eh+h)
|
||||||
|
@ -188,15 +198,15 @@ Assembly: Start with putting the slots of the inner walls together. Then add the
|
||||||
|
|
||||||
bottom_angle = math.atan(self.extra_height / x) # radians
|
bottom_angle = math.atan(self.extra_height / x) # radians
|
||||||
|
|
||||||
self.xOutsideWall(sh[0], "fFeF", move="up")
|
self.xOutsideWall(sh[0], "hFeF", move="up")
|
||||||
for i in range(1, len(sy)):
|
for i in range(1, len(sy)):
|
||||||
self.xWall(i, move="up")
|
self.xWall(i, move="up")
|
||||||
self.xOutsideWall(sh[-1], "ffef", move="up")
|
self.xOutsideWall(sh[-1], "hfef", move="up")
|
||||||
|
|
||||||
self.rectangularWall(x/math.cos(bottom_angle)-t*math.tan(bottom_angle), y, "FeFe", callback=[self.bottomCB], move="up")
|
self.rectangularWall(x/math.cos(bottom_angle)-t*math.tan(bottom_angle), y, "fefe", callback=[self.bottomCB], move="up")
|
||||||
|
|
||||||
self.sideWall(foot_height=self.extra_height+t, move="right")
|
self.sideWall(foot_height=self.extra_height+2*t, move="right")
|
||||||
for i in range(1, len(sx)):
|
for i in range(1, len(sx)):
|
||||||
self.yWall(i, move="right")
|
self.yWall(i, move="right")
|
||||||
self.sideWall(self.extra_height, t, move="right")
|
self.sideWall(self.extra_height, 2*t, move="right")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue