From 968f5dbe6e204bfddb5d3225a3b41e0394f24c0c Mon Sep 17 00:00:00 2001 From: Mario Voigt Date: Sat, 24 Apr 2021 13:27:52 +0200 Subject: [PATCH] added buxtronix living hinge extension --- .../buxtronix_living_hinge/images/about.png | Bin 0 -> 73693 bytes .../images/cross-lattice.png | Bin 0 -> 1878 bytes .../images/diamond-lattice.png | Bin 0 -> 3805 bytes .../images/diamond-lattice.svg | 143 ++++++ .../images/straight-lattice.png | Bin 0 -> 852 bytes .../images/wavy-lattice.png | Bin 0 -> 2166 bytes .../buxtronix_living_hinge/living_hinge.inx | 68 +++ .../buxtronix_living_hinge/living_hinge.py | 450 ++++++++++++++++++ 8 files changed, 661 insertions(+) create mode 100644 extensions/fablabchemnitz/buxtronix_living_hinge/images/about.png create mode 100644 extensions/fablabchemnitz/buxtronix_living_hinge/images/cross-lattice.png create mode 100644 extensions/fablabchemnitz/buxtronix_living_hinge/images/diamond-lattice.png create mode 100644 extensions/fablabchemnitz/buxtronix_living_hinge/images/diamond-lattice.svg create mode 100644 extensions/fablabchemnitz/buxtronix_living_hinge/images/straight-lattice.png create mode 100644 extensions/fablabchemnitz/buxtronix_living_hinge/images/wavy-lattice.png create mode 100644 extensions/fablabchemnitz/buxtronix_living_hinge/living_hinge.inx create mode 100755 extensions/fablabchemnitz/buxtronix_living_hinge/living_hinge.py diff --git a/extensions/fablabchemnitz/buxtronix_living_hinge/images/about.png b/extensions/fablabchemnitz/buxtronix_living_hinge/images/about.png new file mode 100644 index 0000000000000000000000000000000000000000..b4bfd54ab1d279b90b185384dd4bb46eba2c9764 GIT binary patch literal 73693 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\gW|_QriItTq`?eRkHnB{qqmQ1gHzSo~ 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 literal 0 HcmV?d00001 diff --git a/extensions/fablabchemnitz/buxtronix_living_hinge/images/diamond-lattice.png b/extensions/fablabchemnitz/buxtronix_living_hinge/images/diamond-lattice.png new file mode 100644 index 0000000000000000000000000000000000000000..d03cf75b6862c903293de3eb40c7633129dad1b3 GIT binary patch literal 3805 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 + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/fablabchemnitz/buxtronix_living_hinge/images/straight-lattice.png b/extensions/fablabchemnitz/buxtronix_living_hinge/images/straight-lattice.png new file mode 100644 index 0000000000000000000000000000000000000000..dd911d59a9862b15ab9d74074942da9e010ca19b GIT binary patch literal 852 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 literal 0 HcmV?d00001 diff --git a/extensions/fablabchemnitz/buxtronix_living_hinge/living_hinge.inx b/extensions/fablabchemnitz/buxtronix_living_hinge/living_hinge.inx new file mode 100644 index 00000000..a42f2106 --- /dev/null +++ b/extensions/fablabchemnitz/buxtronix_living_hinge/living_hinge.inx @@ -0,0 +1,68 @@ + + + Buxtronix Living Hinges + fablabchemnitz.de.buxtronix_living_hinges + + + images/straight-lattice.png + 20 + 2.0 + 0.0 + + + + images/diamond-lattice.png + 20 + 4.0 + 0.5 + + + + images/cross-lattice.png + 20 + 6.0 + + + + images/wavy-lattice.png + 29 + 4.0 + + + + + images/about.png + + + + 100 + 100 + + + + + + + + false + + all + + + + + + + + diff --git a/extensions/fablabchemnitz/buxtronix_living_hinge/living_hinge.py b/extensions/fablabchemnitz/buxtronix_living_hinge/living_hinge.py new file mode 100755 index 00000000..637bcf44 --- /dev/null +++ b/extensions/fablabchemnitz/buxtronix_living_hinge/living_hinge.py @@ -0,0 +1,450 @@ +#!/usr/bin/env python3 + +import inkex +cut_colour = '#ff0000' +engrave_colour = '#0000ff' + +class Generator(object): + """A generic generator, subclassed for each different lattice style.""" + + def __init__(self, x, y, width, height, stroke_width, svg, e_length, p_spacing): + self.x = x + self.y = y + self.width = width + self.height = height + self.stroke_width = stroke_width + self.svg = svg + self.canvas = self.svg.get_current_layer() + self.e_length = e_length + self.e_height = 0 # Provided by sub-classes. + self.p_spacing = p_spacing + self.fixed_commands = "" + + def draw_one(self, x, y): + return "M %f,%f %s" % (x, y, self.fixed_commands) + + def parameter_text(self): + return "length: %.f spacing: %.1f" % ( + self.e_length, + self.p_spacing, + ) + + def draw_swatch(self): + border = self.canvas.add(inkex.PathElement()) + # Curve radius + cr = self.svg.unittouu('10mm') + # Swatch padding + sp = self.svg.unittouu('30mm') + # Handle length + hl = cr/2 + path_command = ( + 'm %f,%f l %f,%f c %f,%f %f,%f %f,%f' + 'l %f,%f c %f,%f %f,%f %f,%f ' + 'l %f,%f c %f,%f %f,%f %f,%f ' + 'l %f,%f c %f,%f %f,%f %f,%f ') % ( + cr, 0, + + self.width - 2*cr, 0, + + hl, 0, + cr, cr-hl, + cr, cr, + + 0, self.height - 2*cr + 1.5*sp, + + 0, cr/2, + 0-cr+hl, cr, + 0-cr, cr, + + 0-self.width + 2*cr, 0, + + 0-hl, 0, + 0-cr, 0-cr+hl, + 0-cr, 0-cr, + + 0, 0-self.height - 1.5*sp + 2*cr, + + 0, 0-hl, + cr-hl, 0-cr, + cr, 0-cr + ) + + style = { + "stroke": cut_colour, + "stroke-width": str(self.stroke_width), + "fill": "none", + } + border.update(**{"style": style, "inkscape:label": "lattice_border", "d": path_command}) + + c = self.canvas.add(inkex.Circle( + style=str(inkex.Style(style)), + cx=str(cr), + cy=str(cr), + r=str(self.svg.unittouu('4mm')))) + + self.y += sp + + text_style = { + 'fill': engrave_colour, + 'font-size': '9px', + 'font-family': 'sans-serif', + 'text-anchor': 'middle', + 'text-align': 'center', + } + text = self.canvas.add( + inkex.TextElement( + style=str(inkex.Style(text_style)), + x=str(self.x + self.width/2), + y=str(self.y - sp/2))) + text.text = "Style: %s" % self.name + + text_style['font-size'] = "3px" + text = self.canvas.add( + inkex.TextElement( + style=str(inkex.Style(text_style)), + x=str(self.x + self.width/2), + y=str(self.y - sp/4))) + text.text = self.parameter_text() + + text = self.canvas.add( + inkex.TextElement( + style=str(inkex.Style(text_style)), + x=str(self.x + self.width/2), + y=str(self.y +self.height + sp/4))) + text.text = "https://github.com/buxtronix/living-hinge" + + def generate(self, swatch): + if swatch: + self.draw_swatch() + # Round width/height to integer number of patterns. + self.e_length = self.width / max(round(self.width / self.e_length), 1.0) + self.e_height = self.height / max(round(self.height / self.e_height), 1.0) + self.prerender() + style = { + "stroke": cut_colour, + "stroke-width": str(self.stroke_width), + "fill": "none", + } + path_command = "" + y = self.y + while y < self.y + self.height: + x = self.x + while x < self.x + self.width: + path_command = "%s %s " % (path_command, self.draw_one(x, y)) + x += self.e_length + y += self.e_height + + link = self.canvas.add(inkex.PathElement()) + link.update(**{"style": style, "inkscape:label": "lattice", "d": path_command}) + link.description("%s hinge %s" % (self.name, self.parameter_text())) + + +class StraightLatticeGenerator(Generator): + def __init__(self, *args, **kwargs): + super(StraightLatticeGenerator, self).__init__(*args) + self.link_gap = kwargs['link_gap'] + self.e_height = 2 * self.p_spacing + self.name = "straight" + + def prerender(self): + self.e_height = 2 * self.p_spacing + w = self.e_length + lg = self.link_gap + + if lg < 0.1: + # Single line for 0 height gap. + self.fixed_commands = " m %f,%f h %f m %f,%f h %f m %f,%f h %f" % ( + 0, self.e_height / 2, + w * 2 / 5, + + 0 - w / 5, 0 - self.e_height / 2, + w * 3 / 5, + + 0 - w / 5, self.e_height / 2, + w * 2 / 5, + ) + else: + self.fixed_commands = ( + " m %f,%f h %f v %f h %f" + " m %f,%f h %f v %f h %f v %f" + " m %f,%f h %f v %f h %f " + ) % ( + 0, + self.e_height / 2, + w * 2 / 5, + lg, + 0 - w * 2 / 5, + w / 8, + 0 - lg - self.e_height / 2, + w * 3 / 4, + lg, + 0 - w * 3 / 4, + 0 - lg, + w * 7 / 8, + lg + self.e_height / 2, + 0 - w * 2 / 5, + 0 - lg, + w * 2 / 5, + ) + + def parameter_text(self): + text = super(StraightLatticeGenerator, self).parameter_text() + return "%s element_height: %.1f" % (text, self.link_gap) + + +class DiamondLatticeGenerator(Generator): + def __init__(self, *args, **kwargs): + super(DiamondLatticeGenerator, self).__init__(*args) + self.e_height = self.p_spacing + self.diamond_curve = kwargs['diamond_curve'] + self.name = "diamond" + + def prerender(self): + h = self.e_height + w = self.e_length + # Diamond curve + dc = 0-self.diamond_curve + # Horiz handle length. + hhl = abs(dc * w * 0.2) + # Endpoint horiz handle length + ehhl = hhl if dc > 0 else 0 + # Vert handle length + vhl = abs(dc * h / 8) if dc < 0 else 0 + # Left + self.fixed_commands = " m %f,%f c %f,%f %f,%f %f,%f c %f,%f %f,%f %f,%f " % ( + 0, h / 4, + + hhl, 0, + w * 0.4 - ehhl, h / 4 - vhl, + w * 0.4, h / 4, + + 0 - ehhl, vhl, + 0 - (w * 0.4 - hhl), h / 4, + 0 - w * 0.4, h / 4, + ) + + # Bottom + self.fixed_commands = "%s m %f,%f c %f,%f %f,%f %f,%f s %f,%f %f,%f " % ( + self.fixed_commands, + w * 0.1, h / 4, + + ehhl, 0 - vhl, + w * 0.4 - hhl, 0 - h / 4, + w * 0.4, 0 - h / 4, + + w * 0.4 - ehhl, h / 4 - vhl, + w * 0.4, h / 4, + ) + + # Top + self.fixed_commands = "%s m %f,%f c %f,%f %f,%f %f,%f s %f,%f %f,%f " % ( + self.fixed_commands, + 0 - w * 0.8, 0 - h, + + ehhl, vhl, + w * 0.4 - hhl, h / 4, + w * 0.4, h / 4, + + w * 0.4 - ehhl, 0 - h / 4 + vhl, + w * 0.4, 0 - h / 4, + ) + + # Right + self.fixed_commands = "%s m %f,%f c %f,%f %f,%f %f,%f c %f,%f %f,%f %f,%f " % ( + self.fixed_commands, + w * 0.1, h *0.75, + + 0 - hhl, 0, + (0 - w * 0.4) + ehhl, 0 - h / 4 + vhl, + 0 - w * 0.4, 0 - h / 4, + + ehhl, 0 - vhl, + w * 0.4 - hhl, 0 - h / 4, + w * 0.4, 0 - h / 4, + ) + + def draw_one(self, x, y): + return "M %f,%f %s" % (x, y, self.fixed_commands) + + def parameter_text(self): + text = super(DiamondLatticeGenerator, self).parameter_text() + return "%s curve: %.1f" % (text, self.diamond_curve) + + +class CrossLatticeGenerator(Generator): + def __init__(self, *args): + super(CrossLatticeGenerator, self).__init__(*args) + self.e_height = self.p_spacing + self.name = "cross" + + def prerender(self): + l = self.e_length + h = self.e_height + self.fixed_commands = ( + "m %f,%f l %f,%f l %f,%f m %f,%f l %f,%f" + "m %f,%f l %f,%f l %f,%f l %f,%f " + "m %f,%f l %f,%f l %f,%f l %f,%f " + "m %f,%f l %f,%f l %f,%f m %f,%f l %f,%f" + ) % ( + # Left + 0, h * 0.5, + l * 0.2, 0, + l * 0.2, 0 - h * 0.3, + 0 - l * 0.2, h * 0.3, + l * 0.2, h * 0.3, + # Top + 0 - l * 0.3, 0 - h * 0.5, + l * 0.2, 0 - h * 0.3, + l * 0.4, 0, + l * 0.2, h * 0.3, + # Bottom + 0, h * 0.4, + 0 - l * 0.2, h * 0.3, + 0 - l * 0.4, 0, + 0 - l * 0.2, 0 - h * 0.3, + # Right + l * 0.5, 0 - h * 0.5, + l * 0.2, h * 0.3, + 0 - l * 0.2, h * 0.3, + l * 0.2, 0 - h * 0.3, + l * 0.2, 0, + ) + + +class WavyLatticeGenerator(Generator): + def __init__(self, *args, **kwargs): + super(WavyLatticeGenerator, self).__init__(*args) + self.e_height = self.p_spacing + self.name = "wavy" + + def prerender(self): + h = self.e_height + w = self.e_length + self.fixed_commands = ( + " m %f,%f h %f c %f,%f %f,%f %f,%f h %f " + "m %f,%f h %f c %f,%f %f,%f %f,%f h %f " + ) % ( + 0, h, # Start of element (left) + w * 0.1, # Short horiz line. + + w * 0.1, 0, # Control 1 + w * 3 / 40, 0 - h / 2, # Control 2 + w * 0.2, 0 - h / 2, # Curve top. + + w * 0.175, # Top horiz line. + + 0 - w * 0.1, 0 - h / 2, # Move to higher line. + w * 0.3, # Long higher horiz line. + + w / 5, 0, # Control 1 + w / 10, h, # Control 2 + w * 0.25, h, # Curve down. + + w * 0.075, # End horiz line. + ) + + +class LivingHingeEffect(inkex.EffectExtension): + """ + Extension to create laser cut bend lattices. + """ + + def add_arguments(self, pars): + pars.add_argument("--tab", help="Bend pattern to generate") + pars.add_argument("--unit", help="Units for dimensions") + pars.add_argument("--swatch", type=inkex.Boolean, help="Draw as a swatch card") + + pars.add_argument("--width", type=float, default=300, help="Width of pattern") + pars.add_argument("--height", type=float, default=100, help="Height of pattern") + + pars.add_argument("--sl_length", type=int, default=20, help="Length of links") + pars.add_argument("--sl_gap", type=float, default=0.5, help="Gap between links") + pars.add_argument("--sl_spacing", type=float, default=20, help="Spacing of links") + + pars.add_argument("--dl_curve", type=float, default=0.5, help="Curve of diamonds") + pars.add_argument("--dl_length", type=float, default=24, help="Length of diamonds") + pars.add_argument("--dl_spacing", type=float, default=4, help="Spacing of diamonds") + + pars.add_argument("--cl_length", type=float, default=24, help="Length of combs") + pars.add_argument("--cl_spacing", type=float, default=6, help="Spacing of combs") + + pars.add_argument("--wl_length", type=int, default=20, help="Length of links") + pars.add_argument("--wl_interval", type=int, default=30, help="Interval between links") + pars.add_argument("--wl_spacing", type=float, default=0.5, help="Spacing between links") + + def convert(self, value): + return self.svg.unittouu(str(value) + self.options.unit) + + def convertmm(self, value): + return self.svg.unittouu('%fmm' % value) + + def effect(self): + stroke_width = self.svg.unittouu("0.2mm") + self.options.width = self.convert(self.options.width) + self.options.height = self.convert(self.options.height) + + def draw_one(x, y): + if self.options.tab == "straight_lattice": + generator = StraightLatticeGenerator( + x, + y, + self.options.width, + self.options.height, + stroke_width, + self.svg, + self.convertmm(self.options.sl_length), + self.convertmm(self.options.sl_spacing), + link_gap=self.convertmm(self.options.sl_gap), + ) + elif self.options.tab == "diamond_lattice": + generator = DiamondLatticeGenerator( + x, + y, + self.options.width, + self.options.height, + stroke_width, + self.svg, + self.convertmm(self.options.dl_length), + self.convertmm(self.options.dl_spacing), + diamond_curve=self.options.dl_curve, + ) + elif self.options.tab == "cross_lattice": + generator = CrossLatticeGenerator( + x, + y, + self.options.width, + self.options.height, + stroke_width, + self.svg, + self.convertmm(self.options.cl_length), + self.convertmm(self.options.cl_spacing), + ) + elif self.options.tab == "wavy_lattice": + generator = WavyLatticeGenerator( + x, + y, + self.options.width, + self.options.height, + stroke_width, + self.svg, + self.convertmm(self.options.wl_length), + self.convertmm(self.options.wl_spacing), + ) + else: + inkex.errormsg("Select a valid pattern tab before rendering.") + return + generator.generate(self.options.swatch) + + if self.options.swatch or not self.svg.selected: + draw_one(0, 0) + else: + for elem in self.svg.selected.values(): + # Determine width and height based on the selected object's bounding box. + bbox = elem.bounding_box() + self.options.width = bbox.width + self.options.height = bbox.height + x = bbox.x.minimum + y = bbox.y.minimum + draw_one(x, y) + +LivingHingeEffect().run() \ No newline at end of file