Compare commits
4
Commits
a669f5815f
...
1761e56e1a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1761e56e1a
|
||
|
|
2bc95a9dd5
|
||
|
|
32db86d3cf
|
||
|
|
bb7d3eaeae
|
+77
-25
@@ -1,34 +1,35 @@
|
|||||||
# pyright: reportUnusedCallResult=false, reportWildcardImportFromLibrary=false
|
# pyright: reportUnusedCallResult=false, reportWildcardImportFromLibrary=false
|
||||||
from build123d import *
|
from build123d import *
|
||||||
|
|
||||||
bearing_offset = 20
|
def build_drive_shaft_mount():
|
||||||
bearing_diameter = 22
|
bearing_offset = 20
|
||||||
bearing_through_hole_diameter = 15
|
bearing_diameter = 22
|
||||||
bearing_height = 7
|
bearing_through_hole_diameter = 15
|
||||||
shaft_clearance_diameter = 25
|
bearing_height = 7
|
||||||
|
shaft_clearance_diameter = 25
|
||||||
|
|
||||||
core_width = 40
|
core_width = 40
|
||||||
thickness = 20
|
thickness = 20
|
||||||
|
|
||||||
screw_blocks_width = thickness
|
screw_blocks_width = thickness
|
||||||
screw_blocks_height = bearing_offset
|
screw_blocks_height = bearing_offset
|
||||||
screw_blocks_radius = 3
|
screw_blocks_radius = 3
|
||||||
|
|
||||||
screw_head_diameter = 8.5
|
screw_head_diameter = 8.5
|
||||||
screw_head_depth = 5
|
screw_head_depth = 5
|
||||||
screw_body_diameter = 5
|
screw_body_diameter = 5
|
||||||
|
|
||||||
track_width = 6.2
|
track_width = 6.2
|
||||||
track_height = 1.8
|
track_height = 1.8
|
||||||
|
|
||||||
assert (bearing_offset - bearing_diameter / 2) > 0
|
assert (bearing_offset - bearing_diameter / 2) > 0
|
||||||
assert (core_width - bearing_diameter) > 0
|
assert (core_width - bearing_diameter) > 0
|
||||||
assert (screw_blocks_width - (screw_blocks_radius * 2)) >= 0
|
assert (screw_blocks_width - (screw_blocks_radius * 2)) >= 0
|
||||||
assert (bearing_offset - screw_blocks_height) >= 0
|
assert (bearing_offset - screw_blocks_height) >= 0
|
||||||
|
|
||||||
|
|
||||||
with BuildPart() as builder:
|
with BuildPart() as drive_shaft_mount:
|
||||||
with BuildSketch() as sketch:
|
with BuildSketch():
|
||||||
with BuildLine() as profile:
|
with BuildLine() as profile:
|
||||||
l1 = Line(
|
l1 = Line(
|
||||||
(0,0),
|
(0,0),
|
||||||
@@ -73,14 +74,65 @@ with BuildPart() as builder:
|
|||||||
extrude(amount=thickness / 2)
|
extrude(amount=thickness / 2)
|
||||||
mirror(about=Plane.XY)
|
mirror(about=Plane.XY)
|
||||||
|
|
||||||
with Locations((0, bearing_offset, builder.faces().sort_by(Axis.Z)[-1].center().Z)):
|
with Locations((0, bearing_offset, drive_shaft_mount.faces().sort_by(Axis.Z)[-1].center().Z)):
|
||||||
Hole(bearing_diameter / 2, (thickness / 2) + (bearing_height / 2))
|
Hole(bearing_diameter / 2, (thickness / 2) + (bearing_height / 2))
|
||||||
Hole(shaft_clearance_diameter / 2, (thickness / 2) - (bearing_height / 2))
|
Hole(shaft_clearance_diameter / 2, (thickness / 2) - (bearing_height / 2))
|
||||||
|
|
||||||
Box(core_width + (screw_blocks_width * 2), track_width, track_height, (90, 0, 0), (Align.CENTER, Align.CENTER, Align.MIN))
|
Box(core_width + (screw_blocks_width * 2), track_width, track_height, (90, 0, 0), (Align.CENTER, Align.CENTER, Align.MIN))
|
||||||
|
|
||||||
with Locations(builder.faces().filter_by(Plane.XZ).sort_by(Axis.Y)[-2:]):
|
with Locations(drive_shaft_mount.faces().filter_by(Plane.XZ).sort_by(Axis.Y)[-2:]):
|
||||||
CounterBoreHole(screw_body_diameter / 2, screw_head_diameter / 2, screw_head_depth)
|
CounterBoreHole(screw_body_diameter / 2, screw_head_diameter / 2, screw_head_depth)
|
||||||
|
|
||||||
assert builder.part is not None
|
return drive_shaft_mount
|
||||||
export_step(builder.part, "drive shaft mount.step")
|
|
||||||
|
def build_drive_shaft_bar_adapter():
|
||||||
|
ext_size = 20
|
||||||
|
|
||||||
|
height = 60
|
||||||
|
thickness = 10
|
||||||
|
|
||||||
|
ext_screw_hole_diam = 6
|
||||||
|
ext_screw_hole_offset = 10
|
||||||
|
|
||||||
|
shaft_hub_bore_diam = 8
|
||||||
|
shaft_hub_center_diam = 14
|
||||||
|
shaft_hub_center_depth = 2
|
||||||
|
# if you where to draw a square around the center of the shaft hub this var is the length of the sides and each corner is the center of a screw hole
|
||||||
|
shaft_hub_screw_spacing = 16
|
||||||
|
shaft_hub_screw_diam = 4
|
||||||
|
# the depth of the screw holes into the shaft hub
|
||||||
|
shaft_hub_screw_depth = 8
|
||||||
|
shaft_hub_screw_head_depth = 4
|
||||||
|
shaft_hub_screw_head_diam = 7
|
||||||
|
|
||||||
|
with BuildPart() as drive_shaft_bar_adapter:
|
||||||
|
Box(ext_size + (thickness * 2), ext_size + (thickness * 2), height, align=(Align.CENTER, Align.CENTER, Align.MIN))
|
||||||
|
|
||||||
|
# hollow the box
|
||||||
|
with Locations((0, 0, thickness)):
|
||||||
|
Box(ext_size, ext_size, height - thickness, align=(Align.CENTER, Align.CENTER, Align.MIN), mode=Mode.SUBTRACT)
|
||||||
|
|
||||||
|
# extrusion screw holes
|
||||||
|
with Locations((0, 0, height - ext_screw_hole_offset)):
|
||||||
|
with PolarLocations(4, 4):
|
||||||
|
with Locations(Rotation(0, 90, 0)):
|
||||||
|
Hole(ext_screw_hole_diam / 2)
|
||||||
|
|
||||||
|
# shaft interface
|
||||||
|
with Locations(drive_shaft_bar_adapter.faces().filter_by(Plane.XY).sort_by(Axis.Z)[1].offset(shaft_hub_screw_head_depth)):
|
||||||
|
l = shaft_hub_screw_spacing / 2
|
||||||
|
with Locations((-l, -l), (-l, l), (l, -l), (l, l)):
|
||||||
|
CounterBoreHole(shaft_hub_screw_diam / 2, shaft_hub_screw_head_diam / 2, shaft_hub_screw_head_depth, thickness + shaft_hub_screw_depth)
|
||||||
|
with Locations(drive_shaft_bar_adapter.faces().sort_by(Axis.Z)[0].center()):
|
||||||
|
Hole(shaft_hub_bore_diam / 2)
|
||||||
|
Hole(shaft_hub_center_diam / 2, shaft_hub_center_depth)
|
||||||
|
|
||||||
|
return drive_shaft_bar_adapter
|
||||||
|
|
||||||
|
drive_shaft_mount = build_drive_shaft_mount()
|
||||||
|
assert drive_shaft_mount.part is not None
|
||||||
|
export_step(drive_shaft_mount.part, "drive shaft mount.step")
|
||||||
|
|
||||||
|
drive_shaft_bar_adapter = build_drive_shaft_bar_adapter()
|
||||||
|
assert drive_shaft_bar_adapter.part is not None
|
||||||
|
export_step(drive_shaft_bar_adapter.part, "drive shaft bar adapter.step")
|
||||||
|
|||||||
Reference in New Issue
Block a user