Initial commit
This commit is contained in:
10
models/brake/beam_leg_ballscrew_to_bed.scad
Normal file
10
models/brake/beam_leg_ballscrew_to_bed.scad
Normal file
@@ -0,0 +1,10 @@
|
||||
include <../../config.scad>;
|
||||
use <../common/beam_hollow_square.scad>;
|
||||
|
||||
module beam_leg_ballscrew_to_bed() {
|
||||
color(COLOUR_BEAM_ALUMINIUM) beam_hollow_square(L_LEG_FIXING_BRAKE_BALLSCREW_TO_BED, D_BEAM_BRAKE, T_BEAM_BRAKE);
|
||||
// Shopping
|
||||
// Beam leg ballscrew to bed
|
||||
}
|
||||
|
||||
beam_leg_ballscrew_to_bed();
|
||||
16
models/brake/brake_arm.scad
Normal file
16
models/brake/brake_arm.scad
Normal file
@@ -0,0 +1,16 @@
|
||||
include <../../config.scad>;
|
||||
|
||||
|
||||
module brake_arm() {
|
||||
L_big = 2 * max(R_BRAKE_ARM);
|
||||
color(COLOUR_BEAM_ALUMINIUM) difference() {
|
||||
// body
|
||||
cube(R_BRAKE_ARM, center = true);
|
||||
// chamfer across end face for wheel overlap
|
||||
translate([R_BRAKE_ARM[0] / 2 - R_BRAKE_ARM[1] / 2 * tan(ANGLE_BRAKE_ROD_MAX), 0, 0]) rotate([0, 0, 90 - ANGLE_BRAKE_ROD_MAX]) translate([0, -L_big / 2, -L_big / 2]) cube(L_big, center = false);
|
||||
}
|
||||
// Shopping
|
||||
echo(str("Brake arm: Aluminium sheet ", R_BRAKE_ARM[1], "mm x ", R_BRAKE_ARM[0], "mm x ", R_BRAKE_ARM[2], "mm - x1"));
|
||||
}
|
||||
|
||||
brake_arm();
|
||||
76
models/brake/brake_assembly.scad
Normal file
76
models/brake/brake_assembly.scad
Normal file
@@ -0,0 +1,76 @@
|
||||
include <../../config.scad>;
|
||||
use <../common/metric_bolt.scad>;
|
||||
use <../common/metric_bolt_functions.scad>;
|
||||
use <../common/washer.scad>;
|
||||
use <../fixings/tube_clamp_square_base_plate_132.scad>;
|
||||
use <../fixings/tube_clamp_square_base_plate_132_functions.scad>;
|
||||
use <./brake_assembly_functions.scad>;
|
||||
use <./fixing_ballscrew_to_bed.scad>;
|
||||
use <./power_wheel_assembly.scad>;
|
||||
use <./fixing_brake_ballscrew_to_brake_arms.scad>;
|
||||
use <./brake_arm.scad>;
|
||||
use <./fixing_brake_arm_to_brake_pad.scad>;
|
||||
use <./brake_pad.scad>;
|
||||
use <./fixing_brake_arm_to_rear_axle_leg.scad>;
|
||||
use <./brake_spring_load_assembly.scad>;
|
||||
|
||||
|
||||
|
||||
module brake_assembly(angle_brake_rod) {
|
||||
echo("Brake assembly:");
|
||||
// Y_POS_LEAD_FIXING_BALLSCREW_TO_BRAKE_ARMS
|
||||
y_pos_lead_fixing_ballscrew_to_brake_arms = get_y_pos_lead_fixing_ballscrew_to_brake_arms(angle_brake_rod, Y_POS_AXLE_REAR, X_POS_AXLE_LEG_REAR, X_OFFSET_FIXING_BRAKE_ARM_TO_LEAD_PLATE);
|
||||
y_pos_ballscrew_end_front = -R_BED[1] / 2 + L_BRAKE_BALLSCREW_AXLE;
|
||||
union() {
|
||||
// ballscrew axle
|
||||
color(COLOUR_ROD_THREADED) translate([0, y_pos_ballscrew_end_front, -Z_OFFSET_BALLSCREW_AXLE_TO_BED_BASE]) rotate([90, 0, 0]) cylinder(L_BRAKE_BALLSCREW_AXLE, D_BRAKE_BALLSCREW_AXLE / 2, D_BRAKE_BALLSCREW_AXLE / 2, center = false);
|
||||
// fixing ballscrew to bed front
|
||||
translate([0, y_pos_ballscrew_end_front - Y_OFFSET_BALLSCREW_LEG_FRONT_FIXING_FROM_END, 0]) fixing_ballscrew_to_bed();
|
||||
// fixing ballscrew to bed rear
|
||||
translate([0, -R_BED[1] / 2 + Y_OFFSET_BALLSCREW_LEG_REAR_FIXING_FROM_END, 0]) fixing_ballscrew_to_bed();
|
||||
// ballscrew power wheel
|
||||
translate([0, -R_BED[1] / 2 + Y_OFFSET_BALLSCREW_LEG_REAR_FIXING_FROM_END - D_BEAM_BRAKE / 2 - T_WASHER_BRAKE_BALLSCREW_POWER_WHEEL - T_BRAKE_BALLSCREW_POWER_WHEEL / 2, -Z_OFFSET_BALLSCREW_AXLE_TO_BED_BASE]) power_wheel_assembly();
|
||||
// ballscrew power wheel washer
|
||||
translate([0, -R_BED[1] / 2 + Y_OFFSET_BALLSCREW_LEG_REAR_FIXING_FROM_END - D_BEAM_BRAKE / 2 - T_WASHER_BRAKE_BALLSCREW_POWER_WHEEL / 2, -Z_OFFSET_BALLSCREW_AXLE_TO_BED_BASE]) rotate([90, 0, 0]) washer(T_WASHER_BRAKE_BALLSCREW_POWER_WHEEL, D_WASHER_BRAKE_BALLSCREW_POWER_WHEEL, D_BRAKE_BALLSCREW_AXLE);
|
||||
// fixing ballscrew to brake rod
|
||||
translate([0, y_pos_lead_fixing_ballscrew_to_brake_arms, -Z_OFFSET_BALLSCREW_AXLE_TO_BED_BASE]) {
|
||||
fixing_brake_ballscrew_to_brake_arms();
|
||||
|
||||
for (index_side_x = [0:1:1]) {
|
||||
mirror([index_side_x, 0, 0]) {
|
||||
translate([X_OFFSET_FIXING_BRAKE_ARM_TO_LEAD_PLATE, 0, 0]) rotate([0, 0, -(90 - angle_brake_rod)]) {
|
||||
// brake arm
|
||||
translate([R_BRAKE_ARM[0] / 2, 0, 0]) brake_arm();
|
||||
// fixing brake arm to brake pad
|
||||
translate([R_BRAKE_ARM[0] - X_OFFSET_FIXING_BRAKE_ARM_TO_BRAKE_PAD_FROM_END, 0, R_BRAKE_ARM[2] / 2]) rotate([0, 0, 90 - ANGLE_BRAKE_ROD_MAX]) fixing_brake_arm_to_brake_pad();
|
||||
// brake pad
|
||||
translate([R_BRAKE_ARM[0] - X_OFFSET_FIXING_BRAKE_ARM_TO_BRAKE_PAD_FROM_END, 0, R_BRAKE_ARM[2] / 2 + T_FIXING_BRAKE_ARM_TO_BRAKE_PAD + (W_FIXING_BRAKE_ARM_TO_BRAKE_PAD - T_FIXING_BRAKE_ARM_TO_BRAKE_PAD) / 2]) rotate([0, 0, 90 - ANGLE_BRAKE_ROD_MAX]) translate([T_FIXING_BRAKE_ARM_TO_BRAKE_PAD, 0, 0]) brake_pad();
|
||||
}
|
||||
// fixing brake arm to rear axle leg
|
||||
translate([X_POS_AXLE_LEG_REAR, -y_pos_lead_fixing_ballscrew_to_brake_arms + Y_POS_AXLE_REAR, 0]) fixing_brake_arm_to_rear_axle_leg();
|
||||
}
|
||||
}
|
||||
}
|
||||
// Spring-loading assembly
|
||||
translate([0, y_pos_ballscrew_end_front - Y_OFFSET_BALLSCREW_LEG_FRONT_FIXING_FROM_END + D_BEAM_BRAKE / 2, -Z_OFFSET_BALLSCREW_AXLE_TO_BED_BASE]) brake_spring_load_assembly();
|
||||
}
|
||||
|
||||
// Shopping
|
||||
echo(str("Ballscrew axle: Threaded Steel rod M", D_BRAKE_BALLSCREW_AXLE, " x ", L_BRAKE_BALLSCREW_AXLE, " - x1"));
|
||||
// Fixing ballscrew to bed front
|
||||
// Fixing ballscrew to bed rear
|
||||
// Ballscrew power wheel
|
||||
// Ballscrew power wheel washer
|
||||
// Fixing ballscrew to brake arms
|
||||
// Brake arms
|
||||
// Fixings brake arm to brake pad
|
||||
// Brake pads
|
||||
// fixing brake arm to rear axle leg
|
||||
// Spring-load assembly
|
||||
}
|
||||
|
||||
|
||||
angle_brake_rod = ANGLE_BRAKE_ROD_MAX;
|
||||
|
||||
brake_assembly(angle_brake_rod);
|
||||
|
||||
3
models/brake/brake_assembly_functions.scad
Normal file
3
models/brake/brake_assembly_functions.scad
Normal file
@@ -0,0 +1,3 @@
|
||||
// include <../../config.scad>; // circular reference!
|
||||
|
||||
function get_y_pos_lead_fixing_ballscrew_to_brake_arms(angle_brake_rod, y_pos_axle_rear, x_pos_axle_leg_rear, x_offset_fixing_brake_arm_to_lead_plate) = y_pos_axle_rear + (x_pos_axle_leg_rear - x_offset_fixing_brake_arm_to_lead_plate) / tan(angle_brake_rod); // (X_POS_AXLE_LEG_REAR - X_OFFSET_FIXING_BRAKE_ARM_TO_LEAD_PLATE)
|
||||
13
models/brake/brake_pad.scad
Normal file
13
models/brake/brake_pad.scad
Normal file
@@ -0,0 +1,13 @@
|
||||
include <../../config.scad>;
|
||||
|
||||
|
||||
module brake_pad() {
|
||||
union() {
|
||||
color("black") cube(R_BRAKE_PAD, center = true);
|
||||
color("gray") translate([-R_BRAKE_PAD[0] / 2 - L_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD / 2, 0, 0]) rotate([0, 90, 0]) cylinder(L_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD, SIZE_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD / 2, SIZE_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD / 2, center = true);
|
||||
}
|
||||
// Shopping
|
||||
echo(str("Brake pad: Bike V-brake pad - x1"));
|
||||
}
|
||||
|
||||
brake_pad();
|
||||
43
models/brake/brake_spring_load_assembly.scad
Normal file
43
models/brake/brake_spring_load_assembly.scad
Normal file
@@ -0,0 +1,43 @@
|
||||
include <../../config.scad>;
|
||||
use <../common/metric_bolt_functions.scad>;
|
||||
use <../common/metric_nut.scad>;
|
||||
use <../common/compression_spring.scad>;
|
||||
use <../common/washer.scad>;
|
||||
|
||||
|
||||
module brake_spring_load_assembly() {
|
||||
echo("Brake spring-load assembly:");
|
||||
/* design variables
|
||||
echo(str("DELTA_L_SPRING_BALLSCREW_MAX: ", DELTA_L_SPRING_BALLSCREW_MAX, "mm")); = 19
|
||||
*/
|
||||
L_spring_free = 110;
|
||||
d_spring_outer = 21.6;
|
||||
d_spring_wire = 1.6;
|
||||
pitch = L_spring_free / 8;
|
||||
|
||||
h_nut = get_metric_bolt_head_height(D_BRAKE_BALLSCREW_AXLE);
|
||||
d_nut = get_metric_bolt_head_diameter(D_BRAKE_BALLSCREW_AXLE);
|
||||
|
||||
union() {
|
||||
// washer rear
|
||||
rotate([-90, 0, 0]) washer(T_WASHER_BRAKE_BALLSCREW_POWER_WHEEL, D_WASHER_BRAKE_BALLSCREW_POWER_WHEEL, D_BRAKE_BALLSCREW_AXLE, false);
|
||||
// spring
|
||||
translate([0, T_WASHER_BRAKE_BALLSCREW_POWER_WHEEL + L_spring_free / 2, 0]) rotate([-90, 0, 0]) compression_spring(L_spring_free, d_spring_outer, d_spring_outer - d_spring_wire * 2, pitch);
|
||||
// washer front
|
||||
translate([0, T_WASHER_BRAKE_BALLSCREW_POWER_WHEEL + L_spring_free, 0]) rotate([-90, 0, 0]) washer(T_WASHER_BRAKE_BALLSCREW_POWER_WHEEL, D_WASHER_BRAKE_BALLSCREW_POWER_WHEEL, D_BRAKE_BALLSCREW_AXLE, false);
|
||||
// nut(s)
|
||||
color("gray") for (index_nut = [0 : 1 : 1]) {
|
||||
translate([0, T_WASHER_BRAKE_BALLSCREW_POWER_WHEEL * 2 + L_spring_free + index_nut * h_nut, 0]) rotate([-90, 0, 0]) rotate([0, 0, index_nut * 30]) metric_nut(D_BRAKE_BALLSCREW_AXLE, centre = false); // cylinder(h_nut, d_nut / 2, d_nut / 2, center = false);
|
||||
}
|
||||
}
|
||||
// Shopping
|
||||
// spring
|
||||
// https://uk.rs-online.com/web/p/compression-springs/0121242
|
||||
// washers
|
||||
// nuts
|
||||
}
|
||||
|
||||
// $fn = 20;
|
||||
brake_spring_load_assembly();
|
||||
|
||||
|
||||
42
models/brake/fixing_ballscrew_to_bed.scad
Normal file
42
models/brake/fixing_ballscrew_to_bed.scad
Normal file
@@ -0,0 +1,42 @@
|
||||
include <../../config.scad>;
|
||||
use <../common/metric_bolt.scad>;
|
||||
use <../common/metric_bolt_functions.scad>;
|
||||
use <../common/washer.scad>;
|
||||
use <../fixings/tube_clamp_square_base_plate_132.scad>;
|
||||
use <../fixings/tube_clamp_square_base_plate_132_functions.scad>;
|
||||
use <./beam_leg_ballscrew_to_bed.scad>;
|
||||
|
||||
|
||||
module fixing_ballscrew_to_bed() {
|
||||
echo("Fixing ballscrew to bed: ");
|
||||
y_offset_hole_bed_fastener = get_offset_hole_x_square_base_plate_132(D_BEAM_BRAKE);
|
||||
d_hole_fastener = get_diameter_hole_square_base_plate_132();
|
||||
h_head_fastener = get_metric_bolt_head_height(d_hole_fastener);
|
||||
L_fastener = R_BED[2] + 2 * (T_WASHER_BASE_PLATE + h_head_fastener) + R_BASE_PLATE_FIXING_LEG_BRAKE_BALLSCREW_TO_BED[2] + L_BOLT_EXTENSION;
|
||||
// d_washer_outer = get_metric_bolt_washer_diameter_safe_working_clearance(d_hole_fastener);
|
||||
union() {
|
||||
// fixing tube clamp
|
||||
rotate([0, 180, 90]) tube_clamp_square_base_plate_132(D_BEAM_BRAKE);
|
||||
|
||||
for (index_side_y = [0:1:1]) {
|
||||
mirror([0, index_side_y, 0]) translate([0, y_offset_hole_bed_fastener, 0]) {
|
||||
// fastener bolt
|
||||
translate([0, 0, -L_fastener / 2 + R_BED[2] + T_WASHER_BASE_PLATE + h_head_fastener]) metric_bolt(d_hole_fastener, L_fastener, true, L_BOLT_EXTENSION);
|
||||
// fastener washers
|
||||
// bed side
|
||||
translate([0, 0, R_BED[2] + T_WASHER_BASE_PLATE / 2]) washer(T_WASHER_BASE_PLATE, D_WASHER_BASE_PLATE, d_hole_fastener);
|
||||
// axle side
|
||||
translate([0, 0, -R_BASE_PLATE_FIXING_LEG_BRAKE_BALLSCREW_TO_BED[2] - T_WASHER_BASE_PLATE / 2]) washer(T_WASHER_BASE_PLATE, D_WASHER_BASE_PLATE, d_hole_fastener);
|
||||
}
|
||||
}
|
||||
// leg
|
||||
translate([0, 0, -R_BASE_PLATE_FIXING_LEG_BRAKE_BALLSCREW_TO_BED[2] - L_LEG_FIXING_BRAKE_BALLSCREW_TO_BED / 2]) beam_leg_ballscrew_to_bed();
|
||||
}
|
||||
// Shopping
|
||||
// Fixing leg to bed
|
||||
// Fixing fasteners
|
||||
// Fixing fastener washers
|
||||
// Leg
|
||||
}
|
||||
|
||||
fixing_ballscrew_to_bed();
|
||||
50
models/brake/fixing_brake_arm_to_brake_pad.scad
Normal file
50
models/brake/fixing_brake_arm_to_brake_pad.scad
Normal file
@@ -0,0 +1,50 @@
|
||||
include <../../config.scad>;
|
||||
use <../common/angle_beam.scad>;
|
||||
use <../common/metric_bolt.scad>;
|
||||
use <../common/metric_bolt_functions.scad>;
|
||||
use <../common/washer.scad>;
|
||||
|
||||
|
||||
module fixing_brake_arm_to_brake_pad() {
|
||||
echo("Fixing brake arm to brake pad:");
|
||||
h_head_fastener = get_metric_bolt_head_height(SIZE_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD);
|
||||
L_fastener = 2 * (h_head_fastener + T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD) + R_BRAKE_ARM[2] + T_FIXING_BRAKE_ARM_TO_BRAKE_PAD + L_BOLT_EXTENSION;
|
||||
union() {
|
||||
// fixing
|
||||
color(COLOUR_BEAM_ALUMINIUM) difference() {
|
||||
// body
|
||||
rotate([90, 0, 180]) translate([0, 0, -L_FIXING_BRAKE_ARM_TO_BRAKE_PAD / 2]) angle_beam(L_FIXING_BRAKE_ARM_TO_BRAKE_PAD, W_FIXING_BRAKE_ARM_TO_BRAKE_PAD, T_FIXING_BRAKE_ARM_TO_BRAKE_PAD, false);
|
||||
// brake pad fastener hole
|
||||
translate([0, 0, T_FIXING_BRAKE_ARM_TO_BRAKE_PAD + (W_FIXING_BRAKE_ARM_TO_BRAKE_PAD - T_FIXING_BRAKE_ARM_TO_BRAKE_PAD) / 2]) rotate([0, 90, 0]) cylinder(W_FIXING_BRAKE_ARM_TO_BRAKE_PAD * 2, SIZE_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD / 2, SIZE_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD / 2, center = true);
|
||||
// brake arm fastener holes
|
||||
for (index_side_y = [0:1:1]) {
|
||||
mirror([0, index_side_y, 0]) {
|
||||
translate([-T_FIXING_BRAKE_ARM_TO_BRAKE_PAD - (W_FIXING_BRAKE_ARM_TO_BRAKE_PAD - T_FIXING_BRAKE_ARM_TO_BRAKE_PAD) / 2, D_WASHER_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD, 0]) cylinder(W_FIXING_BRAKE_ARM_TO_BRAKE_PAD * 2, SIZE_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD / 2, SIZE_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD / 2, center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
// fasteners to brake arm
|
||||
for (index_side_y = [0:1:1]) {
|
||||
mirror([0, index_side_y, 0]) {
|
||||
translate([-T_FIXING_BRAKE_ARM_TO_BRAKE_PAD - (W_FIXING_BRAKE_ARM_TO_BRAKE_PAD - T_FIXING_BRAKE_ARM_TO_BRAKE_PAD) / 2, D_WASHER_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD, 0]) {
|
||||
// bolt
|
||||
translate([0, 0, -L_fastener / 2 + T_FIXING_BRAKE_ARM_TO_BRAKE_PAD + T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD + h_head_fastener]) metric_bolt(SIZE_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD, L_fastener, true, L_BOLT_EXTENSION);
|
||||
// washers
|
||||
// upper
|
||||
translate([0, 0, T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD / 2 + T_FIXING_BRAKE_ARM_TO_BRAKE_PAD]) washer(T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD, D_WASHER_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD, SIZE_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD);
|
||||
// lower
|
||||
translate([0, 0, -T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD / 2 - R_BRAKE_ARM[2]]) washer(T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD, D_WASHER_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD, SIZE_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD);
|
||||
}
|
||||
}
|
||||
}
|
||||
// fastener to brake pad
|
||||
// washer
|
||||
translate([-T_FIXING_BRAKE_ARM_TO_BRAKE_PAD - T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD / 2, 0, T_FIXING_BRAKE_ARM_TO_BRAKE_PAD + (W_FIXING_BRAKE_ARM_TO_BRAKE_PAD - T_FIXING_BRAKE_ARM_TO_BRAKE_PAD) / 2]) rotate([0, 90, 0]) washer(T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD, D_WASHER_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD, SIZE_BOLT_FIXING_BRAKE_ARM_TO_BRAKE_PAD);
|
||||
}
|
||||
// Shopping
|
||||
// Angle beam
|
||||
// Fasteners
|
||||
// Washers
|
||||
}
|
||||
|
||||
fixing_brake_arm_to_brake_pad();
|
||||
35
models/brake/fixing_brake_arm_to_rear_axle_leg.scad
Normal file
35
models/brake/fixing_brake_arm_to_rear_axle_leg.scad
Normal file
@@ -0,0 +1,35 @@
|
||||
include <../../config.scad>;
|
||||
use <../common/metric_bolt.scad>;
|
||||
use <../common/metric_bolt_functions.scad>;
|
||||
use <../common/washer.scad>;
|
||||
|
||||
|
||||
module fixing_brake_arm_to_rear_axle_leg() {
|
||||
echo("Fixing brake arm to rear axle leg:");
|
||||
count_washers_each_end = 3;
|
||||
h_nut = get_metric_bolt_head_height(SIZE_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG);
|
||||
L_bolt = D_AXLE_REAR + 2 * (T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG * count_washers_each_end + h_nut) + L_BOLT_EXTENSION;
|
||||
rotate([0, 0, ANGLE_BRAKE_ROD_MAX]) for (index_side_z = [0 : 1 : 1]) {
|
||||
mirror([0, 0, index_side_z]) translate([0, 0, R_BRAKE_ARM[2] / 2]) {
|
||||
// axle washer
|
||||
translate([0, 0, 0]) washer(T_WASHER_AXLE_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG, D_WASHER_AXLE_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG, D_AXLE_REAR, centre = false);
|
||||
// bolt
|
||||
translate([0, -L_bolt / 2 + D_AXLE_REAR / 2 + T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG + h_nut, T_WASHER_AXLE_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG + D_WASHER_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG / 2]) rotate([-90, 0, 0]) metric_bolt(SIZE_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG, L_bolt, true, L_BOLT_EXTENSION);
|
||||
// bolt washer
|
||||
for (index_washer = [0 : 1 : count_washers_each_end]) {
|
||||
// front
|
||||
translate([0, D_AXLE_REAR / 2 + index_washer * T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG, T_WASHER_AXLE_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG + D_WASHER_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG / 2]) rotate([-90, 0, 0]) washer(T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG, D_WASHER_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG, SIZE_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG, centre = false);
|
||||
// rear
|
||||
translate([0, -D_AXLE_REAR / 2 - index_washer * T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG, T_WASHER_AXLE_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG + D_WASHER_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG / 2]) rotate([90, 0, 0]) washer(T_WASHER_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG, D_WASHER_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG, SIZE_BOLT_FIXING_BRAKE_ARM_TO_REAR_AXLE_LEG, centre = false);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Shopping
|
||||
// Axle washers
|
||||
// Bolts
|
||||
// Bolt washers front
|
||||
// Bolt washers rear
|
||||
}
|
||||
|
||||
fixing_brake_arm_to_rear_axle_leg();
|
||||
|
||||
29
models/brake/fixing_brake_ballscrew_to_brake_arms.scad
Normal file
29
models/brake/fixing_brake_ballscrew_to_brake_arms.scad
Normal file
@@ -0,0 +1,29 @@
|
||||
include <../../config.scad>;
|
||||
use <../common/metric_nut.scad>;
|
||||
use <../common/washer.scad>;
|
||||
|
||||
module fixing_brake_ballscrew_to_brake_arms() {
|
||||
h_nut = get_metric_bolt_head_height(D_BRAKE_BALLSCREW_AXLE);
|
||||
count_nuts_each_side = 2;
|
||||
union() {
|
||||
// ballscrew positioning plate
|
||||
color(COLOUR_FILAMENT_3D_PRINTER) cube(R_LEAD_FIXING_BRAKE_BALLSCREW_TO_BRAKE_ARMS, center = true);
|
||||
|
||||
for (index_side_y = [0:1:1]) {
|
||||
mirror([0, index_side_y, 0]) {
|
||||
// washers
|
||||
translate([0, R_LEAD_FIXING_BRAKE_BALLSCREW_TO_BRAKE_ARMS[1] / 2 + T_WASHER_BRAKE_BALLSCREW_POWER_WHEEL / 2, 0]) rotate([-90, 0, 0]) washer(T_WASHER_BRAKE_BALLSCREW_POWER_WHEEL, D_WASHER_BRAKE_BALLSCREW_POWER_WHEEL, D_BRAKE_BALLSCREW_AXLE);
|
||||
// nuts
|
||||
for (index_nut = [0 : 1 : count_nuts_each_side - 1]) {
|
||||
translate([0, R_LEAD_FIXING_BRAKE_BALLSCREW_TO_BRAKE_ARMS[1] / 2 + T_WASHER_BRAKE_BALLSCREW_POWER_WHEEL + h_nut * index_nut, 0]) rotate([-90, 0, 0]) rotate([0, 0, 30 * index_nut]) metric_nut(D_BRAKE_BALLSCREW_AXLE, centre = false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Shopping
|
||||
echo("Fixing brake ballscrew to brake arms: 3D printed component - x1");
|
||||
// Axle fastener washers
|
||||
// Axle fastener nuts
|
||||
}
|
||||
|
||||
fixing_brake_ballscrew_to_brake_arms();
|
||||
39
models/brake/power_wheel_assembly.scad
Normal file
39
models/brake/power_wheel_assembly.scad
Normal file
@@ -0,0 +1,39 @@
|
||||
include <../../config.scad>;
|
||||
use <../common/beam_hexagonal.scad>
|
||||
use <../common/metric_nut.scad>;
|
||||
use <../common/metric_bolt_functions.scad>;
|
||||
use <../common/washer.scad>
|
||||
|
||||
|
||||
module power_wheel_assembly() {
|
||||
echo("Power wheel assembly:");
|
||||
d_nut = get_metric_bolt_head_diameter(D_BRAKE_BALLSCREW_AXLE);
|
||||
h_nut = get_metric_bolt_head_height(D_BRAKE_BALLSCREW_AXLE);
|
||||
union() {
|
||||
// power wheel
|
||||
rotate([90, 0, 0]) {
|
||||
color(COLOUR_FILAMENT_3D_PRINTER) difference() {
|
||||
// body
|
||||
cylinder(T_BRAKE_BALLSCREW_POWER_WHEEL, D_BRAKE_BALLSCREW_POWER_WHEEL / 2, D_BRAKE_BALLSCREW_POWER_WHEEL / 2, center = true);
|
||||
// nut slot
|
||||
beam_hexagonal(h_nut, d_nut, centre = true, suppress_shopping_outputs = true); // cylinder(T_BRAKE_BALLSCREW_POWER_WHEEL, d_nut / 2, d_nut / 2, center = true);
|
||||
}
|
||||
// ballscrew bearing (nut)
|
||||
/*
|
||||
color("gray") difference() {
|
||||
// body
|
||||
cylinder(T_BRAKE_BALLSCREW_POWER_WHEEL, d_nut / 2, d_nut / 2, center = true);
|
||||
// hole
|
||||
cylinder(T_BRAKE_BALLSCREW_POWER_WHEEL, D_BRAKE_BALLSCREW_AXLE / 2, D_BRAKE_BALLSCREW_AXLE / 2, center = true);
|
||||
}
|
||||
*/
|
||||
metric_nut(D_BRAKE_BALLSCREW_AXLE);
|
||||
}
|
||||
}
|
||||
// Shopping
|
||||
echo("Power wheel: 3D printed component - x1");
|
||||
// Power wheel bearing (nut)
|
||||
}
|
||||
|
||||
power_wheel_assembly();
|
||||
|
||||
Reference in New Issue
Block a user