2014-09-11 2 views
0

Я преподаю, как использовать openSCAD, и я знаю основы. Я решил сделать пальму, чтобы практиковать с помощью программного обеспечения. Я использовал следующий код, чтобы сделать багажник:OpenSCAD beginner: помощь при создании изогнутого объекта

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

который привел к следующему объекту: enter image description here Далее для верхней части пальмы Я хотел создать 2D многоугольник, а затем поверните его на 360 градусов. Многоугольник будет выглядеть примерно так: enter image description here

Для многоугольника требуется серия точек, и это будет очень сложно, так как есть изогнутые края. Есть ли более простой способ сделать листья пальмы?

+0

Вы можете найти пальмовое дерево силуэт в Интернете, проследить его создать вектор (в Inkscape), отредактировать его, чтобы удалить ствол дерева и одну сторону вектора, кроме того, что, как SVG, то импорт SVG в OpenSCAD и вращать его. –

ответ

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]);}} 
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);