From db43b742a62faf072aa03391a517377e45d87e18 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Sun, 19 Mar 2017 09:10:15 +0800 Subject: [PATCH] added bend --- docs/images/lib-bend-1.JPG | Bin 0 -> 43798 bytes docs/images/lib-bend-2.JPG | Bin 0 -> 35300 bytes docs/images/lib-bend-3.JPG | Bin 0 -> 35229 bytes docs/lib-bend.md | 51 +++++++++++++++++++++++++++++++++++ src/bend.scad | 53 +++++++++++++++++++++++++++++++++++++ 5 files changed, 104 insertions(+) create mode 100644 docs/images/lib-bend-1.JPG create mode 100644 docs/images/lib-bend-2.JPG create mode 100644 docs/images/lib-bend-3.JPG create mode 100644 docs/lib-bend.md create mode 100644 src/bend.scad diff --git a/docs/images/lib-bend-1.JPG b/docs/images/lib-bend-1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..6a6b5ec33bae90d102540af2047785906e4396a3 GIT binary patch literal 43798 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

uw@VyYKKIBuPKAJg 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 LBn}zw=iL7T=X%oh literal 0 HcmV?d00001 diff --git a/docs/images/lib-bend-2.JPG b/docs/images/lib-bend-2.JPG new file mode 100644 index 0000000000000000000000000000000000000000..9d8c9f2d3bc63d0043e89584d1993f37274e1827 GIT binary patch literal 35300 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 TiqYDX;~&mp{|xBBd_Day;ab4z literal 0 HcmV?d00001 diff --git a/docs/images/lib-bend-3.JPG b/docs/images/lib-bend-3.JPG new file mode 100644 index 0000000000000000000000000000000000000000..672bcbcf161ea76ec7c962c0360679f3cf0aaf17 GIT binary patch literal 35229 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 literal 0 HcmV?d00001 diff --git a/docs/lib-bend.md b/docs/lib-bend.md new file mode 100644 index 00000000..312a30d3 --- /dev/null +++ b/docs/lib-bend.md @@ -0,0 +1,51 @@ +# bend + +Bend a 3D object into an arc shape. + +## Parameters + +- `size` : The size of a cube which can contain the target object. +- `angle` : The central angle of the arc shape. The radius of the arc is calculated automatically. +- `fn` : Number of fragments. The target object will be cut into `fn` fragments and recombined into an arc shape. + +## Examples + +The containing cube of the target object should be laid down on the x-y plane. For examples. + + x = 9.25; + y = 9.55; + z = 1; + + %cube(size = [x, y, z]); + linear_extrude(z) text("A"); + +![bend](images/lib-bend-1.JPG) + +Once you have the size of the containing cube, you can use it as the `size` argument of the `bend` module. + + x = 9.25; + y = 9.55; + z = 1; + + *cube(size = [x, y, z]); + + bend(size = [x, y, z], angle = 270) + linear_extrude(z) text("A"); + +![bend](images/lib-bend-2.JPG) + +The arc shape is smoother if the `frags` is larger. + + x = 9.25; + y = 9.55; + z = 1; + + bend(size = [x, y, z], angle = 270, frags = 360) + linear_extrude(z) + text("A"); + +![bend](images/lib-bend-3.JPG) + +This module is especially useful when you want to create things such as [zentangle bracelet](https://www.thingiverse.com/thing:1569263). + +[![zentangle bracelet](http://thingiverse-production-new.s3.amazonaws.com/renders/eb/93/4f/62/1f/3bd1f628e1e566dcb5313035e4f3345b_preview_featured.JPG)](https://www.thingiverse.com/thing:1569263) \ No newline at end of file diff --git a/src/bend.scad b/src/bend.scad new file mode 100644 index 00000000..7215d112 --- /dev/null +++ b/src/bend.scad @@ -0,0 +1,53 @@ +/** +* bend.scad +* +* Bend a 3D object into an arc shape. +* +* @copyright Justin Lin, 2017 +* @license https://opensource.org/licenses/lgpl-3.0.html +* +* @see https://openhome.cc/eGossip/OpenSCAD/lib-bend.html +* +**/ + + +module bend(size, angle, frags = 24) { + x = size[0]; + y = size[1]; + z = size[2]; + frag_width = x / frags; + frag_angle = angle / frags; + half_frag_width = 0.5 * frag_width; + half_frag_angle = 0.5 * frag_angle; + r = half_frag_width / sin(half_frag_angle); + h = r * cos(half_frag_angle); + + module triangle_frag() { + translate([0, -z, 0]) + linear_extrude(y) + polygon( + [ + [0, 0], + [half_frag_width, h], + [frag_width, 0], + [0, 0] + ] + ); + } + + module get_frag(i) { + translate([-frag_width * i - half_frag_width, -h + z, 0]) + intersection() { + translate([frag_width * i, 0, 0]) + triangle_frag(); + rotate([90, 0, 0]) + children(); + } + } + + for(i = [0 : frags - 1]) { + rotate(i * frag_angle + half_frag_angle) + get_frag(i) + children(); + } +} \ No newline at end of file