// -*- C -*- hoopthick = 3; hinnerrad = 15; houterrad = hinnerrad + hoopthick; hcentredist = 10; blockdepth = 5; blockwidth = hcentredist*2 + 6; module Oval(centredist, rad) { hull() { translate([-centredist/2,0,0]) circle(r=rad); translate([+centredist/2,0,0]) circle(r=rad); } } module Hoop(){ difference(){ Oval(hcentredist, houterrad); Oval(hcentredist, hinnerrad); } } module Positive(){ Hoop(); translate([0, (blockdepth + hoopthick)/2 + hinnerrad]) square([blockwidth, blockdepth + hoopthick], center=true); } Positive();