Initial infrastructure documentation - comprehensive homelab reference
This commit is contained in:
53
Printing/Key caps/Body5_scaled_FIXED.scad
Normal file
53
Printing/Key caps/Body5_scaled_FIXED.scad
Normal file
@@ -0,0 +1,53 @@
|
||||
// =====================================================
|
||||
// Keycap Body Scaling Script - FIXED VERSION
|
||||
// =====================================================
|
||||
// This script scales down the keycap body while preserving
|
||||
// the Cherry MX stem at its original 4mm x 4mm dimensions
|
||||
//
|
||||
// FIX: Centers the model first so cylinder operations work correctly
|
||||
// =====================================================
|
||||
|
||||
// ----- ADJUSTABLE PARAMETERS -----
|
||||
|
||||
body_scale_xy = 0.98; // 98% of original (2% smaller)
|
||||
body_scale_z = 1.00; // Keep height at 100%
|
||||
|
||||
stem_diameter = 5.5; // Diameter of circular stem preservation region
|
||||
stem_height = 8.0; // Height of stem region to preserve
|
||||
$fn = 128; // Circle smoothness
|
||||
|
||||
stl_filename = "Body5.stl";
|
||||
|
||||
// =====================================================
|
||||
// MAIN MODEL - CENTERED APPROACH
|
||||
// =====================================================
|
||||
|
||||
// First, we need to center the imported model
|
||||
// The original STL is positioned around x≈209, y≈220
|
||||
// We'll measure the bounding box and center it
|
||||
|
||||
module centered_import() {
|
||||
// Import and center the model at origin
|
||||
translate([-209, -223.5, -4.9]) // Approximate center based on STL coordinates
|
||||
import(stl_filename);
|
||||
}
|
||||
|
||||
union() {
|
||||
// Part 1: Scaled body WITHOUT the circular stem region
|
||||
difference() {
|
||||
scale([body_scale_xy, body_scale_xy, body_scale_z]) {
|
||||
centered_import();
|
||||
}
|
||||
|
||||
// Cut out a cylinder where the stem is (now centered at origin)
|
||||
cylinder(h = stem_height, d = stem_diameter + 0.5, center = true);
|
||||
}
|
||||
|
||||
// Part 2: Original unscaled stem region (circular)
|
||||
intersection() {
|
||||
centered_import();
|
||||
|
||||
// Cylinder defines the circular stem region to keep
|
||||
cylinder(h = stem_height, d = stem_diameter, center = true);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user