我想在openscad中創建風扇風管,將風管從圓形展平爲橢圓形。有沒有辦法在openscad中做到這一點?如果沒有,是否有其他編程方式來生成這種類型的3D模型?變形圈到橢圓形在openscad
感謝 丹尼斯
我想在openscad中創建風扇風管,將風管從圓形展平爲橢圓形。有沒有辦法在openscad中做到這一點?如果沒有,是否有其他編程方式來生成這種類型的3D模型?變形圈到橢圓形在openscad
感謝 丹尼斯
通過你的意思是elipse「橢圓形」假設,那麼下面創建一個固體從圓形變細到一個橢圓:
module tube(height, radius, eccentricity=1, thickness) {
difference() {
connector(height,radius,eccentricity);
translate([0,0,-(Delta+thickness)])
connector(height + 2* (Delta +thickness) ,radius-thickness, eccentricity);
}
}
tube(20,8,0.6,2);
:
Delta=0.01;
module connector (height,radius,eccentricity) {
hull() {
linear_extrude(height=Delta)
circle(r=radius);
translate([0,0,height - Delta])
linear_extrude(height=Delta)
scale([1,eccentricity])
circle(r=radius);
}
}
connector(20,6,0.6);
您可以通過減去一個較小的版本進行管
但壁厚不均勻。爲了使統一的牆壁,用夫斯基添加牆:
module tube(height, radius, eccentricity=1, thickness) {
difference() {
minkowski() {
connector(height,radius,eccentricity);
cylinder(height=height,r=thickness);
}
translate([0,0,-(Delta+thickness)])
connector(height + 2* (Delta +thickness) ,radius, eccentricity);
}
}
tube(20,8,0.6,2);
我不知道的方式,直接做到這一點,但我能想象用一系列堆疊片逼近它。
以圓形開始,並有一個循環,可在將切片添加到堆棧時將比例因子從圓形平滑地變爲橢圓形。這會給你一個臺階表面。如果這是3D打印應用程序,如果您將切片厚度設置爲與圖層高度相同,則可能不會注意到。
有使用linear_extrude的「規模」 - 參數()的另一種方式。它「在整個擠出高度上通過該值縮放二維形狀。比例可以是標量或矢量「(Documentation)。使用具有x和y比例因子的矢量,可以獲得所需的修改:
d = 2; // height of ellipsoid, diameter of bottom circle
t = 0.25; // wall thickness
w = 4; // width of ellipsoid
l = 10; // length of extrusion
module ellipsoid(diameter, width, height) {
linear_extrude(height = height, scale = [width/diameter,1]) circle(d = diameter);
}
difference() {
ellipsoid(d,w,l);
ellipsoid(d-2*t,w-2*t,l);
}