headlamp: better defaults for 20mm strap

This commit is contained in:
finn 2024-10-15 18:20:56 -07:00
parent 9c02c3a192
commit eb507fde40

View File

@ -1,8 +1,11 @@
// Headlamp bracket to mount lamp to nylon strap v1
// Headlamp bracket to mount lamp to nylon strap v2
// mostly tested with 21mm light and 20mm strap
// requires tweaking of plateScale when changing strap width
// v2 TODO:
// autoscale plate geometry with strapwidth, light cant
// headcurve is janky
//
// PRINT: +1 base, +1 perimeter, 50% infill, random seam
// downward light angle
lCant = 20;
@ -10,25 +13,25 @@ lCant = 20;
clipRot = -30;
// clip length:
clipLength = 29;
// light diameter, testing at 0.25 below measured for tightness?
lDiam = 20.75;
// light diameter, testing at 0.1 over measured
lDiam = 21.1;
// clip tightness, use 0.8 (tight) to 0.99 (no retention)
clippiness = 0.85;
clippiness = 0.875;
// plate thick
plateThick = 7;
plateThick = 8.5;
// plate scale - how many times cliplength, affected by strap and cant
// 2.7 seems right for 25mm strap, 1.9 for 20mm strap
plateScale = 1.5;
plateScale = 1.45;
// strap width
strapWide = 21;
// strap thickness try 3mm
strapThick = 2.1;
// strap width, rec 0.5mm under
strapWide = 19.5;
// strap thickness try 2mm
strapThick = 1.9;
// head curve, puts slight curve in head side
hcRad = 400;
hcDepth = 4.8;
hcRad = 250;
hcDepth = 5.5;
minkRad = 2;
$fn = 20;
@ -84,17 +87,17 @@ translate([0, 0, -22]){
cube([99, 99, 44], center = true);
}
// cut off back of plate channel for strap
translate([-43.5 - minkRad, strapWide / 2 + 8, 0]){
translate([-44 - minkRad, strapWide / 2 + 8, 0]){
cube([88, strapWide, 222], center = true);
}
// add top slot
translate([-2, strapWide / 2 + 8, (plateScale + 1) / 1.95 * clipLength * cos(lCant)]){
translate([-2, strapWide / 2 + 8, (plateScale + 1) / 1.825 * clipLength * cos(lCant)]){
rotate([0, 45, 0]){
cube([16, strapWide, strapThick], center = true);
}
}
// add bottom slot
translate([-2, strapWide / 2 + 8, strapWide / 2]){
translate([-2, strapWide / 2 + 8, strapWide / 4]){
rotate([0, -45, 0]){
cube([16, strapWide, strapThick], center = true);
}