gpt4 book ai didi

curve - 如何在 OpenSCAD 中制作曲面片(立方体)?

转载 作者:行者123 更新时间:2023-12-05 00:11:16 28 4
gpt4 key购买 nike

我怎样才能弯曲一张纸(立方体)?我想控制弯曲/曲线的角度。

curve

例如

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

最佳答案

您可以 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);
看起来像这样:
enter image description here
曲线由半径和角度定义。我认为在此草图中使用其他尺寸(如长度或 dh)更现实
enter image description here
并计算半径和角度
$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);
2019 年 9 月 30 日编辑:
考虑到 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);
结果:
enter image description here
2020 年 9 月 19 日编辑:上次编辑中有一个错字:在第一个“翻译”中,应使用本地“宽度”而不是“w”。在上面的代码中更正了它。

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

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com