FooCAD Source Codeimport static uk.co.nickthecoder.foocad.layout.v1.Layout2d.*
import static uk.co.nickthecoder.foocad.layout.v1.Layout3d.*
import uk.co.nickthecoder.foocad.smartextrusion.v1.*
import static uk.co.nickthecoder.foocad.smartextrusion.v1.SmartExtrusion.*
import uk.co.nickthecoder.foocad.extras.v1.*
import static uk.co.nickthecoder.foocad.extras.v1.Extras.*
import uk.co.nickthecoder.foocad.threaded.v2.*
class PalettWrapper : Model {
var broomDiameter = 27
var wrapDiameter = 100
var thickness = 10
var thread = Thread( 8 )
var flangeSize = Vector2( 60, 2 )
@Piece
meth main() : Shape3d {
val ring = RingD( broomDiameter + thickness, broomDiameter )
.smartExtrude( thread.diameter* 3 )
.cavities( true )
val threadedHole = thread.threadedHole( thickness*4 )
.rotateX(90)
.topTo( ring.size.z - thread.diameter/2 )
.centerXTo( 0 )
.repeatAroundZ(3)
val flange = RingD( flangeSize.x, broomDiameter )
.extrude( flangeSize.y )
return flange + ring - threadedHole
}
@Piece
meth bolt() = thread.bolt( thickness * 1.5 )
override fun build() : Shape3d {
val broom = Cylinder( 600, broomDiameter/2 )
.center()
.color("Yellow")
val wrap = Cylinder( 430, wrapDiameter/2 )
.center()
.previewOnly()
val main = main()
.bottomTo( wrap.top + 2 )
.mirrorZ().also()
.color("Green")
return main + broom + wrap
}
}