Exit Full View
Up

/GardenFurniture/MiniShedDemo.foocad

MiniShedDemo
FooCAD Source Code
import static uk.co.nickthecoder.foocad.along.v1.Along.*

import static uk.co.nickthecoder.foocad.layout.Layout2d.*
import static uk.co.nickthecoder.foocad.layout.Layout3d.*

include MiniShed.foocad
include Container.foocad

/*
    How I could use the MiniShed and containers.
    Use it for spades, forks, shovels etc. Pruning cutters and seceteurs on the door?

    Consider making two wheels for each container, so that they can be wheeled if lifted
    at one end.
    Ideally the back gate would open the other way, so that wood could poke through
    when cutting, and I could get out without moving the container.

    Maybe the tops are made from edged plywood, covered in roofing felt.
    Can't push wood across it though, and any punctures would be annoying.
        Maybe edged plywood, with double thick edges, sealed, painted, then epoxy coating.

    Maybe the shorter one is TWO - one for the table saw, the other for the mitre saw.

    Plane/cut a LARGE chamfer on the lid, so that wood fed onto it will never jam against the edge.
*/
class MiniShedDemo : Model {

    override fun build() : Shape3d {

        val workbench = Container().apply {
            length = 1300
            width = 450
            ringCount = 5
        }.build()
            .rotateZ(90)
            .toOriginX()
            .translateY(-150)
            .bottomTo(0)

        val mitreTable = Container().apply {
            length = 900
            width = 700
            ringCount = 4
        }.build()
            .rotateZ(90)
            .toOriginX()
            .translateY( -1300 )
            .bottomTo(0)

        val shed = MiniShed().apply {
            width = 1100
            depth = 600
        }.build().toOriginX().translateX(710)

        val base = Cube( 1900, 2800, 1 ).color( "Red" ).darker()
            .translateY( -2200 )

        return base +
            shed +
            workbench +
            mitreTable
    }
}