diff --git a/boxes/generators/_template.py b/boxes/generators/_template.py index 308964b..6c05341 100644 --- a/boxes/generators/_template.py +++ b/boxes/generators/_template.py @@ -23,6 +23,15 @@ class BOX(Boxes): # change class name here and below def __init__(self): Boxes.__init__(self) + + # Uncomment the settings for the edge types you use + # self.addSettingsArgs(edges.FingerJointSettings) + # self.addSettingsArgs(edges.StackableSettings) + # self.addSettingsArgs(edges.HingeSettings) + # self.addSettingsArgs(edges.LidSettings) + # self.addSettingsArgs(edges.ClickSettings) + # self.addSettingsArgs(edges.FlexSettings) + # remove cli params you do not need self.buildArgParser("x", "sx", "y", "sy", "h", "hi") # Add non default cli params if needed (see argparse std lib) diff --git a/boxes/generators/arcade.py b/boxes/generators/arcade.py index 229527f..62c4266 100644 --- a/boxes/generators/arcade.py +++ b/boxes/generators/arcade.py @@ -21,6 +21,7 @@ class Arcade(Boxes): def __init__(self): Boxes.__init__(self) + self.addSettingsArgs(edges.FingerJointSettings) self.argparser.add_argument( "--width", action="store", type=float, default=450.0, help="inner width of the console") diff --git a/boxes/generators/box.py b/boxes/generators/box.py index a7b0bec..02c55c6 100755 --- a/boxes/generators/box.py +++ b/boxes/generators/box.py @@ -22,11 +22,8 @@ class Box(Boxes): def __init__(self): Boxes.__init__(self) + self.addSettingsArgs(edges.FingerJointSettings, finger=3.0, space=3.0) self.buildArgParser("x", "y", "h", "outside") - self.argparser.set_defaults( - fingerjointfinger=3.0, - fingerjointspace=3.0 - ) def render(self): self.open() diff --git a/boxes/generators/box2.py b/boxes/generators/box2.py index ecdc09b..6a548eb 100755 --- a/boxes/generators/box2.py +++ b/boxes/generators/box2.py @@ -23,15 +23,17 @@ class Box2(Boxes): def __init__(self): Boxes.__init__(self) + self.addSettingsArgs(edges.FingerJointSettings, finger=3, space=3) + self.addSettingsArgs(edges.StackableSettings) + self.addSettingsArgs(edges.HingeSettings) + self.addSettingsArgs(edges.LidSettings) + self.addSettingsArgs(edges.ClickSettings) + self.addSettingsArgs(edges.FlexSettings) self.buildArgParser("top_edge", "bottom_edge", "x", "y", "h") self.argparser.add_argument( "--chestlid", action="store", type=bool, default=False, help="add chest lid (needs hinges)") self.angle = 0 - self.argparser.set_defaults( - fingerjointfinger=3.0, - fingerjointspace=3.0 - ) def getR(self): x, y, h, angle = self.x, self.y, self.h, self.angle diff --git a/boxes/generators/box3.py b/boxes/generators/box3.py index 1d1a153..e7617c2 100755 --- a/boxes/generators/box3.py +++ b/boxes/generators/box3.py @@ -22,10 +22,7 @@ class Box3(Boxes): def __init__(self): Boxes.__init__(self) self.buildArgParser("x", "y", "h", "outside") - self.argparser.set_defaults( - fingerjointfinger=3.0, - fingerjointspace=3.0 - ) + self.addSettingsArgs(edges.FingerJointSettings, finger=3.0, space=3.0) def render(self): x, y, h = self.x, self.y, self.h diff --git a/boxes/generators/castle.py b/boxes/generators/castle.py index d8dbefc..c5c8e22 100755 --- a/boxes/generators/castle.py +++ b/boxes/generators/castle.py @@ -22,6 +22,7 @@ class Castle(Boxes): def __init__(self): Boxes.__init__(self) + self.addSettingsArgs(boxes.edges.FingerJointSettings) def render(self, t_x=70, t_h=250, w1_x=300, w1_h=120, w2_x=100, w2_h=120): self.open() diff --git a/boxes/generators/drillbox.py b/boxes/generators/drillbox.py index 17ed7fc..b7bca1a 100755 --- a/boxes/generators/drillbox.py +++ b/boxes/generators/drillbox.py @@ -23,6 +23,7 @@ in 0.5mm steps, 3 holes each size""" def __init__(self): Boxes.__init__(self) + self.addSettingsArgs(edges.FingerJointSettings) self.x, self.y, self.h = 120, 240, 60 def holesx(self): diff --git a/boxes/generators/flexbox.py b/boxes/generators/flexbox.py index 01cd870..bbd5619 100755 --- a/boxes/generators/flexbox.py +++ b/boxes/generators/flexbox.py @@ -23,6 +23,8 @@ class FlexBox(boxes.Boxes): def __init__(self): boxes.Boxes.__init__(self) + self.addSettingsArgs(boxes.edges.FingerJointSettings) + self.addSettingsArgs(boxes.edges.FlexSettings) self.buildArgParser("x", "y", "h", "outside") self.argparser.add_argument( "--radius", action="store", type=float, default=15, diff --git a/boxes/generators/flexbox2.py b/boxes/generators/flexbox2.py index 462bc53..add6dbb 100755 --- a/boxes/generators/flexbox2.py +++ b/boxes/generators/flexbox2.py @@ -23,6 +23,8 @@ class FlexBox2(Boxes): def __init__(self): Boxes.__init__(self) + self.addSettingsArgs(edges.FingerJointSettings) + self.addSettingsArgs(edges.FlexSettings) self.buildArgParser("x", "y", "h", "outside") self.argparser.add_argument( "--radius", action="store", type=float, default=15, diff --git a/boxes/generators/flexbox3.py b/boxes/generators/flexbox3.py index 26583b3..bf00036 100755 --- a/boxes/generators/flexbox3.py +++ b/boxes/generators/flexbox3.py @@ -23,6 +23,8 @@ class FlexBox3(Boxes): def __init__(self): Boxes.__init__(self) + self.addSettingsArgs(edges.FingerJointSettings) + self.addSettingsArgs(edges.FlexSettings) self.buildArgParser("x", "y", "outside") self.argparser.add_argument( "--z", action="store", type=float, default=100.0, diff --git a/boxes/generators/flexbox4.py b/boxes/generators/flexbox4.py index d68dce6..d143378 100644 --- a/boxes/generators/flexbox4.py +++ b/boxes/generators/flexbox4.py @@ -23,6 +23,8 @@ class FlexBox4(Boxes): def __init__(self): Boxes.__init__(self) + self.addSettingsArgs(edges.FingerJointSettings) + self.addSettingsArgs(edges.FlexSettings) self.buildArgParser("x", "y", "h", "outside") self.argparser.add_argument( "--radius", action="store", type=float, default=15, diff --git a/boxes/generators/flextest.py b/boxes/generators/flextest.py index 4ab16b3..bc37c5d 100755 --- a/boxes/generators/flextest.py +++ b/boxes/generators/flextest.py @@ -22,25 +22,13 @@ class FlexTest(Boxes): def __init__(self): Boxes.__init__(self) + self.addSettingsArgs(edges.FlexSettings) self.buildArgParser("x", "y") - self.argparser.add_argument( - "--fd", action="store", type=float, default=0.5, - help="distance of flex cuts in multiples of thickness") - self.argparser.add_argument( - "--fc", action="store", type=float, default=1.0, - help="connections of flex cuts in multiples of thickness") - self.argparser.add_argument( - "--fw", action="store", type=float, default=5.0, - help="width of flex cuts in multiples of thickness") def render(self): x, y = self.x, self.y self.open() - self.edges["X"].settings.setValues( - self.thickness, relative=True, - distance=self.fd, connection=self.fc, width=self.fw) - self.moveTo(5, 5) self.edge(10) self.edges["X"](x, y) diff --git a/boxes/generators/folder.py b/boxes/generators/folder.py index 48ea5f2..85bbf61 100755 --- a/boxes/generators/folder.py +++ b/boxes/generators/folder.py @@ -23,6 +23,7 @@ class Folder(Boxes): def __init__(self): Boxes.__init__(self) + self.addSettingsArgs(edges.FingerJointSettings) self.buildArgParser("x", "y", "h") self.argparser.add_argument( "--r", action="store", type=float, default=10.0, diff --git a/boxes/generators/gearbox.py b/boxes/generators/gearbox.py index 1fa3a44..5df29d5 100644 --- a/boxes/generators/gearbox.py +++ b/boxes/generators/gearbox.py @@ -22,6 +22,7 @@ class GearBox(Boxes): def __init__(self): Boxes.__init__(self) + self.addSettingsArgs(edges.FingerJointSettings) self.argparser.add_argument( "--teeth1", action="store", type=int, default=8, help="number of teeth on ingoing shaft") diff --git a/boxes/generators/lamp.py b/boxes/generators/lamp.py index 066d2f6..ac2c801 100755 --- a/boxes/generators/lamp.py +++ b/boxes/generators/lamp.py @@ -63,6 +63,7 @@ class Lamp(Boxes): def __init__(self): Boxes.__init__(self) + self.addSettingsArgs(edges.FingerJointSettings) def side(self, y, h): return diff --git a/boxes/generators/magazinefile.py b/boxes/generators/magazinefile.py index 948b1d9..53ef32e 100755 --- a/boxes/generators/magazinefile.py +++ b/boxes/generators/magazinefile.py @@ -23,10 +23,7 @@ class MagazinFile(Boxes): def __init__(self): Boxes.__init__(self) self.buildArgParser("x", "y", "h", "hi", "outside") - self.argparser.set_defaults( - fingerjointfinger=2.0, - fingerjointspace=2.0 - ) + self.addSettingsArgs(edges.FingerJointSettings, finger=2.0, space=2.0) def side(self, w, h, hi): r = min(h - hi, w) / 2.0 diff --git a/boxes/generators/printer.py b/boxes/generators/printer.py index 71a90c5..670d23f 100755 --- a/boxes/generators/printer.py +++ b/boxes/generators/printer.py @@ -24,6 +24,9 @@ class Printer(Boxes): def __init__(self, r=250, h=400, d_c=100): Boxes.__init__(self) + + self.addSettingsArgs(edges.FingerJointSettings) + self.r = r self.h = h self.d_c = d_c diff --git a/boxes/generators/rotary.py b/boxes/generators/rotary.py index 14cc409..6022309 100644 --- a/boxes/generators/rotary.py +++ b/boxes/generators/rotary.py @@ -85,9 +85,9 @@ class Rotary(Boxes): def __init__(self): Boxes.__init__(self) - # remove cli params you do not need - # self.buildArgParser("x", "sx", "y", "sy", "h", "hi") - # Add non default cli params if needed (see argparse std lib) + + self.addSettingsArgs(edges.FingerJointSettings) + self.argparser.add_argument( "--diameter", action="store", type=float, default=72., help="outer diameter of the wheels (including O rings)") diff --git a/boxes/generators/traylayout.py b/boxes/generators/traylayout.py index b3f6714..3941dc0 100755 --- a/boxes/generators/traylayout.py +++ b/boxes/generators/traylayout.py @@ -26,6 +26,7 @@ class Layout(Boxes): def __init__(self, input=None, webargs=False): Boxes.__init__(self) + self.addSettingsArgs(boxes.edges.FingerJointSettings) self.buildArgParser("h", "hi", "outside") if not webargs: self.argparser.add_argument( @@ -404,6 +405,7 @@ class TrayLayout2(Layout): def __init__(self, input=None): Boxes.__init__(self) + self.addSettingsArgs(boxes.edges.FingerJointSettings) self.buildArgParser("h", "hi", "outside") self.argparser.add_argument( "--layout", action="store", type=str) diff --git a/boxes/generators/typetray.py b/boxes/generators/typetray.py index e5182b0..23a07c9 100755 --- a/boxes/generators/typetray.py +++ b/boxes/generators/typetray.py @@ -23,17 +23,14 @@ class TypeTray(Boxes): def __init__(self): Boxes.__init__(self) self.buildArgParser("sx", "sy", "h", "hi", "outside") + self.addSettingsArgs(edges.FingerJointSettings, finger=3.0, space=3.0, + surroundingspaces=0.5) self.argparser.add_argument( "--gripheight", action="store", type=float, default=30, dest="gh", help="height of the grip hole in mm") 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