From 9a8bf3217a25f372ae0719c885e8dca8b6e022f3 Mon Sep 17 00:00:00 2001 From: claraC Date: Mon, 4 Feb 2019 22:52:37 +0100 Subject: [PATCH 1/6] Include 3d rim design --- 3d/rim.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 3d/rim.py diff --git a/3d/rim.py b/3d/rim.py new file mode 100644 index 0000000..25ed231 --- /dev/null +++ b/3d/rim.py @@ -0,0 +1,23 @@ +""" +This script defines the rim body. +""" +from math import cos +from math import sin +from math import radians + +import cadquery + +TIRE_W = 2.5 * 2 +WHEEL_D = 20.5 + +REEL_D0 = WHEEL_D - TIRE_W +REEL_H0 = 8 + +PINION_D = 6.70 + + +# Rim body +rim = cadquery.Workplane('XY')\ + .circle(radius=REEL_D0/2.).extrude(distance=REEL_H0)\ + .faces('>Z').workplane()\ + .hole(diameter=PINION_D) \ No newline at end of file From 3b486795480a72c5e8de35cab55616320b6b511d Mon Sep 17 00:00:00 2001 From: claraC Date: Sun, 24 Feb 2019 21:12:08 +0100 Subject: [PATCH 2/6] Include FDM margin to rim design --- 3d/rim.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/3d/rim.py b/3d/rim.py index 25ed231..9a8fa25 100644 --- a/3d/rim.py +++ b/3d/rim.py @@ -6,18 +6,25 @@ from math import radians import cadquery +from Helpers import show + +FDM_MARGIN = 0.1 TIRE_W = 2.5 * 2 WHEEL_D = 20.5 +WHEEL_D_FDM = WHEEL_D - FDM_MARGIN -REEL_D0 = WHEEL_D - TIRE_W +REEL_D0 = WHEEL_D_FDM - TIRE_W REEL_H0 = 8 PINION_D = 6.70 +PINION_D_FDM = PINION_D + FDM_MARGIN # Rim body rim = cadquery.Workplane('XY')\ .circle(radius=REEL_D0/2.).extrude(distance=REEL_H0)\ .faces('>Z').workplane()\ - .hole(diameter=PINION_D) \ No newline at end of file + .hole(diameter=PINION_D_FDM) + +show(rim) \ No newline at end of file From 0288167db82a5f4b8b82197229570d813a4f55cc Mon Sep 17 00:00:00 2001 From: claraC Date: Sun, 24 Feb 2019 21:13:05 +0100 Subject: [PATCH 3/6] Include 3d mount design --- 3d/mount.py | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 3d/mount.py diff --git a/3d/mount.py b/3d/mount.py new file mode 100644 index 0000000..e45e2e9 --- /dev/null +++ b/3d/mount.py @@ -0,0 +1,76 @@ +""" +This script defines the mount for the wheels and motor. +""" +from math import asin +from math import cos +from math import sin +from math import radians + +import cadquery +from Helpers import show + + +def circle_points(number, circle, shift=0): + radius = circle / 2. + step = 360 / number + points = [(radius * sin(radians(i * step + shift)), + radius * cos(radians(i * step + shift))) + for i in range(number)] + return points + + +# Gears +MODULE = 0.3 +Z_PINION = 18 +Z_GEAR = 60 +GEARS_MARGIN = 0.1 + +# Motor +MOTOR_SHIFT = 1.25 +MOTOR_DIAMETER = 17 +MOTOR_HOLE_DIAMETER = 6.3 +MOTOR_MOUNT_THICK = 2 +MOUNT_MINIHOLES_CIRCLE = 10 +MOUNT_MINIHOLES_DIAMETER = 1.7 + +# Mount +MOUNT_THICK = 5 +MOUNT_HEIGHT = MOTOR_DIAMETER +MOUNT_WIDTH = 40 +MOUNT_FILLET = 1 + +# Holes +SCREW_SPACE = 34 +SCREW_DIAMETER = 2 +AXIS_DIAMETER = 2 + + +# Basic mount structure +mount = cadquery.Workplane('XY').box(MOUNT_WIDTH, MOUNT_HEIGHT, MOUNT_THICK) + +# Base screws +mount = mount.faces('Z').workplane().cboreHole( + MOTOR_HOLE_DIAMETER, + MOTOR_DIAMETER + 1, + MOUNT_THICK - MOTOR_MOUNT_THICK) + +# Axis +axis_shift = (MODULE * (Z_PINION + Z_GEAR)) / 2. + GEARS_MARGIN +axis_shift *= cos(asin(MOTOR_SHIFT / axis_shift)) +mount = mount.faces(' Date: Sat, 6 Apr 2019 13:28:28 +0200 Subject: [PATCH 4/6] fixup! Include 3d mount design --- 3d/mount.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3d/mount.py b/3d/mount.py index e45e2e9..023a756 100644 --- a/3d/mount.py +++ b/3d/mount.py @@ -73,4 +73,4 @@ def circle_points(number, circle, shift=0): # Fillet mount = mount.edges('|Z').fillet(MOUNT_FILLET) -show(mount) \ No newline at end of file +show(mount) From 70f4e9b22216ff3060ce5249c5d5b3f6b4b410f9 Mon Sep 17 00:00:00 2001 From: claraC Date: Sat, 6 Apr 2019 13:38:14 +0200 Subject: [PATCH 5/6] fixup! Include 3d rim design --- 3d/rim.py | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/3d/rim.py b/3d/rim.py index 9a8fa25..6513b52 100644 --- a/3d/rim.py +++ b/3d/rim.py @@ -1,30 +1,25 @@ """ This script defines the rim body. """ -from math import cos -from math import sin -from math import radians - import cadquery from Helpers import show FDM_MARGIN = 0.1 - -TIRE_W = 2.5 * 2 +REEL_H0 = 8 +TIRE_W = 2.5 WHEEL_D = 20.5 -WHEEL_D_FDM = WHEEL_D - FDM_MARGIN +PINION_D = 6.70 -REEL_D0 = WHEEL_D_FDM - TIRE_W -REEL_H0 = 8 +OUTER_D = WHEEL_D - TIRE_W * 2 - FDM_MARGIN PINION_D = 6.70 -PINION_D_FDM = PINION_D + FDM_MARGIN +INNER_D = PINION_D + FDM_MARGIN # Rim body rim = cadquery.Workplane('XY')\ - .circle(radius=REEL_D0/2.).extrude(distance=REEL_H0)\ + .circle(radius=OUTER_D/2.).extrude(distance=REEL_H0)\ .faces('>Z').workplane()\ - .hole(diameter=PINION_D_FDM) + .hole(diameter=INNER_D) -show(rim) \ No newline at end of file +show(rim) From 4befe365ff9828712287222921ef8c4fdc5874fc Mon Sep 17 00:00:00 2001 From: claraC Date: Sun, 7 Apr 2019 18:57:18 +0200 Subject: [PATCH 6/6] Include new LEDs holder --- 3d/leds_holder.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 3d/leds_holder.py diff --git a/3d/leds_holder.py b/3d/leds_holder.py new file mode 100644 index 0000000..e1e2f58 --- /dev/null +++ b/3d/leds_holder.py @@ -0,0 +1,29 @@ +""" +This script defines the LEDS holder +""" +import cadquery +from Helpers import show + +HOLDER_X = 14 +HOLDER_Y = 8 +HOLDER_Z = 8 + +LED_D = 6.1 +LED_POS_X = -2.5 +SENSOR_D = 4.1 +SENSOR_POS_X = 3.5 + +LINK_X = 1 +LINK_Y = 1 + +LINK_POS_X = HOLDER_X/2 + LINK_X/2 + 0.5 + +# LEDs holder body +leds = cadquery.Workplane('XY')\ + .rect(HOLDER_X, HOLDER_Y)\ + .center(LED_POS_X,0).circle(LED_D/2).center(-LED_POS_X,0)\ + .center(SENSOR_POS_X,0).circle(SENSOR_D/2).center(-SENSOR_POS_X,0)\ + .center(LINK_POS_X,0).rect(LINK_X, LINK_Y)\ + .extrude(HOLDER_Z) + +show(leds)