同时进行线性和旋转挤压

Bry*_*her 3 openscad

我正在尝试绘制这个(空心)形状:

时髦的形状

圆圈实际上是不同的直径,我想像这样将连接管的中间缩进(但这不是必需的)。我可以通过逐段绘制来伪造形状,但是我在缩小它时遇到了问题,而且感觉不像 OpenSCAD 想要它那样完成(即长达一小时的 CSG 生成)。有没有更好的方法来做到这一点?渲染形状

for(i = [0:180]) {
    rotate([0,i,0])
    translate([26,0,0])
    difference() {
        cylinder(r=10 + (0.083 * i),h=.1);
        cylinder(r=8 + (0.083 * i),h=.1);
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 7

这是纯openscad版本。有关模块及其用法的详细信息,请参阅scad-utilslist-comprehension-demos

use <scad-utils/transformations.scad>
use <scad-utils/shapes.scad>
use <skin.scad>

fn=32;
$fn=60;

r1 = 25;
r2 = 10;
R = 40;
th = 2;

module tube()
{
    difference()
    {
        skin([for(i=[0:fn]) 
              transform(rotation([0,180/fn*i,0])*translation([-R,0,0]), 
                        circle(r1+(r1-r2)/fn*i))]);
        assign(r1 = r1-th, r2 = r2-th)
        skin([for(i=[0:fn]) 
              transform(rotation([0,180/fn*i,0])*translation([-R,0,0]), 
                        circle(r1+(r1-r2)/fn*i))]);
    }
}

tube();
Run Code Online (Sandbox Code Playgroud)

结果