fix: Use two sets of handles

This commit is contained in:
Leni Aniva 2025-07-04 19:37:00 -07:00
parent 4f48955c81
commit c3f9d5a3be
Signed by: aniva
GPG Key ID: D5F96287843E8DFB
1 changed files with 75 additions and 37 deletions

View File

@ -2102,7 +2102,7 @@ class Onbashira(Model):
- hole_negative.moved(p1r) \ - hole_negative.moved(p1r) \
- hole_negative.moved(p2r) - hole_negative.moved(p2r)
# Mark the absolute locations of the mount points # Mark the absolute locations of the mount points
dr = self.bulk_radius + self.angle_joint_thickness dr = self.chamber_bulk_radius
dr0 = self.bulk_radius dr0 = self.bulk_radius
for i, (x, y) in enumerate(self.angle_joint_bolt_position): for i, (x, y) in enumerate(self.angle_joint_bolt_position):
py = dy + y py = dy + y
@ -2338,6 +2338,42 @@ class Onbashira(Model):
self.assembly_ring(self.angle_joint()), self.assembly_ring(self.angle_joint()),
name="ring1", name="ring1",
) )
name_handle1 = "handle1_1"
a = a.addS(
self.handle(),
name=name_handle1,
material=self.material_brace,
role=Role.HANDLE,
)
name_handle2 = "handle1_2"
a = a.addS(
self.handle(),
name=name_handle2,
material=self.material_brace,
role=Role.HANDLE,
)
# Handle constrain
for ih, (_x, _y) in enumerate(self.angle_joint_bolt_position):
a = a.constrain(
f"{name_handle1}?holeLPI{ih}",
f"ring1/side3?holeLPO{ih}",
"Plane",
)
a = a.constrain(
f"{name_handle1}?holeRPI{ih}",
f"ring1/side3?holeRPO{ih}",
"Plane",
)
a = a.constrain(
f"{name_handle2}?holeLPI{ih}",
f"ring1/side5?holeLPO{ih}",
"Plane",
)
a = a.constrain(
f"{name_handle2}?holeRPI{ih}",
f"ring1/side5?holeRPO{ih}",
"Plane",
)
if has_part(parts, "section2"): if has_part(parts, "section2"):
a = a.add( a = a.add(
self.assembly_section(length=self.side_length2, hasFrontHole=True, hasBackHole=True), self.assembly_section(length=self.side_length2, hasFrontHole=True, hasBackHole=True),
@ -2349,42 +2385,6 @@ class Onbashira(Model):
name="ring2", name="ring2",
) )
name_handle1 = "handle2_1"
a = a.addS(
self.handle(),
name=name_handle1,
material=self.material_brace,
role=Role.HANDLE,
)
name_handle2 = "handle2_2"
a = a.addS(
self.handle(),
name=name_handle2,
material=self.material_brace,
role=Role.HANDLE,
)
# Handle constrain
for ih, (x, y) in enumerate(self.angle_joint_bolt_position):
a = a.constrain(
f"{name_handle1}?holeLPI{ih}",
f"ring2/side2?holeLPO{ih}",
"Plane",
)
a = a.constrain(
f"{name_handle1}?holeRPI{ih}",
f"ring2/side2?holeRPO{ih}",
"Plane",
)
a = a.constrain(
f"{name_handle2}?holeLPI{ih}",
f"ring2/side4?holeLPO{ih}",
"Plane",
)
a = a.constrain(
f"{name_handle2}?holeRPI{ih}",
f"ring2/side4?holeRPO{ih}",
"Plane",
)
if has_part(parts, "section3"): if has_part(parts, "section3"):
a = a.add( a = a.add(
self.assembly_section(length=self.side_length3, hasFrontHole=True, hasBackHole=True), self.assembly_section(length=self.side_length3, hasFrontHole=True, hasBackHole=True),
@ -2395,6 +2395,42 @@ class Onbashira(Model):
self.assembly_ring(self.angle_joint_chamber_front()), self.assembly_ring(self.angle_joint_chamber_front()),
name="ring3", name="ring3",
) )
name_handle1 = "handle3_1"
a = a.addS(
self.handle(),
name=name_handle1,
material=self.material_brace,
role=Role.HANDLE,
)
name_handle2 = "handle3_2"
a = a.addS(
self.handle(),
name=name_handle2,
material=self.material_brace,
role=Role.HANDLE,
)
# Handle constrain
for ih, (x, y) in enumerate(self.angle_joint_bolt_position):
a = a.constrain(
f"{name_handle1}?holeLPI{ih}",
f"ring3/side1?holeLPO{ih}",
"Plane",
)
a = a.constrain(
f"{name_handle1}?holeLSI{ih}",
f"ring3/side0?holeLSO{ih}",
"Plane",
)
a = a.constrain(
f"{name_handle2}?holeLPI{ih}",
f"ring3/side3?holeLPO{ih}",
"Plane",
)
a = a.constrain(
f"{name_handle2}?holeLSI{ih}",
f"ring3/side2?holeLSO{ih}",
"Plane",
)
if has_part(parts, "chamber"): if has_part(parts, "chamber"):
a = a.add( a = a.add(
self.assembly_chamber(), self.assembly_chamber(),
@ -2452,6 +2488,8 @@ class Onbashira(Model):
# f"ring2/side{i*2+1}?holeStatorL", # f"ring2/side{i*2+1}?holeStatorL",
# "Plane", # "Plane",
#) #)
if parts:
return a.solve()
for i in range(self.n_side): for i in range(self.n_side):
j = (i + 1) % self.n_side j = (i + 1) % self.n_side
ir = (self.n_side - i) % self.n_side ir = (self.n_side - i) % self.n_side