Label adjustments

This commit is contained in:
Luke Hubmayer-Werner 2025-02-10 17:36:51 +10:30
parent f79b398518
commit 39718ebb24
1 changed files with 55 additions and 34 deletions

View File

@ -1090,8 +1090,7 @@ COLOURSCHEME_PETGHF_BLUE = [BAMBU_PETGHF_LAKE_BLUE, BAMBU_PETGHF_LAKE_BLUE, "",
module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) { module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
$include_colours = include_colours; $include_colours = include_colours;
$guitar_scale_length_mm = PBass_Scale_mm; $guitar_scale_length_mm = PBass_Scale_mm;
$id_line_0 = "ABS"; $id_lines = ["Zweisaiten", "250210"];
$id_line_1 = "2";
$fsl_mm = fret_scale_length(0); $fsl_mm = fret_scale_length(0);
$string_diameters_thous = [80, 105]; // Artist BST45130 $string_diameters_thous = [80, 105]; // Artist BST45130
@ -1106,56 +1105,57 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
$string_spacing_bridge = 20; $string_spacing_bridge = 20;
$string_margin = 6; $string_margin = 6;
$num_frets = 30; $num_frets = 29;
$fret_widths = default_fret_widths(3.6, 2.4); $fret_widths = default_fret_widths(3.6, 2.4);
$fret_angle = 60; $fret_angle = 60;
$scallop_depth = 2.5; $scallop_depth = 2.5;
$extra_thickness_above_center = 6; $extra_thickness_above_center = 6;
segment_cuts = [-100, after_fret($num_frets), after_fret(29), after_fret(13), after_fret(5), behind_fret(0)+35]; y0 = -100;
segment_cuts = [y0, 20, after_fret(29), after_fret(13), after_fret(5), behind_fret(0)+35];
echo(segment_cuts); echo(segment_cuts);
echo([ for (i=[1:len(segment_cuts)-1]) segment_cuts[i]-segment_cuts[i-1]]); echo([ for (i=[1:len(segment_cuts)-1]) segment_cuts[i]-segment_cuts[i-1]]);
module MyBodySegment() { module MyBodySegment() {
body_height = 24; body_height = 24;
behind_bridge = 100;
epsilon = 0.000001; epsilon = 0.000001;
radius = 4; radius = 4;
w = neck_width() - radius*2;
curve_dist = 40; curve_dist = 40;
step = 0.08; step = 0.08;
steps = curve_dist/step; steps = curve_dist/step;
slope_start = 425; slope_start = 425;
translate([-w/2, -behind_bridge, -body_height]) round_cube([w, slope_start, body_height], radius); translate([-neck_width()/2, y0, -body_height]) round_cube([neck_width(), slope_start, body_height+radius], radius);
w = 30 - radius*2;
hull() { hull() {
// translate([-w/2, 475-behind_bridge-epsilon, -epsilon]) cube([30, epsilon, epsilon]); // translate([-w/2, 475+y0-epsilon, -epsilon]) cube([30, epsilon, epsilon]);
// translate([-w/2, -behind_bridge, -body_height]) cube([30, 460, body_height]); // translate([-w/2, +y0, -body_height]) cube([30, 460, body_height]);
$fn = 64; $fn = 64;
for (i = [0,1]) mirror([i, 0, 0]) { for (i = [0,1]) mirror([i, 0, 0]) {
translate([w/2, radius-behind_bridge, radius-body_height]) sphere(radius); translate([w/2, radius+y0, radius-body_height]) sphere(radius);
translate([w/2, radius-behind_bridge, 0]) sphere(radius); translate([w/2, radius+y0, 0]) sphere(radius);
translate([w/2, slope_start-behind_bridge, radius-body_height]) sphere(radius); translate([w/2, slope_start+y0, radius-body_height]) sphere(radius);
} }
// translate([+w/2, 495-behind_bridge, 0]) sphere(radius); // translate([+w/2, 495+y0, 0]) sphere(radius);
// translate([-w/2, 495-behind_bridge, 0]) sphere(radius); // translate([-w/2, 495+y0, 0]) sphere(radius);
difference() { difference() {
translate([0, 490-behind_bridge, 0]) sphere(15, $fn=360); translate([0, 490+y0, 0]) sphere(d=neck_width(), $fn=360);
translate([0, 490-behind_bridge, 50]) cube([100, 100, 100], center=true); translate([0, 490+y0, 50]) cube([100, 100, 100], center=true);
} }
} }
} }
module HeadPiece() { module HeadPiece() {
x0 = behind_fret(0); x0 = behind_fret(0);
end_radius = 25; end_radius = 24;
x2 = x0 + 30; x2 = x0 + 25;
x1 = x2 - end_radius; x1 = x2 - end_radius;
z0 = $scallop_depth + $extra_thickness_above_center; z0 = $scallop_depth + $extra_thickness_above_center;
z1 = $scallop_depth + get_max_fret_height() + $extra_thickness_above_center; z1 = $scallop_depth + get_max_fret_height() + $extra_thickness_above_center;
module StringHoles() { module StringHoles() {
$fn=360; $fn=360;
for (i = [0:$num_strings-1]) translate([string_x(i, x0),0,0]) { for (i = [0:$num_strings-1]) translate([string_x(i, x0),0,0]) {
ballend_v = [0,x1+10,-3]; ballend_v = [0,x0+15,2];
hull() { hull() {
translate([0,fret_scale_length(0),z1+$string_diameters_mm[i]/2]) sphere(d=min(2.6, $string_diameters_mm[i]*1.2 + 1)); translate([0,fret_scale_length(0),z1+$string_diameters_mm[i]/2]) sphere(d=min(2.6, $string_diameters_mm[i]*1.2 + 1));
translate(ballend_v) sphere(d=2.6); translate(ballend_v) sphere(d=2.6);
@ -1164,7 +1164,7 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
// String ball ends are roughly 3mm by 4mm cylinder(d=4, h=3) // String ball ends are roughly 3mm by 4mm cylinder(d=4, h=3)
// Bass string ball ends are roughly 3mm by 4mm cylinder(d=6, h=4.5) // Bass string ball ends are roughly 3mm by 4mm cylinder(d=6, h=4.5)
translate(ballend_v) rotate([0, 90, 0]) cylinder(d=4.5, h=3.5, center=true); translate(ballend_v) rotate([0, 90, 0]) cylinder(d=4.5, h=3.5, center=true);
translate([0,x2,-30]) rotate([0, 90, 0]) cylinder(d=6.5, h=5.0, center=true); translate([0,x2,-10]) rotate([0, 90, 0]) cylinder(d=6.5, h=5.0, center=true);
} }
} }
} }
@ -1190,16 +1190,21 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
} }
module TrussRods(taper_points=segment_cuts, extra=0) { module TrussRods(taper_points=segment_cuts, extra=0) {
translate([0, 630+270, -4]) rotate([0, 0, 180]) TrussRod(taper_points=taper_points, extra=extra); y1 = 270;
translate([0, -100, -16]) TrussRodSingleAction(taper_points=taper_points, extra=extra); y2 = y1 + 630;
translate([0, y2, -4]) rotate([0, 0, 180]) TrussRod(taper_points=[ for (pt=taper_points) y2-pt ], extra=extra);
translate([0, y0, -16]) TrussRodSingleAction(taper_points=[ for (pt=taper_points) pt-y0 ], extra=extra);
} }
dowel_positions = [
[-10, segment_cuts[4], 0],
[ 10, segment_cuts[4], 0],
[-10, segment_cuts[3], 0],
[ 10, segment_cuts[3], 0],
[ -9, segment_cuts[2], -17],
[ 9, segment_cuts[2], -17],
];
module Dowels() { module Dowels() {
translate([-10, segment_cuts[3], 0]) Dowel(); for (v=dowel_positions) translate(v) Dowel();
translate([ 10, segment_cuts[3], 0]) Dowel();
translate([-10, segment_cuts[2], 0]) Dowel();
translate([ 10, segment_cuts[2], 0]) Dowel();
translate([ -9, segment_cuts[1], 2.5]) Dowel();
translate([ 9, segment_cuts[1], 2.5]) Dowel();
} }
module MyBody() { module MyBody() {
@ -1236,6 +1241,17 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
for (v = reinforcing_tube_positions) CFTubeCutout2(v, x0, x1); for (v = reinforcing_tube_positions) CFTubeCutout2(v, x0, x1);
} }
module BottomLabel(depth=0.2) {
y0 = segment_cuts[segment];
size = 2.7;
v_spacing = 0.3;
z0 = [-4, -4, 4.8, -10.8, -10.8][segment];
for (i=[0:len($id_lines)-1]) {
z = z0 - (size+v_spacing)*i;
translate([0, y0+depth, z]) rotate([90,0,0]) linear_extrude(depth) text($id_lines[i], halign="center", size=size, font="Droid Sans");
}
}
if (preview) { if (preview) {
// TrussRods(); // TrussRods();
// CFs(); // CFs();
@ -1244,20 +1260,25 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
if (segment < 0) { if (segment < 0) {
MyBody(); MyBody();
} else { } else {
intersection() { difference() {
MyBody(); intersection() {
y0 = segment_cuts[segment]; MyBody();
y1 = segment_cuts[segment+1]; y0 = segment_cuts[segment];
translate([-500, y0, -500]) cube([1000, y1-y0, 1000]); y1 = segment_cuts[segment+1];
translate([-500, y0, -500]) cube([1000, y1-y0, 1000]);
}
if (!list_has($include_colours, 4)) BottomLabel();
} }
if (list_has($include_colours, 4)) BottomLabel();
} }
} }
} }
colour_scheme = COLOURSCHEME_ABS_BLUE; colour_scheme = COLOURSCHEME_ABS_BLUE;
// TwoBangerMk2(preview=true); // TwoBangerMk2(preview=true);
segment = -1; segment = 4;
color(colour_scheme[0]) TwoBangerMk2([0], segment); color(colour_scheme[0]) TwoBangerMk2([0], segment);
color(colour_scheme[1]) TwoBangerMk2([1], segment); color(colour_scheme[1]) TwoBangerMk2([1], segment);
color(colour_scheme[2]) TwoBangerMk2([2], segment); color(colour_scheme[2]) TwoBangerMk2([2], segment);
color(colour_scheme[3]) TwoBangerMk2([3], segment); color(colour_scheme[3]) TwoBangerMk2([3], segment);
color("red") TwoBangerMk2([4], segment);