OpenSCAD 2d图到3d图

时间:2015-11-09 14:24:31

标签: 3d 2d openscad

我在OpenSCAD中遇到问题,我确实知道语言并且我不知道接近问题 让我们说,我得到2d数字,例如圆圈(r = 25),我想从中获得坚实。但我想从那个坚实的东西是 - >在h = 0时,有我的圆(r = 25)
- >在h = 10时,有一个圆圈(r = 35),所以一个圆圈,实际上是缩放的,但我不想使用比例,因为它乘以一个数字,但我想让它比每一个大10个点指出来 - >它看起来像截锥 - >它适用于其他数字,比方说多边形,我们仍然可以从每个点增加10个点 - >我还需要一些反向运作的东西,我的意思是让数字更小一些

如何接近它?也许有关于ner的例子,所以如果你能向我展示,我将感激不尽。

我尝试过什么? 如果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);
                }
            }

看起来很可怕,工作很糟糕且没用,如果我想要更小的身材,我不知道如何让它工作

2 个答案:

答案 0 :(得分:1)

我不确定,如果我理解你的问题。但上面描述的所有内容都可以使用schema "model" do field :image_url, :string field :image, :any, virtual: true timestamps end 和scale-parameter:

完成
linear_extrude()

它可以处理每个2D基元和dxf-import。

答案 1 :(得分: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存储库中有一些实验性示例代码。