mirror of
https://github.com/gumyr/build123d.git
synced 2025-12-06 02:30:55 -08:00
52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
"""
|
|
Too Tall Toby Party Pack 01-07 Flanged Hub
|
|
"""
|
|
|
|
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
|
|
|
|
with BuildPart() as p:
|
|
with BuildSketch() as s:
|
|
Circle(130 / 2)
|
|
extrude(amount=8)
|
|
with BuildSketch(Plane.XY.offset(8)) as s2:
|
|
Circle(84 / 2)
|
|
extrude(amount=25 - 8)
|
|
with BuildSketch(Plane.XY.offset(25)) as s3:
|
|
Circle(35 / 2)
|
|
extrude(amount=52 - 25)
|
|
with BuildSketch() as s4:
|
|
Circle(73 / 2)
|
|
extrude(amount=18, mode=Mode.SUBTRACT)
|
|
pln2 = p.part.faces().sort_by(Axis.Z)[5]
|
|
with BuildSketch(Plane.XY.offset(52)) as s5:
|
|
Circle(20 / 2)
|
|
extrude(amount=-52, mode=Mode.SUBTRACT)
|
|
fillet(
|
|
p.part.edges()
|
|
.filter_by(GeomType.CIRCLE)
|
|
.sort_by(Axis.Z)[2:-2]
|
|
.sort_by(SortBy.RADIUS)[1:],
|
|
3,
|
|
)
|
|
pln = Plane(pln2)
|
|
pln.origin = pln.origin + Vector(20 / 2, 0, 0)
|
|
pln = pln.rotated((0, 45, 0))
|
|
pln = pln.offset(-25 + 3 + 0.10)
|
|
with BuildSketch(pln) as s6:
|
|
Rectangle((73 - 35) / 2 * 1.414 + 5, 3)
|
|
zz = extrude(amount=15, taper=-20 / 2, mode=Mode.PRIVATE)
|
|
zz2 = split(zz, bisect_by=Plane.XY.offset(25), mode=Mode.PRIVATE)
|
|
zz3 = split(zz2, bisect_by=Plane.YZ.offset(35 / 2 - 1), mode=Mode.PRIVATE)
|
|
with PolarLocations(0, 3):
|
|
add(zz3)
|
|
with Locations(Plane.XY.offset(8)):
|
|
with PolarLocations(107.95 / 2, 6):
|
|
CounterBoreHole(6 / 2, 13 / 2, 4)
|
|
|
|
show(p)
|
|
print(f"\npart mass = {p.part.volume*densb:0.2f}")
|