如何弯曲图纸(立方体)?我想控制弯曲/曲线的角度。



例如

立方([50,50,2]);

最佳答案

您可以使用参数angle对一个矩形进行rotate_extrude()编码。这需要openscad版本2016.xx或更高版本,请参阅documentation
有必要安装开发快照,请参见download openscad

$fn= 360;

width = 10;   // width of rectangle
height = 2;   // height of rectangle
r = 50;       // radius of the curve
a = 30;       // angle of the curve

rotate_extrude(angle = a) translate([r, 0, 0]) square(size = [height, width], center = true);
看起来像这样:
curve - 如何在OpenSCAD中制作弯曲的图纸(立方体)?-LMLPHP
曲线由半径和角度定义。我认为在此草图中使用其他尺寸(例如长度或dh)更为现实
curve - 如何在OpenSCAD中制作弯曲的图纸(立方体)?-LMLPHP
并计算半径和角度
$fn= 360;

w = 10;       // width of rectangle
h = 2;       // height of rectangle
l = 25;      // length of chord of the curve
dh = 2;           // delta height of the curve

module curve(width, height, length, dh) {
    // calculate radius and angle
    r = ((length/2)*(length/2) - dh*dh)/(2*dh);
    a = asin((length/2)/r);
    rotate_extrude(angle = a) translate([r, 0, 0]) square(size = [height, width], center = true);
}

curve(w, h, l, dh);
编辑30.09.2019:
考虑到Cfreitas的评论,另外将结果形状移至原点,因此可以在坐标轴上看到尺寸
$fn= 360;

w = 10;       // width of rectangle
h = 2;       // height of rectangle
l = 30;      // length of chord of the curve
dh = 4;           // delta height of the curve

module curve(width, height, length, dh) {
    r = (pow(length/2, 2) + pow(dh, 2))/(2*dh);
    a = 2*asin((length/2)/r);
    translate([-(r -dh), 0, -width/2]) rotate([0, 0, -a/2])         rotate_extrude(angle = a) translate([r, 0, 0]) square(size = [height, width], center = true);
}

curve(w, h, l, dh);
结果:
curve - 如何在OpenSCAD中制作弯曲的图纸(立方体)?-LMLPHP
编辑19.09.2020:上次编辑中有一个错字:在第一个“翻译”中,应使用局部的“宽度”而不是“w”。在上面的代码中对其进行了更正。

关于curve - 如何在OpenSCAD中制作弯曲的图纸(立方体)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54115749/

10-13 08:58