Initial commit

This commit is contained in:
2025-02-25 12:13:03 +00:00
parent 3476f37b84
commit 659001351e
52 changed files with 1542 additions and 0 deletions

View 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();

View 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();

View 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);

View 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)

View 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();

View 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();

View 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();

View 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();

View 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();

View 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();

View 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();