Initial infrastructure documentation - comprehensive homelab reference

This commit is contained in:
Funky (OpenClaw)
2026-02-23 03:42:22 +00:00
commit 0682c79580
169 changed files with 63913 additions and 0 deletions

View File

@@ -0,0 +1,98 @@
// =====================================================
// Keycap Body Scaling Script
// =====================================================
// This script scales down the keycap body while preserving
// the Cherry MX stem at its original 4mm x 4mm dimensions
// within a CIRCULAR region (for off-brand switches)
//
// Usage:
// 1. Adjust body_scale_xy below (start with 0.98 = 98%)
// 2. Adjust stem_x and stem_y to position circle on the cross
// 3. Press F5 to preview, F6 to render
// 4. Export STL: File > Export > Export as STL
// =====================================================
// ----- ADJUSTABLE PARAMETERS -----
// Body scaling factor for X and Y axes
body_scale_xy = 0.98; // 98% of original (2% smaller)
body_scale_z = 1.00; // Keep height at 100%
// ----- STEM DIMENSIONS -----
// Position the circular preservation region on the stem cross
stem_x = 209; // X position of stem center (adjust to align with cross)
stem_y = 223.5; // Y position of stem center (adjust to align with cross)
stem_z = 3.85; // Z position of stem center (adjust if needed)
stem_diameter = 5.5; // Diameter of circular region around the stem
stem_height = 8.0; // Height of stem region to preserve
$fn = 128; // Circle smoothness (128 = very smooth, 64 = balanced)
stl_filename = "Body5.stl";
// =====================================================
// MAIN MODEL
// =====================================================
union() {
// Part 1: Scaled body WITHOUT the circular stem region
difference() {
// The scaled keycap body (scaled around origin, then positioned)
translate([stem_x * (1 - body_scale_xy), stem_y * (1 - body_scale_xy), 0]) {
scale([body_scale_xy, body_scale_xy, body_scale_z]) {
import(stl_filename);
}
}
// Cut out a cylinder where the stem is
translate([stem_x, stem_y, stem_z]) {
cylinder(
h = stem_height,
d = stem_diameter + 0.5,
center = true
);
}
}
// Part 2: Original stem at 100% scale in CIRCULAR region
intersection() {
// The original unscaled model
import(stl_filename);
// A cylinder that defines the CIRCULAR stem region to keep
translate([stem_x, stem_y, stem_z]) {
cylinder(
h = stem_height,
d = stem_diameter,
center = true
);
}
}
}
// =====================================================
// NOTES
// =====================================================
//
// ADJUSTING THE CIRCULAR REGION POSITION:
// If the circle is not centered on the cross stem:
// 1. Open in OpenSCAD and press F5 to preview
// 2. Rotate the view to see the stem from below
// 3. Adjust stem_x and stem_y values until circle is centered on cross
// 4. Typical adjustment: try values between 208-210 for X, 222-225 for Y
//
// ITERATIVE TESTING WORKFLOW:
// 1. Start with body_scale_xy = 0.98 (98%)
// 2. Export STL and test print
// 3. If keycap is still too tight, decrease to 0.97
// 4. If keycap is too loose, increase to 0.99
// 5. Fine-tune in 0.005 increments (e.g., 0.975, 0.985)
//
// STEM DIAMETER ADJUSTMENT:
// - Increase stem_diameter if you need more clearance around the cross
// - Decrease stem_diameter for tighter tolerance
// - Typical range: 4.5mm to 6.0mm
//
// =====================================================