From c20c1ee830a805cfa794e82ebbfc5dda3c48569b Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Thu, 16 Mar 2017 20:26:15 +0800 Subject: [PATCH] added line3d --- README.md | 3 ++ docs/images/lib-line3d-1.JPG | Bin 0 -> 35193 bytes docs/images/lib-line3d-2.JPG | Bin 0 -> 34756 bytes docs/images/lib-line3d-3.JPG | Bin 0 -> 34388 bytes docs/lib-line3d.md | 42 +++++++++++++++++++++ docs/line3d.scad | 69 +++++++++++++++++++++++++++++++++++ 6 files changed, 114 insertions(+) create mode 100644 docs/images/lib-line3d-1.JPG create mode 100644 docs/images/lib-line3d-2.JPG create mode 100644 docs/images/lib-line3d-3.JPG create mode 100644 docs/lib-line3d.md create mode 100644 docs/line3d.scad diff --git a/README.md b/README.md index 28549284..79e43bd8 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,9 @@ These fundamental modules are helpful when playing OpenSCAD. - [circular_sector](https://openhome.cc/eGossip/OpenSCAD/lib-circular_sector.html) - [arc](https://openhome.cc/eGossip/OpenSCAD/lib-arc.html) +## 3D +- [line3d](https://openhome.cc/eGossip/OpenSCAD/lib-line3d.html) + ## Transformations - [hollow_out](https://openhome.cc/eGossip/OpenSCAD/lib-hollow_out.html) diff --git a/docs/images/lib-line3d-1.JPG b/docs/images/lib-line3d-1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..dfb860bbe658d1b6fc7fcb806bec2a3260e3a8dc GIT binary patch literal 35193 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%0AW;5t%R?Q0fKi%^|;JTcg$a8JDm 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 r$f;*P2sN>aim$vGy#{(&%vUz>QA`dv6v*Fe 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

6Az18-!mq$_+!X3uUS$1m;C1zC;g8_@ZT)S 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 literal 0 HcmV?d00001 diff --git a/docs/lib-line3d.md b/docs/lib-line3d.md new file mode 100644 index 00000000..01f8ce43 --- /dev/null +++ b/docs/lib-line3d.md @@ -0,0 +1,42 @@ +# line3d + +Creates a 3D line from two points. + +## Parameters + +- `p1` : 3 element vector `[x, y, z]`. +- `p2` : 3 element vector `[x, y, z]`. +- `thickness` : The line thickness. +- `p1Style` : The end-cap style of the point `p1`. The value must be `CAP_BUTT`, `CAP_CIRCLE` or `CAP_SPHERE`. The default value is `CAP_CIRCLE`. +- `p2Style` : The end-cap style of the point `p2`. The value must be `CAP_BUTT`, `CAP_CIRCLE` or `CAP_ROUND`. The default value is `CAP_CIRCLE`. +- `fn` : It controlls the `$fn` value used by the `circle` or `sphere` module. The default value is `24`. + +## Examples + + line3d( + p1 = [0, 0, 0], + p2 = [10, 2, 10], + thickness = 1 + ); + +![line3d](images/lib-line3d-1.JPG) + + line3d( + p1 = [0, 0, 0], + p2 = [10, 2, 10], + thickness = 1, + p1Style = CAP_BUTT, + p2Style = CAP_BUTT + ); + +![line3d](images/lib-line3d-2.JPG) + + line3d( + p1 = [0, 0, 0], + p2 = [10, 2, 10], + thickness = 1, + p1Style = CAP_SPHERE, + p2Style = CAP_SPHERE + ); + +![line3d](images/lib-line3d-3.JPG) diff --git a/docs/line3d.scad b/docs/line3d.scad new file mode 100644 index 00000000..0c4ccba4 --- /dev/null +++ b/docs/line3d.scad @@ -0,0 +1,69 @@ +/** +* line3d.scad +* +* Creates a 3D line from two points. +* +* @copyright Justin Lin, 2017 +* @license https://opensource.org/licenses/lgpl-3.0.html +* +* @see https://openhome.cc/eGossip/OpenSCAD/lib-line3d.html +* +**/ + +CAP_BUTT = 0; +CAP_CIRCLE = 1; +CAP_SPHERE = 2; + +module line3d(p1, p2, thickness, p1Style = CAP_CIRCLE, p2Style = CAP_CIRCLE, fn = 24) { + $fn = fn; + + r = thickness / 2; + + dx = p2[0] - p1[0]; + dy = p2[1] - p1[1]; + dz = p2[2] - p1[2]; + + + length = sqrt(pow(dx, 2) + pow(dy, 2) + pow(dz, 2)); + + ay = 90 - atan2(dz, sqrt(pow(dx, 2) + pow(dy, 2))); + az = atan2(dy, dx); + + module cap_butt() { + translate(p1) + rotate([0, ay, az]) + linear_extrude(length) + circle(r); + } + + module capCube(p) { + w = r / 1.414; + translate(p) + rotate([0, ay, az]) + translate([0, 0, -w]) + linear_extrude(w * 2) + circle(r); + } + + module capSphere(p) { + translate(p) + rotate([0, ay, az]) + sphere(r * 1.0087); + } + + module cap(p, style) { + if(style == CAP_CIRCLE) { + capCube(p); + } else if(style == CAP_SPHERE) { + if(fn > 4) { + capSphere(p); + } else { + capCube(p); + } + } + } + + cap_butt(); + cap(p1, p1Style); + cap(p2, p2Style); +} \ No newline at end of file