Add z stepper mount and holes in z bracket

This commit is contained in:
Kelvin Ly 2025-03-24 21:32:51 -04:00
parent e0debae8ce
commit c4f687ea99
2 changed files with 110 additions and 7 deletions

115
gantry.py
View File

@ -402,7 +402,10 @@ class Carriage:
.center(-x - HGR20.L - x_carriage_spacing / 2, -x_rail_spacing / 2)
.transformed(rotate=(180, 0, 0))
.rect(60, 60)
.extrude(64)
.extrude(64 - 8)
.faces(">z")
.rect(60, 32)
.extrude(8)
)
self.x_nut_mount = gantry.ball_screw_model.nutHoles(
self.x_nut_mount, x + carriage_w / 2
@ -418,7 +421,7 @@ class Carriage:
s.copyWorkplane(back)
.center(-x - HGR20.L - x_carriage_spacing / 2, -x_rail_spacing / 2)
.transformed(rotate=(0 if forward else 180, 0, 0))
.rect(44, 44)
.rect(48, 48)
.vertices()
.hole(5)
)
@ -508,7 +511,7 @@ class Carrier:
angle_z = 0.188 * 25.4
angle_w = 2.0 * 25.4
self.stepper_mount = (
self.stepper_bracket = (
cq.Workplane()
.copyWorkplane(self.plane)
.transformed(offset=(-200 / 2, z_rail_len / 2, 0), rotate=(0, 90, 0))
@ -520,10 +523,106 @@ class Carrier:
.finalize()
.extrude(200)
)
self.stepper_bracket = carriage.left_rail.holes(self.stepper_bracket)
self.stepper_bracket = carriage.right_rail.holes(self.stepper_bracket)
self.stepper_bracket = (
self.stepper_bracket.copyWorkplane(
self.ballscrew_model.w.transformed(rotate=(90, 0, 0))
).hole(32)
# .copyWorkplane(self.ballscrew_model.w.transformed(rotate=(90, 0, 0)))
# .pushPoints([(40, 0)])
# .hole(5)
)
self.stepper_bracket = self.ballscrew_model.fixedBearingHoles(
self.stepper_bracket
)
offset = (
self.ballscrew_model.w.vertices().val()
- self.plane.transformed(
offset=(0, z_rail_len / 2 + 10, 0), rotate=(-90, 0, 0)
)
.vertices()
.val()
)
# print("offset: ", offset)
self.stepper_mount = (
cq.Workplane()
.copyWorkplane(
self.plane.transformed(
offset=(0, z_rail_len / 2 + 10, 0), rotate=(-90, 0, 0)
)
)
.tag("flange_center")
.rect(100, 50)
.extrude(5)
.workplaneFromTagged("flange_center")
.transformed(rotate=(180, 0, 0))
.rect(90, 25, forConstruction=True)
.vertices()
.hole(5)
.copyWorkplane(
self.plane.transformed(
offset=(0, z_rail_len / 2 + 10, 0), rotate=(-90, 0, 0)
).transformed(offset=(0, -offset.y, 0), rotate=(0, 0, 30))
)
.tag("stepper_center")
.rect(58.4, 58.4)
.extrude(5)
.workplaneFromTagged("stepper_center")
.transformed(rotate=(180, 0, 0))
.rect(47.41, 47.41, forConstruction=True)
.vertices()
.hole(5)
.copyWorkplane(self.ballscrew_model.w.transformed(rotate=(90, 0, 0)))
.hole(40)
)
self.stepper_bracket = (
self.stepper_bracket.copyWorkplane(
self.stepper_mount.workplaneFromTagged("stepper_center")
)
.rect(47.41, 47.41, forConstruction=True)
.vertices()
.hole(5)
.copyWorkplane(self.stepper_mount.workplaneFromTagged("flange_center"))
.transformed(rotate=(0, 0, 0))
.rect(90, 25, forConstruction=True)
.vertices()
.hole(5)
)
self.stepper_lower_spacer = (
cq.Workplane()
.copyWorkplane(self.fixed_bearing.workplaneFromTagged("mounting face"))
.rect(60, 40)
.extrude(16)
.copyWorkplane(self.ballscrew_model.w.transformed(rotate=(90, 0, 0)))
.rect(36, 36)
.cutThruAll()
)
self.stepper_lower_spacer = self.ballscrew_model.fixedBearingHoles(
self.stepper_lower_spacer
)
self.stepper_mount = self.ballscrew_model.fixedBearingHoles(self.stepper_mount)
def bracket_mounting_holes(s):
points = [
(x, y)
for x in [-93, -83, 93, 83]
for y in [-z_ballscrew_len / 2 + 30, -z_ballscrew_len / 2 + 10]
]
return (
s.copyWorkplane(self.plane.transformed(rotate=(180, 0, 0)))
.pushPoints(points)
.hole(5)
)
self.plate = bracket_mounting_holes(self.plate)
self.stepper_bracket = bracket_mounting_holes(self.stepper_bracket)
ballscrew_offset = z_ballscrew_len / 2 + carriage.z / 2 - z
carriage.z_nut = self.ballscrew_model.nut(ballscrew_offset)
# TODO add carriage nut mount to carriage
carriage.z_nut_mount = (
cq.Workplane()
.copyWorkplane(carriage.plate.workplaneFromTagged("carriage_plate"))
@ -538,7 +637,7 @@ class Carrier:
)
)
.rect(
44, 44
48, 48
) # mounting holes; these need to line up with the x nut mounting holes
.vertices()
.hole(5)
@ -561,8 +660,10 @@ class Carrier:
.add(self.plate, name="z plate")
.add(self.ballscrew, name="z ballscrew")
.add(self.fixed_bearing, name="z fixed bearing")
.add(self.floating_bearing, name="z floating bearing")
.add(self.stepper_mount, name="stepper motor-ballscrew mount")
# .add(self.floating_bearing, name="z floating bearing")
.add(self.stepper_bracket, name="stepper motor-ballscrew bracket")
.add(self.stepper_lower_spacer, name="stepper motor lower spacer")
.add(self.stepper_mount, name="stepper mount")
)

View File

@ -104,6 +104,8 @@ class SFU1204:
.copyWorkplane(w2)
.rect(B, H1)
.extrude(L)
.copyWorkplane(w2.transformed(offset=(0, 0, L)))
.tag("mounting face")
.copyWorkplane(w.transformed(rotate=(180, 0, 0)))
.hole(d1)
.copyWorkplane(w3.transformed(rotate=(180, 0, 0)))