// Debug - just show the blue layer with text cut out name = "Bennett"; oval_width = 96; oval_height = 30; blue_thickness = 1; border_width = 2; name_length = len(name); text_size = name_length <= 3 ? 18 : name_length <= 5 ? 13 : name_length <= 8 ? 11 : 11; total_width = oval_width + border_width*2; total_height = oval_height + border_width*2; module oval(width, height, depth) { scale([width/2, height/2, 1]) cylinder(h=depth, r=1, $fn=100); } module bold_text() { for (x = [-0.3, 0, 0.3]) { for (y = [-0.3, 0, 0.3]) { translate([x, y, 0]) linear_extrude(height=blue_thickness + 0.1) text(name, size=text_size, font="Fordscript", halign="center", valign="center"); } } } // Just the blue with text cut - no border cut color("RoyalBlue") difference() { oval(total_width, total_height, blue_thickness); translate([0, 0, -0.05]) bold_text(); }