/* Extruded U section. */ class USection : Model { @Custom var internal = Vector2( 6, 6 ) // If non-zero, then an extra piece is addded on one side // I am going to use it for attaching it with screws @Custom var tab = 6 @Custom var thickness = 1.2 @Custom var length = 200 // For a right angled piece. @Custom var lengthZ = 50 override fun build() : Shape3d { val profile = Square( internal.x + thickness*2, internal.y + thickness).centerX() - Square( internal.x, internal.y ).translateY( thickness ).centerX() + Square( tab, thickness ).translateX( internal.x /2 + thickness ) return if (length == 0) { profile.extrude( length ).rotateX(-90).mirrorZ() } else { profile.extrude( lengthZ ) + profile.extrude( length ).rotateX(-90).mirrorZ() } } }