1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-29 17:30:11 +02:00

update all docs

This commit is contained in:
Justin Lin
2020-01-28 17:51:20 +08:00
parent 232225bf83
commit 9dd793541f
100 changed files with 391 additions and 586 deletions

194
README.md
View File

@@ -50,127 +50,127 @@ See [examples](examples).
## Documentation
- 2D
- [arc](https://openhome.cc/eGossip/OpenSCAD/lib-arc.html)
- [pie](https://openhome.cc/eGossip/OpenSCAD/lib-pie.html)
- [rounded_square](https://openhome.cc/eGossip/OpenSCAD/lib-rounded_square.html)
- [line2d](https://openhome.cc/eGossip/OpenSCAD/lib-line2d.html)
- [polyline2d](https://openhome.cc/eGossip/OpenSCAD/lib-polyline2d.html)
- [hull_polyline2d](https://openhome.cc/eGossip/OpenSCAD/lib-hull_polyline2d.html)
- [hexagons](https://openhome.cc/eGossip/OpenSCAD/lib-hexagons.html)
- [polytransversals](https://openhome.cc/eGossip/OpenSCAD/lib-polytransversals.html)
- [multi_line_text](https://openhome.cc/eGossip/OpenSCAD/lib-multi_line_text.html)
- [voronoi2d](https://openhome.cc/eGossip/OpenSCAD/lib-voronoi2d.html)
- [arc](https://openhome.cc/eGossip/OpenSCAD/lib2x-arc.html)
- [pie](https://openhome.cc/eGossip/OpenSCAD/lib2x-pie.html)
- [rounded_square](https://openhome.cc/eGossip/OpenSCAD/lib2x-rounded_square.html)
- [line2d](https://openhome.cc/eGossip/OpenSCAD/lib2x-line2d.html)
- [polyline2d](https://openhome.cc/eGossip/OpenSCAD/lib2x-polyline2d.html)
- [hull_polyline2d](https://openhome.cc/eGossip/OpenSCAD/lib2x-hull_polyline2d.html)
- [hexagons](https://openhome.cc/eGossip/OpenSCAD/lib2x-hexagons.html)
- [polytransversals](https://openhome.cc/eGossip/OpenSCAD/lib2x-polytransversals.html)
- [multi_line_text](https://openhome.cc/eGossip/OpenSCAD/lib2x-multi_line_text.html)
- [voronoi2d](https://openhome.cc/eGossip/OpenSCAD/lib2x-voronoi2d.html)
- 3D
- [rounded_cube](https://openhome.cc/eGossip/OpenSCAD/lib-rounded_cube.html)
- [rounded_cylinder](https://openhome.cc/eGossip/OpenSCAD/lib-rounded_cylinder.html)
- [crystal_ball](https://openhome.cc/eGossip/OpenSCAD/lib-crystal_ball.html)
- [line3d](https://openhome.cc/eGossip/OpenSCAD/lib-line3d.html)
- [polyline3d](https://openhome.cc/eGossip/OpenSCAD/lib-polyline3d.html)
- [hull_polyline3d](https://openhome.cc/eGossip/OpenSCAD/lib-hull_polyline3d.html)
- [function_grapher](https://openhome.cc/eGossip/OpenSCAD/lib-function_grapher.html)
- [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html)
- [starburst](https://openhome.cc/eGossip/OpenSCAD/lib-starburst.html)
- [voronoi3d](https://openhome.cc/eGossip/OpenSCAD/lib-voronoi3d.html)
- [rounded_cube](https://openhome.cc/eGossip/OpenSCAD/lib2x-rounded_cube.html)
- [rounded_cylinder](https://openhome.cc/eGossip/OpenSCAD/lib2x-rounded_cylinder.html)
- [crystal_ball](https://openhome.cc/eGossip/OpenSCAD/lib2x-crystal_ball.html)
- [line3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-line3d.html)
- [polyline3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-polyline3d.html)
- [hull_polyline3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-hull_polyline3d.html)
- [function_grapher](https://openhome.cc/eGossip/OpenSCAD/lib2x-function_grapher.html)
- [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html)
- [starburst](https://openhome.cc/eGossip/OpenSCAD/lib2x-starburst.html)
- [voronoi3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-voronoi3d.html)
- Transformation
- [along_with](https://openhome.cc/eGossip/OpenSCAD/lib-along_with.html)
- [hollow_out](https://openhome.cc/eGossip/OpenSCAD/lib-hollow_out.html)
- [bend](https://openhome.cc/eGossip/OpenSCAD/lib-bend.html)
- [shear](https://openhome.cc/eGossip/OpenSCAD/lib-shear.html)
- [along_with](https://openhome.cc/eGossip/OpenSCAD/lib2x-along_with.html)
- [hollow_out](https://openhome.cc/eGossip/OpenSCAD/lib2x-hollow_out.html)
- [bend](https://openhome.cc/eGossip/OpenSCAD/lib2x-bend.html)
- [shear](https://openhome.cc/eGossip/OpenSCAD/lib2x-shear.html)
- Functon
- [rotate_p](https://openhome.cc/eGossip/OpenSCAD/lib-rotate_p.html)
- [cross_sections](https://openhome.cc/eGossip/OpenSCAD/lib-cross_sections.html)
- [paths2sections](https://openhome.cc/eGossip/OpenSCAD/lib-paths2sections.html)
- [path_scaling_sections](https://openhome.cc/eGossip/OpenSCAD/lib2-path_scaling_sections.html)
- [bijection_offset](https://openhome.cc/eGossip/OpenSCAD/lib-bijection_offset.html)
- [in_polyline](https://openhome.cc/eGossip/OpenSCAD/lib-in_polyline.html)
- [in_shape](https://openhome.cc/eGossip/OpenSCAD/lib-in_shape.html)
- [midpt_smooth](https://openhome.cc/eGossip/OpenSCAD/lib-midpt_smooth.html)
- [trim_shape](https://openhome.cc/eGossip/OpenSCAD/lib-trim_shape.html)
- [triangulate](https://openhome.cc/eGossip/OpenSCAD/lib-triangulate.html)
- [rotate_p](https://openhome.cc/eGossip/OpenSCAD/lib2x-rotate_p.html)
- [cross_sections](https://openhome.cc/eGossip/OpenSCAD/lib2x-cross_sections.html)
- [paths2sections](https://openhome.cc/eGossip/OpenSCAD/lib2x-paths2sections.html)
- [path_scaling_sections](https://openhome.cc/eGossip/OpenSCAD/lib2x-path_scaling_sections.html)
- [bijection_offset](https://openhome.cc/eGossip/OpenSCAD/lib2x-bijection_offset.html)
- [in_polyline](https://openhome.cc/eGossip/OpenSCAD/lib2x-in_polyline.html)
- [in_shape](https://openhome.cc/eGossip/OpenSCAD/lib2x-in_shape.html)
- [midpt_smooth](https://openhome.cc/eGossip/OpenSCAD/lib2x-midpt_smooth.html)
- [trim_shape](https://openhome.cc/eGossip/OpenSCAD/lib2x-trim_shape.html)
- [triangulate](https://openhome.cc/eGossip/OpenSCAD/lib2x-triangulate.html)
- Path
- [arc_path](https://openhome.cc/eGossip/OpenSCAD/lib-arc_path.html)
- [circle_path](https://openhome.cc/eGossip/OpenSCAD/lib-circle_path.html)
- [bspline_curve](https://openhome.cc/eGossip/OpenSCAD/lib2-bspline_curve.html)
- [bezier_curve](https://openhome.cc/eGossip/OpenSCAD/lib-bezier_curve.html)
- [bezier_surface](https://openhome.cc/eGossip/OpenSCAD/lib-bezier_surface.html)
- [bezier_smooth](https://openhome.cc/eGossip/OpenSCAD/lib-bezier_smooth.html)
- [helix](https://openhome.cc/eGossip/OpenSCAD/lib-helix.html)
- [golden_spiral](https://openhome.cc/eGossip/OpenSCAD/lib-golden_spiral.html)
- [archimedean_spiral](https://openhome.cc/eGossip/OpenSCAD/lib-archimedean_spiral.html)
- [sphere_spiral](https://openhome.cc/eGossip/OpenSCAD/lib-sphere_spiral.html)
- [torus_knot](https://openhome.cc/eGossip/OpenSCAD/lib-torus_knot.html)
- [arc_path](https://openhome.cc/eGossip/OpenSCAD/lib2x-arc_path.html)
- [circle_path](https://openhome.cc/eGossip/OpenSCAD/lib2x-circle_path.html)
- [bspline_curve](https://openhome.cc/eGossip/OpenSCAD/lib2x-bspline_curve.html)
- [bezier_curve](https://openhome.cc/eGossip/OpenSCAD/lib2x-bezier_curve.html)
- [bezier_surface](https://openhome.cc/eGossip/OpenSCAD/lib2x-bezier_surface.html)
- [bezier_smooth](https://openhome.cc/eGossip/OpenSCAD/lib2x-bezier_smooth.html)
- [helix](https://openhome.cc/eGossip/OpenSCAD/lib2x-helix.html)
- [golden_spiral](https://openhome.cc/eGossip/OpenSCAD/lib2x-golden_spiral.html)
- [archimedean_spiral](https://openhome.cc/eGossip/OpenSCAD/lib2x-archimedean_spiral.html)
- [sphere_spiral](https://openhome.cc/eGossip/OpenSCAD/lib2x-sphere_spiral.html)
- [torus_knot](https://openhome.cc/eGossip/OpenSCAD/lib2x-torus_knot.html)
- Extrusion
- [box_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-box_extrude.html)
- [ellipse_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-ellipse_extrude.html)
- [stereographic_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-stereographic_extrude.html)
- [rounded_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-rounded_extrude.html)
- [box_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-box_extrude.html)
- [ellipse_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-ellipse_extrude.html)
- [stereographic_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-stereographic_extrude.html)
- [rounded_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-rounded_extrude.html)
- 2D Shape
- [shape_taiwan](https://openhome.cc/eGossip/OpenSCAD/lib-shape_taiwan.html)
- [shape_arc](https://openhome.cc/eGossip/OpenSCAD/lib-shape_arc.html)
- [shape_pie](https://openhome.cc/eGossip/OpenSCAD/lib-shape_pie.html)
- [shape_ellipse](https://openhome.cc/eGossip/OpenSCAD/lib-shape_ellipse.html)
- [shape_square](https://openhome.cc/eGossip/OpenSCAD/lib-shape_square.html)
- [shape_trapezium](https://openhome.cc/eGossip/OpenSCAD/lib-shape_trapezium.html)
- [shape_cyclicpolygon](https://openhome.cc/eGossip/OpenSCAD/lib-shape_cyclicpolygon.html)
- [shape_pentagram](https://openhome.cc/eGossip/OpenSCAD/lib-shape_pentagram.html)
- [shape_starburst](https://openhome.cc/eGossip/OpenSCAD/lib-shape_starburst.html)
- [shape_superformula](https://openhome.cc/eGossip/OpenSCAD/lib-shape_superformula.html)
- [shape_glued2circles](https://openhome.cc/eGossip/OpenSCAD/lib-shape_glued2circles.html)
- [shape_path_extend](https://openhome.cc/eGossip/OpenSCAD/lib-shape_path_extend.html)
- [shape_taiwan](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_taiwan.html)
- [shape_arc](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_arc.html)
- [shape_pie](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_pie.html)
- [shape_ellipse](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_ellipse.html)
- [shape_square](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_square.html)
- [shape_trapezium](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_trapezium.html)
- [shape_cyclicpolygon](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_cyclicpolygon.html)
- [shape_pentagram](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_pentagram.html)
- [shape_starburst](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_starburst.html)
- [shape_superformula](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_superformula.html)
- [shape_glued2circles](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_glued2circles.html)
- [shape_path_extend](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_path_extend.html)
- 2D Shape Extrusion
- [bend_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-bend_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)
- [golden_spiral_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-golden_spiral_extrude.html)
- [archimedean_spiral_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-archimedean_spiral_extrude.html)
- [sphere_spiral_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-sphere_spiral_extrude.html)
- [bend_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-bend_extrude.html)
- [path_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-path_extrude.html)
- [ring_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-ring_extrude.html)
- [helix_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-helix_extrude.html)
- [golden_spiral_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-golden_spiral_extrude.html)
- [archimedean_spiral_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-archimedean_spiral_extrude.html)
- [sphere_spiral_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-sphere_spiral_extrude.html)
- Utilities
- [util/sub_str](https://openhome.cc/eGossip/OpenSCAD/lib2-sub_str.html)
- [util/split_str](https://openhome.cc/eGossip/OpenSCAD/lib2-split_str.html)
- [util/parse_number](https://openhome.cc/eGossip/OpenSCAD/lib2-parse_number.html)
- [util/reverse](https://openhome.cc/eGossip/OpenSCAD/lib2-reverse.html)
- [util/slice](https://openhome.cc/eGossip/OpenSCAD/lib2-slice.html)
- [util/sort](https://openhome.cc/eGossip/OpenSCAD/lib2-sort.html)
- [util/rand](https://openhome.cc/eGossip/OpenSCAD/lib2-rand.html)
- [util/fibseq](https://openhome.cc/eGossip/OpenSCAD/lib2-fibseq.html)
- [util/sub_str](https://openhome.cc/eGossip/OpenSCAD/lib2x-sub_str.html)
- [util/split_str](https://openhome.cc/eGossip/OpenSCAD/lib2x-split_str.html)
- [util/parse_number](https://openhome.cc/eGossip/OpenSCAD/lib2x-parse_number.html)
- [util/reverse](https://openhome.cc/eGossip/OpenSCAD/lib2x-reverse.html)
- [util/slice](https://openhome.cc/eGossip/OpenSCAD/lib2x-slice.html)
- [util/sort](https://openhome.cc/eGossip/OpenSCAD/lib2x-sort.html)
- [util/rand](https://openhome.cc/eGossip/OpenSCAD/lib2x-rand.html)
- [util/fibseq](https://openhome.cc/eGossip/OpenSCAD/lib2x-fibseq.html)
- Matrix
- [matrix/m_cumulate](https://openhome.cc/eGossip/OpenSCAD/lib2-m_cumulate.html)
- [matrix/m_translation](https://openhome.cc/eGossip/OpenSCAD/lib2-m_translation.html)
- [matrix/m_rotation](https://openhome.cc/eGossip/OpenSCAD/lib2-m_rotation.html)
- [matrix/m_scaling](https://openhome.cc/eGossip/OpenSCAD/lib2-m_scaling.html)
- [matrix/m_mirror](https://openhome.cc/eGossip/OpenSCAD/lib2-m_mirror.html)
- [matrix/m_shearing](https://openhome.cc/eGossip/OpenSCAD/lib2-m_shearing.html)
- [matrix/m_cumulate](https://openhome.cc/eGossip/OpenSCAD/lib2x-m_cumulate.html)
- [matrix/m_translation](https://openhome.cc/eGossip/OpenSCAD/lib2x-m_translation.html)
- [matrix/m_rotation](https://openhome.cc/eGossip/OpenSCAD/lib2x-m_rotation.html)
- [matrix/m_scaling](https://openhome.cc/eGossip/OpenSCAD/lib2x-m_scaling.html)
- [matrix/m_mirror](https://openhome.cc/eGossip/OpenSCAD/lib2x-m_mirror.html)
- [matrix/m_shearing](https://openhome.cc/eGossip/OpenSCAD/lib2x-m_shearing.html)
- Turtle
- [turtle/turtle2d](https://openhome.cc/eGossip/OpenSCAD/lib2-turtle2d.html)
- [turtle/turtle3d](https://openhome.cc/eGossip/OpenSCAD/lib2-turtle3d.html)
- [turtle/t2d](https://openhome.cc/eGossip/OpenSCAD/lib2-t2d.html)
- [turtle/t3d](https://openhome.cc/eGossip/OpenSCAD/lib2-t3d.html)
- [turtle/turtle2d](https://openhome.cc/eGossip/OpenSCAD/lib2x-turtle2d.html)
- [turtle/turtle3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-turtle3d.html)
- [turtle/t2d](https://openhome.cc/eGossip/OpenSCAD/lib2x-t2d.html)
- [turtle/t3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-t3d.html)
- Pixel
- [pixel/px_line](https://openhome.cc/eGossip/OpenSCAD/lib2-px_line.html)
- [pixel/px_polyline](https://openhome.cc/eGossip/OpenSCAD/lib2-px_polyline.html)
- [pixel/px_circle](https://openhome.cc/eGossip/OpenSCAD/lib2-px_circle.html)
- [pixel/px_cylinder](https://openhome.cc/eGossip/OpenSCAD/lib2-px_cylinder.html)
- [pixel/px_sphere](https://openhome.cc/eGossip/OpenSCAD/lib2-px_sphere.html)
- [pixel/px_polygon](https://openhome.cc/eGossip/OpenSCAD/lib2-px_polygon.html)
- [pixel/px_from](https://openhome.cc/eGossip/OpenSCAD/lib2-px_from.html)
- [pixel/px_ascii](https://openhome.cc/eGossip/OpenSCAD/lib2-px_ascii.html)
- [pixel/px_gray](https://openhome.cc/eGossip/OpenSCAD/lib2-px_gray.html)
- [pixel/px_line](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_line.html)
- [pixel/px_polyline](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_polyline.html)
- [pixel/px_circle](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_circle.html)
- [pixel/px_cylinder](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_cylinder.html)
- [pixel/px_sphere](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_sphere.html)
- [pixel/px_polygon](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_polygon.html)
- [pixel/px_from](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_from.html)
- [pixel/px_ascii](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_ascii.html)
- [pixel/px_gray](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_gray.html)
- Part
- [part/connector_peg](https://openhome.cc/eGossip/OpenSCAD/lib2-connector_peg.html)
- [part/cone](https://openhome.cc/eGossip/OpenSCAD/lib2-cone.html)
- [part/connector_peg](https://openhome.cc/eGossip/OpenSCAD/lib2x-connector_peg.html)
- [part/cone](https://openhome.cc/eGossip/OpenSCAD/lib2x-cone.html)
- [part/joint_T](https://openhome.cc/eGossip/OpenSCAD/lib2-joint_T.html)
## Bugs and Feedback

View File

@@ -1,23 +0,0 @@
# m_mirror
Generate a 4x4 transformation matrix which can pass into `multmatrix` to mirror the child element on a plane through the origin.
**Since:** 1.1
## Parameters
- `v` : The normal vector of a plane intersecting the origin through which to mirror the object.
## Examples
include <m_mirror.scad>;
rotate([0, 0, 10])
cube([3, 2, 1]);
multmatrix(m_mirror([1, 1, 0]))
rotate([0, 0, 10])
cube([3, 2, 1]);
![m_mirror](images/lib-m_mirror-1.JPG)

View File

@@ -12,8 +12,8 @@ Puts children along the given path. If there's only one child, it will put the c
## Examples
include <along_with.scad>;
include <circle_path.scad>;
use <along_with.scad>;
use <circle_path.scad>;
$fn = 24;
@@ -24,8 +24,8 @@ Puts children along the given path. If there's only one child, it will put the c
![along_with](images/lib-along_with-1.JPG)
include <along_with.scad>;
include <circle_path.scad>;
use <along_with.scad>;
use <circle_path.scad>;
$fn = 24;
@@ -44,10 +44,8 @@ Puts children along the given path. If there's only one child, it will put the c
![along_with](images/lib-along_with-2.JPG)
include <along_with.scad>;
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
use <along_with.scad>;
use <golden_spiral.scad>;
pts_angles = golden_spiral(
from = 5,
@@ -65,8 +63,8 @@ Puts children along the given path. If there's only one child, it will put the c
![along_with](images/lib-along_with-3.JPG)
include <bezier_curve.scad>;
include <along_with.scad>;
use <bezier_curve.scad>;
use <along_with.scad>;
module scales() {
module one_scale() {

View File

@@ -13,7 +13,7 @@ Creates an arc. You can pass a 2 element vector to define the central angle. Its
## Examples
include <arc.scad>;
use <arc.scad>;
$fn = 24;
arc(radius = 20, angle = [45, 290], width = 2);
@@ -21,7 +21,7 @@ Creates an arc. You can pass a 2 element vector to define the central angle. Its
![arc](images/lib-arc-1.JPG)
include <arc.scad>;
use <arc.scad>;
$fn = 24;
arc(radius = 20, angle = [45, 290], width = 2, width_mode = "LINE_OUTWARD");
@@ -29,7 +29,7 @@ Creates an arc. You can pass a 2 element vector to define the central angle. Its
![arc](images/lib-arc-2.JPG)
include <arc.scad>;
use <arc.scad>;
$fn = 24;
arc(radius = 20, angle = [45, 290], width = 2, width_mode = "LINE_INWARD");

View File

@@ -11,8 +11,8 @@ Creates an arc path. You can pass a 2 element vector to define the central angle
## Examples
include <arc_path.scad>;
include <hull_polyline2d.scad>;
use <arc_path.scad>;
use <hull_polyline2d.scad>;
$fn = 24;
points = arc_path(radius = 20, angle = [45, 290]);
@@ -20,8 +20,8 @@ Creates an arc path. You can pass a 2 element vector to define the central angle
![arc_path](images/lib-arc_path-1.JPG)
include <arc_path.scad>;
include <hull_polyline2d.scad>;
use <arc_path.scad>;
use <hull_polyline2d.scad>;
$fn = 24;
points = arc_path(radius = 20, angle = 135);

View File

@@ -16,9 +16,8 @@ An `init_angle` less than 180 degrees is not recommended because the function us
## Examples
include <line2d.scad>;
include <polyline2d.scad>;
include <archimedean_spiral.scad>;
use <polyline2d.scad>;
use <archimedean_spiral.scad>;
points_angles = archimedean_spiral(
arm_distance = 10,
@@ -31,10 +30,9 @@ An `init_angle` less than 180 degrees is not recommended because the function us
polyline2d(points, width = 1);
![archimedean_spiral](images/lib-archimedean_spiral-1.JPG)
include <archimedean_spiral.scad>;
use <archimedean_spiral.scad>;
points_angles = archimedean_spiral(
arm_distance = 10,

View File

@@ -2,23 +2,19 @@
Extrudes a 2D shape along the path of an archimedean spiral.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
## Parameters
- `shape_pts` : A list of points represent a shape. See the example below.
- `arm_distance`, `init_angle`, `point_distance`, `num_of_points` and `rt_dir` : See [archimedean_spiral](https://openhome.cc/eGossip/OpenSCAD/lib-archimedean_spiral.html) for details.
- `arm_distance`, `init_angle`, `point_distance`, `num_of_points` and `rt_dir` : See [archimedean_spiral](https://openhome.cc/eGossip/OpenSCAD/lib2x-archimedean_spiral.html) for details.
- `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` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
- `triangles` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
## Examples
include <archimedean_spiral.scad>;
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <archimedean_spiral_extrude.scad>;
use <archimedean_spiral_extrude.scad>;
shape_pts = [
[5, 0],

View File

@@ -12,7 +12,7 @@ Bends a 3D object into an arc shape.
The containing cube of the target object should be laid down on the x-y plane. For example.
include <bend.scad>;
use <bend.scad>;
x = 9.25;
y = 9.55;
@@ -25,7 +25,7 @@ The containing cube of the target object should be laid down on the x-y plane. F
Once you have the size of the containing cube, you can use it as the `size` argument of the `bend` module.
include <bend.scad>;
use <bend.scad>;
x = 9.25;
y = 9.55;
@@ -40,7 +40,7 @@ Once you have the size of the containing cube, you can use it as the `size` argu
The arc shape is smoother if the `frags` value is larger.
include <bend.scad>;
use <bend.scad>;
x = 9.25;
y = 9.55;

View File

@@ -25,7 +25,7 @@ The containing square of the target shape should be laid down on the x-y plane.
Once you have the size of the containing square, you can use it as the `size` argument of the `bend_extrude` module.
include <bend_extrude.scad>;
use <bend_extrude.scad>;
x = 9.25;
y = 9.55;

View File

@@ -11,8 +11,8 @@ Given a set of control points, the `bezier_curve` function returns points of the
If you have four control points and combine with the `hull_polyline3d` module:
include <hull_polyline3d.scad>;
include <bezier_curve.scad>;
use <hull_polyline3d.scad>;
use <bezier_curve.scad>;
t_step = 0.05;
width = 2;

View File

@@ -11,9 +11,8 @@ Given a path, the `bezier_smooth` function uses bazier curves to smooth all corn
## Examples
include <hull_polyline3d.scad>;
include <bezier_curve.scad>;
include <bezier_smooth.scad>;
use <hull_polyline3d.scad>;
use <bezier_smooth.scad>;
width = 2;
round_d = 15;
@@ -37,8 +36,7 @@ Given a path, the `bezier_smooth` function uses bazier curves to smooth all corn
![bezier_smooth](images/lib-bezier_smooth-1.JPG)
include <bezier_curve.scad>;
include <bezier_smooth.scad>;
use <bezier_smooth.scad>;
round_d = 10;

View File

@@ -11,9 +11,8 @@ Given a set of control points, the `bezier_surface` function returns points of t
If you have 16 control points and combine with the `function_grapher` module:
include <bezier_curve.scad>;
include <bezier_surface.scad>;
include <function_grapher.scad>;
use <bezier_surface.scad>;
use <function_grapher.scad>;
t_step = 0.05;
thickness = 0.5;

View File

@@ -12,7 +12,7 @@ Move 2D outlines outward or inward by a given amount. Each point of the offsette
## Examples
include <bijection_offset.scad>;
use <bijection_offset.scad>;
shape = [
[15, 0],
@@ -32,11 +32,9 @@ Move 2D outlines outward or inward by a given amount. Each point of the offsette
![bijection_offset](images/lib-bijection_offset-1.JPG)
include <bijection_offset.scad>;
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
include <bezier_curve.scad>;
use <bijection_offset.scad>;
use <path_extrude.scad>;
use <bezier_curve.scad>;
shape = [
[5, 0],

View File

@@ -12,14 +12,14 @@ Creates a box (container) from a 2D object.
## Examples
include <box_extrude.scad>;
use <box_extrude.scad>;
box_extrude(height = 30, shell_thickness = 2)
circle(r = 30);
![box_extrude](images/lib-box_extrude-1.JPG)
include <box_extrude.scad>;
use <box_extrude.scad>;
box_extrude(height = 30, shell_thickness = 2)
text("XD", size = 40, font = "Cooper Black");

View File

@@ -14,7 +14,7 @@
## Examples
include <bspline_curve.scad>;
use <bspline_curve.scad>;
points = [
[-10, 0],
@@ -37,7 +37,7 @@
![bspline_curve](images/lib2-bspline_curve-1.JPG)
include <bspline_curve.scad>;
use <bspline_curve.scad>;
points = [
[-10, 0],
@@ -61,7 +61,7 @@
![bspline_curve](images/lib2-bspline_curve-2.JPG)
include <bspline_curve.scad>;
use <bspline_curve.scad>;
points = [
[-10, 0],

View File

@@ -10,7 +10,7 @@ Sometimes you need all points on the path of a circle. Here's the function. Its
## Examples
include <circle_path.scad>;
use <circle_path.scad>;
$fn = 24;

View File

@@ -18,7 +18,7 @@ Create a cone for rotatable models.
## Examples
include <part/cone.scad>;
use <part/cone.scad>;
radius = 2.5;
length = 2;
@@ -41,7 +41,7 @@ Create a cone for rotatable models.
![cone](images/lib2-cone-2.JPG)
include <part/cone.scad>;
use <part/cone.scad>;
radius = 2.5;
length = 2;

View File

@@ -17,7 +17,7 @@ Create a connector peg.
## Examples
include <part/connector_peg.scad>;
use <part/connector_peg.scad>;
radius = 2.5;
spacing = 0.5;
@@ -37,7 +37,7 @@ Create a connector peg.
![connector_peg](images/lib2-connector_peg-1.JPG)
include <part/connector_peg.scad>;
use <part/connector_peg.scad>;
radius = 2.5;
spacing = 0.5;

View File

@@ -12,10 +12,9 @@ Given a 2D shape, points and angles along the path, this function will return al
## Examples
include <rotate_p.scad>;
include <polysections.scad>;
include <cross_sections.scad>;
include <archimedean_spiral.scad>;
use <polysections.scad>;
use <cross_sections.scad>;
use <archimedean_spiral.scad>;
shape_pts = [
[-2, -10],

View File

@@ -14,11 +14,7 @@ Uses spherical coordinate system to create a crystal ball.
## Examples
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <ring_extrude.scad>;
include <crystal_ball.scad>;
use <crystal_ball.scad>;
crystal_ball(radius = 6);

View File

@@ -10,7 +10,7 @@ Extrudes a 2D object along the path of an ellipse from 0 to 180 degrees. The sem
## Examples
include <ellipse_extrude.scad>;
use <ellipse_extrude.scad>;
semi_minor_axis = 5;
@@ -19,7 +19,7 @@ Extrudes a 2D object along the path of an ellipse from 0 to 180 degrees. The sem
![ellipse_extrude](images/lib-ellipse_extrude-1.JPG)
include <ellipse_extrude.scad>;
use <ellipse_extrude.scad>;
semi_minor_axis = 5;
@@ -28,7 +28,7 @@ Extrudes a 2D object along the path of an ellipse from 0 to 180 degrees. The sem
![ellipse_extrude](images/lib-ellipse_extrude-2.JPG)
include <ellipse_extrude.scad>;
use <ellipse_extrude.scad>;
semi_minor_axis = 5;
@@ -39,7 +39,7 @@ Extrudes a 2D object along the path of an ellipse from 0 to 180 degrees. The sem
![ellipse_extrude](images/lib-ellipse_extrude-3.JPG)
include <ellipse_extrude.scad>;
use <ellipse_extrude.scad>;
semi_minor_axis = 10;

View File

@@ -11,6 +11,6 @@ Generate a Fibonacci sequence.
## Examples
include <util/fibseq.scad>;
use <util/fibseq.scad>;
echo(fibseq(1, 10)); // ECHO: [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

View File

@@ -12,10 +12,7 @@ Given a set of points `[x, y, f(x, y)]` where `f(x, y)` is a mathematics functio
## Examples
include <line3d.scad>;
include <polyline3d.scad>;
include <hull_polyline3d.scad>;
include <function_grapher.scad>;
use <function_grapher.scad>;
points = [
[[0, 0, 1], [1, 0, 2], [2, 0, 2], [3, 0, 3]],
@@ -30,10 +27,7 @@ Given a set of points `[x, y, f(x, y)]` where `f(x, y)` is a mathematics functio
![function_grapher](images/lib-function_grapher-1.JPG)
include <line3d.scad>;
include <polyline3d.scad>;
include <hull_polyline3d.scad>;
include <function_grapher.scad>;
use <function_grapher.scad>;
function f(x, y) =
30 * (
@@ -58,10 +52,7 @@ Given a set of points `[x, y, f(x, y)]` where `f(x, y)` is a mathematics functio
![function_grapher](images/lib-function_grapher-2.JPG)
include <line3d.scad>;
include <polyline3d.scad>;
include <hull_polyline3d.scad>;
include <function_grapher.scad>;
use <function_grapher.scad>;
function f(x, y) =
30 * (
@@ -87,10 +78,7 @@ Given a set of points `[x, y, f(x, y)]` where `f(x, y)` is a mathematics functio
![function_grapher](images/lib-function_grapher-3.JPG)
include <line3d.scad>;
include <polyline3d.scad>;
include <hull_polyline3d.scad>;
include <function_grapher.scad>;
use <function_grapher.scad>;
function f(x, y) =
30 * (

View File

@@ -13,9 +13,7 @@ It returns a vector of `[[x, y], angle]`.
## Examples
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
use <golden_spiral.scad>;
pts_angles = golden_spiral(
from = 3,
@@ -30,9 +28,7 @@ It returns a vector of `[[x, y], angle]`.
![golden_spiral](images/lib-golden_spiral-1.JPG)
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
use <golden_spiral.scad>;
pts_angles = golden_spiral(
from = 5,

View File

@@ -2,7 +2,7 @@
Extrudes a 2D shape along the path of a golden spiral.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
## Parameters
@@ -13,16 +13,11 @@ When using this module, you should use points to represent the 2D shape. If your
- `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` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
- `triangles` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
## Examples
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <golden_spiral_extrude.scad>;
use <golden_spiral_extrude.scad>;
shape_pts = [
[2, -10],
@@ -43,12 +38,8 @@ When using this module, you should use points to represent the 2D shape. If your
![golden_spiral_extrude](images/lib-golden_spiral_extrude-1.JPG)
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <golden_spiral_extrude.scad>;
use <circle_path.scad>;
use <golden_spiral_extrude.scad>;
$fn = 12;

View File

@@ -13,8 +13,8 @@ Gets all points on the path of a spiral around a cylinder. Its `$fa`, `$fs` and
## Examples
include <helix.scad>;
include <hull_polyline3d.scad>;
use <helix.scad>;
use <hull_polyline3d.scad>;
$fn = 12;
@@ -34,8 +34,8 @@ Gets all points on the path of a spiral around a cylinder. Its `$fa`, `$fs` and
![helix](images/lib-helix-1.JPG)
include <helix.scad>;
include <hull_polyline3d.scad>;
use <helix.scad>;
use <hull_polyline3d.scad>;
$fn = 12;

View File

@@ -2,7 +2,7 @@
Extrudes a 2D shape along a helix path.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
Its `$fa`, `$fs` and `$fn` parameters are consistent with the `cylinder` module.
@@ -16,16 +16,12 @@ Its `$fa`, `$fs` and `$fn` parameters are consistent with the `cylinder` module.
- `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` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
- `triangles` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-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 <helix.scad>;
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <helix_extrude.scad>;
use <helix_extrude.scad>;
shape_pts = [
[5, -2],
@@ -47,11 +43,7 @@ Its `$fa`, `$fs` and `$fn` parameters are consistent with the `cylinder` module.
![helix_extrude](images/lib-helix_extrude-1.JPG)
include <helix.scad>;
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <helix_extrude.scad>;
use <helix_extrude.scad>;
r1 = 40;
r2 = 20;

View File

@@ -10,7 +10,7 @@ A hexagonal structure is useful in many situations. This module creates hexagons
## Examples
include <hexagons.scad>;
use <hexagons.scad>;
radius = 20;
spacing = 2;
@@ -20,7 +20,7 @@ A hexagonal structure is useful in many situations. This module creates hexagons
![hexagons](images/lib-hexagons-1.JPG)
include <hexagons.scad>;
use <hexagons.scad>;
radius = 20;
spacing = 2;

View File

@@ -8,7 +8,7 @@ Hollows out a 2D object.
## Examples
include <hollow_out.scad>;
use <hollow_out.scad>;
hollow_out(shell_thickness = 1) circle(r = 3, $fn = 48);
hollow_out(shell_thickness = 1) square([10, 5]);

View File

@@ -10,7 +10,7 @@ Creates a 2D polyline from a list of `[x, y]` coordinates. As the name says, it
## Examples
include <hull_polyline2d.scad>;
use <hull_polyline2d.scad>;
$fn = 4;

View File

@@ -10,7 +10,7 @@ Creates a 3D polyline from a list of `[x, y, z]` coordinates. As the name says,
## Examples
include <hull_polyline3d.scad>;
use <hull_polyline3d.scad>;
hull_polyline3d(
points = [
@@ -25,7 +25,7 @@ Creates a 3D polyline from a list of `[x, y, z]` coordinates. As the name says,
![polyline3d](images/lib-hull_polyline3d-1.JPG)
include <hull_polyline3d.scad>;
use <hull_polyline3d.scad>;
r = 50;
points = [

View File

@@ -12,7 +12,7 @@ Checks wether a point is on a line.
## Examples
include <in_polyline.scad>;
use <in_polyline.scad>;
pts = [
[0, 0],
@@ -27,7 +27,7 @@ Checks wether a point is on a line.
----
include <in_polyline.scad>;
use <in_polyline.scad>;
pts = [
[10, 0, 10],

View File

@@ -13,8 +13,8 @@ Checks wether a point is inside a shape.
## Examples
include <shape_taiwan.scad>;
include <in_shape.scad>;
use <shape_taiwan.scad>;
use <in_shape.scad>;
points = shape_taiwan(30);

View File

@@ -17,7 +17,7 @@ Create a joint_T for rotatable models.
## Examples
include <part/joint_T.scad>;
use <part/joint_T.scad>;
$fn = 48;

View File

@@ -13,7 +13,7 @@ Creates a line from two points. When the end points are `CAP_ROUND`, you can use
## Examples
include <line2d.scad>;
use <line2d.scad>;
$fn = 24;

View File

@@ -13,7 +13,7 @@ Creates a 3D line from two points.
## Examples
include <line3d.scad>;
use <line3d.scad>;
line3d(
p1 = [0, 0, 0],
@@ -24,7 +24,7 @@ Creates a 3D line from two points.
![line3d](images/lib-line3d-1.JPG)
include <line3d.scad>;
use <line3d.scad>;
line3d(
p1 = [0, 0, 0],
@@ -37,7 +37,7 @@ Creates a 3D line from two points.
![line3d](images/lib-line3d-2.JPG)
include <line3d.scad>;
use <line3d.scad>;
line3d(
p1 = [0, 0, 0],

View File

@@ -12,10 +12,10 @@ The dir changed since 2.0.
## Examples
include <matrix/m_rotation.scad>;
include <matrix/m_scaling.scad>;
include <matrix/m_translation.scad>;
include <matrix/m_cumulate.scad>
use <matrix/m_rotation.scad>;
use <matrix/m_scaling.scad>;
use <matrix/m_translation.scad>;
use <matrix/m_cumulate.scad>
m = m_cumulate([
m_translation([10, 20, 10]), m_scaling(2), m_rotation(60)]

View File

@@ -12,7 +12,7 @@ Generate a 4x4 transformation matrix which can pass into `multmatrix` to mirror
## Examples
include <matrix/m_mirror.scad>;
use <matrix/m_mirror.scad>;
rotate([0, 0, 10])
cube([3, 2, 1]);

View File

@@ -13,7 +13,7 @@ Generate a 4x4 transformation matrix which can pass into `multmatrix` to rotate
## Examples
include <matrix/m_rotation.scad>;
use <matrix/m_rotation.scad>;
point = [20, 0, 0];
a = [0, -45, 45];
@@ -27,7 +27,7 @@ Generate a 4x4 transformation matrix which can pass into `multmatrix` to rotate
![m_rotation](images/lib-m_rotation-1.JPG)
include <m_rotation.scad>;
use <matrix/m_rotation.scad>;
v = [10, 10, 10];

View File

@@ -12,7 +12,7 @@ Generate a 4x4 transformation matrix which can pass into `multmatrix` to scale i
## Examples
include <matrix/m_scaling.scad>;
use <matrix/m_scaling.scad>;
cube(10);
translate([15, 0, 0])

View File

@@ -14,7 +14,7 @@ Generate a 4x4 transformation matrix which can pass into `multmatrix` to shear a
## Examples
include <matrix/m_shearing.scad>;
use <matrix/m_shearing.scad>;
color("red") {
multmatrix(m_shearing(sx = [1, 0]))

View File

@@ -12,7 +12,7 @@ Generate a 4x4 transformation matrix which can pass into `multmatrix` to transla
## Examples
include <matrix/m_translation.scad>;
use <matrix/m_translation.scad>;
cube(2, center = true);
multmatrix(m_translation([5, 0, 0]))

View File

@@ -12,10 +12,9 @@ Given a 2D path, this function constructs a mid-point smoothed version by joinin
## Examples
include <hull_polyline2d.scad>;
include <shape_taiwan.scad>;
include <bijection_offset.scad>;
include <midpt_smooth.scad>;
use <hull_polyline2d.scad>;
use <shape_taiwan.scad>;
use <midpt_smooth.scad>;
taiwan = shape_taiwan(50);
smoothed = midpt_smooth(taiwan, 20, true);

View File

@@ -9,7 +9,7 @@ Creates multi-line text from a list of strings. Parameters are the same as the b
## Examples
include <multi_line_text.scad>;
use <multi_line_text.scad>;
multi_line_text(
["Welcome", "to", "Taiwan"],

View File

@@ -10,9 +10,7 @@ Parses the string argument as an number.
## Examples
include <util/sub_str.scad>;
include <util/split_str.scad>;
include <util/parse_number.scad>;
use <util/parse_number.scad>;
echo(parse_number("10") + 1); // ECHO: 11
echo(parse_number("-1.1") + 1); // ECHO: -0.1

View File

@@ -2,7 +2,7 @@
It extrudes a 2D shape along a path. This module is suitable for a path created by a continuous function.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
## Parameters
@@ -16,10 +16,8 @@ When using this module, you should use points to represent the 2D shape. If your
## Examples
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
include <bezier_curve.scad>;
use <path_extrude.scad>;
use <bezier_curve.scad>;
t_step = 0.05;
width = 2;
@@ -45,10 +43,8 @@ When using this module, you should use points to represent the 2D shape. If your
![path_extrude](images/lib-path_extrude-1.JPG)
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
include <bezier_curve.scad>;
use <path_extrude.scad>;
use <bezier_curve.scad>;
t_step = 0.05;
@@ -79,10 +75,8 @@ When using this module, you should use points to represent the 2D shape. If your
![path_extrude](images/lib-path_extrude-2.JPG)
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
include <bezier_curve.scad>;
use <path_extrude.scad>;
use <bezier_curve.scad>;
t_step = 0.05;
@@ -128,11 +122,7 @@ When using this module, you should use points to represent the 2D shape. If your
If you want to extrude a shape along a path precisely, providing enough information about how to rotate sections is necessary. If you want to extrude a shape along a helix, `helix_extrude` is more suitable because it knows how to dig out necessary data for rotating sections precisely.
include <helix.scad>;
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <helix_extrude.scad>;
use <helix_extrude.scad>;
shape_pts = [
[0,0],
@@ -151,11 +141,8 @@ If you want to extrude a shape along a path precisely, providing enough informat
If you have only points, what `path_extrude` can do is to **guess** data about rotations. The different algorithm will dig out different data. For example:
include <helix.scad>;
include <rotate_p.scad>;
include <polysections.scad>;
include <helix.scad>;
include <path_extrude.scad>;
use <helix.scad>;
use <path_extrude.scad>;
shape_pts = [
[0,0],
@@ -178,10 +165,8 @@ You might think this is wrong. Actually, it's not. It's the correct/default beha
The `method` parameter is default to `"AXIS_ANGLE"`, a way to guess information from points. It accepts `"EULER_ANGLE"`, too.
include <rotate_p.scad>;
include <polysections.scad>;
include <helix.scad>;
include <path_extrude.scad>;
use <helix.scad>;
use <path_extrude.scad>;
shape_pts = [
[0,0],
@@ -204,9 +189,7 @@ You might think this is wrong. Actually, it's not. It's the correct/default beha
`"EULER_ANGLE"` will generate an abrupt when the path is exactly vertical. [The problem happened in (older) Blender, too.](https://download.blender.org/documentation/htmlI/ch09s04.html)
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
use <path_extrude.scad>;
shape_pts = [[5, -5], [5, 5], [-5, 5], [-5, -5]];
@@ -230,9 +213,7 @@ You might think this is wrong. Actually, it's not. It's the correct/default beha
The problem doesn't happen when `method` is `"AXIS_ANGLE"`.
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
use <path_extrude.scad>;
shape_pts = [[5, -5], [5, 5], [-5, 5], [-5, -5]];
@@ -260,11 +241,9 @@ So, which is the correct method? Both methods are correct when you provide only
`"EULER_ANGLE"`, however, generates the same section at the same point. This means that you don't have to adjust sections if you want to extrude along a closed path. It's an advantage when extruding. For example:
include <shape_pentagram.scad>;
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
include <torus_knot.scad>;
use <shape_pentagram.scad>;
use <path_extrude.scad>;
use <torus_knot.scad>;
p = 2;
q = 3;

View File

@@ -15,10 +15,10 @@ You can use any point as the first point of the edge path. Just remember that yo
## Examples
include <hull_polyline3d.scad>;
include <shape_taiwan.scad>;
include <path_scaling_sections.scad>;
include <polysections.scad>;
use <hull_polyline3d.scad>;
use <shape_taiwan.scad>;
use <path_scaling_sections.scad>;
use <polysections.scad>;
taiwan = shape_taiwan(100);
fst_pt = [13, 0, 0];
@@ -38,11 +38,11 @@ You can use any point as the first point of the edge path. Just remember that yo
![path_scaling_sections](images/lib-path_scaling_sections-1.JPG)
include <hull_polyline3d.scad>;
include <shape_taiwan.scad>;
include <path_scaling_sections.scad>;
include <polysections.scad>;
include <bezier_curve.scad>;
use <hull_polyline3d.scad>;
use <shape_taiwan.scad>;
use <path_scaling_sections.scad>;
use <polysections.scad>;
use <bezier_curve.scad>;
taiwan = shape_taiwan(100);
@@ -63,11 +63,11 @@ You can use any point as the first point of the edge path. Just remember that yo
![path_scaling_sections](images/lib-path_scaling_sections-2.JPG)
include <shape_taiwan.scad>;
include <path_scaling_sections.scad>;
include <polysections.scad>;
include <bezier_curve.scad>;
include <rotate_p.scad>;
use <shape_taiwan.scad>;
use <path_scaling_sections.scad>;
use <polysections.scad>;
use <bezier_curve.scad>;
use <rotate_p.scad>;
taiwan = shape_taiwan(100);
fst_pt = [13, 0, 0];
@@ -99,11 +99,11 @@ You can use any point as the first point of the edge path. Just remember that yo
![path_scaling_sections](images/lib-path_scaling_sections-3.JPG)
include <hull_polyline3d.scad>;
include <shape_taiwan.scad>;
include <path_scaling_sections.scad>;
include <polysections.scad>;
include <rotate_p.scad>;
use <hull_polyline3d.scad>;
use <shape_taiwan.scad>;
use <path_scaling_sections.scad>;
use <polysections.scad>;
use <rotate_p.scad>;
taiwan = shape_taiwan(100);

View File

@@ -10,9 +10,9 @@ You paths should be indexed count-clockwisely.
## Examples
include <paths2sections.scad>;
include <hull_polyline3d.scad>;
include <polysections.scad>;
use <paths2sections.scad>;
use <hull_polyline3d.scad>;
use <polysections.scad>;
paths = [
[[5, 0, 5], [15, 10, 10], [25, 20, 5]],
@@ -31,10 +31,10 @@ You paths should be indexed count-clockwisely.
![paths2sections](images/lib-paths2sections-1.JPG)
include <bezier_curve.scad>;
include <paths2sections.scad>;
include <hull_polyline3d.scad>;
include <polysections.scad>;
use <bezier_curve.scad>;
use <paths2sections.scad>;
use <hull_polyline3d.scad>;
use <polysections.scad>;
t_step = 0.05;

View File

@@ -10,7 +10,7 @@ Creates a pie (circular sector). You can pass a 2 element vector to define the c
## Examples
include <pie.scad>;
use <pie.scad>;
pie(radius = 20, angle = [210, 310]);
translate([-15, 0, 0]) pie(radius = 20, angle = [45, 135]);

View File

@@ -12,16 +12,14 @@ Creates a polyline from a list of `x`, `y` coordinates. When the end points are
## Examples
include <line2d.scad>;
include <polyline2d.scad>;
use <polyline2d.scad>;
$fn = 24;
polyline2d(points = [[1, 2], [-5, -4], [-5, 3], [5, 5]], width = 1);
![polyline2d](images/lib-polyline2d-1.JPG)
include <line2d.scad>;
include <polyline2d.scad>;
use <polyline2d.scad>;
$fn = 24;
polyline2d(points = [[1, 2], [-5, -4], [-5, 3], [5, 5]], width = 1,
@@ -29,8 +27,7 @@ Creates a polyline from a list of `x`, `y` coordinates. When the end points are
![polyline2d](images/lib-polyline2d-2.JPG)
include <line2d.scad>;
include <polyline2d.scad>;
use <polyline2d.scad>;
$fn = 24;
polyline2d(points = [[1, 2], [-5, -4], [-5, 3], [5, 5]], width = 1,

View File

@@ -12,8 +12,7 @@ Creates a polyline from a list of `[x, y, z]` coordinates.
## Examples
include <line3d.scad>;
include <polyline3d.scad>;
use <polyline3d.scad>;
polyline3d(
points = [
@@ -28,8 +27,7 @@ Creates a polyline from a list of `[x, y, z]` coordinates.
![polyline3d](images/lib-polyline3d-1.JPG)
include <line3d.scad>;
include <polyline3d.scad>;
use <polyline3d.scad>;
polyline3d(
points = [
@@ -45,8 +43,7 @@ Creates a polyline from a list of `[x, y, z]` coordinates.
![polyline3d](images/lib-polyline3d-2.JPG)
include <line3d.scad>;
include <polyline3d.scad>;
use <polyline3d.scad>;
polyline3d(
points = [
@@ -63,8 +60,7 @@ Creates a polyline from a list of `[x, y, z]` coordinates.
![polyline3d](images/lib-polyline3d-3.JPG)
include <line3d.scad>;
include <polyline3d.scad>;
use <polyline3d.scad>;
r = 20;
h = 5;

View File

@@ -44,8 +44,8 @@ When defining triangles, you can use clockwise or counter-clockwise indexes.
## Examples
include <rotate_p.scad>;
include <polysections.scad>;
use <rotate_p.scad>;
use <polysections.scad>;
section1 = [
[20, 0, 0],
@@ -68,8 +68,8 @@ When defining triangles, you can use clockwise or counter-clockwise indexes.
![polysections](images/lib-polysections-7.JPG)
include <rotate_p.scad>;
include <polysections.scad>;
use <rotate_p.scad>;
use <polysections.scad>;
section1 = [
// outer
@@ -98,8 +98,8 @@ When defining triangles, you can use clockwise or counter-clockwise indexes.
![polysections](images/lib-polysections-8.JPG)
include <rotate_p.scad>;
include <polysections.scad>;
use <rotate_p.scad>;
use <polysections.scad>;
section1 = [
// outer

View File

@@ -18,9 +18,9 @@ You can view it as a better polyline2d module. If you have only the points of a
## Examples
include <rotate_p.scad>;
include <polytransversals.scad>;
include <hull_polyline2d.scad>;
use <rotate_p.scad>;
use <polytransversals.scad>;
use <hull_polyline2d.scad>;
r = 35;
tran_pts = [[-5, 0], [0, 5], [5, 0]];

View File

@@ -12,8 +12,7 @@ Generate 8x8 pixel points of printable ASCII characters (codes 32dec to 126dec).
## Examples
include <pixel/px_from.scad>;
include <pixel/px_ascii.scad>;
use <pixel/px_ascii.scad>;
for(i = [0:94]) {
translate([8 * (i % 10), -8 * floor(i / 10), 0])
@@ -26,8 +25,7 @@ Generate 8x8 pixel points of printable ASCII characters (codes 32dec to 126dec).
![px_ascii](images/lib2-px_ascii-1.JPG)
include <pixel/px_from.scad>;
include <pixel/px_ascii.scad>;
use <pixel/px_ascii.scad>;
t = "dotSCAD";

View File

@@ -11,7 +11,7 @@ Returns points that can be used to draw a pixel-style circle.
## Examples
include <pixel/px_circle.scad>;
use <pixel/px_circle.scad>;
for(pt = px_circle(10)) {
translate(pt)
@@ -20,7 +20,7 @@ Returns points that can be used to draw a pixel-style circle.
![px_circle](images/lib2-px_circle-1.JPG)
include <pixel/px_circle.scad>;
use <pixel/px_circle.scad>;
for(pt = px_circle(10, filled = true)) {
translate(pt)

View File

@@ -13,7 +13,7 @@ Returns points that can be used to draw a pixel-style cylinder.
## Examples
include <pixel/px_cylinder.scad>;
use <pixel/px_cylinder.scad>;
for(pt = px_cylinder([10, 15], 10)) {
translate(pt)
@@ -22,7 +22,7 @@ Returns points that can be used to draw a pixel-style cylinder.
![px_cylinder](images/lib2-px_cylinder-1.JPG)
include <pixel/px_cylinder.scad>;
use <pixel/px_cylinder.scad>;
for(pt = px_cylinder([20, 15], h = 10, thickness = 3)) {
translate(pt)

View File

@@ -12,7 +12,7 @@ Given a list of 0s and 1s that represent a black-and-white image. This function
## Examples
include <pixel/px_from.scad>;
use <pixel/px_from.scad>;
pts = px_from([
[0,0,0,0,0,0,0,0],
@@ -41,7 +41,7 @@ I provide a tool [img2binary](https://github.com/JustinSDK/img2binary) for conve
The tool converts it into binaries. Combined with the `pixel_from`, you can build a model like this:
include <pixel/px_from.scad>;
use <pixel/px_from.scad>;
pts = px_from([
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],

View File

@@ -13,7 +13,7 @@ Given a list of numbers (0 ~ 255) that represent a gray image. This function tra
## Examples
include <pixel/px_gray.scad>;
use <pixel/px_gray.scad>;
levels = [
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],

View File

@@ -11,7 +11,7 @@ Given two points. `px_line` returns points that can be used to draw a pixel-styl
## Examples
include <pixel/px_line.scad>;
use <pixel/px_line.scad>;
for(pt = px_line([-10, 0], [20, 50])) {
translate(pt)
@@ -20,7 +20,7 @@ Given two points. `px_line` returns points that can be used to draw a pixel-styl
![px_line](images/lib2-px_line-1.JPG)
include <pixel/px_line.scad>;
use <pixel/px_line.scad>;
for(pt = px_line([-10, 0, -10], [20, 50, 10])) {
translate(pt)

View File

@@ -11,11 +11,8 @@ Returns points that can be used to draw a pixel-style polygon.
## Examples
include <in_shape.scad>;
include <pixel/px_line.scad>;
include <pixel/px_polyline.scad>;
include <pixel/px_polygon.scad>;
include <shape_pentagram.scad>;
use <pixel/px_polygon.scad>;
use <shape_pentagram.scad>;
pentagram = [
for(pt = shape_pentagram(15))

View File

@@ -10,9 +10,8 @@ Given a list of points. `px_polyline` returns points that can be used to draw a
## Examples
include <pixel/px_line.scad>;
include <pixel/px_polyline.scad>;
include <shape_pentagram.scad>;
use <pixel/px_polyline.scad>;
use <shape_pentagram.scad>;
pentagram = [
for(pt = shape_pentagram(15))
@@ -27,10 +26,8 @@ Given a list of points. `px_polyline` returns points that can be used to draw a
![px_polyline](images/lib2-px_polyline-1.JPG)
include <pixel/px_line.scad>;
include <pixel/px_polyline.scad>;
include <rotate_p.scad>;
include <sphere_spiral.scad>;
use <pixel/px_polyline.scad>;
use <sphere_spiral.scad>;
points_angles = sphere_spiral(
radius = 20,

View File

@@ -12,7 +12,7 @@ Returns points that can be used to draw a pixel-style sphere.
## Examples
include <pixel/px_sphere.scad>;
use <pixel/px_sphere.scad>;
for(pt = px_sphere(10)) {
translate(pt)

View File

@@ -12,7 +12,7 @@ Random number generator. Generates a pseudo random number.
## Examples
include <util/rand.scad>;
use <util/rand.scad>;
echo(rand());
echo(rand(1, 10));

View File

@@ -10,7 +10,7 @@ Reverse a list.
## Examples
include <util/reverse.scad>;
use <util/reverse.scad>;
echo(reverse([1, 2, 3])); // ECHO: [3, 2, 1]

View File

@@ -4,7 +4,7 @@ Rotational extrusion spins a 2D shape around the Z-axis. It's similar to the bui
Because we cannot retrieve the shape points of built-in 2D modules, it's necessary to provide `shapt_pts` and `triangles`.
If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
## Parameters
@@ -13,15 +13,12 @@ If your 2D shape is not solid, indexes of triangles are required. See [polysecti
- `angle` : Defaults to 360. Specifies the number of degrees to sweep, starting at the positive X axis. It also accepts a 2 element vector which defines the central angle. The first element of the vector is the beginning angle in degrees, and the second element is the ending angle.
- `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` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
- `triangles` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
- `$fa`, `$fs`, `$fn` : Check [the circle module](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_the_2D_Subsystem#circle) for more details.
## Examples
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <ring_extrude.scad>;
use <ring_extrude.scad>;
shape_pts = [
[2, -10],
@@ -34,10 +31,7 @@ If your 2D shape is not solid, indexes of triangles are required. See [polysecti
![ring_extrude](images/lib-ring_extrude-1.JPG)
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <ring_extrude.scad>;
use <ring_extrude.scad>;
shape_pts = [
[2, -10],

View File

@@ -12,7 +12,7 @@ Rotates a point `a` degrees about the axis of the coordinate system or around an
You can use the code below to create a line.
include <rotate_p.scad>;
use <rotate_p.scad>;
hull() {
sphere(1);
@@ -23,7 +23,7 @@ You can use the code below to create a line.
The following code has the same effect.
include <rotate_p.scad>;
use <rotate_p.scad>;
point = [20, 0, 0];
a = [0, -45, 45];
@@ -39,7 +39,7 @@ The following code has the same effect.
The `rotate_p` function is useful in some situations. For example, you probably want to get all points on the path of a spiral around a sphere.
include <rotate_p.scad>;
use <rotate_p.scad>;
radius = 40;
step_angle = 10;
@@ -63,7 +63,7 @@ The `rotate_p` function is useful in some situations. For example, you probably
![rotate_p](images/lib-rotate_p-2.JPG)
include <rotate_p.scad>;
use <rotate_p.scad>;
v = [10, 10, 10];

View File

@@ -11,13 +11,13 @@ Creates a cube in the first octant. When `center` is `true`, the cube is centere
## Examples
include <rounded_cube.scad>;
use <rounded_cube.scad>;
rounded_cube(20, 5);
![rounded_cube](images/lib-rounded_cube-1.JPG)
include <rounded_cube.scad>;
use <rounded_cube.scad>;
rounded_cube(
size = [50, 25, 15],
@@ -27,7 +27,7 @@ Creates a cube in the first octant. When `center` is `true`, the cube is centere
![rounded_cube](images/lib-rounded_cube-2.JPG)
include <rounded_cube.scad>;
use <rounded_cube.scad>;
$fn = 8;

View File

@@ -13,7 +13,7 @@ Creates a rounded cylinder.
## Examples
include <rounded_cylinder.scad>;
use <rounded_cylinder.scad>;
rounded_cylinder(
radius = [20, 10],

View File

@@ -12,7 +12,7 @@ Extrudes a 2D object roundly from 0 to 180 degrees.
## Examples
include <rounded_extrude.scad>;
use <rounded_extrude.scad>;
$fn = 48;

View File

@@ -11,13 +11,13 @@ Creates a rounded square or rectangle in the first quadrant. When `center` is `t
## Examples
include <rounded_square.scad>;
use <rounded_square.scad>;
rounded_square(size = 50, corner_r = 5);
![rounded_square](images/lib-rounded_square-1.JPG)
include <rounded_square.scad>;
use <rounded_square.scad>;
rounded_square(
size = [50, 25],
@@ -27,7 +27,7 @@ Creates a rounded square or rectangle in the first quadrant. When `center` is `t
![rounded_square](images/lib-rounded_square-2.JPG)
include <rounded_square.scad>;
use <rounded_square.scad>;
$fn = 4;
rounded_square(

View File

@@ -11,18 +11,16 @@ Returns shape points of an arc shape. They can be used with xxx_extrude modules
## Examples
include <shape_arc.scad>;
use <shape_arc.scad>;
shape_pts = shape_arc(radius = 10, angle = [-90, 90], width = 5);
polygon(shape_pts);
![shape_arc](images/lib-shape_arc-1.JPG)
include <shape_arc.scad>;
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
include <bezier_curve.scad>;
use <shape_arc.scad>;
use <path_extrude.scad>;
use <bezier_curve.scad>;
t_step = 0.05;
width = 2;

View File

@@ -11,7 +11,7 @@ Returns shape points of a regular cyclic polygon. They can be used with xxx_extr
## Examples
include <shape_cyclicpolygon.scad>;
use <shape_cyclicpolygon.scad>;
circle_r = 10;
corner_r = 3;
@@ -42,11 +42,8 @@ Returns shape points of a regular cyclic polygon. They can be used with xxx_extr
![shape_cyclicpolygon](images/lib-shape_cyclicpolygon-1.JPG)
include <shape_cyclicpolygon.scad>;
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <ring_extrude.scad>;
use <shape_cyclicpolygon.scad>;
use <ring_extrude.scad>;
shape_pts = shape_cyclicpolygon(
sides = 5,

View File

@@ -9,7 +9,7 @@ Returns shape points of an ellipse. They can be used with xxx_extrude modules of
## Examples
include <shape_ellipse.scad>;
use <shape_ellipse.scad>;
polygon(
shape_ellipse([40, 20])
@@ -17,13 +17,8 @@ Returns shape points of an ellipse. They can be used with xxx_extrude modules of
![shape_ellipse](images/lib-shape_ellipse-1.JPG)
include <shape_ellipse.scad>;
include <circle_path.scad>;
include <helix.scad>;
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <helix_extrude.scad>;
use <shape_ellipse.scad>;
use <helix_extrude.scad>;
$fn = 8;

View File

@@ -7,15 +7,12 @@ Returns shape points of two glued circles. They can be used with xxx_extrude mod
- `radius` : The radius of two circles.
- `centre_dist` : The distance between centres of two circles.
- `tangent_angle` : The angle of a tangent line. It defaults to 30 degrees. See examples below.
- `t_step` : It defaults to 0.1. See [bezier_curve](https://openhome.cc/eGossip/OpenSCAD/lib-bezier_curve.html) for details.
- `t_step` : It defaults to 0.1. See [bezier_curve](https://openhome.cc/eGossip/OpenSCAD/lib2x-bezier_curve.html) for details.
- `$fa`, `$fs`, `$fn` : Check [the circle module](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_the_2D_Subsystem#circle) for more details.
## Examples
include <rotate_p.scad>;
include <bezier_curve.scad>;
include <shape_pie.scad>;
include <shape_glued2circles.scad>;
use <shape_glued2circles.scad>;
$fn = 36;
@@ -27,10 +24,7 @@ Returns shape points of two glued circles. They can be used with xxx_extrude mod
![shape_glued2circles](images/lib-shape_glued2circles-1.JPG)
include <rotate_p.scad>;
include <bezier_curve.scad>;
include <shape_pie.scad>;
include <shape_glued2circles.scad>;
use <shape_glued2circles.scad>;
$fn = 36;
@@ -49,10 +43,7 @@ Returns shape points of two glued circles. They can be used with xxx_extrude mod
![shape_glued2circles](images/lib-shape_glued2circles-2.JPG)
include <rotate_p.scad>;
include <bezier_curve.scad>;
include <shape_pie.scad>;
include <shape_glued2circles.scad>;
use <shape_glued2circles.scad>;
$fn = 36;

View File

@@ -13,10 +13,9 @@ When using this function, you should use points to represent the 2D stroke.
## Examples
include <rotate_p.scad>;
include <shape_path_extend.scad>;
include <circle_path.scad>;
include <archimedean_spiral.scad>;
use <shape_path_extend.scad>;
use <circle_path.scad>;
use <archimedean_spiral.scad>;
$fn = 96;
@@ -45,13 +44,9 @@ When using this function, you should use points to represent the 2D stroke.
![shape_path_extend](images/lib-shape_path_extend-1.JPG)
include <rotate_p.scad>;
include <bezier_curve.scad>;
include <shape_path_extend.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
use <bezier_curve.scad>;
use <shape_path_extend.scad>;
use <path_extrude.scad>;
t_step = 0.1;
width = 2;

View File

@@ -8,19 +8,14 @@ Returns shape points of a pentagram. They can be used with xxx_extrude modules o
## Examples
include <shape_pentagram.scad>;
use <shape_pentagram.scad>;
polygon(shape_pentagram(5));
![shape_pentagram](images/lib-shape_pentagram-1.JPG)
include <shape_pentagram.scad>;
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <golden_spiral_extrude.scad>;
use <shape_pentagram.scad>;
use <golden_spiral_extrude.scad>;
shape_pts = shape_pentagram(2);

View File

@@ -10,19 +10,15 @@ Returns shape points of a pie (circular sector) shape. They can be used with xxx
## Examples
include <shape_pie.scad>;
use <shape_pie.scad>;
shape_pts = shape_pie(10, [45, 315], $fn = 24);
polygon(shape_pts);
![shape_pie](images/lib-shape_pie-1.JPG)
include <shape_pie.scad>;
include <helix.scad>;
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <helix_extrude.scad>;
use <shape_pie.scad>;
use <helix_extrude.scad>;
shape_pts = shape_pie(10, [45, 315], $fn = 8);

View File

@@ -10,7 +10,7 @@ Returns shape points of a rounded square or rectangle. They can be used with xxx
## Examples
include <shape_square.scad>;
use <shape_square.scad>;
polygon(
shape_square(size = 50, corner_r = 5)
@@ -18,11 +18,8 @@ Returns shape points of a rounded square or rectangle. They can be used with xxx
![shape_square](images/lib-shape_square-1.JPG)
include <shape_square.scad>;
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <ring_extrude.scad>;
use <shape_square.scad>;
use <ring_extrude.scad>;
$fn = 36;

View File

@@ -11,19 +11,14 @@ Returns shape points of a star. They can be used with xxx_extrude modules of dot
## Examples
include <shape_starburst.scad>;
use <shape_starburst.scad>;
polygon(shape_starburst(30, 12, 6));
![shape_starburst](images/lib-shape_starburst-1.JPG)
include <shape_starburst.scad>;
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <golden_spiral_extrude.scad>;
use <shape_starburst.scad>;
use <golden_spiral_extrude.scad>;
shape_pts = shape_starburst(5, 2, 8);

View File

@@ -9,7 +9,7 @@ Returns shape points of a [Superformula](https://en.wikipedia.org/wiki/Superform
## Examples
include <shape_superformula.scad>;
use <shape_superformula.scad>;
phi_step = 0.05;
@@ -32,13 +32,8 @@ Returns shape points of a [Superformula](https://en.wikipedia.org/wiki/Superform
![shape_superformula](images/lib-shape_superformula-1.JPG)
include <shape_superformula.scad>;
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <golden_spiral_extrude.scad>;
use <shape_superformula.scad>;
use <golden_spiral_extrude.scad>;
phi_step = 0.05;

View File

@@ -9,19 +9,14 @@ Returns shape points of [Taiwan](https://www.google.com.tw/maps?q=taiwan&um=1&ie
## Examples
include <shape_taiwan.scad>;
use <shape_taiwan.scad>;
polygon(shape_taiwan(10));
![shape_taiwan](images/lib-shape_taiwan-1.JPG)
include <shape_taiwan.scad>;
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <golden_spiral_extrude.scad>;
use <shape_taiwan.scad>;
use <golden_spiral_extrude.scad>;
mirror_taiwan = [for(pt = shape_taiwan(15)) [pt[0] * -1, pt[1]]];
@@ -35,12 +30,8 @@ Returns shape points of [Taiwan](https://www.google.com.tw/maps?q=taiwan&um=1&ie
![shape_taiwan](images/lib-shape_taiwan-2.JPG)
include <shape_taiwan.scad>;
include <helix.scad>;
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <helix_extrude.scad>;
use <shape_taiwan.scad>;
use <helix_extrude.scad>;
r1 = 15;
r2 = 100;

View File

@@ -11,7 +11,7 @@ Returns shape points of an isosceles trapezoid. They can be used with xxx_extrud
## Examples
include <shape_trapezium.scad>;
use <shape_trapezium.scad>;
polygon(
shape_trapezium([40, 20],
@@ -21,11 +21,9 @@ Returns shape points of an isosceles trapezoid. They can be used with xxx_extrud
![shape_trapezium](images/lib-shape_trapezium-1.JPG)
include <shape_trapezium.scad>;
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
include <bezier_curve.scad>;
use <shape_trapezium.scad>;
use <path_extrude.scad>;
use <bezier_curve.scad>;
t_step = 0.05;
width = 2;

View File

@@ -13,7 +13,7 @@ Shear all child elements along the X-axis, Y-axis, or Z-axis in 3D.
## Examples
include <shear.scad>;
use <shear.scad>;
color("red") {
shear(sx = [1, 0])

View File

@@ -12,7 +12,7 @@ Returns a list selected from `begin` to `end`, or to the `end` of the list (`end
## Examples
include <util/slice.scad>;
use <util/slice.scad>;
echo(slice([for(c = "helloworld") c], 0, 5)); // ECHO: ["h", "e", "l", "l", "o"]
echo(slice([for(c = "helloworld") c], 5)); // ECHO: ["w", "o", "r", "l", "d"]

View File

@@ -12,7 +12,7 @@ Sorts the elements of a list in ascending order. The list is a list-of-list cons
## Examples
include <util/sort.scad>;
use <util/sort.scad>;
assert(
[[2, 0, 0], [5, 0, 0], [7, 0, 0], [9, 0, 0], [10, 0, 0]] ==

View File

@@ -14,9 +14,8 @@ Creates all points and angles on the path of a spiral around a sphere. It return
## Examples
include <rotate_p.scad>;
include <hull_polyline3d.scad>;
include <sphere_spiral.scad>;
use <hull_polyline3d.scad>;
use <sphere_spiral.scad>;
points_angles = sphere_spiral(
radius = 40,
@@ -36,8 +35,7 @@ Creates all points and angles on the path of a spiral around a sphere. It return
![sphere_spiral](images/lib-sphere_spiral-3.JPG)
include <rotate_p.scad>;
include <sphere_spiral.scad>;
use <sphere_spiral.scad>;
points_angles = sphere_spiral(
radius = 40,
@@ -56,9 +54,8 @@ Creates all points and angles on the path of a spiral around a sphere. It return
![sphere_spiral](images/lib-sphere_spiral-5.JPG)
include <rotate_p.scad>;
include <hull_polyline3d.scad>;
include <sphere_spiral.scad>;
use <hull_polyline3d.scad>;
use <sphere_spiral.scad>;
points_angles = sphere_spiral(
radius = 40,

View File

@@ -2,32 +2,20 @@
Extrudes a 2D shape along the path of a sphere spiral.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
## Parameters
- `shape_pts` : A list of points represent a shape. See the example below.
- `radius` , `za_step`, `z_circles`, `begin_angle`, `end_angle`, `vt_dir`, `rt_dir` : See [sphere_spiral](https://openhome.cc/eGossip/OpenSCAD/lib-sphere_spiral.html) for details.
- `radius` , `za_step`, `z_circles`, `begin_angle`, `end_angle`, `vt_dir`, `rt_dir` : See [sphere_spiral](https://openhome.cc/eGossip/OpenSCAD/lib2x-sphere_spiral.html) for details.
- `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` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
- `triangles` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
## Examples
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <sphere_spiral.scad>;
include <sphere_spiral_extrude.scad>;
function shape_pentagram(r) =
[
[0, 1], [-0.224514, 0.309017],
[-0.951057, 0.309017], [-0.363271, -0.118034],
[-0.587785, -0.809017], [0, -0.381966],
[0.587785, -0.809017], [0.363271, -0.118034],
[0.951057, 0.309017], [0.224514, 0.309017]
] * r;
use <sphere_spiral_extrude.scad>;
use <shape_pentagram.scad>;
points_triangles = shape_pentagram(2);

View File

@@ -11,8 +11,7 @@ Splits the given string around matches of the given delimiting character.
## Examples
include <util/sub_str.scad>;
include <util/split_str.scad>;
use <util/split_str.scad>;
echo(split_str("hello,world", ",")); // ECHO: ["hello", "world"]

View File

@@ -13,7 +13,7 @@ A 3D version of `shape_starburst`.
## Examples
include <starburst.scad>;
use <starburst.scad>;
starburst(10, 5, 5, 5);
translate([20, 0, 0]) starburst(10, 5, 6, 5);

View File

@@ -12,7 +12,7 @@ The 2D polygon should center at the origin and you have to determine the side le
## Examples
include <stereographic_extrude.scad>;
use <stereographic_extrude.scad>;
dimension = 100;

View File

@@ -12,7 +12,7 @@ Returns the part of the string from `begin` to `end`, or to the `end` of the str
## Examples
include <util/sub_str.scad>;
use <util/sub_str.scad>;
echo(sub_str("helloworld", 0, 5)); // ECHO: "hello"
echo(sub_str("helloworld", 5)); // ECHO: "world"

View File

@@ -16,8 +16,8 @@ An implementation of Turtle Graphics with Fluent API. It moves on the xy plane.
## Examples
include <line2d.scad>;
include <turtle/t2d.scad>;
use <line2d.scad>;
use <turtle/t2d.scad>;
module turtle_spiral(t, times, side_leng, angle, width) {
$fn = 24;
@@ -48,8 +48,8 @@ An implementation of Turtle Graphics with Fluent API. It moves on the xy plane.
The code below creates the same drawing.
include <line2d.scad>;
include <turtle/t2d.scad>;
use <line2d.scad>;
use <turtle/t2d.scad>;
module turtle_spiral(t, times, side_leng, angle, width) {
$fn = 24;
@@ -81,8 +81,8 @@ The code below creates the same drawing.
![t2d](images/lib2-t2d-1.JPG)
include <hull_polyline2d.scad>;
include <turtle/t2d.scad>;
use <hull_polyline2d.scad>;
use <turtle/t2d.scad>;
side_leng = 100;
min_leng = 4;

View File

@@ -19,8 +19,8 @@ For more details, please see [3D turtle graphics](https://openhome.cc/eGossip/Op
## Examples
include <turtle/t3d.scad>;
include <hull_polyline3d.scad>;
use <turtle/t3d.scad>;
use <hull_polyline3d.scad>;
leng = 10;
angle = 120;
@@ -44,8 +44,8 @@ For more details, please see [3D turtle graphics](https://openhome.cc/eGossip/Op
![t3d](images/lib2-t3d-1.JPG)
include <line3d.scad>;
include <turtle/t3d.scad>;
use <line3d.scad>;
use <turtle/t3d.scad>;
module tree(t, leng, leng_scale1, leng_scale2, leng_limit,
angleZ, angleX, width) {

View File

@@ -14,11 +14,9 @@ Generate a path of [The (p,q)-torus knot](https://en.wikipedia.org/wiki/Torus_kn
## Examples
include <shape_pentagram.scad>;
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
include <torus_knot.scad>;
use <shape_pentagram.scad>;
use <path_extrude.scad>;
use <torus_knot.scad>;
p = 2;
q = 3;

View File

@@ -11,7 +11,7 @@ Given a 2D shape. This function performs a simple polygon triangulation algorith
## Examples
include <triangulate.scad>;
use <triangulate.scad>;
shape = [
[0, 0],
@@ -37,6 +37,5 @@ Given a 2D shape. This function performs a simple polygon triangulation algorith
}
}
![triangulate](images/lib-triangulate-1.JPG)

View File

@@ -13,11 +13,11 @@ Given a tangled-edge shape. This function trims the shape to a non-tangled shape
## Examples
include <hull_polyline2d.scad>;
include <trim_shape.scad>;
include <shape_taiwan.scad>;
include <bijection_offset.scad>;
include <midpt_smooth.scad>;
use <hull_polyline2d.scad>;
use <trim_shape.scad>;
use <shape_taiwan.scad>;
use <bijection_offset.scad>;
use <midpt_smooth.scad>;
taiwan = shape_taiwan(50);
offseted = bijection_offset(taiwan, -2);

View File

@@ -17,8 +17,8 @@ An OpenSCAD implementation of Turtle Graphics. It moves on the xy plane. You can
## Examples
include <line2d.scad>;
include <turtle/turtle2d.scad>;
use <line2d.scad>;
use <turtle/turtle2d.scad>;
module turtle_spiral(t_before, times, side_leng, angle, width) {
$fn = 24;
@@ -48,8 +48,8 @@ An OpenSCAD implementation of Turtle Graphics. It moves on the xy plane. You can
![turtle2d](images/lib-turtle2d-1.JPG)
include <line2d.scad>;
include <turtle/turtle2d.scad>;
use <line2d.scad>;
use <turtle/turtle2d.scad>;
module turtle_spiral(t_before, side_leng, d_step, min_leng, angle, width) {
$fn = 24;

View File

@@ -17,8 +17,8 @@ For more details, please see [3D turtle graphics](https://openhome.cc/eGossip/Op
## Examples
include <turtle/turtle3d.scad>;
include <hull_polyline3d.scad>;
use <turtle/turtle3d.scad>;
use <hull_polyline3d.scad>;
leng = 10;
angle = 120;
@@ -47,8 +47,8 @@ For more details, please see [3D turtle graphics](https://openhome.cc/eGossip/Op
![turtle3d](images/lib-turtle3d-1.JPG)
include <turtle/turtle3d.scad>;
include <hull_polyline3d.scad>;
use <turtle/turtle3d.scad>;
use <hull_polyline3d.scad>;
module tree(t, leng, leng_scale1, leng_scale2, leng_limit,
angleZ, angleX, width) {

View File

@@ -17,7 +17,7 @@ Creats a [Voronoi diagram](https://en.wikipedia.org/wiki/Voronoi_diagram). The i
## Examples
include <voronoi2d.scad>;
use <voronoi2d.scad>;
xs = rands(-20, 20, 50);
ys = rands(-20, 20, 50);
@@ -26,12 +26,12 @@ Creats a [Voronoi diagram](https://en.wikipedia.org/wiki/Voronoi_diagram). The i
voronoi2d(points);
translate([60, 0, 0])
voronoi(points, region_type = "circle");
voronoi2d(points, region_type = "circle");
![voronoi2d](images/lib-voronoi2d-1.JPG)
include <voronoi2d.scad>;
include <hollow_out.scad>;
use <voronoi2d.scad>;
use <hollow_out.scad>;
xs = rands(0, 40, 50);
ys = rands(0, 20, 50);

View File

@@ -19,7 +19,7 @@ The preview or rendering of 3D Voronoi is slow. If you want to use this module,
## Examples
include <voronoi3d.scad>;
use <voronoi3d.scad>;
r = 30;