diff --git a/nhf/touhou/houjuu_nue/wing.py b/nhf/touhou/houjuu_nue/wing.py index d74b2ba..2ba73e9 100644 --- a/nhf/touhou/houjuu_nue/wing.py +++ b/nhf/touhou/houjuu_nue/wing.py @@ -62,6 +62,8 @@ class WingProfile(Model): radius_disk=13.0, radius_housing=15.0, ), + child_arm_radius=20.0, + parent_arm_radius=30.0, )) # Distance between the two spacers on the elbow, halved wrist_h2: float = 5.0 @@ -464,7 +466,8 @@ class WingProfile(Model): ] profile = self.profile_s1() tags = tags_shoulder + tags_elbow - return nhf.utils.extrude_with_markers(profile, self.panel_thickness, tags, reverse=front) + return nhf.utils.extrude_with_markers( + profile, self.panel_thickness, tags, reverse=front) @submodel(name="spacer-s1-shoulder") def spacer_s1_shoulder(self) -> MountingBox: holes = [ @@ -505,7 +508,7 @@ class WingProfile(Model): result, o, point_tag=t, - flipped=is_top != True #is_parent, + flipped=not is_top, ) return result.solve() @@ -527,10 +530,10 @@ class WingProfile(Model): tags_elbow = [ ("elbow_bot", self.elbow_to_abs(elbow_mount_inset, h - self.elbow_h2), - self.elbow_angle), + self.elbow_angle + 180), ("elbow_top", self.elbow_to_abs(elbow_mount_inset, h + self.elbow_h2), - self.elbow_angle), + self.elbow_angle + 180), ] h = self.wrist_height / 2 tags_wrist = [ @@ -578,8 +581,8 @@ class WingProfile(Model): result, o.generate(), point_tag=t, - flipped=is_top,# != is_parent, - rotate=is_parent, + flipped=is_top == is_parent, + #rotate=True, ) return result.solve() @@ -598,10 +601,10 @@ class WingProfile(Model): tags = [ ("wrist_bot", self.wrist_to_abs(wrist_mount_inset, h - self.wrist_h2), - self.wrist_angle), + self.wrist_angle + 180), ("wrist_top", self.wrist_to_abs(wrist_mount_inset, h + self.wrist_h2), - self.wrist_angle), + self.wrist_angle + 180), ] profile = self.profile_s3() return nhf.utils.extrude_with_markers(profile, self.panel_thickness, tags, reverse=front) @@ -632,7 +635,8 @@ class WingProfile(Model): result, o.generate(), point_tag=t, - flipped=is_top != is_parent, + flipped=is_top,# != is_parent, + #rotate=True, ) return result.solve() @@ -698,20 +702,20 @@ class WingProfile(Model): # Mounted backwards to bend in other direction ( result - .constrain("s2/wrist_top?conn0", "wrist/parent_upper/bot?conn0", "Plane") - .constrain("s2/wrist_top?conn1", "wrist/parent_upper/bot?conn1", "Plane") - .constrain("s2/wrist_bot?conn0", "wrist/parent_upper/top?conn0", "Plane") - .constrain("s2/wrist_bot?conn1", "wrist/parent_upper/top?conn1", "Plane") + .constrain("s2/wrist_top?conn0", "wrist/parent_upper/lip?conn_bot0", "Plane") + .constrain("s2/wrist_top?conn1", "wrist/parent_upper/lip?conn_bot1", "Plane") + .constrain("s2/wrist_bot?conn0", "wrist/parent_upper/lip?conn_top0", "Plane") + .constrain("s2/wrist_bot?conn1", "wrist/parent_upper/lip?conn_top1", "Plane") ) if "s3" in parts: result.add(self.assembly_s3(), name="s3") if "s3" in parts and "wrist" in parts: ( result - .constrain("s3/wrist_top?conn0", "wrist/child/bot?conn0", "Plane") - .constrain("s3/wrist_top?conn1", "wrist/child/bot?conn1", "Plane") - .constrain("s3/wrist_bot?conn0", "wrist/child/top?conn0", "Plane") - .constrain("s3/wrist_bot?conn1", "wrist/child/top?conn1", "Plane") + .constrain("s3/wrist_top?conn0", "wrist/child/lip?conn_bot0", "Plane") + .constrain("s3/wrist_top?conn1", "wrist/child/lip?conn_bot1", "Plane") + .constrain("s3/wrist_bot?conn0", "wrist/child/lip?conn_top0", "Plane") + .constrain("s3/wrist_bot?conn1", "wrist/child/lip?conn_top1", "Plane") ) if len(parts) > 1: result.solve() @@ -970,6 +974,6 @@ class WingL(WingProfile): (self.elbow_x, self.wrist_y), (self.wrist_x, self.wrist_y), (self.wrist_top_x, self.wrist_top_y), - (self.elbow_x, self.elbow_top_y + 50), + (self.elbow_x, self.elbow_top_y + l), (0, l), ]