mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-22 14:23:23 +02:00
add doc
This commit is contained in:
@@ -57,7 +57,7 @@ See [examples](examples).
|
||||
- [function_grapher](https://openhome.cc/eGossip/OpenSCAD/lib2x-function_grapher.html)
|
||||
- [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) (It'll be deprecated from 2.3. Use `sweep` instead.)
|
||||
- [sweep](https://openhome.cc/eGossip/OpenSCAD/lib2x-sweep.html) (2.3 Preview)
|
||||
- loft (2.3 Preview)
|
||||
- [loft](https://openhome.cc/eGossip/OpenSCAD/lib2x-loft.html) (2.3 Preview)
|
||||
- [starburst](https://openhome.cc/eGossip/OpenSCAD/lib2x-starburst.html)
|
||||
- [voronoi3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-voronoi3d.html)
|
||||
|
||||
|
BIN
docs/images/lib2x-loft-1.JPG
Normal file
BIN
docs/images/lib2x-loft-1.JPG
Normal file
Binary file not shown.
After Width: | Height: | Size: 40 KiB |
50
docs/lib2x-loft.md
Normal file
50
docs/lib2x-loft.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# loft
|
||||
|
||||
When having uniform cross sections, you can use [sweep](https://openhome.cc/eGossip/OpenSCAD/lib2x-sweep.html) to create a module. The `loft` here is best when you have a body with multiple crosssections with different geometries.
|
||||
|
||||
**Since:** 2.3
|
||||
|
||||
## Parameters
|
||||
|
||||
- `sections` : A list of cross-sections, The points must be count-clockwise indexes.
|
||||
- `slices` : Defines the number of intermediate points between two sections. Default to 1.
|
||||
|
||||
## Examples
|
||||
|
||||
use <shape_starburst.scad>;
|
||||
use <shape_circle.scad>;
|
||||
use <ptf/ptf_rotate.scad>;
|
||||
use <loft.scad>;
|
||||
|
||||
sects = [
|
||||
for(i = 10; i >= 4; i = i - 1)
|
||||
[
|
||||
for(p = shape_starburst(15, 12, i % 2 == 1 ? i : i - 1)) ptf_rotate([p[0], p[1], 5 * (i - 4)], i * 10)
|
||||
]
|
||||
];
|
||||
loft(sects, slices = 3);
|
||||
|
||||
translate([30, 0, 0])
|
||||
difference() {
|
||||
loft(
|
||||
[
|
||||
[for(p = shape_circle(10, $fn = 3)) [p[0], p[1], 15]],
|
||||
[for(p = shape_circle(15, $fn = 24)) [p[0], p[1], 0]]
|
||||
],
|
||||
slices = 4
|
||||
);
|
||||
|
||||
loft(
|
||||
[
|
||||
[for(p = shape_circle(8, $fn = 3)) [p[0], p[1], 15.1]],
|
||||
[for(p = shape_circle(13, $fn = 24)) [p[0], p[1], -0.1]]
|
||||
],
|
||||
slices = 4
|
||||
);
|
||||
}
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
@@ -1,31 +0,0 @@
|
||||
use <shape_starburst.scad>;
|
||||
use <shape_circle.scad>;
|
||||
use <ptf/ptf_rotate.scad>;
|
||||
use <experimental/loft.scad>;
|
||||
|
||||
sects = [
|
||||
for(i = 10; i >= 4; i = i - 1)
|
||||
[
|
||||
for(p = shape_starburst(15, 12, i % 2 == 1 ? i : i - 1)) ptf_rotate([p[0], p[1], 5 * (i - 4)], i * 10)
|
||||
]
|
||||
];
|
||||
loft(sects, slices = 3);
|
||||
|
||||
translate([30, 0, 0])
|
||||
difference() {
|
||||
loft(
|
||||
[
|
||||
[for(p = shape_circle(10, $fn = 3)) [p[0], p[1], 15]],
|
||||
[for(p = shape_circle(15, $fn = 24)) [p[0], p[1], 0]]
|
||||
],
|
||||
slices = 4
|
||||
);
|
||||
|
||||
loft(
|
||||
[
|
||||
[for(p = shape_circle(8, $fn = 3)) [p[0], p[1], 15.1]],
|
||||
[for(p = shape_circle(13, $fn = 24)) [p[0], p[1], -0.1]]
|
||||
],
|
||||
slices = 4
|
||||
);
|
||||
}
|
@@ -1,3 +1,13 @@
|
||||
/**
|
||||
* loft.scad
|
||||
*
|
||||
* @copyright Justin Lin, 2020
|
||||
* @license https://opensource.org/licenses/lgpl-3.0.html
|
||||
*
|
||||
* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-loft.html
|
||||
*
|
||||
**/
|
||||
|
||||
use <sweep.scad>;
|
||||
|
||||
module loft(sections, slices = 1) {
|
||||
|
Reference in New Issue
Block a user