Turning bar
This commit is contained in:
parent
0f151bd279
commit
2d6d65235d
|
@ -267,6 +267,9 @@ class Onbashira(Model):
|
||||||
flange_coupler: FlangeCoupler = FlangeCoupler()
|
flange_coupler: FlangeCoupler = FlangeCoupler()
|
||||||
auxiliary_thickness: float = 25.4 / 8
|
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_side: Material = Material.WOOD_BIRCH
|
||||||
material_bearing: Material = Material.PLASTIC_PLA
|
material_bearing: Material = Material.PLASTIC_PLA
|
||||||
material_spacer: Material = Material.PLASTIC_PLA
|
material_spacer: Material = Material.PLASTIC_PLA
|
||||||
|
@ -821,6 +824,85 @@ class Onbashira(Model):
|
||||||
)
|
)
|
||||||
return a
|
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(
|
def profile_side_panel(
|
||||||
self,
|
self,
|
||||||
|
@ -1645,6 +1727,17 @@ class Onbashira(Model):
|
||||||
)
|
)
|
||||||
.add(self.assembly_motor(), name="motor")
|
.add(self.assembly_motor(), name="motor")
|
||||||
.add(self.assembly_machine(), name="machine")
|
.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
|
# Add handle
|
||||||
for ih, (x, y) in enumerate(self.angle_joint_bolt_position):
|
for ih, (x, y) in enumerate(self.angle_joint_bolt_position):
|
||||||
|
|
Loading…
Reference in New Issue