1

我想知道如何避免openscad中两个对象之间的尖角。

MWE:我有以下代码,它给出了圆柱体和球体对象之间的尖角。

sphere (r=0.3, $fn=50);

rotate([90,0,0])
{
 cylinder (h=2, r=0.1, center=true, $fn=20);
}

rotate([0,90,0])
{
 cylinder (h=2, r=0.1, center=true, $fn=20);
}

我到底在寻找什么?

它是连接圆柱体和球体的“360 度 3D 弧”。类似于扩展列的东西。

我使用 minkowski() 函数(下面的代码)尝试了其他几种组合,但是与球体连接的圆柱体末端从未得到平滑。

module draw(){
sphere (r=0.3, $fn=50);

rotate([90,0,0])
{
 cylinder (h=2, r=0.1, center=true, $fn=20);
}

rotate([0,90,0])
{
 cylinder (h=2, r=0.1, center=true, $fn=20);
}

}

 minkowski(){
 draw();
 sphere(0.01);
 }

任何人都可以在这里给我一个提示。

4

1 回答 1

3

一些负面的甜甜圈怎么样?

sphere (r=0.3, $fn=50);

rotate([90,0,0])
    cylinder (h=2, r=0.1, center=true, $fn=20);
rotate([0,90,0])
    cylinder (h=2, r=0.1, center=true, $fn=20);

for(r = [0 : 90 : 270])
    rotate([90,0,r]) negative_donut();

module negative_donut() {
    difference(){
       translate([0, 0, 0.3]) donut(0.1,0.05); 
       translate([0, 0, 0.345]) donut(0.2,0.1); 
    }    
}

module donut(r1, r2){
    rotate_extrude($fn=50)
    translate([r1, 0, 0])
    circle(r = r2);    
}

在此处输入图像描述 我观察了尺寸和距离,所以你可以在这里改进数学。

于 2017-10-18T18:19:19.800 回答