From 4c12d5fca4f00f68adeb183757d1b445808a192a Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Sat, 6 Mar 2021 10:10:28 +0000 Subject: [PATCH 1/6] Added parameterised CoreXY. --- tests/core_xy_belts.scad | 134 ++++++++++++++++++++++++++ utils/core_xy_belts.scad | 198 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 332 insertions(+) create mode 100644 tests/core_xy_belts.scad create mode 100644 utils/core_xy_belts.scad diff --git a/tests/core_xy_belts.scad b/tests/core_xy_belts.scad new file mode 100644 index 0000000..8fdd5ff --- /dev/null +++ b/tests/core_xy_belts.scad @@ -0,0 +1,134 @@ +// +// NopSCADlib Copyright Chris Palmer 2020 +// nop.head@gmail.com +// hydraraptor.blogspot.com +// +// This file is part of NopSCADlib. +// +// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the +// GNU General Public License as published by the Free Software Foundation, either version 3 of +// the License, or (at your option) any later version. +// +// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along with NopSCADlib. +// If not, see . +// + +include <../core.scad> +include <../vitamins/pulleys.scad> +include <../vitamins/screws.scad> +include <../vitamins/stepper_motors.scad> +include <../vitamins/washers.scad> + +include <../utils/core_xy_belts.scad> + + +module coreXY_belts_test() { + coreXY_type = coreXY_GT2_20_16; + plain_idler = coreXY_plain_idler(coreXY_type); + toothed_idler = coreXY_toothed_idler(coreXY_type); + + coreXYPosBL = [0, 0, 0]; + coreXYPosTR = [200, 150, 0]; + separation = [0, coreXY_coincident_separation(coreXY_type).y, pulley_height(plain_idler) + washer_thickness(M3_washer)]; + pos = [100, 50]; + + upper_drive_pulley_offset = [40, 10]; + lower_drive_pulley_offset = [0, 0]; + + coreXY_belts(coreXY_type, + carriagePosition = pos, + coreXYPosBL = coreXYPosBL, + coreXYPosTR = coreXYPosTR, + separation = separation, + x_gap = 10, + upper_drive_pulley_offset = upper_drive_pulley_offset, + lower_drive_pulley_offset = lower_drive_pulley_offset, + show_pulleys = true); + + + translate([coreXYPosBL.x + separation.x/2, coreXYPosTR.y + upper_drive_pulley_offset.y, separation.z/2]) { + // add the upper drive pulley stepper motor + translate([coreXY_drive_pulley_x_alignment(coreXY_type) + upper_drive_pulley_offset.x, 0, -pulley_height(coreXY_drive_pulley(coreXY_type))]) + NEMA(NEMA17M); + + // add the screws for the upper drive offset idler pulleys if required + if (upper_drive_pulley_offset.x > 0) { + translate(coreXY_drive_plain_idler_offset(coreXY_type)) + translate_z(-pulley_offset(plain_idler)) + screw(M3_cap_screw, 20); + translate(coreXY_drive_toothed_idler_offset(coreXY_type)) + translate_z(-pulley_offset(toothed_idler)) + screw(M3_cap_screw, 20); + } else if (upper_drive_pulley_offset.x < 0) { + translate([-pulley_od(plain_idler), coreXY_drive_plain_idler_offset(coreXY_type).y]) + translate_z(-pulley_offset(plain_idler)) + screw(M3_cap_screw, 20); + translate([2*coreXY_drive_pulley_x_alignment(coreXY_type), coreXY_drive_toothed_idler_offset(coreXY_type).y]) + translate_z(-pulley_offset(toothed_idler)) + screw(M3_cap_screw, 20); + } + } + + translate([coreXYPosTR.x - separation.x/2, coreXYPosTR.y + lower_drive_pulley_offset.y, -separation.z/2]) { + // add the lower drive pulley stepper motor + translate([-coreXY_drive_pulley_x_alignment(coreXY_type) + lower_drive_pulley_offset.x, 0, -pulley_height(coreXY_drive_pulley(coreXY_type))]) + NEMA(NEMA17M); + + // add the screws for the lower drive offset idler pulleys if required + if (lower_drive_pulley_offset.x < 0) { + translate([-coreXY_drive_plain_idler_offset(coreXY_type).x, coreXY_drive_plain_idler_offset(coreXY_type).y]) + translate_z(-pulley_offset(plain_idler)) + screw(M3_cap_screw, 20); + translate(coreXY_drive_toothed_idler_offset(coreXY_type)) + translate_z(-pulley_offset(toothed_idler)) + screw(M3_cap_screw, 20); + } else if (lower_drive_pulley_offset.x > 0) { + translate([pulley_od(plain_idler), coreXY_drive_plain_idler_offset(coreXY_type).y]) + translate_z(-pulley_offset(plain_idler)) + screw(M3_cap_screw, 20); + translate([-2*coreXY_drive_pulley_x_alignment(coreXY_type), coreXY_drive_toothed_idler_offset(coreXY_type).y]) + translate_z(-pulley_offset(toothed_idler)) + screw(M3_cap_screw, 20); + } + } + + // add the screw for the left upper idler pulley + translate([coreXYPosBL.x + separation.x/2, coreXYPosBL.y, separation.z]) + screw(M3_cap_screw, 20); + + // add the screw for the right upper idler pulley + translate([coreXYPosTR.x + separation.x/2, coreXYPosBL.y, separation.z]) + screw(M3_cap_screw, 20); + + if (separation.x != 0) { + // add the screw for the left lower idler pulley + translate([coreXYPosBL.x - separation.x/2, coreXYPosBL.y, 0]) + screw(M3_cap_screw, 20); + + // add the screw for the right lower idler pulley + translate([coreXYPosTR.x - separation.x/2, coreXYPosBL.y, 0]) + screw(M3_cap_screw, 20); + } + + translate([-separation.x/2, pos.y + coreXYPosBL.y -separation.y/2, -separation.z/2 + pulley_height(plain_idler)/2]) { + // add the screw for the left Y carriage toothed idler + translate([coreXYPosBL.x, coreXY_toothed_idler_offset(coreXY_type).y, 0]) + screw(M3_cap_screw, 20); + // add the screw for the left Y carriage plain idler + translate([coreXYPosBL.x + separation.x + coreXY_plain_idler_offset(coreXY_type).x, separation.y + coreXY_plain_idler_offset(coreXY_type).y, separation.z]) + screw(M3_cap_screw, 20); + // add the screw for the right Y carriage toothed idler + translate([coreXYPosTR.x + separation.x, coreXY_toothed_idler_offset(coreXY_type).y, separation.z]) + screw(M3_cap_screw, 20); + // add the screw for the right Y carriage plain idler + translate([coreXYPosTR.x - coreXY_plain_idler_offset(coreXY_type).x, separation.y + coreXY_plain_idler_offset(coreXY_type).y, 0]) + screw(M3_cap_screw, 20); + } +} + +if ($preview) + coreXY_belts_test(); diff --git a/utils/core_xy_belts.scad b/utils/core_xy_belts.scad new file mode 100644 index 0000000..656e207 --- /dev/null +++ b/utils/core_xy_belts.scad @@ -0,0 +1,198 @@ +// +// NopSCADlib Copyright Chris Palmer 2020 +// nop.head@gmail.com +// hydraraptor.blogspot.com +// +// This file is part of NopSCADlib. +// +// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the +// GNU General Public License as published by the Free Software Foundation, either version 3 of +// the License, or (at your option) any later version. +// +// NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along with NopSCADlib. +// If not, see . +// + +// +//! Parameterised Core XY implementation. Draws the belts and provides utilities for positioning the pulleys. +//! +//! The belts are positioned according the bottom left "anchor" pulley and the top right drive pulley. +//! Implementation has the following features: +//! 1. The drive and idler pulleys may be different sizes. +//! 2. The belt separation is parameterised. +//! 3. The separation of the plain and toothed pulleys on the Y carriages is parameterised, in both the X and the Y direction. +//! 4. The drive pulleys may be offset in the X and Y directions. If this is done, extra idler pulleys are added. This +//! allows flexible positioning of the motors. +// +include <../core.scad> +include <../vitamins/belts.scad> +include <../vitamins/pulleys.scad> + + +coreXY_GT2_20_20 = ["coreXY_20_20", GT2x6, GT2x20ob_pulley, GT2x20_toothed_idler, GT2x20_plain_idler, [0, 0, 1], [0, 0, 0.5, 1], [0, 1, 0], [0, 0.5, 0, 1] ]; +coreXY_GT2_20_16 = ["coreXY_20_16", GT2x6, GT2x20ob_pulley, GT2x16_toothed_idler, GT2x16_plain_idler, [0, 0, 1], [0, 0, 0.5, 1], [0, 1, 0], [0, 0.5, 0, 1] ]; +coreXY_GT2_16_16 = ["coreXY_16_16", GT2x6, GT2x16_pulley, GT2x16_toothed_idler, GT2x16_plain_idler, [0, 0, 1], [0, 0, 0.5, 1], [0, 1, 0], [0, 0.5, 0, 1] ]; + +function coreXY_belt(type) = type[1]; //! Belt type +function coreXY_drive_pulley(type) = type[2]; //! Drive pulley type +function coreXY_toothed_idler(type) = type[3]; //! Toothed idler type +function coreXY_plain_idler(type) = type[4]; //! Plain idler type +function coreXY_upper_belt_colour(type) = type[5]; //! Colour of the upper belt +function coreXY_upper_tooth_colour(type) = type[6]; //! Colour of the upper belt's teeth +function coreXY_lower_belt_colour(type) = type[7]; //! Colour of the lower belt +function coreXY_lower_tooth_colour(type) = type[8]; //! Colour of the lower belt's teeth + +// used to offset the position of the drive pulley and the y-carriage plain idler pulley +// relative to the anchor pulley so that the belts align properly +function coreXY_drive_pulley_x_alignment(type) = //! Belt alignment offset of the drive pulley relative to the anchor pulley + (pulley_od(coreXY_drive_pulley(type)) - pulley_od(coreXY_toothed_idler(type))) / 2; +function coreXY_coincident_separation(type) = //! Value of x, y separation to make y-carriage pulleys coincident + [ -coreXY_plain_idler_offset(type).x, -(pulley_od(coreXY_plain_idler(type)) + pulley_od(coreXY_toothed_idler(type)))/2, 0 ]; +function coreXY_plain_idler_offset(type) = //! Offset of y-carriage plain idler + [ (pulley_od(coreXY_plain_idler(type)) + pulley_od(coreXY_drive_pulley(type))) / 2 + coreXY_drive_pulley_x_alignment(type), pulley_od(coreXY_plain_idler(type))/2, 0 ]; +function coreXY_toothed_idler_offset(type) = //! offset of y-carriage toothed idler + [ 0, -pulley_pr(coreXY_toothed_idler(type)), 0 ]; +// helper functions for positioning idlers when the stepper motor drive pulley is offset +function coreXY_drive_toothed_idler_offset(type) = //! Offset of toothed drive idler pulley + [ 0, coreXY_drive_pulley_x_alignment(type), 0 ]; +function coreXY_drive_plain_idler_offset(type) = //! Offset of plain drive idler pulley + [ coreXY_plain_idler_offset(type).x, -(pulley_od(coreXY_plain_idler(type)) + pulley_od(coreXY_drive_pulley(type))) / 2, 0 ]; + + +module coreXY_half(type, size, pos, separation_y = 0, x_gap = 0, plain_idler_offset = 0, drive_pulley_offset = [0, 0], show_pulleys = false, lower_belt = false, hflip = false) { //! Draw one belt of a coreXY setup + + // y-carriage toothed pulley + p0_type = coreXY_toothed_idler(type); + p0 = [ size.x / 2, -size.y / 2 - pulley_od(p0_type) / 2 + pos.y - separation_y / 2 ]; + + // bottom right toothed idler pulley + p1_type = p0_type; + p1 = [ size.x / 2, -size.y / 2 ]; + + // bottom left anchor toothed idler pulley + p2_type = p0_type; + p2 = [ -size.x / 2, -size.y / 2 ]; + + // stepper motor drive pulley + p3d_type = coreXY_drive_pulley(type); + p3d = [ -size.x / 2 + coreXY_drive_pulley_x_alignment(type) + drive_pulley_offset.x, + size.y / 2 + drive_pulley_offset.y + ]; + + // toothed idler for offset stepper motor drive pulley + p3t_type = coreXY_toothed_idler(type); + p3t = [ -size.x / 2 + (drive_pulley_offset.x > 0 ? 0 : 2*coreXY_drive_pulley_x_alignment(type)), + size.y / 2 + coreXY_drive_pulley_x_alignment(type) + drive_pulley_offset.y + ]; + + // y-carriage plain pulley + p4_type = coreXY_plain_idler(type); + p4 = [ -size.x / 2 + pulley_od(p4_type) / 2 + pulley_od(p3d_type) / 2 + coreXY_drive_pulley_x_alignment(type) + plain_idler_offset, + -size.y / 2 + pulley_od(p4_type) / 2 + pos.y + separation_y / 2 + ]; + + // plain idler for offset stepper motor drive pulley + p3p_type = p4_type; + //p3p = [ p4.x, size.y / 2 - pulley_od(p3p_type) / 2 - pulley_od(p3d_type) / 2 + drive_pulley_offset.y ]; + p3p = [ drive_pulley_offset.x > 0 ? p4.x : -p0.x - pulley_od(p0_type), + size.y / 2 - pulley_od(p3p_type) / 2 - pulley_od(p3d_type) / 2 + drive_pulley_offset.y + ]; + + // dummy pulleys for y separation + p5_type = p4_type; + p5 = [ pos.x - size.x / 2, -size.y / 2 + pos.y + separation_y / 2 ]; + p6_type = p0_type; + p6 = [ pos.x - size.x / 2, -size.y / 2 + pos.y - separation_y / 2 ]; + + module show_pulleys(show_pulleys) {// Allows the pulley colour to be set for debugging + not_on_bom() + if (is_list(show_pulleys)) + color(show_pulleys) + children(); + else if (show_pulleys) + children(); + } + + show_pulleys(show_pulleys) { + translate(p0) + pulley_assembly(p0_type); // y-carriage toothed pulley + translate(p1) + pulley_assembly(p1_type); // bottom right toothed idler pulley + translate(p2) + pulley_assembly(p2_type); // bottom left anchor toothed idler pulley + translate(p3d) + hflip(hflip) + pulley_assembly(p3d_type); // top left stepper motor drive pulley + if (drive_pulley_offset.x) { // idler pulleys for offset stepper motor drive pulley + translate(p3t) + pulley_assembly(p3t_type); // toothed idler + translate(p3p) + pulley_assembly(p3p_type); // plain idler + } + translate(p4) + pulley_assembly(p4_type); // y-carriage plain pulley + } + + path0a = [ + [ p0.x, p0.y, pulley_od(p0_type) / 2 ], + [ p1.x, p1.y, pulley_od(p1_type) / 2 ], + [ p2.x, p2.y, pulley_od(p2_type) / 2 ] + ]; + path0b = [ + [ p3d.x, p3d.y, pulley_od(p3d_type) / 2 ], + [ p4.x, p4.y, -pulley_od(p4_type) / 2 ] + ]; + path0c = [ + [ p3t.x, p3t.y, pulley_od(p3t_type) / 2 ], + [ p3d.x, p3d.y, pulley_od(p3d_type) / 2 ], + [ p3p.x, p3p.y, -pulley_od(p3p_type) / 2 ], + [ p4.x, p4.y, -pulley_od(p4_type) / 2 ] + ]; + path0d = [ + [ p3p.x, p3p.y, -pulley_od(p3p_type) / 2 ], + [ p3d.x, p3d.y, pulley_od(p3d_type) / 2 ], + [ p3t.x, p3t.y, pulley_od(p3t_type) / 2 ], + [ p4.x, p4.y, -pulley_od(p4_type) / 2 ] + ]; + path1 = [ // use eps for corner radius to get sharp corners so this part of the belt is deleted by the gap + [ p5.x, p5.y, eps ], + [ p6.x, p6.y, eps ] + ]; + + belt = coreXY_belt(type); + + path0 = drive_pulley_offset.x == 0 ? concat(path0a, path0b) : drive_pulley_offset.x > 0 ? concat(path0a, path0c) : concat(path0a, path0d); + path = separation_y == 0 ? path0 : concat(path0, path1); + + belt(type = belt, + points = path, + gap = [ x_gap + eps, abs(separation_y) + 2 ], + gap_pos = [ pos.x - size.x / 2, pos.y - size.y / 2 + belt_pitch_height(belt) - belt_thickness(belt) / 2 ], + belt_colour = lower_belt ? coreXY_lower_belt_colour(type) : coreXY_upper_belt_colour(type), + tooth_colour = lower_belt ? coreXY_lower_tooth_colour(type) : coreXY_upper_tooth_colour(type)); +} + +module coreXY(type, size, pos, separation, x_gap, plain_idler_offset = 0, upper_drive_pulley_offset, lower_drive_pulley_offset, show_pulleys = false) { //! Wrapper module to draw both belts of a coreXY setup + translate([size.x / 2 - separation.x / 2, size.y / 2, -separation.z / 2]) { + // lower belt + hflip() + explode(25) + coreXY_half(type, size, [size.x - pos.x - separation.x, pos.y], separation.y, x_gap, plain_idler_offset, [-lower_drive_pulley_offset.x, lower_drive_pulley_offset.y], show_pulleys, lower_belt = true, hflip = true); + // upper belt + translate([separation.x, 0, separation.z]) + explode(25) + coreXY_half(type, size, [pos.x, pos.y], separation.y, x_gap, plain_idler_offset, upper_drive_pulley_offset, show_pulleys, lower_belt = false, hflip=false); + } +} + +module coreXY_belts(type, carriagePosition, coreXYPosBL, coreXYPosTR, separation, x_gap = 20, upper_drive_pulley_offset = [0, 0], lower_drive_pulley_offset = [0, 0], show_pulleys = false) { //! Draw the coreXY belts + assert(coreXYPosBL.z == coreXYPosTR.z); + + coreXYSize = coreXYPosTR - coreXYPosBL; + translate(coreXYPosBL) + coreXY(type, coreXYSize, [carriagePosition.x - coreXYPosBL.x + separation.x / 2, carriagePosition.y - coreXYPosBL.y], separation = separation, x_gap = x_gap, plain_idler_offset = 0, upper_drive_pulley_offset = upper_drive_pulley_offset, lower_drive_pulley_offset = lower_drive_pulley_offset, show_pulleys = show_pulleys); +} From 769cb442070a7dcd780593c78e9354c594460454 Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Sat, 6 Mar 2021 16:06:25 +0000 Subject: [PATCH 2/6] Renamed core_xy files. --- tests/{core_xy_belts.scad => core_xy.scad} | 0 utils/{core_xy_belts.scad => core_xy.scad} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename tests/{core_xy_belts.scad => core_xy.scad} (100%) rename utils/{core_xy_belts.scad => core_xy.scad} (100%) diff --git a/tests/core_xy_belts.scad b/tests/core_xy.scad similarity index 100% rename from tests/core_xy_belts.scad rename to tests/core_xy.scad diff --git a/utils/core_xy_belts.scad b/utils/core_xy.scad similarity index 100% rename from utils/core_xy_belts.scad rename to utils/core_xy.scad From d80fc5709e4dd448353e0770f1ed28b9cf338dfe Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Sat, 6 Mar 2021 16:32:36 +0000 Subject: [PATCH 3/6] Left pulleys on BOM when show_pulleys true. --- tests/core_xy.scad | 2 +- utils/core_xy.scad | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/tests/core_xy.scad b/tests/core_xy.scad index 8fdd5ff..ca549e0 100644 --- a/tests/core_xy.scad +++ b/tests/core_xy.scad @@ -23,7 +23,7 @@ include <../vitamins/screws.scad> include <../vitamins/stepper_motors.scad> include <../vitamins/washers.scad> -include <../utils/core_xy_belts.scad> +include <../utils/core_xy.scad> module coreXY_belts_test() { diff --git a/utils/core_xy.scad b/utils/core_xy.scad index 656e207..ff4a96e 100644 --- a/utils/core_xy.scad +++ b/utils/core_xy.scad @@ -109,12 +109,11 @@ module coreXY_half(type, size, pos, separation_y = 0, x_gap = 0, plain_idler_off p6 = [ pos.x - size.x / 2, -size.y / 2 + pos.y - separation_y / 2 ]; module show_pulleys(show_pulleys) {// Allows the pulley colour to be set for debugging - not_on_bom() - if (is_list(show_pulleys)) - color(show_pulleys) - children(); - else if (show_pulleys) + if (is_list(show_pulleys)) + color(show_pulleys) children(); + else if (show_pulleys) + children(); } show_pulleys(show_pulleys) { From 54c3b4f6007d317b0dae4b45ea254c2d7571113f Mon Sep 17 00:00:00 2001 From: Chris Palmer Date: Sat, 6 Mar 2021 16:35:44 +0000 Subject: [PATCH 4/6] Fixed path, updated readme and picture. --- readme.md | 95 ++++++++++++++++++++++++++++++++++-------- tests/core_xy.scad | 2 +- tests/png/core_xy.png | Bin 0 -> 128234 bytes 3 files changed, 78 insertions(+), 19 deletions(-) create mode 100644 tests/png/core_xy.png diff --git a/readme.md b/readme.md index e0ceb16..efc4af4 100644 --- a/readme.md +++ b/readme.md @@ -24,24 +24,24 @@ A list of changes classified as breaking, additions or fixes is maintained in [C Axials Jack Rails Box Annotation BOM Ball_bearings KP_pillow_blocks Ring_terminals Butt_box Bezier Clip Batteries LDRs Rockers Cable_grommets Catenary Global - Belts LED_meters Rod Camera_housing Dogbones Polyholes - Blowers LEDs SCS_bearing_blocks Carriers Fillet Rounded_rectangle - Bulldogs Leadnuts SK_brackets Corner_block Gears Sphere - Buttons Light_strips SMDs Door_hinge Hanging_hole Teardrops - Cable_strips Linear_bearings SSRs Door_latch Horiholes - Cameras Magnets Screws Drag_chain Layout - Circlips Mains_sockets Sealing_strip Fan_guard Maths - Components Microswitches Shaft_couplings Fixing_block Offset - DIP Microview Sheets Flat_hinge Quadrant - D_connectors Modules Spades Foot Round - Displays Nuts Spools Handle Rounded_cylinder - Extrusion_brackets O_ring Springs PCB_mount Rounded_polygon - Extrusions Opengrab Stepper_motors PSU_shroud Rounded_right_triangle - Fans PCB Swiss_clips Pocket_handle Sector - Fuseholder PCBs Toggles Press_fit Sweep - Geared_steppers PSUs Transformers Printed_box Thread - Green_terminals Panel_meters Tubings Printed_pulleys Tube - Hot_ends Pillars Variacs Ribbon_clamp + Belts LED_meters Rod Camera_housing Core_xy Polyholes + Blowers LEDs SCS_bearing_blocks Carriers Dogbones Rounded_rectangle + Bulldogs Leadnuts SK_brackets Corner_block Fillet Sphere + Buttons Light_strips SMDs Door_hinge Gears Teardrops + Cable_strips Linear_bearings SSRs Door_latch Hanging_hole + Cameras Magnets Screws Drag_chain Horiholes + Circlips Mains_sockets Sealing_strip Fan_guard Layout + Components Microswitches Shaft_couplings Fixing_block Maths + DIP Microview Sheets Flat_hinge Offset + D_connectors Modules Spades Foot Quadrant + Displays Nuts Spools Handle Round + Extrusion_brackets O_ring Springs PCB_mount Rounded_cylinder + Extrusions Opengrab Stepper_motors PSU_shroud Rounded_polygon + Fans PCB Swiss_clips Pocket_handle Rounded_right_triangle + Fuseholder PCBs Toggles Press_fit Sector + Geared_steppers PSUs Transformers Printed_box Sweep + Green_terminals Panel_meters Tubings Printed_pulleys Thread + Hot_ends Pillars Variacs Ribbon_clamp Tube Hygrometer Pin_headers Veroboard SSR_shroud IECs Pulleys Washers Screw_knob Inserts Wire Socket_box @@ -5574,6 +5574,65 @@ The coordinates of the lowest point on the curve can be retrieved by calling `ca ![catenary](tests/png/catenary.png) +Top + +--- + +## Core_xy +Parameterised Core XY implementation. Draws the belts and provides utilities for positioning the pulleys. + +The belts are positioned according the bottom left "anchor" pulley and the top right drive pulley. +Implementation has the following features: +1. The drive and idler pulleys may be different sizes. +2. The belt separation is parameterised. +3. The separation of the plain and toothed pulleys on the Y carriages is parameterised, in both the X and the Y direction. +4. The drive pulleys may be offset in the X and Y directions. If this is done, extra idler pulleys are added. This +allows flexible positioning of the motors. + +[utils/core_xy.scad](utils/core_xy.scad) Implementation. + +[tests/core_xy.scad](tests/core_xy.scad) Code for this example. + +### Properties +| Function | Description | +|:--- |:--- | +| `coreXY_belt(type)` | Belt type | +| `coreXY_drive_pulley(type)` | Drive pulley type | +| `coreXY_lower_belt_colour(type)` | Colour of the lower belt | +| `coreXY_lower_tooth_colour(type)` | Colour of the lower belt's teeth | +| `coreXY_plain_idler(type)` | Plain idler type | +| `coreXY_toothed_idler(type)` | Toothed idler type | +| `coreXY_upper_belt_colour(type)` | Colour of the upper belt | +| `coreXY_upper_tooth_colour(type)` | Colour of the upper belt's teeth | + +### Functions +| Function | Description | +|:--- |:--- | +| `coreXY_coincident_separation(type)` | Value of x, y separation to make y-carriage pulleys coincident | +| `coreXY_drive_plain_idler_offset(type)` | Offset of plain drive idler pulley | +| `coreXY_drive_pulley_x_alignment(type)` | Belt alignment offset of the drive pulley relative to the anchor pulley | +| `coreXY_drive_toothed_idler_offset(type)` | Offset of toothed drive idler pulley | +| `coreXY_plain_idler_offset(type)` | Offset of y-carriage plain idler | +| `coreXY_toothed_idler_offset(type)` | offset of y-carriage toothed idler | + +### Modules +| Module | Description | +|:--- |:--- | +| `coreXY(type, size, pos, separation, x_gap, plain_idler_offset = 0, upper_drive_pulley_offset, lower_drive_pulley_offset, show_pulleys = false)` | Wrapper module to draw both belts of a coreXY setup | +| `coreXY_belts(type, carriagePosition, coreXYPosBL, coreXYPosTR, separation, x_gap = 20, upper_drive_pulley_offset = [0, 0], lower_drive_pulley_offset = [0, 0], show_pulleys = false)` | Draw the coreXY belts | +| `coreXY_half(type, size, pos, separation_y = 0, x_gap = 0, plain_idler_offset = 0, drive_pulley_offset = [0, 0], show_pulleys = false, lower_belt = false, hflip = false)` | Draw one belt of a coreXY setup | + +![core_xy](tests/png/core_xy.png) + +### Vitamins +| Qty | Module call | BOM entry | +| ---:|:--- |:---| +| 1 | `belt(GT2x6, [ ... ], [10.0078, 11.69], [0, -24.686])` | Belt GT2 x 6mm x 742mm | +| 1 | `belt(GT2x6, [ ... ], [10.0078, 11.69], [0, -24.686])` | Belt GT2 x 6mm x 852mm | +| 8 | `screw(M3_cap_screw, 20)` | Screw M3 cap x 20mm | +| 2 | `NEMA(NEMA17M)` | Stepper motor NEMA17 x 40mm | + + Top --- diff --git a/tests/core_xy.scad b/tests/core_xy.scad index 8fdd5ff..ca549e0 100644 --- a/tests/core_xy.scad +++ b/tests/core_xy.scad @@ -23,7 +23,7 @@ include <../vitamins/screws.scad> include <../vitamins/stepper_motors.scad> include <../vitamins/washers.scad> -include <../utils/core_xy_belts.scad> +include <../utils/core_xy.scad> module coreXY_belts_test() { diff --git a/tests/png/core_xy.png b/tests/png/core_xy.png new file mode 100644 index 0000000000000000000000000000000000000000..17dd0678658c440d2c87569d291ca7f0afb6a0ca GIT binary patch literal 128234 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

LA0-Fj$qXhsgAXa=wnymFZj!Z^* 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 z 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

LMHPK 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 Dg~z^D literal 0 HcmV?d00001 From 7c1c8e92f2bb6687e17772ca61c9ee50639bd877 Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Sat, 6 Mar 2021 16:35:46 +0000 Subject: [PATCH 5/6] Removed green code. --- utils/core_xy.scad | 1 - 1 file changed, 1 deletion(-) diff --git a/utils/core_xy.scad b/utils/core_xy.scad index ff4a96e..e9efb72 100644 --- a/utils/core_xy.scad +++ b/utils/core_xy.scad @@ -97,7 +97,6 @@ module coreXY_half(type, size, pos, separation_y = 0, x_gap = 0, plain_idler_off // plain idler for offset stepper motor drive pulley p3p_type = p4_type; - //p3p = [ p4.x, size.y / 2 - pulley_od(p3p_type) / 2 - pulley_od(p3d_type) / 2 + drive_pulley_offset.y ]; p3p = [ drive_pulley_offset.x > 0 ? p4.x : -p0.x - pulley_od(p0_type), size.y / 2 - pulley_od(p3p_type) / 2 - pulley_od(p3d_type) / 2 + drive_pulley_offset.y ]; From 7ce991e625d857213b2c485f4e16fcf7e573fd11 Mon Sep 17 00:00:00 2001 From: Chris Palmer Date: Sat, 6 Mar 2021 16:37:54 +0000 Subject: [PATCH 6/6] Updated readme for pulleys on BOM. --- readme.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/readme.md b/readme.md index efc4af4..725201f 100644 --- a/readme.md +++ b/readme.md @@ -5629,7 +5629,11 @@ allows flexible positioning of the motors. | ---:|:--- |:---| | 1 | `belt(GT2x6, [ ... ], [10.0078, 11.69], [0, -24.686])` | Belt GT2 x 6mm x 742mm | | 1 | `belt(GT2x6, [ ... ], [10.0078, 11.69], [0, -24.686])` | Belt GT2 x 6mm x 852mm | +| 7 | `pulley(GT2x16_toothed_idler)` | Pulley GT2 idler 16 teeth | +| 3 | `pulley(GT2x16_plain_idler)` | Pulley GT2 idler smooth 9.63mm | +| 2 | `pulley(GT2x20ob_pulley)` | Pulley GT2OB 20 teeth | | 8 | `screw(M3_cap_screw, 20)` | Screw M3 cap x 20mm | +| 4 | `screw(M3_grub_screw, 6)` | Screw M3 grub x 6mm | | 2 | `NEMA(NEMA17M)` | Stepper motor NEMA17 x 40mm |