cosplay: Touhou/Houjuu Nue #4
|
@ -44,20 +44,24 @@ class Mannequin:
|
||||||
)
|
)
|
||||||
return result.translate((0, self.torso_thickness / 2, 0))
|
return result.translate((0, self.torso_thickness / 2, 0))
|
||||||
|
|
||||||
|
|
||||||
|
BASE_POS_X = 60.0
|
||||||
|
BASE_POS_Y = 100.0
|
||||||
|
|
||||||
@dataclass(kw_only=True)
|
@dataclass(kw_only=True)
|
||||||
class Harness(Model):
|
class Harness(Model):
|
||||||
thickness: float = 25.4 / 8
|
thickness: float = 25.4 / 8
|
||||||
width: float = 200.0
|
width: float = 220.0
|
||||||
height: float = 300.0
|
height: float = 310.0
|
||||||
fillet: float = 10.0
|
fillet: float = 10.0
|
||||||
|
|
||||||
wing_base_pos: list[tuple[str, float, float]] = field(default_factory=lambda: [
|
wing_base_pos: list[tuple[str, float, float]] = field(default_factory=lambda: [
|
||||||
("r1", 55, 90),
|
("r1", BASE_POS_X + 10, BASE_POS_Y),
|
||||||
("l1", -55, 90),
|
("l1", -BASE_POS_X - 10, BASE_POS_Y),
|
||||||
("r2", 60, 0),
|
("r2", BASE_POS_X + 10, 0),
|
||||||
("l2", -60, 0),
|
("l2", -BASE_POS_X - 10, 0),
|
||||||
("r3", 55, -90),
|
("r3", BASE_POS_X, -BASE_POS_Y),
|
||||||
("l3", -55, -90),
|
("l3", -BASE_POS_X, -BASE_POS_Y),
|
||||||
])
|
])
|
||||||
# Holes drilled onto harness for attachment with HS joint
|
# Holes drilled onto harness for attachment with HS joint
|
||||||
harness_to_root_conn_diam: float = 6
|
harness_to_root_conn_diam: float = 6
|
||||||
|
|
Loading…
Reference in New Issue