bad triglide
This commit is contained in:
parent
eb507fde40
commit
efc8335e67
124
outdoor/headlampv3.scad
Normal file
124
outdoor/headlampv3.scad
Normal file
@ -0,0 +1,124 @@
|
||||
// Headlamp bracket to mount lamp to nylon strap v3
|
||||
// mostly tested with 21mm light and 20mm strap
|
||||
// requires tweaking of plateScale when changing strap width
|
||||
// TODO:
|
||||
// autoscale plate geometry with strapwidth, light cant
|
||||
//
|
||||
// PRINT: +1 base, +1 perimeter, 50% infill, random seam, slot overhangs barely work
|
||||
|
||||
// downward light angle
|
||||
lCant = 25;
|
||||
// clipin angle
|
||||
clipRot = -30;
|
||||
// clip length:
|
||||
clipLength = 29;
|
||||
// light diameter, testing at 0.1 over measured
|
||||
lDiam = 21.1;
|
||||
// clip tightness, use 0.8 (tight) to 0.99 (no retention)
|
||||
clippiness = 0.88;
|
||||
|
||||
// plate thick
|
||||
plateThick = 9;
|
||||
// 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.45;
|
||||
|
||||
// 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 = 175;
|
||||
hcDepth = 5.5;
|
||||
|
||||
minkRad = 2;
|
||||
$fn = 20;
|
||||
// mechanical interface facets should be high when printing
|
||||
interfaceFacets = 35;
|
||||
|
||||
// lop off several things, each gets comment
|
||||
difference(){
|
||||
|
||||
minkowski(){
|
||||
|
||||
// begin plate:
|
||||
rotate([0, -90, 0]){
|
||||
linear_extrude(plateThick - minkRad - plateThick / 2, scale = 1.15){
|
||||
// this polygon adjusts to cant angle and clip length
|
||||
polygon([ [0, 0],
|
||||
[clipLength * cos(lCant), -1 * clipLength * sin(lCant)],
|
||||
[plateScale * clipLength - 3, strapWide + 4],
|
||||
[plateScale * clipLength - 3, strapWide + 8],
|
||||
[0, strapWide + 7] ]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// this does the fillets
|
||||
sphere(r = minkRad);
|
||||
}
|
||||
|
||||
// cut off below xy plane
|
||||
translate([0, 0, -22]){
|
||||
cube([99, 99, 44], center = true);
|
||||
}
|
||||
// cut off back of plate channel for strap
|
||||
translate([-44 - minkRad, strapWide / 2 + 8, 0]){
|
||||
cube([88, strapWide, 222], center = true);
|
||||
}
|
||||
// add top slot
|
||||
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 / 4]){
|
||||
rotate([0, -45, 0]){
|
||||
cube([16, strapWide, strapThick], center = true);
|
||||
}
|
||||
}
|
||||
// head curve
|
||||
translate([-1 * hcRad - plateThick + hcDepth, 0, (strapWide / 2 + (plateScale + 1) / 1.95 * clipLength * cos(lCant)) / 2 ]){
|
||||
rotate([90, 0, 0]){
|
||||
cylinder(r = hcRad, 99, center = true, $fn = 300);
|
||||
}
|
||||
}
|
||||
|
||||
} // plane diff
|
||||
|
||||
// add little lower bump
|
||||
|
||||
difference(){
|
||||
minkowski(){
|
||||
translate([ (1.2 * lDiam / 2 - 2.5), -8, 0]){
|
||||
// rotate for cant
|
||||
rotate([lCant, 0, 0]){
|
||||
// rotate clip entry
|
||||
rotate([0, 0, clipRot]){
|
||||
color("Green"){
|
||||
difference(){
|
||||
// outer clip diameter account mink
|
||||
cylinder(d = 1.2 * lDiam, 2 * clipLength, center = true);
|
||||
|
||||
// minus light diam account mink
|
||||
cylinder(d = lDiam + minkRad, 99, center = true, $fn = interfaceFacets);
|
||||
// minus clip entry account mink, the cube y dimension coefficient is clip clippiness, try 0.8-0.95
|
||||
translate([44, 0, 0]){
|
||||
cube([88, clippiness * (lDiam + minkRad), 99], center = true);
|
||||
}
|
||||
} // end diff
|
||||
}
|
||||
} // rot clip
|
||||
} // rot cant
|
||||
} // trans in xy
|
||||
|
||||
|
||||
sphere(r = minkRad);
|
||||
}
|
||||
// cut off below xy plane
|
||||
translate([0, 0, -22]){
|
||||
cube([99, 99, 44], center = true);
|
||||
}
|
||||
}
|
75
outdoor/triglide-d.scad
Normal file
75
outdoor/triglide-d.scad
Normal file
@ -0,0 +1,75 @@
|
||||
// triglide. Target 20mm
|
||||
//
|
||||
//
|
||||
|
||||
// thickness
|
||||
rThick = 5;
|
||||
// strap width, rec 0.5mm under
|
||||
strapWide = 19.5;
|
||||
// strap thickness try 2mm
|
||||
strapThick = 2;
|
||||
// hole diam
|
||||
holeD = 10;
|
||||
// head curve
|
||||
hcDeep = 3;
|
||||
hcRad = 200;
|
||||
|
||||
// minkowski/fillet rad
|
||||
minkRad = 1.2;
|
||||
|
||||
$fn = 25;
|
||||
|
||||
difference(){
|
||||
|
||||
minkowski(){
|
||||
difference(){
|
||||
//main
|
||||
union(){
|
||||
cube([strapWide + 2 * rThick, 2 * strapThick + 3 * rThick + 10, (rThick - minkRad) * 2], center = true);
|
||||
translate([0, strapThick + 1.5 * rThick + 8, 0]){
|
||||
cylinder(d = 1.7 * holeD, rThick, center = true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// slot 1
|
||||
translate([0, rThick + strapThick / 2, 0]){
|
||||
cube([strapWide + 2 * minkRad, strapThick + 2 * minkRad, 99], center = true);
|
||||
}
|
||||
|
||||
// slot 2
|
||||
translate([0, -1 * (rThick + strapThick), 0]){
|
||||
cube([strapWide + 2 * minkRad, strapThick * 2 + 2 * minkRad, 99], center = true);
|
||||
}
|
||||
|
||||
// hole
|
||||
translate([0, strapThick + 1.5 * rThick + 8, 0]){
|
||||
cylinder(d = holeD + 2 * minkRad, rThick * 2, center = true);
|
||||
}
|
||||
|
||||
// channel
|
||||
translate([0, -44 - rThick - strapThick, rThick - strapThick]){
|
||||
cube([strapWide + 2 * minkRad, 88, strapThick + minkRad], center = true);
|
||||
}
|
||||
|
||||
// curvature
|
||||
translate([0, 0, hcRad + rThick - hcDeep]){
|
||||
rotate([0, 90, 0]){
|
||||
cylinder(r = hcRad, 99, center = true, $fn = 300);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// mink
|
||||
sphere(r = minkRad);
|
||||
}
|
||||
|
||||
|
||||
// bottom
|
||||
translate([0, 0, -222]){
|
||||
cube([222, 222, 444], center = true);
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user