FooCAD Source Codeimport static uk.co.nickthecoder.foocad.chamferedextrude.v1.ChamferedExtrude.*
class PlantLabelHolder : Model {
@Custom( about="Size of the plant label" )
var labelSize = Vector3( 60, 18, 1.5 )
var size = Vector3( 100, 30, 4.5 )
var slack = Vector2( 1.0, 0.3 )
var chamfer = 1.0
override fun build() : Shape3d {
val outline = PolygonBuilder().apply {
radius(size.y/3)
moveTo(0,0)
lineTo(0,size.y)
lineTo(size.x,size.y)
radius(1)
lineTo(size.x + size.y*1.5,size.y/2)
radius(5)
lineTo(size.x,0)
}.build().centerY()
val labelOutline = PolygonBuilder().apply {
moveTo(0,0)
lineTo(0,labelSize.y)
lineTo(labelSize.x,labelSize.y)
radius(1)
lineTo(labelSize.x + labelSize.y*1.5,labelSize.y/2)
radius(5)
lineTo(labelSize.x,0)
}.build().centerY()
.offset(slack.x)
val slot = labelOutline.extrude(labelSize.z+slack.y) +
labelOutline.chamferedExtrude( size.z *0.8, slack.x )
return outline.chamferedExtrude(size.z, chamfer) - slot.bottomTo( size.z*0.24)
}
}