3d 有没有办法在OpenSCAD中沿z轴弯曲三角形?
我用一个函数/模块在openSCAD中画了一个三角形,给它圆边(主要是因为我有点懒,但也因为我不想把事情搞砸)。我现在想把三角形从上到下弯曲3d 有没有办法在OpenSCAD中沿z轴弯曲三角形?,3d,openscad,3d,Openscad,我用一个函数/模块在openSCAD中画了一个三角形,给它圆边(主要是因为我有点懒,但也因为我不想把事情搞砸)。我现在想把三角形从上到下弯曲 fn=128; RoundedPolygon([[0,0],[120,260],[230,0]],25,fn); module RoundedPolygon(P,r,fn) { rotate(a=90, v=[0,0,1]){ rotate([90,180,180]) scale([1,1,5])
fn=128;
RoundedPolygon([[0,0],[120,260],[230,0]],25,fn);
module RoundedPolygon(P,r,fn)
{
rotate(a=90, v=[0,0,1]){
rotate([90,180,180]) scale([1,1,5])
{
v = rounded_polygon_v(P,r,fn);
polygon(v);};};
}
function bezier_smooth(path_pts, round_d, t_step = 0.1, closed = false, angle_threshold = 0) =
_bezier_smooth_impl(path_pts, round_d, t_step, closed, angle_threshold);
function rounded_polygon_v(P,r,fn) =
let
(
step = 360 / fn,
n = len(P),
o_v = [ for(i=[0:n-1]) atan2(P[(i+1)%n][1] - P[i][1], P[(i+1)%n][0] - P[i][0]) + 90 + 360 ]
)
[
for(i=[0:n-1])
let
(
n1 = i,
n2 = (i+1)%n,
w1 = o_v[n1],
w2 = (o_v[n2] < w1) ? o_v[n2] : o_v[n2] - 360
)
for (w=[w1:-step:w2])
[ cos(w)*r+P[n2][0], sin(w)*r+P[n2][1] ]
] ;
fn=128;
圆形多边形([[0,0],[120260],[230,0]],25,fn);
模块圆形多边形(P、r、fn)
{
旋转(a=90,v=[0,0,1]){
旋转([90180180])刻度([1,1,5])
{
v=圆形的多边形(P,r,fn);
多边形(v);};};
}
函数bezier_平滑(路径点、圆度、t_步长=0.1、闭合=假、角度阈值=0)=
_bezier_smooth_impl(路径点、圆形、t步、闭合、角度阈值);
函数圆角_多边形_v(P,r,fn)=
让
(
阶跃=360/fn,
n=len(P),
o_v=[for(i=[0:n-1])atan2(P[(i+1)%n][1]-P[i][1],P[(i+1)%n][0]-P[i][0])+90+360]
)
[
对于(i=[0:n-1])
让
(
n1=i,
n2=(i+1)%n,
w1=o_v[n1],
w2=(o_v[n2]
它可以工作,但无论我如何尝试弯曲它(从下到上或从上到下,沿z轴)(我想你无论如何都会这样描述它)
有没有人在openSCAD中有任何技巧或技巧可以做到这一点