From 604ea923afd393d0e3536bd98335e1c8d9204cf3 Mon Sep 17 00:00:00 2001 From: Florian Festi Date: Mon, 22 Jun 2020 19:57:18 +0200 Subject: [PATCH] New generator: BasedBox --- boxes/generators/basedbox.py | 50 ++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 boxes/generators/basedbox.py diff --git a/boxes/generators/basedbox.py b/boxes/generators/basedbox.py new file mode 100644 index 0000000..b9b1b5f --- /dev/null +++ b/boxes/generators/basedbox.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 +# Copyright (C) 2013-2014 Florian Festi +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from boxes import * + + +class BasedBox(Boxes): + """Fully closed box on a base""" + + ui_group = "Box" + + def __init__(self): + Boxes.__init__(self) + self.addSettingsArgs(edges.FingerJointSettings) + self.buildArgParser("x", "y", "h", "outside") + + def render(self): + + x, y, h = self.x, self.y, self.h + + if self.outside: + x = self.adjustSize(x) + y = self.adjustSize(y) + h = self.adjustSize(h) + + t = self.thickness + + self.rectangularWall(x, h, "fFFF", move="right") + self.rectangularWall(y, h, "ffFf", move="up") + self.rectangularWall(y, h, "ffFf") + self.rectangularWall(x, h, "fFFF", move="left up") + + self.rectangularWall(x, y, "ffff", move="right") + self.rectangularWall(x, y, "hhhh") + + +