cosplay: Touhou/Houjuu Nue #4

Open
aniva wants to merge 189 commits from touhou/houjuu-nue into main
1 changed files with 19 additions and 11 deletions
Showing only changes of commit f1f10369b4 - Show all commits

View File

@ -390,11 +390,12 @@ class ShoulderJoint(Model):
angle_neutral: float = -15.0 angle_neutral: float = -15.0
angle_max_deflection: float = 65.0 angle_max_deflection: float = 65.0
spool_radius: float = 14.0 spool_radius: float = 12.0
spool_groove_depth: float = 1.0 spool_groove_depth: float = 1.0
spool_base_height: float = 3.0 spool_base_height: float = 3.0
spool_height: float = 5.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 flip: bool = False
actuator: LinearActuator = LINEAR_ACTUATOR_21 actuator: LinearActuator = LINEAR_ACTUATOR_21
@ -554,17 +555,19 @@ class ShoulderJoint(Model):
Generates the spool piece which holds the line in tension Generates the spool piece which holds the line in tension
""" """
t = self.spool_groove_depth t = self.spool_groove_depth
bulk = Cq.Solid.makeCylinder( radius_core_inner = self.torsion_joint.radius_rider - self.child_core_thickness
radius=self.spool_radius, spindle = Cq.Solid.makeCone(
radius1=self.spool_radius,
radius2=radius_core_inner,
height=self.spool_height, 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( slot = Cq.Solid.makeBox(
length=t + self.spool_groove_inset, length=t,
width=t, width=t,
height=self.spool_base_height, height=self.spool_base_height,
).located(Cq.Location((hole_x, -t/2, 0))) ).located(Cq.Location((hole_x, -t/2, 0)))
@ -577,7 +580,7 @@ class ShoulderJoint(Model):
radius=self.torsion_joint.radius_axle, radius=self.torsion_joint.radius_axle,
height=self.spool_height + self.spool_base_height, 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") @target(name="child")
def child(self) -> Cq.Assembly: def child(self) -> Cq.Assembly:
@ -618,6 +621,11 @@ class ShoulderJoint(Model):
width=self.child_lip_width - self.child_lip_thickness * 2, width=self.child_lip_width - self.child_lip_thickness * 2,
height=self.child_lip_height, height=self.child_lip_height,
).located(Cq.Location((0, self.child_lip_thickness, 0)))) ).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(( .located(Cq.Location((
self.child_guard_ext, self.child_guard_ext,
-self.child_lip_width / 2, -self.child_lip_width / 2,