class CircleClip : Model { @Custom( about="Diameter, width, thickness" ) var size = Vector3( 25, 3, 2 ) override fun build() : Shape3d { val circle = Circle( size.x / 2 ) val ring = circle.offset( size.y ) - circle val splitRing = ring - Square( size.x, 1 ).centerY() return splitRing.extrude( size.z ) } }