1

我正在自学如何使用 openSCAD,并且我知道基础知识。我决定制作一棵棕榈树来练习使用该软件。我使用以下代码来制作主干:

linear_extrude(height = 50, center = true, convexity = 10, twist = 200)
circle(r = 1);

这导致了以下对象: 在此处输入图像描述 接下来我想为棕榈树的顶部创建一个 2D 多边形,然后将其旋转 360 度。多边形看起来像这样: 在此处输入图像描述

多边形需要一系列点,这将非常困难,因为有弯曲的边缘。有没有更简单的方法来制作棕榈树叶?

4

2 回答 2

0

保持简单:使用立方体等 3d 形状。下面的代码显然可以从 for 循环中生成。

translate([0, 0, 25]){
    linear_extrude(height = 50, center = true, convexity = 10, twist = 200)
        circle(r = 1);
}

translate([0, 0, 40]){cylinder(10, 1, 2);}


translate([0, 0, 50]){rotate([0, 20, 0]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 20]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 40]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 60]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 80]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 100]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 120]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 140]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 160]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 180]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 200]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 220]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 240]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 260]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 280]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 300]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 320]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 20, 340]){cube([10, 5, 1]);}}

translate([0, 0, 50]){rotate([0, 2, 0]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 0, 20]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 2, 40]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 0, 60]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 0, 80]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 2, 100]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 0, 120]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 2, 140]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 2, 160]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 2, 180]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 0, 200]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 2, 220]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 0, 240]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 2, 260]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 2, 280]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 0, 300]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 0, 320]){cube([10, 5, 1]);}}
translate([0, 0, 50]){rotate([0, 0, 340]){cube([10, 5, 1]);}}
于 2015-05-05T00:52:43.840 回答
0

//这是一种方法,但我觉得它并不能很好地代表棕榈树。

translate([0,0,20])
rotate_extrude()
rotate([0,0,90])
difference(){
union(){
difference(){
circle(r = 15,$fn = 100);
translate([-20,0])
circle(r = 30, $fn = 100);
}

translate([.2,0])
scale([.7,.8])
difference(){
circle(r = 15,$fn = 100);
translate([-20,0])
circle(r = 30, $fn = 100);
}

translate([.2,0])
scale([.5,.6])
difference(){
circle(r = 15,$fn = 100);
translate([-20,0])
circle(r = 30, $fn = 100);
}
translate([5,0])
rotate([0,0,45])
square(center = true,[1.5,1.5]);
 }

translate([15,-15])
square([30,30], center = true);
}




linear_extrude(height = 50, center = true, convexity = 10, twist = 200)
circle(r = 1);
于 2015-05-30T04:35:37.947 回答