/** A name tag for my 4th printer, a Artillery Genius. There are holes for thin magnets, so that I can stick it wherever I want, but most of the time, I expect it to cover up the SD card and USB holes. (Having holes on the TOP surface is stupid... Dust and other gunk will fall in). */ import static uk.co.nickthecoder.foocad.chamferedextrude.ChamferedExtrude.* class Frank : Model { @Custom var name = "DAVE" @Custom var height = 2.6 @Custom var magnetD = 11 // Diameter of the magnets on the feet (include some slack?) @Custom var magnetT = 1.0 // Thickness of the magnets (include some slack?) // I'm printing this with the text facing downwards, so that we can see the // glass's texture on the vsible surface. override fun build() : Shape3d { val text = Text( name, BOLD, 10 ).offset( 0.3 ).center() val background = text.boundingSquare().scaleX(1.2).offset(2).roundAllCorners(4) .extrude(height) val base = background - text.extrude(magnetT).topTo(height) val magHoles = Cylinder( magnetT, magnetD/2 ).leftTo(base.left+3) .mirrorX().also() println( "Size ${base.size}" ) return base - magHoles } }