Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
3d 有没有办法在OpenSCAD中沿z轴弯曲三角形?_3d_Openscad - Fatal编程技术网

3d 有没有办法在OpenSCAD中沿z轴弯曲三角形?

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])

我用一个函数/模块在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]) 
        {
    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中有任何技巧或技巧可以做到这一点