Adjusting locking tuner cutouts
This commit is contained in:
parent
01590f58c2
commit
e98868aecc
|
@ -1,5 +1,5 @@
|
||||||
include <common.scad>
|
include <common.scad>
|
||||||
module LockingGuitarTuner(holes=false) {
|
module LockingGuitarTuner(holes=0) {
|
||||||
tolerance = 0.25;
|
tolerance = 0.25;
|
||||||
d_post_cutout = 10.0 + tolerance;
|
d_post_cutout = 10.0 + tolerance;
|
||||||
h_post_cutout = 14.0;
|
h_post_cutout = 14.0;
|
||||||
|
@ -20,29 +20,27 @@ module LockingGuitarTuner(holes=false) {
|
||||||
d_wormshaft_collar_max = 7.6;
|
d_wormshaft_collar_max = 7.6;
|
||||||
$fn=72;
|
$fn=72;
|
||||||
|
|
||||||
module tuner_footprint_extrude(h) {
|
module tuner_footprint_extrude(h=t_base, tab_h=0, tolerance=0) {
|
||||||
// linear_extrude on tuner_footprint() segfaults for no reason
|
h2 = (tab_h == 0) ? h : tab_h;
|
||||||
// src/openscad/src/geometry/linear_extrude.cc:409: std::unique_ptr<Geometry> extrudePolygon(const LinearExtrudeNode&, const Polygon2d&): Assertion `poly.isSanitized()' failed.
|
|
||||||
hull() {
|
hull() {
|
||||||
translate([-w_tag/2, -l_tag+d_tag/2, 0]) cube([w_tag, l_tag-w_tag, h]);
|
translate([0, -l_tag+d_tag/2 - tolerance, h/2]) cube([w_tag + tolerance, 0.00001, h], center=true);
|
||||||
cylinder(h=h, d=d_tag);
|
cylinder(h=h, d=d_tag+tolerance);
|
||||||
|
}
|
||||||
|
rotate([0, 0, 45]) translate([0,0,h-h2]) hull() {
|
||||||
|
cylinder(h=h2, d=d_post_cutout + tolerance);
|
||||||
|
translate([0, 10.5]) cylinder(h=h2, d=screw_diameter+2 + tolerance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
module Holes() {
|
module Holes() {
|
||||||
cylinder(d=d_post_cutout, h=h_post_cutout);
|
cylinder_beak(d=d_post_cutout, h=h_post_cutout);
|
||||||
rotate([0, 0, 45]) translate([0, 10.5]) linear_extrude(screw_depth) screw_hole_lobe(screw_diameter, screw_diameter+1, 5);
|
rotate([0, 0, 45]) translate([0, 10.5]) linear_extrude(screw_depth) screw_hole_lobe(screw_diameter, screw_diameter+1, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
module TunerPreview() {
|
module TunerPreview() {
|
||||||
clear_color = [1,0,0,0.6];
|
clear_color = [1,0,0,0.6];
|
||||||
color("grey") translate([0,0,-t_base]) tuner_footprint_extrude(t_base);
|
color("grey") translate([0,0,-t_base]) tuner_footprint_extrude(t_base, 2);
|
||||||
// screw
|
// screw
|
||||||
color(clear_color) rotate([0, 0, 45]) translate([0, 10.5]) cylinder(h=screw_depth, d=screw_diameter);
|
color(clear_color) rotate([0, 0, 45]) translate([0, 10.5]) cylinder(h=screw_depth, d=screw_diameter);
|
||||||
// screw tab
|
|
||||||
color("grey") rotate([0, 0, 45]) translate([0,0,-2]) hull() {
|
|
||||||
cylinder(h=2, d=d_post_cutout);
|
|
||||||
translate([0, 10.5]) cylinder(h=2, d=screw_diameter+2);
|
|
||||||
}
|
|
||||||
// peg
|
// peg
|
||||||
cylinder(h=h_post_cutout, d=d_post_cutout);
|
cylinder(h=h_post_cutout, d=d_post_cutout);
|
||||||
cylinder(h=h_post, d=d_post);
|
cylinder(h=h_post, d=d_post);
|
||||||
|
@ -63,9 +61,21 @@ module LockingGuitarTuner(holes=false) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (holes)
|
if (holes > 0) {
|
||||||
|
t = t_base + holes;
|
||||||
Holes();
|
Holes();
|
||||||
else
|
translate([0, 0, -t]) tuner_footprint_extrude(h=t, tolerance=0.5);
|
||||||
|
translate([w_tag/2, -l_tag+8-tolerance/2, -t]) cube([24, 8+tolerance, t]);
|
||||||
|
} else {
|
||||||
TunerPreview();
|
TunerPreview();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// translate([-12, 8]) LockingGuitarTuner();
|
||||||
|
|
||||||
|
render() difference() {
|
||||||
|
t = 24;
|
||||||
|
cube([23, 48, t]);
|
||||||
|
translate([12, 10, t-14]) LockingGuitarTuner(holes=10);
|
||||||
|
translate([12, 34, t-14]) LockingGuitarTuner(holes=10);
|
||||||
}
|
}
|
||||||
// LockingGuitarTuner(holes=true);
|
|
||||||
|
|
|
@ -63,6 +63,13 @@ module screw_hole_lobe(ID, OD, lobes=3, fn=90) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module cylinder_beak(d, h, beak=0.5) {
|
||||||
|
// A cylinder with a beak to take seams. This helps improve tolerances as seams often expand a little bit and ruin the fit.
|
||||||
|
cylinder(d=d, h=h);
|
||||||
|
// beak notch for seams
|
||||||
|
translate([0, d/2-beak*0.25, h/2]) rotate([0,0,45]) cube([beak, beak, h], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
// We can't use Droid Sans Japanese because the rendering library is really dumb and will pick the wrong Droid Sans. CJK fonts must be singular files.
|
// We can't use Droid Sans Japanese because the rendering library is really dumb and will pick the wrong Droid Sans. CJK fonts must be singular files.
|
||||||
JP_Serif_Font = "New Tegomin";
|
JP_Serif_Font = "New Tegomin";
|
||||||
JP_Sans_Font = "Yuji Boku";
|
JP_Sans_Font = "Yuji Boku";
|
||||||
|
|
Loading…
Reference in New Issue