cosplay: Touhou/Houjuu Nue #4
|
@ -390,11 +390,12 @@ class ShoulderJoint(Model):
|
|||
angle_neutral: float = -15.0
|
||||
angle_max_deflection: float = 65.0
|
||||
|
||||
spool_radius: float = 14.0
|
||||
spool_radius: float = 12.0
|
||||
spool_groove_depth: float = 1.0
|
||||
spool_base_height: float = 3.0
|
||||
spool_height: float = 5.0
|
||||
spool_groove_inset: float = 2.0
|
||||
spool_cap_height: float = 1.0
|
||||
spool_groove_inset: float = 3.0
|
||||
|
||||
flip: bool = False
|
||||
actuator: LinearActuator = LINEAR_ACTUATOR_21
|
||||
|
@ -554,17 +555,19 @@ class ShoulderJoint(Model):
|
|||
Generates the spool piece which holds the line in tension
|
||||
"""
|
||||
t = self.spool_groove_depth
|
||||
bulk = Cq.Solid.makeCylinder(
|
||||
radius=self.spool_radius,
|
||||
radius_core_inner = self.torsion_joint.radius_rider - self.child_core_thickness
|
||||
spindle = Cq.Solid.makeCone(
|
||||
radius1=self.spool_radius,
|
||||
radius2=radius_core_inner,
|
||||
height=self.spool_height,
|
||||
).located(Cq.Location((0, 0, self.spool_base_height)))
|
||||
base = Cq.Solid.makeCylinder(
|
||||
radius=self.spool_radius - t,
|
||||
height=self.spool_base_height,
|
||||
)
|
||||
hole_x = self.spool_radius - (t + self.spool_groove_inset)
|
||||
cap = Cq.Solid.makeCylinder(
|
||||
radius=radius_core_inner,
|
||||
height=self.spool_cap_height
|
||||
).located(Cq.Location((0,0,self.spool_height)))
|
||||
hole_x = radius_core_inner - self.spool_groove_inset
|
||||
slot = Cq.Solid.makeBox(
|
||||
length=t + self.spool_groove_inset,
|
||||
length=t,
|
||||
width=t,
|
||||
height=self.spool_base_height,
|
||||
).located(Cq.Location((hole_x, -t/2, 0)))
|
||||
|
@ -577,7 +580,7 @@ class ShoulderJoint(Model):
|
|||
radius=self.torsion_joint.radius_axle,
|
||||
height=self.spool_height + self.spool_base_height,
|
||||
)
|
||||
return bulk.fuse(base).cut(slot, hole, centre_hole)
|
||||
return spindle.fuse(cap).cut(slot, hole, centre_hole)
|
||||
|
||||
@target(name="child")
|
||||
def child(self) -> Cq.Assembly:
|
||||
|
@ -618,6 +621,11 @@ class ShoulderJoint(Model):
|
|||
width=self.child_lip_width - self.child_lip_thickness * 2,
|
||||
height=self.child_lip_height,
|
||||
).located(Cq.Location((0, self.child_lip_thickness, 0))))
|
||||
.cut(Cq.Solid.makeBox(
|
||||
length=self.child_lip_ext - self.child_guard_ext - self.child_lip_thickness,
|
||||
width=self.child_lip_width,
|
||||
height=self.child_lip_height - self.child_lip_thickness * 2,
|
||||
).located(Cq.Location((0, 0, self.child_lip_thickness))))
|
||||
.located(Cq.Location((
|
||||
self.child_guard_ext,
|
||||
-self.child_lip_width / 2,
|
||||
|
|
Loading…
Reference in New Issue