1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-01-17 06:08:31 +01:00
dotSCAD/docs/lib3x-sf_solidifyT.md
2022-06-06 13:11:46 +08:00

1.3 KiB

sf_solidifyT

It solidifies two surfaces with triangular mesh.

Since: 3.1

Parameters

  • points1 : A list of [x, y, z]s.
  • points2 : A list of [x, y, z]s.
  • triangles : Determine which points are connected by an edge. All triangles have points in the same direction, counter-clockwise. See examples below.

Examples

use <triangle/tri_delaunay.scad>
use <surface/sf_solidifyT.scad>

points = [for(i = [0:50]) rands(-300, 300, 2)]; 
triangles = tri_delaunay(points);

pts = [for(p = points) [p.x, p.y, rands(100, 150, 1)[0]]];
pts2 = [for(p = pts) [p.x, p.y, p.z - 100]];

sf_solidifyT(pts, pts2, triangles = triangles);	

sf_solidifyT

use <triangle/tri_delaunay.scad>
use <surface/sf_solidifyT.scad>

thickness = .2;
a_step = 15;
r_step = 0.2;
scale = 100;

function f(x, y) = (y ^ 2 - x ^ 2) / 4;

pts2d = [
    for(a = [a_step:a_step:360], r = [r_step:r_step:2])
    let(
        x = r * cos(a), 
        y = r * sin(a)
    )
    [x, y] 
];

points1 = [for(p = pts2d) scale * [p.x, p.y, f(p.x, p.y)]];
points2 = [for(p = points1) [p.x, p.y, p.z - scale * thickness]];
triangles = tri_delaunay(pts2d);

sf_solidifyT(points1, points2, triangles);

sf_solidifyT