feat: Improvements to coordinate solver #20

Open
aniva wants to merge 3 commits from tool/solver into main
1 changed files with 0 additions and 24 deletions
Showing only changes of commit 621c7d54b6 - Show all commits

View File

@ -8,30 +8,6 @@ from cadquery.occ_impl.solver import ConstraintSpec
from nhf import Role from nhf import Role
from nhf.materials import KEY_ITEM, KEY_MATERIAL 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 ### Vector arithmetic
def location_sub(self: Cq.Location, rhs: Cq.Location) -> Cq.Vector: def location_sub(self: Cq.Location, rhs: Cq.Location) -> Cq.Vector: