1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-22 22:35:18 +02:00
This commit is contained in:
Justin Lin
2020-04-05 11:07:07 +08:00
parent b7c3ef2fee
commit 8b8dd5bbf3
5 changed files with 61 additions and 32 deletions

View File

@@ -57,7 +57,7 @@ See [examples](examples).
- [function_grapher](https://openhome.cc/eGossip/OpenSCAD/lib2x-function_grapher.html) - [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.) - [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) - [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) - [starburst](https://openhome.cc/eGossip/OpenSCAD/lib2x-starburst.html)
- [voronoi3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-voronoi3d.html) - [voronoi3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-voronoi3d.html)

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

50
docs/lib2x-loft.md Normal file
View 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
);
}
![loft](images/lib2x-loft-1.JPG)

View File

@@ -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
);
}

View File

@@ -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>; use <sweep.scad>;
module loft(sections, slices = 1) { module loft(sections, slices = 1) {