Exit Full View
Up

/Bedroom/Organiser2.foocad

Organiser2

An organiser for pills and other items that I keep in my bedside drawer.

This is custom to my needs

FooCAD Source Code
import uk.co.nickthecoder.foocad.smartextrusion.v1.SmartExtrusion
import static uk.co.nickthecoder.foocad.smartextrusion.v1.SmartExtrusion.*
import static uk.co.nickthecoder.foocad.arrange.v1.Arrange.*

class Organiser2 : Model {
    
    @Custom
    var thickness = 1

    @Custom
    var baseThickness = 1

    fun roundedRect( x : double, y : double ) = Square( x, y ).roundAllCorners( 2 )

    fun make( shape : Shape2d, height : double ) = extrudeCup( shape, height, thickness )

    override fun build() : Shape3d {
    
        val rects = arrangeY( - thickness,
            make( roundedRect( 80, 20 ), 50 ),
            make( roundedRect( 74, 15 ), 45 ),
            make( roundedRect( 66, 15 ), 40 ),
            make( roundedRect( 60, 15 ), 35 )
        )
        val circles = arrangeY( - thickness,
            make( Circle( 31/2 ), 20 ),
            make( Square( 28, 43 ).roundAllCorners( 14 ), 20 )
        ).mirrorX()

        return arrangeX( -thickness, circles, rects )
    }
}