cosplay: Touhou/Houjuu Nue #4

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

View File

@ -33,13 +33,7 @@ WRIST_PARAMS = dict(
radius_disk=13.0,
radius_housing=15.0,
),
hole_pos=[10],
lip_length=30,
child_arm_radius=23.0,
parent_arm_radius=30.0,
actuator=LINEAR_ACTUATOR_10,
flexor_offset_angle=30.0,
flexor_child_arm_radius=None,
actuator=LINEAR_ACTUATOR_21,
)
@dataclass(kw_only=True)
@ -775,7 +769,7 @@ class WingProfile(Model):
segment_thickness=self.s2_thickness,
child=True,
)
@submodel(name="spacer-s1-elbow-act")
@submodel(name="spacer-s2-elbow-act")
def spacer_s2_elbow_act(self) -> MountingBox:
return MountingBox(
length=self.s2_thickness,
@ -876,9 +870,12 @@ class WingProfile(Model):
return profile
def surface_s3(self,
front: bool = True) -> Cq.Workplane:
loc_wrist = Cq.Location.rot2d(self.wrist_rotate) * self.wrist_joint.child_arm_loc()
rot_wrist = Cq.Location.rot2d(self.wrist_rotate)
loc_wrist = rot_wrist * self.wrist_joint.child_arm_loc()
tags = [
("wrist", self.wrist_axle_loc * loc_wrist),
("wrist_act", self.wrist_axle_loc * rot_wrist *
self.wrist_joint.actuator_mount_loc(child=True)),
("wrist_bot", self.wrist_axle_loc * loc_wrist *
Cq.Location.from2d(0, self.wrist_h2)),
("wrist_top", self.wrist_axle_loc * loc_wrist *
@ -906,6 +903,17 @@ class WingProfile(Model):
segment_thickness=self.s3_thickness,
child=True,
)
@submodel(name="spacer-s3-wrist-act")
def spacer_s3_wrist_act(self) -> MountingBox:
return MountingBox(
length=self.s3_thickness,
width=self.s3_thickness,
thickness=self.spacer_thickness,
holes=[Hole(x=0,y=0)],
centred=(True, True),
hole_diam=self.wrist_joint.hole_diam,
centre_left_right_tags=True,
)
@assembly()
def assembly_s3(self) -> Cq.Assembly:
result = (
@ -930,6 +938,12 @@ class WingProfile(Model):
.constrain("back?wrist_bot", "extra_back?wrist_bot", "Plane")
.constrain("back?wrist_top", "extra_back?wrist_top", "Plane")
)
self._assembly_insert_spacer(
result,
self.spacer_s3_wrist_act().generate(),
point_tag="wrist_act",
flipped=True,
)
self._assembly_insert_spacer(
result,
self.spacer_s3_wrist().generate(),
@ -1084,7 +1098,16 @@ class WingR(WingProfile):
wrist_height: float = 60.0
wrist_joint: ElbowJoint = field(default_factory=lambda: ElbowJoint(
flip=True,
angle_neutral=0.0,
angle_neutral=-20.0,
child_arm_radius=23.0,
parent_arm_radius=30.0,
flexor_offset_angle=30.0,
flexor_child_arm_radius=50.0,
flexor_mount_angle_parent=20,
flexor_mount_angle_child=-40,
hole_pos=[10, 20],
lip_length=50,
#flexor_pos_smaller=False,
**WRIST_PARAMS
))
@ -1336,6 +1359,12 @@ class WingL(WingProfile):
wrist_height: float = 43.0
wrist_joint: ElbowJoint = field(default_factory=lambda: ElbowJoint(
flip=False,
hole_pos=[10],
lip_length=30,
child_arm_radius=23.0,
parent_arm_radius=30.0,
flexor_offset_angle=30.0,
flexor_child_arm_radius=None,
**WRIST_PARAMS
))