$fn = 64; // --- Parameters --- holder_length = 75; // Overall length (Standard business card is ~89mm) base_width = 25; // Width at the bottom for stability top_width = 10; // Width at the top holder_height = 15; // Total height of the holder slot_thickness = 1.2; // Thickness of the vertical slot slot_depth = 8; // Insertion depth for the card corner_radius = 1.5; // Radius for rounded outer edges // 2D Profile of the holder base module profile() { hull() { translate([-base_width/2 + corner_radius, corner_radius]) circle(r=corner_radius); translate([base_width/2 - corner_radius, corner_radius]) circle(r=corner_radius); translate([-top_width/2 + corner_radius, holder_height - corner_radius]) circle(r=corner_radius); translate([top_width/2 - corner_radius, holder_height - corner_radius]) circle(r=corner_radius); } } // 3D Geometry difference() { // Main Stand Body rotate([90, 0, 90]) linear_extrude(height = holder_length, center = true) profile(); // Vertical Card Slot translate([0, 0, holder_height - slot_depth/2 + 1]) cube([holder_length + 2, slot_thickness, slot_depth + 2], center = true); // Chamfered Slot Entrance for easy insertion translate([0, 0, holder_height]) rotate([45, 0, 0]) cube([holder_length + 2, slot_thickness * 1.5, slot_thickness * 1.5], center = true); }