Merge branch 'tool/solver' into touhou/yasaka-kanako

This commit is contained in:
Leni Aniva 2025-07-08 23:02:40 -07:00
commit 2840315a51
Signed by: aniva
GPG Key ID: D5F96287843E8DFB
2 changed files with 1 additions and 25 deletions

View File

@ -317,7 +317,7 @@ class TorsionJoint:
if not rider_slot_begin:
rider_slot_begin = self.rider_slot_begin
def slot(loc):
wire = Cq.Wire.makePolygon(self._slot_polygon(flip=False))
wire = Cq.Wire.makePolygon(self._slot_polygon(flip=False)).close()
face = Cq.Face.makeFromWires(wire)
return face.located(loc)
wall_profile = (

View File

@ -8,30 +8,6 @@ from cadquery.occ_impl.solver import ConstraintSpec
from nhf import Role
from nhf.materials import KEY_ITEM, KEY_MATERIAL
# Bug fixes
def _subloc(self, name: str) -> Tuple[Cq.Location, str]:
"""
Calculate relative location of an object in a subassembly.
Returns the relative positions as well as the name of the top assembly.
"""
rv = Cq.Location()
obj = self.objects[name]
name_out = name
if obj not in self.children and obj is not self:
locs = []
while not obj.parent is self:
locs.append(obj.loc)
obj = cast(Cq.Assembly, obj.parent)
name_out = obj.name
rv = functools.reduce(lambda l1, l2: l2 * l1, locs)
return (rv, name_out)
Cq.Assembly._subloc = _subloc
### Vector arithmetic
def location_sub(self: Cq.Location, rhs: Cq.Location) -> Cq.Vector: