standard logo    Personal Education

3D Central



Snowflakes

If you fancy something quick to print last-minute for the season, these might be just the thing, taking less than half an hour each to print. They are light and can be hung just about anywhere.

The project's OpenSCAD code is nothing fancy. Version00 is just fourteen lines of code. It consists of one module to create a thin diamond shape using polygon() with a second, smaller polygon removed using difference().

flake00

Snowflake00


module diamond(){
difference(){
linear_extrude(2)
    polygon(points=[[0,0],[10,20],[0,40],[-10,20]], paths=[[0,1,2,3,0]]);
    translate([0,4,-.5])
color("black",1)
linear_extrude(3)
scale([.8,.8,1])
    polygon(points=[[0,0],[10,20],[0,40],[-10,20]], paths=[[0,1,2,3,0]]);
}}
for(k=[0:30:360]){
    rotate([0,0,k])
    diamond();
}

Snowflake01

In version zero, the diamonds overlapped in an interesting pattern, but to get six which would connect, the dimensions needed to be changed so the diamonds were wider.

snowflake01

module diamond(){
difference(){
linear_extrude(2)
    polygon(points=[[0,0],[12,18],[0,38],[-11,18]], paths=[[0,1,2,3,0]]);
    translate([0,2,-.5])
color("black",1)
linear_extrude(3)
scale([.9,.8,1])
    polygon(points=[[0,0],[10,20],[0,40],[-10,20]], paths=[[0,1,2,3,0]]);
}}

for(k=[0:60:360]){
    rotate([0,0,k])
    diamond();
}

Snowflake02

Version one seems a little plain. It made sense to increase its complexity, so there is a second ring of diamonds for version two.

snowflake02

module diamond(){
difference(){
linear_extrude(2)
    polygon(points=[[0,0],[12,18],[0,38],[-12,18]], paths=[[0,1,2,3,0]]);
    translate([0,2.55,-.5])
color("black",1)
linear_extrude(3)
scale([.8,.85,1])
    polygon(points=[[0,0],[12,18],[0,38],[-12,18]], paths=[[0,1,2,3,0]]);
}}

// outer
module outer(){
    for(k=[0:120:360]){
    translate([sin(k)*20,cos(k)*20,0])
    rotate([0,0,k*2])
    diamond();
}}
// inner ring
for(k=[0:60:360]){
    rotate([0,0,k])
    diamond();
}
// outer ring
outer();
rotate([0,0,60])
outer();

Available Files:

(In most browsers, right click each file you wish to download and select "save-as" from the menu options.)

SCAD files for study/modification and STL files for quick prints

snowflake00.scad - snowflake00.stl - appx 25 minute print time
snowflake01.scad - snowflake01.stl - appx 20 minute print time
snowflake02.scad - snowflake02.stl - appx 25 minute print time
snowflake02-4.stl - a set of four half-size flakes - appx half an hour to print
GPL3 License