Turning bar

This commit is contained in:
Leni Aniva 2025-05-29 17:24:06 -07:00
parent 0f151bd279
commit 2d6d65235d
Signed by: aniva
GPG Key ID: D5F96287843E8DFB
1 changed files with 93 additions and 0 deletions

View File

@ -267,6 +267,9 @@ class Onbashira(Model):
flange_coupler: FlangeCoupler = FlangeCoupler()
auxiliary_thickness: float = 25.4 / 8
turning_bar_width: float = 15.0
electronic_mount_dx: float = 50.0
material_side: Material = Material.WOOD_BIRCH
material_bearing: Material = Material.PLASTIC_PLA
material_spacer: Material = Material.PLASTIC_PLA
@ -821,6 +824,85 @@ class Onbashira(Model):
)
return a
@target(name="turning-bar")
def turning_bar(self) -> Cq.Workplane:
"""
Converts the longitudinal/axial mount points on angle joints to
transverse mount points to make them more suitable for electronics.
"""
_, dx = self.angle_joint_bind_pos.to2d_pos()
t = 8
w = self.turning_bar_width
result = (
Cq.Workplane()
.box(
length=dx*2 + w,
width=w,
height=t,
centered=(True, True, False)
)
)
flange = Cq.Solid.makeBox(
length=w,
width=t,
height=w/2,
).moved(-w/2, -t, -w/2) + Cq.Solid.makeCylinder(
radius=w/2,
height=t,
pnt=(0, -t, -w/2),
dir=(0, 1, 0),
)
remover = Cq.Solid.makeCylinder(
radius=BOLT_COMMON.diam_thread/2,
height=w,
)
removerf = Cq.Solid.makeCylinder(
radius=BOLT_COMMON.diam_thread/2,
height=w*2,
pnt=(0, -w, -w/2),
dir=(0, 1, 0),
)
dxe = self.electronic_mount_dx
result = (
result
+ flange.moved(dx, w/2, 0)
+ flange.moved(-dx, w/2, 0)
- remover.moved(dxe, 0, 0)
- remover.moved(-dxe, 0, 0)
- removerf.moved(dx, 0, 0)
- removerf.moved(-dx, 0, 0)
)
result.tagAbsolute("holeBO1", (dx, w/2, -w/2), direction="+Y")
result.tagAbsolute("holeBO2", (-dx, w/2, -w/2), direction="+Y")
result.tagAbsolute("holeMO1", (dxe, 0, t))
result.tagAbsolute("holeMO2", (-dxe, 0, t))
return result
@target(name="raising-bar")
def raising_bar(self) -> Cq.Workplane:
"""
Create new longitudinal mount points closer to the centre axis, and a
ring for mounting lights
"""
_, dx = self.angle_joint_bind_pos.to2d_pos()
gap = 10
t1 = 5
theta = math.pi / self.n_side
r0 = self.bulk_radius
result = (
Cq.Workplane()
.sketch()
.circle(self.rotation_radius + gap)
.circle(self.rotation_radius - gap, mode="s")
.polygon([
(0, 0),
(r0 * math.cos(theta), r0 * math.sin(theta)),
(r0 * math.cos(theta), -r0 * math.sin(theta)),
], mode="i")
.finalize()
.extrude(t1)
)
return result
def profile_side_panel(
self,
@ -1645,6 +1727,17 @@ class Onbashira(Model):
)
.add(self.assembly_motor(), name="motor")
.add(self.assembly_machine(), name="machine")
.add(self.turning_bar(), name="turning_bar1")
)
a = a.constrain(
f"turning_bar1?holeBO2",
f"ring3/side0?holeStatorL",
"Plane",
)
a = a.constrain(
f"turning_bar1?holeBO1",
f"ring3/side1?holeStatorL",
"Plane",
)
# Add handle
for ih, (x, y) in enumerate(self.angle_joint_bolt_position):