$fn=64; // --- Parameters --- label_length = 40; // Length of the clip (Z-axis when printing) label_height = 14; // Height of the flat face (perfect for 12mm tape) panel_thickness = 3.0; // Thickness of the shelf or bin edge to clip onto wall_thickness = 1.6; // Thickness of the plastic walls clip_depth = 12; // Depth of the rear mounting clip grip_bump = 0.8; // Size of the gripping bump on the rear clip module label_clip() { wt = wall_thickness; pt = panel_thickness; lh = label_height; cd = clip_depth; gb = grip_bump; // Extrude the 2D profile along the Z axis // This orientation is ideal for 3D printing without supports linear_extrude(height = label_length) { polygon(points=[ [0, 0], // Front bottom outer [0, lh + wt], // Front top outer [wt*2 + pt, lh + wt], // Back top outer [wt*2 + pt, lh - cd], // Back bottom outer [wt*1.5 + pt, lh - cd], // Back bottom flat [wt + pt - gb, lh - cd + 2], // Lead-in chamfer to grip bump [wt + pt, lh - cd + 4], // Taper up from bump to main wall [wt + pt, lh], // Back inner top [wt, lh], // Front inner top [wt, 0] // Front inner bottom ]); } } // Render the part, centered on the X and Y axes for better viewing translate([-(wall_thickness*2 + panel_thickness)/2, -(label_height + wall_thickness)/2, 0]) label_clip();