Girls Who Code

Ring-A-Thing Introduction

The Ring-A-Thing is a modular ring-building kit that allows you to press-fit a small cube magnet into the base and top parts of your ring, enabling you to switch out designs on your printed ring. Be a new superhero every day, change your ring with your mood or the season, etc.

This project is a derivative of IWorkInPixel's Ring-a-Thing
TBuser's Ring-A-Thing w/ Pin Connectors
Cymon's TARDIS Ring-a-Thing



OpenSCAD is software for creating solid 3D CAD objects. It is free software and available for Linux/UNIX, MS Windows and Mac OS X.

OpenSCAD is good for creating 3D models of machine parts or any part where you want to specify parameters.

OpenSCAD is not an interactive modeller. Instead it reads in statements that describes the object and then it renders the 3D model from that code. This gives you full control over the modelling process and enables you to easily change any step in the process or make designs that are defined by configurable parameters.

OpenSCAD provides two main modelling techniques:
  • Constructive Solid Geometry
  • Extrusion of 2D outlines

Numbers in OpenSCAD are in millimeters. So circle(5); or circle(r=5); draws a circle with a radius of 5mm.

Here is the code for the base of the ring. Measure the diameter of your finger at the largest part and pass in that value. If you want a delicate ring, the second parameter should be set to true.
ring_size = 18;
ring(ring_size, true);

module ring(size, d=true) {
    difference() {
            union() {
              cylinder(r=size/2+2, h=9, center=false);
              translate([0, size/4+2.5, 9/2]) 
                  cube(size=[size, size/2+4, 9], center=true);
                  cube(size=[size+4, size/2+4, 9], center=true);
            translate([0, 0, -1]) 
        cylinder(r=size/2, h=12+2, center=false);    
        translate([-1.5, size/2+1.5,2.5])
When you have configured your ring press F5 to compile the image. If everything looks good, press F6 to compile and render—build the mesh.

After your mesh is created select Export as STL from the Design menu.

STL or STereoLithography files describe the surface geometry of a 3D object and are used to build physical 3D CAD Models. stl files are created using a mesh made of triangles that represents the physical part of your object. The STL file is a complete listing of the xyz coordinates of the vertices and normals, the vectors perpendicular to a surface that determine the orientation for the triangles, that describe the 3D object.

A good STL file size is between .5MB for a simple file to 10MB for a large complicated one. Generally, if your part is outside of these parameters, you'll need to resize it. A good STL file must also conform to two rules.
  • Adjacent triangles must have two vertices in common
  • The orientation of the triangles (what side of the triangle is in and what side is out) as specified by the vertices and normals must agree
Minor gaps and inconsistencies can usually be fixed by specialized STL-handling software. If you have more significant problems, you'll have to go back to your original CAD model.

An STL file can be termed bad because of translation issues. In many CAD systems, the number of triangles that represent the model can be defined by the user. If you are using too many triangles, the stl file size can become unmanageable. If you're using too few triangles to describe your object, your curved areas will not be properly defined and your cylinders might look like hexagons.