diff --git a/boxes/__init__.py b/boxes/__init__.py index 60104c9..44385b3 100755 --- a/boxes/__init__.py +++ b/boxes/__init__.py @@ -118,6 +118,15 @@ class Boxes: def __init__(self): self.argparser = ArgumentParser(description=self.__doc__) + self.argparser.add_argument( + "--fingerjointfinger", action="store", type=float, default=1.0, + help="width of the fingers in multiples of thickness") + self.argparser.add_argument( + "--fingerjointspace", action="store", type=float, default=1.0, + help="width of the space between fingers in multiples of thickness") + self.argparser.add_argument( + "--fingerjointsurrounding", action="store", type=float, default=1.0, + help="amount of space needed at the end in multiples of normal spaces") self.argparser.add_argument( "--thickness", action="store", type=float, default=4.0, help="thickness of the material") @@ -220,6 +229,10 @@ class Boxes: # Share settings object s = edges.FingerJointSettings(self.thickness) + s.setValues(self.thickness, + finger=getattr(self, "fingerjointfinger", 1.0), + space=getattr(self, "fingerjointspace", 1.0), + surroundingspaces=getattr(self, "fingerjointsurrounding", 1.0)) self.addPart(edges.FingerJointEdge(self, s)) self.addPart(edges.FingerJointEdgeCounterPart(self, s)) self.addPart(edges.FingerHoleEdge(self, s)) diff --git a/boxes/generators/box.py b/boxes/generators/box.py index 722f3fd..37c227f 100755 --- a/boxes/generators/box.py +++ b/boxes/generators/box.py @@ -21,15 +21,16 @@ class Box(Boxes): def __init__(self): Boxes.__init__(self) self.buildArgParser("x", "y", "h") + self.argparser.set_defaults( + fingerjointfinger=3.0, + fingerjointspace=3.0 + ) def render(self): x, y, h = self.x, self.y, self.h t = self.thickness self.open(width=x+y+40, height=y+2*h+50) - self.edges["f"].settings.setValues(self.thickness, space=3, finger=3, - surroundingspaces=1) - d2 = [edges.Bolts(2)] d3 = [edges.Bolts(3)] diff --git a/boxes/generators/box2.py b/boxes/generators/box2.py index e776a3a..7ffe192 100755 --- a/boxes/generators/box2.py +++ b/boxes/generators/box2.py @@ -23,13 +23,15 @@ class Box(Boxes): def __init__(self): Boxes.__init__(self) self.buildArgParser("x", "y", "h") + self.argparser.set_defaults( + fingerjointfinger=3.0, + fingerjointspace=3.0 + ) def render(self): x, y, h = self.x, self.y, self.h t = self.thickness self.open(width=x+y+40, height=y+2*h+50) - self.edges["f"].settings.setValues(self.thickness, space=3, finger=3, - surroundingspaces=1) d2 = [edges.Bolts(2)] d3 = [edges.Bolts(3)] diff --git a/boxes/generators/box3.py b/boxes/generators/box3.py index 04dda3a..906d181 100755 --- a/boxes/generators/box3.py +++ b/boxes/generators/box3.py @@ -21,6 +21,10 @@ class Box(Boxes): def __init__(self): Boxes.__init__(self) self.buildArgParser("x", "y", "h") + self.argparser.set_defaults( + fingerjointfinger=3.0, + fingerjointspace=3.0 + ) def render(self): x, y, h = self.x, self.y, self.h @@ -28,9 +32,6 @@ class Box(Boxes): self.open(width=x+y+10*t, height=y+h+10*t) - self.edges["f"].settings.setValues(self.thickness, space=3, finger=3, - surroundingspaces=1) - d2 = [edges.Bolts(2)] d3 = [edges.Bolts(3)] diff --git a/boxes/generators/magazinefile.py b/boxes/generators/magazinefile.py index 76125c9..dd2c319 100755 --- a/boxes/generators/magazinefile.py +++ b/boxes/generators/magazinefile.py @@ -21,6 +21,10 @@ class Box(Boxes): def __init__(self): Boxes.__init__(self) self.buildArgParser("x", "y", "h", "hi") + self.argparser.set_defaults( + fingerjointfinger=2.0, + fingerjointspace=2.0 + ) def side(self, w, h, hi): r = min(h-hi, w) / 2.0 @@ -62,8 +66,6 @@ class Box(Boxes): self.open(width=x+y+8*t, height=x+h+hi+4*t) - self.edges["f"].settings.setValues(self.thickness, space=2, finger=2) - self.ctx.save() self.rectangularWall(x, h, "Ffef", move="up") self.rectangularWall(x, hi, "Ffef", move="up") diff --git a/boxes/generators/typetray.py b/boxes/generators/typetray.py index f5bfd9f..93c5f09 100755 --- a/boxes/generators/typetray.py +++ b/boxes/generators/typetray.py @@ -27,6 +27,11 @@ class TypeTray(Boxes): self.argparser.add_argument( "--gripwidth", action="store", type=float, default=70, dest="gw", help="width of th grip hole in mm (zero for no hole)") + self.argparser.set_defaults( + fingerjointfinger=3.0, + fingerjointspace=3.0, + fingerjointsurrounding=0.5, + ) def xSlots(self): posx = -0.5 * self.thickness @@ -74,8 +79,6 @@ class TypeTray(Boxes): t = self.thickness self.open(width=2*max(x,y)+10*t, height=(len(self.sx)+len(self.sy))*(h+2*t)+4*t) - self.edges["f"].settings.setValues(self.thickness, space=3, finger=3, - surroundingspaces=0.5) self.moveTo(t, t) # outer walls