FooCAD Source Codeimport static uk.co.nickthecoder.foocad.layout.v1.Layout2d.*
import static uk.co.nickthecoder.foocad.layout.v1.Layout3d.*
import static uk.co.nickthecoder.foocad.screws.v1.Screws.*
import static uk.co.nickthecoder.foocad.chamferedextrude.v1.ChamferedExtrude.*
class UnderShelf : Model {
var length = 160
var backThickness = 4
val holeCount = 3
override fun build() : Shape3d {
val doc = SVGParser().parseFile( "underShelf.svg" )
val profile = doc.shapes["profile"]
val extrusion = profile.chamferedExtrude( length, 0, 1 )
val back = doc.shapes["back"].extrude( backThickness )
val solid = (extrusion + back).centerX().backTo(0)
val hole = countersink( 4, 8, 20, 40 ).rotateX(90)
.translateX(-10).translateY(-20-4)
val holes = hole.spreadZ( holeCount, length * 0.8 )
.translateZ(length * 0.1 )
val single = solid - holes
return single.translateY(-1).mirrorY().also()
}
}