|
|
|
@ -83,6 +83,8 @@ $fn = 360; |
|
|
|
|
|
|
|
|
|
show_dovetail = false; |
|
|
|
|
rotate_final = true; |
|
|
|
|
include_base = false; |
|
|
|
|
include_slide_plate = true; |
|
|
|
|
|
|
|
|
|
clamp_angular_width = calculate_vixen_angular_offset(clamp_height, channel_angle); |
|
|
|
|
|
|
|
|
@ -103,12 +105,17 @@ if (rotate_final == false) { |
|
|
|
|
color("red") build_slide_plate(); |
|
|
|
|
color("green") show_dovetail_bar(); |
|
|
|
|
} else { |
|
|
|
|
rotate([90, 0, 0]) |
|
|
|
|
color("LightSkyBlue") build_base_plate(); |
|
|
|
|
|
|
|
|
|
if (include_base == true) { |
|
|
|
|
rotate([90, 0, 0]) |
|
|
|
|
color("LightSkyBlue") build_base_plate(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
translate([0, -30, base_width]) |
|
|
|
|
rotate([90, 90, 0]) |
|
|
|
|
color("red") build_slide_plate(); |
|
|
|
|
if (include_slide_plate == true) { |
|
|
|
|
translate([0, -30, base_width+clamp_travel_overlap]) |
|
|
|
|
rotate([90, 90, 0]) |
|
|
|
|
color("red") build_slide_plate(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
module show_dovetail_bar() { |
|
|
|
@ -124,8 +131,9 @@ module build_slide_plate() { |
|
|
|
|
difference() { |
|
|
|
|
union() { |
|
|
|
|
difference() { |
|
|
|
|
// main plate |
|
|
|
|
translate([slide_plate_offset_x, 0, base_thickness+kerf_margin]) |
|
|
|
|
cube([slide_plate_width, base_length, slide_plate_height]); |
|
|
|
|
cube([slide_plate_width+clamp_travel_overlap, base_length, slide_plate_height]); |
|
|
|
|
|
|
|
|
|
translate([clamp_thickness, -1, base_thickness]) |
|
|
|
|
make_base_vixen_dovetail_bar(base_length+2); |
|
|
|
@ -135,7 +143,7 @@ module build_slide_plate() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
slide_plate_guide_offset_x = slide_brace_offset_x + clamp_thickness + clamp_travel_overlap; |
|
|
|
|
slide_plate_guide_length = base_width - slide_plate_guide_offset_x; |
|
|
|
|
slide_plate_guide_length = base_width - slide_plate_guide_offset_x + clamp_travel_overlap; |
|
|
|
|
|
|
|
|
|
slide_plate_guide_radius = get_radius_from_apothem(slide_slot_depth-kerf_margin); |
|
|
|
|
|
|
|
|
@ -149,12 +157,12 @@ module build_slide_plate() { |
|
|
|
|
// bottom slide bolt hole |
|
|
|
|
translate([slide_plate_offset_x-1, slide_slot_offset_y1, base_thickness]) |
|
|
|
|
rotate([90, 0, 90]) |
|
|
|
|
cylinder(slide_plate_width+2, d=slide_bolt_shaft_diameter); |
|
|
|
|
cylinder(slide_plate_width+2+clamp_travel_overlap, d=slide_bolt_shaft_diameter); |
|
|
|
|
|
|
|
|
|
// bottom slide bolt hole |
|
|
|
|
translate([slide_plate_offset_x-1, slide_slot_offset_y2, base_thickness]) |
|
|
|
|
rotate([90, 0, 90]) |
|
|
|
|
cylinder(slide_plate_width+2, d=slide_bolt_shaft_diameter); |
|
|
|
|
cylinder(slide_plate_width+2+clamp_travel_overlap, d=slide_bolt_shaft_diameter); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|