Exit Full View
Up

/Garden/TroughSlider2.foocad

TroughSlider2
FooCAD Source Code
import uk.co.nickthecoder.foocad.screws.v3.*
import uk.co.nickthecoder.foocad.smartextrusion.v1.*
import static uk.co.nickthecoder.foocad.smartextrusion.v1.SmartExtrusion.*

class TroughSlider2 : Model {

    var size = Vector3( 20, 40, 3 )

    var overlap = 15

    var round = 2

    var countersink = Countersink()

    override fun build() : Shape3d {
        val base = Square( size.x + overlap, size.y ).center()
            .roundAllCorners( round )
            .smartExtrude( size.z )
        val half = Square( size.x, size.y ).centerY()
            .roundAllCorners( round )
            .smartExtrude( size.z * 2 )

        val holes = countersink.centerXTo( half.middle.x )
            .mirrorZ()
            .translateY( size.y * 0.3 )
            .mirrorY().also()

        return base + half - holes
    }
}