FooCAD Source Codeinclude General.foocad
/*
The corner pieces can either be screwed into all pieces, or just the center ring,
which would allow the box to be dismantled without unscrewing anything.
Note that the corners do not touch the ground, to prevent the end grain rotting.
Add a plastic liner, otherwise the wood may rot quickly.
*/
class Composter : General() {
var length = 600
var width = 600
var ringCount = 5
fun height() = (ww + gap) * ringCount - gap
fun halfLumber() = Lumber( "halfLumber", ww/2, wt, "Orange" )
init {
// Using Wickes gravel boards.
// https://www.wickes.co.uk/Wickes-Treated-Timber-Gravel-Board---19mm-x-150mm-x-2-4m-Pack-of-5/p/107142
ww = 150
wt = 19
}
override fun build() : Shape3d {
val main = rings( lumber, length, width, gap, ringCount, false )
val lid = lid( length + 80, width + 80, height() )
val corner1 = halfLumber().cut( main.size.z - ww/2 )
.rotateZ(90)
.leftTo(main.right).backTo( main.back )
val corner2 = halfLumber().cut( main.size.z - ww/2 )
.darker()
.rightTo(corner1.right)
.frontTo(corner1.back)
val corner = (corner1+corner2).translateZ(ww/2)
return main + lid + corner.mirrorX().also().mirrorY().also()
}
}