include ; use ; use ; use ; draw_assembly = true; module print() { for (i = [1 : 4]) translate([0, (i - 2) * (real_belt_pulley_dia + 20), 0]) belt_pulley(teethcount, real_belt_pulley_dia); translate([y_carriage_x + real_belt_pulley_dia, 0, y_carriage_h]) rotate([0, 180, 0]) y_carriage(1); // x carriage translate([10 + 2 * y_carriage_x + real_belt_pulley_dia, 0, y_carriage_h]) rotate([0, 180, 0]) y_carriage(2); // y carriage translate([y_carriage_x / 2 + real_belt_pulley_dia, -10 - y_carriage_y / 2, 0]) y_carriage_posts(); translate([10 + 3 * y_carriage_x / 2 + real_belt_pulley_dia, -10 - y_carriage_y / 2, 0]) y_carriage_posts(); for (i = [1, -1]) scale([1, i, 1]) translate([20 + 2 * y_carriage_x + real_belt_pulley_dia, 5, 0]) x_carriage_holder(); for (i = [0, 20 + 2 * belt_tensioner_wall + 10]) translate([-real_belt_pulley_dia - 10 - i, 0, 0]) { translate([0, belt_tensioner_moving_len, belt_tensioner_moving_height / 2]) belt_tensioner_moving(); translate([0, -20, 20 + belt_tensioner_wall]) rotate([0, 180, 0]) belt_tensioner_mount(2); } for (i = [0, 70]) translate([-real_belt_pulley_dia - i, belt_tensioner_moving_len + 20, 0]) rotate([0, -90, 0]) motor_mount(2); } top_rail_len = x_axis_rail_len + plate_x - 70; top_rail_height = 200; top_rail_off = 150; echo("top rail length", top_rail_len); module fuellfix_assembly() { xy_table(); %color("magenta") dispenser(); translate([0, 0, 200 + 100]) whole_extruder(); translate([-top_rail_len / 2, top_rail_off, top_rail_height]) rail_2020_x(top_rail_len, "top rail"); } echo(); echo(); echo(); if (draw_assembly) { fuellfix_assembly(); } else { print(); } echo(); echo(); echo();