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 } }