From 73e1821e71a1bc870ba21cac5fa7a458bc08f121 Mon Sep 17 00:00:00 2001 From: Stefan Grosshauser Date: Thu, 18 Jan 2018 15:00:25 +0100 Subject: [PATCH] enable bedbolts for Straight 'e' and OutSet edges 'E' note that this mostly ignores that positioning bedbolts is done in the BedBolt class for finger joints. Coding style could be much improved. --- boxes/edges.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/boxes/edges.py b/boxes/edges.py index 6f7fe2b..be63f62 100644 --- a/boxes/edges.py +++ b/boxes/edges.py @@ -294,16 +294,31 @@ class Edge(BaseEdge): """Straight edge""" char = 'e' description = "Straight Edge" + positive = False def __call__(self, length, bedBolts=None, bedBoltSettings=None, **kw): """Draw edge of length mm""" - self.edge(length, tabs=2) + if bedBolts: + # distribute the bolts aequidistantly + interval_length = length / bedBolts.bolts + if self.positive: + d = (bedBoltSettings or self.bedBoltSettings)[0] + for i in range(bedBolts.bolts): + self.hole(0.5 * interval_length, + 0.5 * self.thickness, 0.5 * d) + self.edge(interval_length, tabs=2) + else: + for i in range(bedBolts.bolts): + self.bedBoltHole(interval_length, bedBoltSettings) + else: + self.edge(length, tabs=2) class OutSetEdge(Edge): """Straight edge out set by one thickness""" char = 'E' description = "Straight Edge (outset by thickness)" + positive = True def startwidth(self): return self.boxes.thickness