From 9f41ed2e13b226f9f343f4c636d130532acc0e33 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Thu, 4 May 2017 14:14:06 +0800 Subject: [PATCH] updated docs --- README.md | 3 ++ docs/images/lib-helix_extrude-1.JPG | Bin 0 -> 65845 bytes docs/lib-helix_extrude.md | 55 ++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 docs/images/lib-helix_extrude-1.JPG create mode 100644 docs/lib-helix_extrude.md diff --git a/README.md b/README.md index 19c3d2f2..fe8e364f 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,8 @@ Some modules may depend on other modules. For example, the `polyline2d` module d If OpenSCAD generates "WARNING: Ignoring unknown xxx function" or "WARNING: Ignoring unknown xxx module" when using one module of dotSCAD. Just try to `include ;`. +Too many dependencies? Because OpenSCAD doesn't provide namespace management, I personally think that exposing dependencies is better than hiding them. In this way, users can have their own way to manage dependencies. How to categorize dependencies is up to you. For example, you can include your commonly-used modules and functions in "commonly_used.scad" and then `include ;` in the ".scad" file of your project. + ## Documentation - 2D @@ -72,6 +74,7 @@ If OpenSCAD generates "WARNING: Ignoring unknown xxx function" or "WARNING: Igno - [stereographic_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-stereographic_extrude.html) - [path_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-path_extrude.html) - [ring_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-ring_extrude.html) + - [helix_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-helix_extrude.html) - Other - [turtle2d](https://openhome.cc/eGossip/OpenSCAD/lib-turtle2d.html) diff --git a/docs/images/lib-helix_extrude-1.JPG b/docs/images/lib-helix_extrude-1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..704739f3568b2fed9d8332d0ccfdcb26411d017f GIT binary patch literal 65845 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

-wUQG7CVe7?7D?nrr)7@ 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 MzizEO{5AW30OuB$bpQYW literal 0 HcmV?d00001 diff --git a/docs/lib-helix_extrude.md b/docs/lib-helix_extrude.md new file mode 100644 index 00000000..01010dfd --- /dev/null +++ b/docs/lib-helix_extrude.md @@ -0,0 +1,55 @@ +# helix_extrude + +Extrudes a 2D shape along a helix path. + +When using this module, you should use points to represent the 2D shape. You need to provide indexes of triangles, too. This module provides two prepared triangles indexes. One is `"RADIAL"`. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details. + +Its `$fa`, `$fs` and `$fn` parameters are consistent with the `cylinder` module. + +Dependencies: `circle_path`, `helix`, `rotate_p.scad`, `cross_sections`, `polysections`. + +## Parameters + +- `shape_pts` : A list of points represent a shape. See the example below. +- `radius` : The radius of the cylinder. +- `levels` : The level count is performed every 360 degrees. +- `level_dist` : The distance between two vertial points. +- `vt_dir` : `"SPI_DOWN"` for spiraling down. `"SPI_UP"` for spiraling up. The default value is `"SPI_DOWN"`. +- `rt_dir` : `"CT_CLK"` for counterclockwise. `"CLK"` for clockwise. The default value is `"CT_CLK"`. +- `twist` : The number of degrees of through which the shape is extruded. +- `scale` : Scales the 2D shape by this value over the length of the extrusion. Scale can be a scalar or a vector. +- `triangles` : `"RADIAL"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details. +- `$fa`, `$fs`, `$fn` : Check [the cylinder module](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids#cylinder) for more details. + +## Examples + + include ; + include ; + include ; + include ; + include ; + include ; + + shape_pts = [ + [-5, -2], [-5, 2], + [-4, 2], [-4, 0], + [4, 0], [4, 2], + [5, 2], [5, -2] + ]; + + helix_extrude(shape_pts, + radius = 40, + levels = 5, + level_dist = 10, + triangles = [ + [0, 1, 2], + [0, 2, 3], + [0, 3, 4], + [0, 4, 7], + [4, 5, 6], + [4, 6, 7] + ] + ); + +![helix_extrude](images/lib-helix_extrude-1.JPG) +