standard logo    Personal Education

Mouse Ring

It is early in my exploration of 3D printing. The pile of "idea" projects continues to grow. Most of them are incomplete or viewable only as practice.

However, I am also cruising around the internet, looking for ideas and inspiration. At many design sites, I'm seeing very beautiful and useful printed items. A few days ago, I came on the design for a ring with mouse ears by Agustin Flowalistik.

Flowalistik

A visit to Agustin's site is inspirational, too.

I showed the picture around around and people immediately said, "I want one!" and that meant picking up some new skills.

I am doing my best to avoid just downloading and printing designs. I appreciate the work of others, but my goals are more aligned with learning than production. It's how I roll. I'm trying to work out my skills with OpenSCAD, an open source design tool for 3D.

Off I went to make a plain, simple ring and got that done using OpenSCAD's difference() command which subtracts the smaller, inner cylinder from the larger one, resulting in a flat ring. I used convenient numbers to do my first version.


difference()
{
    cylinder(3,10,10);
    cylinder(3.1,8,8);
}

Then came the mouse ears where the issue was clipping a bit out of the ear cylinder so it would not extend into the ring's interior. Again using difference(), the code deducts the ring's interior cylinder from part of the ear's cylinder. The code also uses translate(), another OpenSCAD command which shifts the next parts away from the center of the x,y,z coordinates which is always the starting point for the code.


// mouse ears
// left offset
difference()
{
    translate([-8,8,0])
      cylinder(3,4,4);
    cylinder(3.1,10,10);
}
// right offset
difference()
{
    translate([8,8,0])
      cylinder(3,4,4);
    cylinder(3.1,10,10);
}

There was the ring. Success with the fundamental concept.

mouse ring v1

Ultimately, I wanted to create a version which would incorporate using variables, to automatically be able to handle all sorts of ring sizes. Looking around the internet gave me a convenient ring size chart.

The final stage was developing the set of variables to replace the hard coded positions and sizes of each element in the ring. That always takes me a good bit of effort. I make lots of false steps. I'm definitely not a professional programmer. Being at all comfortable with the coding of OpenSCAD came from having done some BASIC programming way back and more recently some fiddling with Python and JavaScript. I will leave the stumbling steps to your imagination and wind this up with the final version of the mouse ring code with comments. As noted, the code is a remix, so the license terms of the original apply Attribution-NonCommercial-ShareAlike. Copy freely. Crank up your own printer to make just the size you need. Sharing is good.

Last second issue? The PLA printings don't actually seem to produce equivalent sizes compared to the chart. It looks like more research is ahead and an update will be needed. Any feedback you can offer will be welcome (email in page footer).

Copy and paste the full code below or download the same as a SCAD file.


// Mouse Ring
// ring-mouse - version03 - 2017-01-15 - change chart source?
// Algot Runeman

// remake of the version by  Agustin Flowalistik
// https://www.youmagine.com/designs/mouse-ring
// converted to using variables so one version can handle many ring sizes
// instead of the hardcoded sizes of his version, hoping it is easier to use.
// As a remix, this version has Attribution Noncommercial Share-alike as its license.

// uncomment the appropriate ring size below to size the ring

// bump the chart number for intermediate or larger sizes
// ring sizes chart uses diameter -- http://www.ringsizes.co/sizingtool.pdf
// but latest testing suggests the PLA prints are not 'standard' and may need work

// chart= 14.86; // diameters measured in mm = ring size 4
// chart= 15.27; // ring size 4.5
// chart= 15.70; // ring size 5
// chart= 16.10; // ring size 5.5
// chart= 16.51; // ring size 6
// chart= 16.92; // ring size 6.5
// chart= 17.35; // ring size 7
// chart= 17.75; // ring size 7.5
// chart= 18.19; // ring size 8
// chart= 18.53; // ring size 8.5
// chart= 18.89; // ring size 9
// chart= 19.41; // ring size 9.5
 chart= 19.84; // ring size 10  // default size
// chart= 20.20; // ring size 10.5
// chart= 20.68; // ring size 11
// chart= 21.08; // ring size 11.5
// chart= 21.49; // ring size 12
// chart= 21.89; // ring size 12.5
// chart= 22.33; // ring size 13
// chart= 22.60; // ring size 13.5

// variables
inring=chart/2; // ring size conversion to radius
ht=3; // band width
fudge=ht+.1; // to ensure complete difference
outring=inring*1.25; // outer edge of band
earrad=inring; // mouse ear adjustment
shiftx=inring; // ear position adjustment

// main ring
difference()
{
    cylinder(ht,outring,outring);
    cylinder(fudge,inring,inring);
}

// ears
difference()
{
    translate([-shiftx,shiftx,0])
      cylinder(ht,inring/2,inring/2);
    cylinder(fudge,outring,outring);
}
difference()
{
    translate([shiftx,shiftx,0])
      cylinder(ht,inring/2,inring/2);
    cylinder(fudge,outring,outring);
}