OpenSCAD linear_extrude 从多路径 svg 导入

3D打印 opencad
2021-05-15 12:19:44

在 OpenSCAD 中,我试图在从 svg 导入的形状上制作 linear_extrude。svg 文件包含多个路径。我想分别缩放每条路径。我已经尝试了下面的代码,但整个导入被认为是一个单一的形状,导致下图。

linear_extrude(height = 5, center = true, scale=1.2)
    import(file = "xxx.svg", center = true, dpi = 96);

结果

我怎样才能让每个字母都有“自己的金字塔”?

我知道我可以为每个字母创建一个 SVG。但为了简单起见,我只想拥有一个 SVG 文件,因为我想在未来创造更复杂的动机。我的最终目标是从 SVG 绘图创建图章。

编辑:在 Mick 的评论之后尝试的替代方法(相同的结果):

module pyramidChildren(height){
    for ( i= [0:1:$children-1])  
      linear_extrude(height = height, scale=1.5)
        children(i);
 }
 
 pyramidChildren(5)
    import(file = "xxx.svg", center = true, dpi = 96);

我尝试使用基本的 svg(多路径)并将每个路径(只有它自己)分组而不改变结果。

2个回答

Lame 解决方案:创建带有偏移量的阶梯金字塔。我意识到规模对于内部有洞的动机不起作用。对于我的应用程序(创建邮票),偏移似乎比比例更合适

渲染需要很长时间,但对于简单的图案来说已经足够了。仍然欢迎任何更好的解决方案......

module buildPyramidalExtrude(height,maxOffset,nSlices){
    heightIncrement = height/nSlices;
    offsetIncrement = maxOffset/(nSlices-1);
    for(i=[1:nSlices])
        linear_extrude(height=i*heightIncrement)
              offset(r = maxOffset-(i-1)*offsetIncrement)
                children();
}

buildPyramidalExtrude(4,2.5,20)
   import(file = "Farm/cow.svg", center = true);

结果

您似乎想要的不是按路径缩放而是偏移。这是OpenSCAD 中的一个公开 PR,希望很快就会成为上游。