Compare commits

..
4 Commits
+13 -6
View File
@@ -1,6 +1,5 @@
# pyright: reportUnusedCallResult=false, reportWildcardImportFromLibrary=false # pyright: reportUnusedCallResult=false, reportWildcardImportFromLibrary=false, reportUnknownMemberType=false
from build123d import * from build123d import *
from svgpathtools.path import transform
def build_mop_scraper_holder(center_thickness: float): def build_mop_scraper_holder(center_thickness: float):
mop_diameter = 23.4 mop_diameter = 23.4
@@ -111,16 +110,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 +134,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