1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-04-16 03:53:35 +02:00

update to 3.0

This commit is contained in:
Justin Lin 2021-02-18 10:53:35 +08:00
parent 8ea54fb9b3
commit 200600f004
7 changed files with 17 additions and 17 deletions

View File

@ -58,7 +58,7 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp
- [crystal_ball](https://openhome.cc/eGossip/OpenSCAD/lib3x-crystal_ball.html)
- [function_grapher](https://openhome.cc/eGossip/OpenSCAD/lib3x-function_grapher.html)
- [hull_polyline3d](https://openhome.cc/eGossip/OpenSCAD/lib3x-hull_polyline3d.html)
- [line3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-line3d.html)
- [line3d](https://openhome.cc/eGossip/OpenSCAD/lib3x-line3d.html)
- [loft](https://openhome.cc/eGossip/OpenSCAD/lib2x-loft.html)
- [polyhedron_hull](https://openhome.cc/eGossip/OpenSCAD/lib2x-polyhedron_hull.html)
- [polyline3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-polyline3d.html)

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -6,7 +6,7 @@ Creates a 3D line from two points.
- `p1` : 3 element vector `[x, y, z]`.
- `p2` : 3 element vector `[x, y, z]`.
- `thickness` : The line thickness.
- `diameter` : The line diameter. Default to 1.
- `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_SPHERE"`. The default value is `"CAP_CIRCLE"`.
- `$fa`, `$fs`, `$fn` : Used by the `circle` or `sphere` module internally. Check [the circle module](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_the_2D_Subsystem#circle) or [the sphere module](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids#sphere) for more details. The final fragments of a circle will be a multiple of 4 to fit edges.
@ -18,34 +18,34 @@ Creates a 3D line from two points.
line3d(
p1 = [0, 0, 0],
p2 = [10, 2, 10],
thickness = 1,
diameter = 1,
$fn = 24
);
![line3d](images/lib2x-line3d-1.JPG)
![line3d](images/lib3x-line3d-1.JPG)
use <line3d.scad>;
line3d(
p1 = [0, 0, 0],
p2 = [10, 2, 10],
thickness = 1,
diameter = 1,
p1Style = "CAP_BUTT",
p2Style = "CAP_BUTT",
$fn = 24
);
![line3d](images/lib2x-line3d-2.JPG)
![line3d](images/lib3x-line3d-2.JPG)
use <line3d.scad>;
line3d(
p1 = [0, 0, 0],
p2 = [10, 2, 10],
thickness = 1,
diameter = 1,
p1Style = "CAP_SPHERE",
p2Style = "CAP_SPHERE",
$fn = 24
);
![line3d](images/lib2x-line3d-3.JPG)
![line3d](images/lib3x-line3d-3.JPG)

View File

@ -2,25 +2,25 @@ use <line3d.scad>;
use <turtle/t3d.scad>;
module tree(t, leng, leng_scale1, leng_scale2, leng_limit,
angleZ, angleX, width) {
angleZ, angleX, diameter) {
if(leng > leng_limit) {
t2 = t3d(t, "xforward", leng = leng);
line3d(
t3d(t, "point"), t3d(t2, "point"),
width);
diameter);
tree(
t3d(t2, "zturn", angle = angleZ),
leng * leng_scale1, leng_scale1, leng_scale2, leng_limit,
angleZ, angleX,
width);
diameter);
tree(
t3d(t2, "xturn", angle = angleX),
leng * leng_scale2, leng_scale1, leng_scale2, leng_limit,
angleZ, angleX,
width);
diameter);
}
}
@ -30,9 +30,9 @@ leng_scale1 = 0.4;
leng_scale2 = 0.9;
angleZ = 60;
angleX = 135;
width = 2;
diameter = 2;
t = t3d(point = [0, 0, 0]);
tree(t, leng, leng_scale1, leng_scale2, leng_limit,
angleZ, angleX, width);
angleZ, angleX, diameter);

View File

@ -4,15 +4,15 @@
* @copyright Justin Lin, 2017
* @license https://opensource.org/licenses/lgpl-3.0.html
*
* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-line3d.html
* @see https://openhome.cc/eGossip/OpenSCAD/lib3x-line3d.html
*
**/
use <__comm__/__frags.scad>;
use <__comm__/__nearest_multiple_of_4.scad>;
module line3d(p1, p2, thickness, p1Style = "CAP_CIRCLE", p2Style = "CAP_CIRCLE") {
r = thickness / 2;
module line3d(p1, p2, diameter = 1, p1Style = "CAP_CIRCLE", p2Style = "CAP_CIRCLE") {
r = diameter / 2;
frags = __nearest_multiple_of_4(__frags(r));
half_fa = 180 / frags;