Exit Full View
Up

/Games/ScrabbleLazySusan.foocad

ScrabbleLazySusan
FooCAD Source Code
class ScrabbleLazySusan : Model {
    
    val size = 112 * 3 + 10

    val thickness = 12

    var exploded = 100

    override fun build() : Shape3d {

        val bottom = Cube( size, size, thickness ).centerXY() -
            Cylinder( 100, 10 ).translate( 54, 0, -1 ) // To screw the top on.

        val bearing = Cube( 94, 94, 8 ).centerXY().bottomTo( bottom.top ).color( "GhostWhite" )

        val middle = ( Square( size ).center() - Circle( size * 0.4 ) )
            .extrude( thickness )
            .bottomTo( bottom.top )
            .color("Orange")

        val top = Cube( size, size, thickness ).centerXY().bottomTo( middle.top )
            .color( "Red" )

        return top.translateZ(exploded*2) + middle.translateZ(exploded) +
            bottom + bearing.translateZ(exploded*0.2)
    }
}