""" Too Tall Toby Party Pack 01-06 Bearing Jig """ from build123d import * from ocp_vscode import * densa = 7800 / 1e6 # carbon steel density g/mm^3 densb = 2700 / 1e6 # aluminum alloy densc = 1020 / 1e6 # ABS r1, r2, r3, r4, r5 = 30 / 2, 13 / 2, 12 / 2, 10, 6 # radii used x1 = 44 # lengths used y1, y2, y3, y4, y_tot = 36, 36 - 22 / 2, 22 / 2, 42, 69 # widths used with BuildSketch(Location((0, -r1, y3))) as sk_body: with BuildLine() as l: c1 = Line((r1, 0), (r1, y_tot), mode=Mode.PRIVATE) # construction line m1 = Line((0, y_tot), (x1 / 2, y_tot)) m2 = JernArc(m1 @ 1, m1 % 1, r4, -90 - 45) m3 = IntersectingLine(m2 @ 1, m2 % 1, c1) m4 = Line(m3 @ 1, (r1, r1)) m5 = JernArc(m4 @ 1, m4 % 1, r1, -90) m6 = Line(m5 @ 1, m1 @ 0) mirror(make_face(l.line), Plane.YZ) fillet(sk_body.vertices().group_by(Axis.Y)[1], 12) with Locations((x1 / 2, y_tot - 10), (-x1 / 2, y_tot - 10)): Circle(r2, mode=Mode.SUBTRACT) # Keyway with Locations((0, r1)): Circle(r3, mode=Mode.SUBTRACT) Rectangle(4, 3 + 6, align=(Align.CENTER, Align.MIN), mode=Mode.SUBTRACT) with BuildPart() as p: Box(200, 200, 22) # Oversized plate # Cylinder underneath Cylinder(r1, y2, align=(Align.CENTER, Align.CENTER, Align.MAX)) fillet(p.edges(Select.NEW), r5) # Weld together extrude(sk_body.sketch, amount=-y1, mode=Mode.INTERSECT) # Cut to shape # Remove slot with Locations((0, y_tot - r1 - y4, 0)): Box( y_tot, y_tot, 10, align=(Align.CENTER, Align.MIN, Align.CENTER), mode=Mode.SUBTRACT, ) show(p) print(f"\npart mass = {p.part.volume*densa:0.2f}") print(p.part.bounding_box().size)