More tolerance tests, Single Action truss rod
This commit is contained in:
parent
f81f0b49ee
commit
1d5ec83e47
29
CFTubes.scad
29
CFTubes.scad
|
@ -12,6 +12,11 @@ include <EllipticalNeck.scad>
|
|||
// Guitar_Scale_Length_mm = 610; // millimetres, slightly over 24inch (609.6mm) Jaguar scale, should be fine for guitar and u-bass
|
||||
// assert(fret_scale_length(0) == 610); // Make sure the function correctly uses our changed global
|
||||
|
||||
shumbucker_h = 20.3;
|
||||
shumbucker_l = 23.1;
|
||||
shumbucker_w1 = 66.4;
|
||||
shumbucker_w2 = 82.9; // 1.6mm in, a 2.0mm hole on each side
|
||||
|
||||
// Philippians 4:8
|
||||
// Gideon (ShinKaiYaku07) 真実な, 尊ぶべき, 正しい, 清い, 愛すべき, 評判の良い, 徳とされる, 称賛に値する
|
||||
// ShinKaiYaku65 最後に、兄弟たち。すべての真実なこと、すべての誉れあること、すべての正しいこと、すべてのきよいこと、すべての愛すべきこと、すべての評判の良いこと、そのほか徳と言われること、称賛に値することがあるならば、そのようなことに心を留めなさい。
|
||||
|
@ -1081,17 +1086,19 @@ COLOURSCHEME_PETGHF_BLUE = [BAMBU_PETGHF_LAKE_BLUE, BAMBU_PETGHF_LAKE_BLUE, "",
|
|||
|
||||
colour_scheme = COLOURSCHEME_ABSGF_CLOWNFISH;
|
||||
// colour_scheme = COLOURSCHEME_ABS_BLUE;
|
||||
color(colour_scheme[0]) rotate([90,0,0]) Steel6String(from_fret=15, to_fret=23, include_colours=[0]);
|
||||
color(colour_scheme[1]) rotate([90,0,0]) Steel6String(from_fret=15, to_fret=23, include_colours=[1]);
|
||||
color(colour_scheme[2]) rotate([90,0,0]) Steel6String(from_fret=15, to_fret=23, include_colours=[2]);
|
||||
color(colour_scheme[3]) rotate([90,0,0]) Steel6String(from_fret=15, to_fret=23, include_colours=[3]);
|
||||
// color(colour_scheme[0]) rotate([90,0,0]) Steel6String(from_fret=0, to_fret=23, include_colours=[0]);
|
||||
// color(colour_scheme[1]) rotate([90,0,0]) Steel6String(from_fret=0, to_fret=23, include_colours=[1]);
|
||||
// color(colour_scheme[2]) rotate([90,0,0]) Steel6String(from_fret=0, to_fret=23, include_colours=[2]);
|
||||
// color(colour_scheme[3]) rotate([90,0,0]) Steel6String(from_fret=0, to_fret=23, include_colours=[3]);
|
||||
// rotate([90,0,0]) Steel6String(include_colours=[0,1,2,3], reference=true);
|
||||
|
||||
// TrussRod();
|
||||
// difference() {
|
||||
// l = 70;
|
||||
// w = 20;
|
||||
// extra = 5;
|
||||
// translate([-w/2, -extra, 1.6-w/2]) cube([w, l+extra, w]);
|
||||
// TrussRodSingleAction();
|
||||
// translate([20, 0]) TrussRod();
|
||||
difference() {
|
||||
l = 70;
|
||||
w = 20;
|
||||
extra = 5;
|
||||
translate([-w/2, -extra, 1.6-w/2]) cube([w, l+extra, w]);
|
||||
// TrussRod(taper_points=[-extra, l], extra=true, tolerance = 0.24);
|
||||
// }
|
||||
TrussRodSingleAction(taper_points=[-extra, l], extra=true, tolerance = 0.24);
|
||||
}
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
CF_Square_Width_tolerance = 0.4; // Add to CF_Square_Width when making holes
|
||||
CF_Tube_OD_tolerance = 0.5;
|
||||
SS_Dowel_OD_tight = 5.25; // 5.2 very tight on most layer settings, 5.25 slightly loose (ABS 4 perimeters, 24% gyroid infill)
|
||||
SS_Dowel_OD_loose = 5.3; // 5.2 very tight on most layer settings, 5.25 slightly loose
|
||||
|
|
|
@ -131,7 +131,7 @@ module CFSquareCutout2(v, block_y0, block_y1, tolerance = CF_Square_Width_tolera
|
|||
}
|
||||
}
|
||||
|
||||
module TrussRod(length = 630, tolerance = 0, taper_l = 1.5, taper_extra = 1.0, taper_points=[], extra=false) {
|
||||
module TrussRodGeneric(length, tolerance, stages, taper_l = 1.5, taper_extra = 1.0, taper_points=[], extra=false) {
|
||||
$fn = 360;
|
||||
epsilon = 0.00000001;
|
||||
rot = [-90, 180, 0];
|
||||
|
@ -142,29 +142,7 @@ module TrussRod(length = 630, tolerance = 0, taper_l = 1.5, taper_extra = 1.0, t
|
|||
translate([-w/2, h - d/2 - epsilon]) square([w, epsilon]);
|
||||
}
|
||||
}
|
||||
// base profile
|
||||
base_d = 6.0 + tolerance;
|
||||
base_w = base_d;
|
||||
base_h = 9.0 + tolerance;
|
||||
|
||||
// nut?
|
||||
stage2_d = 7.05 + tolerance;
|
||||
stage2_w = base_w;
|
||||
stage2_h = base_h + (stage2_d - base_d);
|
||||
stage2_l = 55 + tolerance;
|
||||
|
||||
// Turning end
|
||||
stage3_d = 9.2 + tolerance;
|
||||
stage3_w = stage3_d;
|
||||
stage3_h = base_h + (stage3_d - base_d);
|
||||
stage3_l = 35 + tolerance;
|
||||
|
||||
// Rod outline
|
||||
stages = [ // Must be ascending order for later
|
||||
[stage3_l, stage3_d, stage3_h, stage3_w],
|
||||
[stage2_l, stage2_d, stage2_h, base_w],
|
||||
[length, base_d, base_h, base_w],
|
||||
];
|
||||
for (s = stages) rotate(rot) linear_extrude(s[0]) squircle(s[1], s[2], s[3]);
|
||||
for (i = [0:len(stages)-2]) {
|
||||
s0 = stages[i];
|
||||
|
@ -194,3 +172,49 @@ module TrussRod(length = 630, tolerance = 0, taper_l = 1.5, taper_extra = 1.0, t
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
module TrussRod(length = 630, tolerance = 0, taper_l = 1.5, taper_extra = 1.0, taper_points=[], extra=false) {
|
||||
// base profile
|
||||
base_d = 6.0 + tolerance;
|
||||
base_w = base_d;
|
||||
base_h = 9.0 + tolerance;
|
||||
|
||||
// nut?
|
||||
stage2_d = 7.05 + tolerance;
|
||||
stage2_w = base_w;
|
||||
stage2_h = base_h + (stage2_d - base_d);
|
||||
stage2_l = 55 + tolerance;
|
||||
|
||||
// Turning end
|
||||
stage3_d = 9.2 + tolerance;
|
||||
stage3_w = stage3_d;
|
||||
stage3_h = base_h + (stage3_d - base_d);
|
||||
stage3_l = 35 + tolerance;
|
||||
|
||||
// Rod outline
|
||||
stages = [ // Must be ascending order for later
|
||||
[stage3_l, stage3_d, stage3_h, stage3_w],
|
||||
[stage2_l, stage2_d, stage2_h, stage2_w],
|
||||
[length, base_d, base_h, base_w],
|
||||
];
|
||||
TrussRodGeneric(length=length, tolerance=tolerance, stages=stages, taper_l=taper_l, taper_extra=taper_extra, taper_points=taper_points, extra=extra);
|
||||
}
|
||||
module TrussRodSingleAction(length = 460, tolerance = 0, taper_l = 1.5, taper_extra = 1.0, taper_points=[], extra=false) {
|
||||
// base profile
|
||||
base_d = 4.6 + tolerance;
|
||||
base_w = 6.1 + tolerance;
|
||||
base_h = 8.1 + tolerance;
|
||||
|
||||
// nut?
|
||||
stage2_d = 7.0 + 0.2 + tolerance;
|
||||
stage2_w = base_w;
|
||||
stage2_h = base_h + (stage2_d - base_d);
|
||||
stage2_l = 44 + tolerance;
|
||||
|
||||
// Rod outline
|
||||
stages = [ // Must be ascending order for later
|
||||
[stage2_l, stage2_d, stage2_h, stage2_w],
|
||||
[length, base_d, base_h, base_w],
|
||||
];
|
||||
TrussRodGeneric(length=length, tolerance=tolerance, stages=stages, taper_l=taper_l, taper_extra=taper_extra, taper_points=taper_points, extra=extra);
|
||||
}
|
||||
|
|
|
@ -63,7 +63,7 @@ module screw_hole_lobe(ID, OD, lobes=3, fn=90) {
|
|||
}
|
||||
}
|
||||
|
||||
module cylinder_beak(d, h, beak=0.5) {
|
||||
module cylinder_beak(d, h, beak=0.75) {
|
||||
// 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
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
include <common.scad>
|
||||
base_diameter = 5.0;
|
||||
hole_step = 0.05;
|
||||
num_holes = 12;
|
||||
thickness = 15;
|
||||
engrave_depth = 0.6;
|
||||
hole_spacing = base_diameter*1.6;
|
||||
|
||||
render() difference() {
|
||||
cube([hole_spacing * num_holes + base_diameter, base_diameter*2 + 10, thickness]);
|
||||
// translate([1, 9, thickness-engrave_depth]) linear_extrude(engrave_depth)
|
||||
// text(str("d=", base_diameter, "mm"), size=5);
|
||||
$fn=72;
|
||||
for (i=[0:num_holes-1]) {
|
||||
d = base_diameter + i*hole_step;
|
||||
translate([base_diameter + hole_spacing*i, base_diameter]) {
|
||||
cylinder_beak(d, thickness);
|
||||
translate([0, 5, thickness-engrave_depth]) linear_extrude(engrave_depth)
|
||||
rotate(90) text(str(d), size=3, valign="center");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue