cosplay: Touhou/Houjuu Nue #4
|
@ -415,6 +415,36 @@ class WingProfile:
|
|||
.polygon(self._mask_elbow(), mode='s')
|
||||
)
|
||||
return profile
|
||||
def surface_s2(self,
|
||||
thickness: float = 25.4/16,
|
||||
elbow_mount_inset: float = 20,
|
||||
elbow_joint_child_height: float = 80,
|
||||
wrist_mount_inset: float = 20,
|
||||
wrist_joint_parent_height: float = 60,
|
||||
front: bool = True) -> Cq.Workplane:
|
||||
assert elbow_joint_child_height < self.elbow_height
|
||||
h = (self.elbow_height - elbow_joint_child_height) / 2
|
||||
tags_elbow = [
|
||||
("elbow_bot",
|
||||
self.elbow_to_abs(elbow_mount_inset, h),
|
||||
self.elbow_angle + 90),
|
||||
("elbow_top",
|
||||
self.elbow_to_abs(elbow_mount_inset, h + elbow_joint_child_height),
|
||||
self.elbow_angle + 270),
|
||||
]
|
||||
h = (self.wrist_height - wrist_joint_parent_height) / 2
|
||||
tags_wrist = [
|
||||
("wrist_bot",
|
||||
self.wrist_to_abs(-wrist_mount_inset, h),
|
||||
self.wrist_angle + 90),
|
||||
("wrist_top",
|
||||
self.wrist_to_abs(-wrist_mount_inset, h + wrist_joint_parent_height),
|
||||
self.wrist_angle + 270),
|
||||
]
|
||||
profile = self.profile_s2()
|
||||
tags = tags_elbow + tags_wrist
|
||||
return nhf.utils.extrude_with_markers(profile, thickness, tags, reverse=front)
|
||||
|
||||
def profile_s3(self) -> Cq.Sketch:
|
||||
profile = (
|
||||
self.profile()
|
||||
|
@ -422,6 +452,23 @@ class WingProfile:
|
|||
.polygon(self._mask_wrist(), mode='s')
|
||||
)
|
||||
return profile
|
||||
def surface_s3(self,
|
||||
thickness: float = 25.4/16,
|
||||
wrist_mount_inset: float = 20,
|
||||
wrist_joint_child_height: float = 80,
|
||||
front: bool = True) -> Cq.Workplane:
|
||||
assert wrist_joint_child_height < self.wrist_height
|
||||
h = (self.wrist_height - wrist_joint_child_height) / 2
|
||||
tags = [
|
||||
("wrist_bot",
|
||||
self.elbow_to_abs(wrist_mount_inset, h),
|
||||
self.elbow_angle + 90),
|
||||
("wrist_top",
|
||||
self.elbow_to_abs(wrist_mount_inset, h + wrist_joint_child_height),
|
||||
self.elbow_angle + 270),
|
||||
]
|
||||
profile = self.profile_s3()
|
||||
return nhf.utils.extrude_with_markers(profile, thickness, tags, reverse=front)
|
||||
|
||||
|
||||
def wing_r1s1_profile(self) -> Cq.Sketch:
|
||||
|
|
Loading…
Reference in New Issue