Random Snowflake Generator v11 ornament and earrings

This is a random snowflake generator using the free BlocksCad on-line educational system.
12.24.2017 update: now generates either ornaments or earrings:

  • files with the word "earring" are sized for earrings
  • files without the word "earring" are sized for ornaments
  • BlocksCAD files are provided for both
  • the BlocksCAD file random_snowflake_earring_2.xml has a small improvement that better positions the attachment loop

The image shows two examples of snowflakes generated by the program provided.

Each click of the "RENDER" button creates a new snowflake.

To create a new snowflake, simply click the “render” button

  • If you like a snowflake click “Generate .stl” and the program will save the .stl to your downloads folder. If you click render again, you can’t go back; so save it to a file as soon as you see it if you think you might want to keep it.

.stl files are provided for two sample ornament sized snowflakes and 20 sample earring sized snowflakes that were generated by the .xml file in BlocksCAD https://www.blockscad3d.com/

added two files repaired using Netfabb (free) if you have trouble printing the files that came from BlocksCAD

The BlocksCAD project page is here: https://www.blockscad3d.com/community/projects/68417

Enjoy!

BlocksCADSnowflake

If you wish to modify the program, here are some of the key parameters:

  • max_radius - reduce this to create smaller snowflakes or increase for larger snowflakes (the actual radius of the snowflake can vary from 1 x max_radius to max_dX_factor x max_radius)
  • width - reduce or increase this to make the branches thicker or thinner (the actual branch thickness can vary from 1 x width to max_width_factor x width)
    thickness is the snowflake thickness and is constant
  • thickness - snowflake thickness in mm

    this program uses:

  • loops - "count with ..."
  • translate
  • rotate
  • if ... do, else if ... do
  • cube
  • cylinder
  • union
  • difference
  • random fraction
  • modules with inputs (like a subprogram so you don't need to repeat code)
    --- make_branch
    --- ran_1_to_n - return a random decimal number between 1 and n (as opposed to the built-in function "random integer from # to #)