Fixed misplaced label for vertical dimension lines Issue #915

This commit is contained in:
gumyr 2025-05-30 09:12:48 -04:00
parent 878a737516
commit 644200f565
2 changed files with 7 additions and 2 deletions

View file

@ -455,7 +455,7 @@ class DimensionLine(BaseSketchObject):
else:
self_intersection_area = self_intersection.area
d_line += placed_label
bbox_size = d_line.bounding_box().size
bbox_size = d_line.bounding_box().diagonal
# Minimize size while avoiding intersections
if sketch is None:
@ -469,7 +469,7 @@ class DimensionLine(BaseSketchObject):
else:
common_area = line_intersection.area
common_area += self_intersection_area
score = (d_line.area - 10 * common_area) / bbox_size.X
score = (d_line.area - 10 * common_area) / bbox_size
d_lines[d_line] = score
# Sort by score to find the best option

View file

@ -260,6 +260,11 @@ class DimensionLineTestCase(unittest.TestCase):
with self.assertRaises(ValueError):
DimensionLine([(0, 0, 0), (5, 0, 0)], draft=metric, arrows=(False, False))
def test_vertical(self):
d_line = DimensionLine([(0, 0), (0, 100)], Draft())
bbox = d_line.bounding_box()
self.assertAlmostEqual(bbox.size.Y, 100, 5) # numbers within
class ExtensionLineTestCase(unittest.TestCase):
def test_min_x(self):