Compare commits

..
3 Commits
Author SHA1 Message Date
reed 3713d1583d fix: adjust the belt_width 2026-08-09 17:40:36 -05:00
reed 96756418d9 feat: add fillets to the sides and corners of the trash belt hook 2026-08-09 17:31:17 -05:00
reed 9ebbdfaf90 refactor: rename pln to hook_pln 2026-08-09 14:59:44 -05:00
+12 -4
View File
@@ -111,16 +111,18 @@ def build_mop_handle():
return mop_handle return mop_handle
def build_trash_belt_hook( def build_trash_belt_hook(
belt_width: float = 37.5, belt_width: float = 38.2,
belt_thickness: float = 6.6, belt_thickness: float = 6.6,
clip_thickness: float = 5, clip_thickness: float = 5,
hook_width: float = 40, hook_width: float = 40,
hook_side_fillet: float = .9,
hook_height: float = 9, hook_height: float = 9,
hook_thickness: float = 13.5, hook_thickness: float = 13.5,
hook_chamfer: float = 10, hook_chamfer: float = 10,
hook_belt_intersection_fillet: float = .8,
hook_tip_offset: float = 15, hook_tip_offset: float = 15,
hook_tip_thickness_p: float = 0.2, hook_tip_thickness_p: float = 0.2,
@@ -133,17 +135,23 @@ def build_trash_belt_hook(
offset(amount=-clip_thickness, mode=Mode.SUBTRACT) offset(amount=-clip_thickness, mode=Mode.SUBTRACT)
extrude(amount=hook_width / 2, both=True) extrude(amount=hook_width / 2, both=True)
pln = Plane(trash_belt_hook.faces().sort_by(Axis.Y)[-1].offset(hook_height)).rotated((-45, 0, 0)) hook_pln = Plane(trash_belt_hook.faces().sort_by(Axis.Y)[-1].offset(hook_height)).rotated((-45, 0, 0))
with BuildSketch(pln) as hook_s: with BuildSketch(hook_pln) as hook_s:
Rectangle(hook_thickness, hook_width) Rectangle(hook_thickness, hook_width)
chamfer(hook_s.vertices().group_by(Axis.X)[0], hook_chamfer) chamfer(hook_s.vertices().group_by(Axis.X)[0], hook_chamfer)
extrude(until=Until.PREVIOUS) extrude(until=Until.PREVIOUS)
with BuildSketch(pln.offset(hook_tip_offset)) as hook_tip: outside_face = trash_belt_hook.faces().group_by(Axis.Y)[-5]
fillet(outside_face.edges().sort_by(Axis.X)[1:-1], hook_belt_intersection_fillet)
with BuildSketch(hook_pln.offset(hook_tip_offset)) as hook_tip:
Rectangle(hook_thickness * hook_tip_thickness_p, hook_width * hook_tip_width_p) Rectangle(hook_thickness * hook_tip_thickness_p, hook_width * hook_tip_width_p)
chamfer(hook_tip.vertices().group_by(Axis.X)[0], hook_chamfer * hook_tip_thickness_p) chamfer(hook_tip.vertices().group_by(Axis.X)[0], hook_chamfer * hook_tip_thickness_p)
loft([hook_s.sketch, hook_tip.sketch]) loft([hook_s.sketch, hook_tip.sketch])
fillet(trash_belt_hook.edges().group_by(Axis.X)[0], hook_side_fillet)
fillet(trash_belt_hook.edges().group_by(Axis.X)[-1], hook_side_fillet)
return trash_belt_hook return trash_belt_hook