mirror of
https://github.com/gumyr/build123d.git
synced 2025-12-06 02:30:55 -08:00
52 lines
1.8 KiB
Python
52 lines
1.8 KiB
Python
"""
|
|
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)
|