From 9cd500e3d33998b9c8437a337b5adb3fb29a7fbd Mon Sep 17 00:00:00 2001 From: Reed Krantz Date: Mon, 20 Jul 2026 22:53:06 -0500 Subject: [PATCH] feat: angle the track on the drive_shaft_mount to make it more printable --- cad/build.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cad/build.py b/cad/build.py index 851991c..cbf25a1 100644 --- a/cad/build.py +++ b/cad/build.py @@ -1,4 +1,5 @@ # pyright: reportUnusedCallResult=false, reportWildcardImportFromLibrary=false +from math import radians, sin from build123d import * def build_drive_shaft_mount(): @@ -20,7 +21,7 @@ def build_drive_shaft_mount(): screw_body_diameter = 5 track_width = 6.2 - track_height = 1.8 + track_height = 1.7 assert (bearing_offset - bearing_diameter / 2) > 0 assert (core_width - bearing_diameter) > 0 @@ -82,7 +83,10 @@ def build_drive_shaft_mount(): Triangle(A=90, b=1, c=1) extrude(amount=-((thickness / 2) + (bearing_height / 2)), mode=Mode.SUBTRACT) - Box(core_width + (screw_blocks_width * 2), track_width, track_height, (90, 0, 0), (Align.CENTER, Align.CENTER, Align.MIN)) + with BuildPart() as track: + angle = 30 + Box(core_width + (screw_blocks_width * 2), track_width + ((sin(radians(angle))/sin(radians(90-angle))) * track_height * 2) - 0.1, track_height, (90, 0, 0), (Align.CENTER, Align.CENTER, Align.MIN)) + chamfer(track.edges().filter_by(Axis.X).sort_by(Axis.Y)[:2], track_height - 0.01, angle=angle) with Locations(drive_shaft_mount.faces().filter_by(Plane.XZ).sort_by(Axis.Y)[-2:]): CounterBoreHole(screw_body_diameter / 2, screw_head_diameter / 2, screw_head_depth)