mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-06 06:47:46 +02:00
use sf_cylinder if angle is 360
This commit is contained in:
@@ -9,31 +9,37 @@
|
|||||||
**/
|
**/
|
||||||
|
|
||||||
use <_impl/_sf_square_surfaces.scad>
|
use <_impl/_sf_square_surfaces.scad>
|
||||||
|
use <sf_cylinder.scad>;
|
||||||
use <sf_solidify.scad>
|
use <sf_solidify.scad>
|
||||||
use <../ptf/ptf_bend.scad>
|
use <../ptf/ptf_bend.scad>
|
||||||
|
|
||||||
module sf_bend(levels, radius, thickness, depth, angle = 180, invert = false, convexity = 1) {
|
module sf_bend(levels, radius, thickness, depth, angle = 180, invert = false, convexity = 1) {
|
||||||
dp = is_undef(depth) ? thickness / 2 : depth;
|
if(angle == 360) {
|
||||||
surface = _sf_square_surfaces(levels, thickness, dp, invert);
|
sf_cylinder(levels, radius, thickness, depth, invert, convexity);
|
||||||
rows = len(levels);
|
}
|
||||||
columns = len(levels[0]);
|
else {
|
||||||
size = [columns - 1, rows - 1];
|
dp = is_undef(depth) ? thickness / 2 : depth;
|
||||||
|
surface = _sf_square_surfaces(levels, thickness, dp, invert);
|
||||||
|
rows = len(levels);
|
||||||
|
columns = len(levels[0]);
|
||||||
|
size = [columns - 1, rows - 1];
|
||||||
|
|
||||||
offset_z = invert ? thickness : 0;
|
offset_z = invert ? thickness : 0;
|
||||||
r = radius + offset_z;
|
r = radius + offset_z;
|
||||||
sf_solidify(
|
sf_solidify(
|
||||||
[
|
|
||||||
for(row = surface[0])
|
|
||||||
[
|
[
|
||||||
for(p = row) ptf_bend(size, p, r, angle)
|
for(row = surface[0])
|
||||||
]
|
[
|
||||||
],
|
for(p = row) ptf_bend(size, p, r, angle)
|
||||||
[
|
]
|
||||||
for(row = surface[1])
|
],
|
||||||
[
|
[
|
||||||
for(p = row) ptf_bend(size, p, radius, angle)
|
for(row = surface[1])
|
||||||
]
|
[
|
||||||
],
|
for(p = row) ptf_bend(size, p, radius, angle)
|
||||||
convexity = convexity
|
]
|
||||||
);
|
],
|
||||||
|
convexity = convexity
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user