My Gridfinity models
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Gusset refinements for printability

Gussets on every grid boundary now instead of every other, and the outer
gussets get trimmed with a quarter-cylinder cut to match the baseplate's
corner radius so they don't poke out past the rounded edges.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

+27 -8
+27 -8
pegboard-shelf.scad
··· 47 47 48 48 // Gusset geometry 49 49 gusset_depth = shelf_depth; 50 - num_gussets = max(2, floor(grid_x / 2) + 1); 50 + num_gussets = grid_x + 1; 51 51 52 52 bp_clearance = BASEPLATE_HEIGHT * sin(shelf_angle); 53 53 ··· 84 84 for (i = [0 : num_gussets - 1]) { 85 85 gx = gusset_thick/2 + 86 86 i * (shelf_width - gusset_thick) / max(1, num_gussets - 1); 87 - translate([gx, 0, 0]) 88 - gusset(); 87 + difference() { 88 + translate([gx, 0, 0]) 89 + gusset(); 90 + if (i == 0) 91 + baseplate_corner_cut(left=true); 92 + if (i == num_gussets - 1) 93 + baseplate_corner_cut(left=false); 94 + } 89 95 } 90 96 91 97 // Backplate wall ··· 135 141 // Triangle in the Y-Z plane bridging tilted shelf to vertical backplate 136 142 // rotate([0,90,0]) maps: polygon_x → -world_z, polygon_y → world_y 137 143 138 - // Front-bottom of tilted shelf (pulled back to not overshoot baseplate radius) 144 + // Front-bottom of tilted shelf 139 145 by = backplate_thick + bp_clearance 140 146 + shelf_depth * cos(shelf_angle) 141 - - BASEPLATE_HEIGHT * sin(shelf_angle) 142 - - BASEPLATE_OUTER_RADIUS; 147 + - BASEPLATE_HEIGHT * sin(shelf_angle); 143 148 bz = BASEPLATE_HEIGHT * (1 - cos(shelf_angle)) 144 - - shelf_depth * sin(shelf_angle) 145 - + BASEPLATE_OUTER_RADIUS * sin(shelf_angle); 149 + - shelf_depth * sin(shelf_angle); 146 150 147 151 // Shelf underside projected back to the backplate face 148 152 ay = backplate_thick; ··· 162 166 [-cz, cy] 163 167 ]); 164 168 } 169 + 170 + module baseplate_corner_cut(left) { 171 + R = BASEPLATE_OUTER_RADIUS; 172 + translate([0, backplate_thick, BASEPLATE_HEIGHT]) 173 + rotate([-shelf_angle, 0, 0]) 174 + translate([0, -backplate_thick, -BASEPLATE_HEIGHT]) 175 + translate([left ? 0 : shelf_width - R, 176 + backplate_thick + bp_clearance + shelf_depth - R, 177 + -1]) 178 + difference() { 179 + cube([R, R + 1, BASEPLATE_HEIGHT + 2]); 180 + translate([left ? R : 0, 0, -1]) 181 + cylinder(r=R, h=BASEPLATE_HEIGHT + 4); 182 + } 183 + }