/* I want to draw a large circle - a tape measure for the radius, and a garden cane to mark the center. This clip joins the two! The sizes are based on my "Toolbox" branded cheapo fat 5meter measure. Print : Use up scraps of filament for this tiny print ;-) Usage : Add 1cm or so to the measured length to account for the start of the tape being a little forward of the center of the garden cane. */ class TapeMeasureClip : Model { override fun build() : Shape3d { val width = 24 val thickness = 2 val gap = 3 val gapZ = 4 val height = 12 val holeD = 18 val ring = (Circle( holeD/2+3 ) - Circle( holeD/2 )).extrude(2) val lump = Cube( width+thickness, thickness*3+gap, height ).centerX().backTo(-holeD/2) val slot1 = Cube( lump.size.x, gap, height ).leftTo( lump.left + 2).backTo(lump.back-thickness).topTo(lump.top-3) val slot2 = Cube( lump.size.x, 10, gapZ ).leftTo( slot1.left ).backTo( slot1.back ).topTo( slot1.top ) val support = Cube( 1, thickness*2, height ).rightTo(lump.right).frontTo(lump.front).color("Blue") val clip = ring.topTo( lump.top ) + lump - slot1 - slot2 + support return clip.mirrorZ().bottomTo(0) } }