2015-11-09 175 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库的一些实验示例代码。