$fn = 64; /* * Reusable Bin Label Clip * Designed to be printed on its side (as oriented) without supports. * This maximizes layer strength so the clip acts as a strong spring. */ // --- Parameters --- clip_width = 60.0; // Width of the label area (extrusion length) label_height = 25.0; // Height of the flat label face bin_thickness = 3.0; // Thickness of the bin edge it attaches to wall_thickness = 2.0; // Thickness of the plastic walls clip_depth = 20.0; // How deep the rear clip mechanism goes into the bin module label_clip() { // Derived values to create a spring-fit profile with a lead-in flare slot_top = bin_thickness + 0.5; slot_bot = bin_thickness - 0.2; lip_size = 0.6; flare = 1.2; bot_y = label_height - clip_depth; c = 1.0; // Chamfer size for outer edges // 2D Profile coordinates points = [ [c, 0], // Bottom left chamfer [wall_thickness, 0], // Bottom inner (front face) [wall_thickness, label_height - wall_thickness], // Top inner left [wall_thickness + slot_top, label_height - wall_thickness], // Top inner right [wall_thickness + slot_bot, bot_y + 4], // Start of grip lip [wall_thickness + slot_bot - lip_size, bot_y + 1.5], // Peak of grip lip [wall_thickness + slot_bot + flare, bot_y], // Flared entry inner [wall_thickness + slot_bot + flare + wall_thickness - c, bot_y], // Flared outer bottom [wall_thickness + slot_bot + flare + wall_thickness, bot_y + c], // Flared outer right [wall_thickness + slot_top + wall_thickness, label_height - c], // Top right outer [wall_thickness + slot_top + wall_thickness - c, label_height], // Top right top [c, label_height], // Top left top [0, label_height - c], // Top left outer [0, c] // Bottom left outer ]; // Extrude the profile (lays flat on the XY plane for optimal printing) linear_extrude(height = clip_width, center = true) { polygon(points); } } // Generate the model label_clip();