bim.mep_add_bend

Added operator to create bend fittings between objects, it's still work in progress and now it only supports rectangular profiles.

Small demo - https://imgur.com/a/vM7hnJa
This commit is contained in:
Andrej730
2023-08-28 15:25:10 +05:00
parent 3aa72ae74a
commit cfac835607
6 changed files with 578 additions and 80 deletions
+31
View File
@@ -56,3 +56,34 @@ class TestAreEdgesCollinear(NewFile):
(V(0,1,0), V(1,0,1))
)
# fmt: on
class TestClosestPoints(NewFile):
def test_run(self):
# non collinear
edge1 = (V(0, 0, 0), V(1, 0, 0))
edge2 = (V(2, 0, 1), V(2, 0, 2))
assert subject.closest_points(edge1, edge2)[0] == (edge1[1], edge2[0])
# check other points
assert subject.closest_points(edge1, edge2)[1] == (edge1[0], edge2[1])
# collinear
edge1 = (V(0, 0, 0), V(1, 0, 0))
edge2 = (V(3, 0, 0), V(2, 0, 0))
assert subject.closest_points(edge1, edge2)[0] == (edge1[1], edge2[1])
# parallel
edge1 = (V(0, 0, 0), V(1, 0, 0))
edge2 = (V(-5, 0, 0), V(-1, 0, 0))
assert subject.closest_points(edge1, edge2)[0] == (edge1[0], edge2[1])
# overlapping
edge1 = (V(0, 0, 0), V(3, 0, 0))
edge2 = (V(2, 0, 0), V(5, 0, 0))
assert subject.closest_points(edge1, edge2)[0] == (edge1[1], edge2[0])
# edge as a point
edge1 = (V(0, 0, 0), V(0, 0, 0))
edge2 = (V(1, 0, 1), V(2, 0, 2))
assert subject.closest_points(edge1, edge2)[0] == (edge1[0], edge2[0])