$fn=64; // Parametric dimensions for standard 1-inch pegboard peg_spacing = 25.4; // Standard 1" hole spacing peg_size = 5.2; // Square peg width (fits 1/4" / 6.35mm holes) board_thickness = 6.5; // Pegboard thickness with slight clearance base_width = 12.0; // Total width of the clip base_thickness = 4.0; // Thickness of the main plate hook_overhang = 6.0; // Upward extension of the top hook hook_thickness = 3.5; // Thickness of the hook catch mount_protrusion = 10.0; // How far the front adapter block sticks out eps = 0.01; // Small overlap to ensure manifold geometry // Model is oriented on its side (Z is width) for optimal support-free 3D printing // This orientation maximizes the layer adhesion strength of the hooks difference() { union() { // Main Base Plate translate([-10, 0, 0]) cube([peg_spacing + 20, base_thickness, base_width]); // Bottom Stabilizer Peg translate([-peg_size/2, base_thickness - eps, 0]) cube([peg_size, board_thickness + eps, base_width]); // Top Mounting Hook translate([peg_spacing - peg_size/2, base_thickness - eps, 0]) { // Hook Stem cube([peg_size, board_thickness + hook_thickness + eps, base_width]); // Hook Catch (extends upward to lock behind the board) translate([0, board_thickness + eps, 0]) cube([peg_size + hook_overhang, hook_thickness, base_width]); } // Front Adapter Mounting Block translate([peg_spacing/2 - 10, -mount_protrusion, 0]) cube([20, mount_protrusion + eps, base_width]); } // Center mounting hole for attaching accessories (M4 bolt clearance) translate([peg_spacing/2, -mount_protrusion/2, -eps]) cylinder(h=base_width + 2*eps, d=4.2); }