3

私はこの(中空)形状を描画しようとしています:

ファンキーシェイプ

円は実際には異なる直径であり、接続チューブの中央をそのようにネックダウンしたいと考えています (ただし、必須ではありません)。セグメントごとに描画することで形状を偽造することはできますが、首を絞めるのに問題があり、OpenSCAD が望んでいる方法とは思えません (つまり、1 時間の 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);
    }
}
4

2 に答える 2

7

これは純粋なopenscadバージョンです。モジュールとその使用法の詳細については、scad-utils と list-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();

結果

于 2015-03-29T01:46:36.613 に答える