$fn=64; // Base Panel Dimensions panel_width = 200; panel_length = 200; panel_thickness = 15; // T-Track Dimensions (Sized for standard M6 hardware) track_bottom_width = 12; track_top_width = 6.5; track_total_depth = 9; track_bottom_depth = 4.5; // Layout Parameters num_pairs = 5; pair_spacing = panel_width / num_pairs; intra_pair_spacing = 18; // Distance between the two tracks in a single pair module t_slot(len) { // Wide bottom part of the T-slot translate([-track_bottom_width/2, -len/2 - 1, panel_thickness - track_total_depth]) cube([track_bottom_width, len + 2, track_bottom_depth]); // Narrow top part of the T-slot (extends slightly above panel for clean cut) translate([-track_top_width/2, -len/2 - 1, panel_thickness - track_total_depth]) cube([track_top_width, len + 2, track_total_depth + 1]); } difference() { // Main Base Panel translate([-panel_width/2, -panel_length/2, 0]) cube([panel_width, panel_length, panel_thickness]); // Subtract 5 pairs of dual T-tracks for (i = [0 : num_pairs - 1]) { translate([(i - (num_pairs - 1) / 2) * pair_spacing, 0, 0]) { // Left track of the pair translate([-intra_pair_spacing/2, 0, 0]) t_slot(panel_length); // Right track of the pair translate([intra_pair_spacing/2, 0, 0]) t_slot(panel_length); } } }