2015-11-09 174 views
0

我在OpenSCAD有一個問題,我知道我知道語言,我不知道要解決問題。
可以說,我得到了2d的數字,例如圓圈(r = 25),我想從它得到實體。但是,我想從這個堅實的東西是。在h = 0時,有一個圓(r = 35),所以一個圓實際上是縮放的,但我不是想要使用比例,因爲它乘以一個數字,但我想使它從每個點的大點變成10點
- >它看起來像截圓錐
- >它適用於其他數字,可以說多邊形,但我們有從每一個點
大它10分 - >我還需要一些反向的工作,我的意思是讓身材更小
OpenSCAD 2D圖到3D圖

如何處理呢?也許有關於ner的例子,所以如果你能把它們展示給我,我將會是gratefull

我試過了嗎?
如果H = 10,比在[0,...,10]我試圖創建類似的東西,每個H1:(BLECH)

translate([0,0,h]) for(i = [0:359]){ 
       x = thickness*cos(i); 
       y = thickness*sin(i); 
       translate([x,y,0]) children(0); 
       } 
      } 

看起來很可怕,可怕的作品是無用的,我不知道如何使它工作,如果我想要更小的數字

回答

1

我不知道,如果我明白你的問題。但是你上述所有可以與linear_extrude()和尺度參數來完成:

small = 25; 
large = 35; 

// upscale 
linear_extrude(height = 10, center = false, scale = large/small) circle(r = small); 

// downscale 
translate([2*large,0,0]) { 
    linear_extrude(height = 10, center = false, scale = small/large) circle(r = large); 
} 

它與每一個二維原始和DXF導入工作。

+0

這不是我在找的東西,而實際上答案是使用minkowski –

0

多邊形可以在兩個方向上都是offset()。只要生成的多邊形都是凸的,就可以使用hull()從它們生成一個3d對象。不幸的是,hull()不能直接從多邊形生成3d,但可以通過非常細的linear_extrude()來解決。

$fa = 0.5; 

module extrude(o, h) { 
    hull() { 
     linear_extrude(0.001) 
      children(); 

     translate([0, 0, h]) 
      linear_extrude(0.001) 
       offset(o) 
        children(); 
    } 
} 

extrude(10, 50) circle(20); 

translate([80, 0, 0]) extrude(-10, 50) scale([1, 1.5]) circle(30); 

對於更復雜的情況下,有一個在list-comprehension-demos庫的一些實驗示例代碼。