class Washer : Model { @Custom var outerDiameter = 10.0 @Custom var innerDiameter = 6.0 @Custom var thickness = 1.0 @Slice( perimeters=100 ) override fun build() : Shape3d { val profile = Circle( outerDiameter/2 ) - Circle( innerDiameter / 2 ) return profile.extrude( thickness ) } }