Automatically adjusted STAIR_ARROWs now stop at the top thread

Previously they were ending at the end of the stair object and problem was that the end of the object could be at the slab underneath the stair.

Example - https://i.imgur.com/Y43v0GM.png
Before - https://i.imgur.com/Ze9DoK2.png
This commit is contained in:
Andrej730
2023-03-31 10:49:28 +05:00
parent 1a750d1b85
commit cc3b119288
+6 -1
View File
@@ -97,13 +97,18 @@ class Drawing(blenderbim.core.tool.Drawing):
arrow.parent = stair
# place the arrow
# NOTE: may not work correctly in EDIT mode
bbox = tool.Blender.get_object_bounding_box(stair)
float_is_zero = lambda f: 0.0001 >= f >= -0.0001
arrow.location = Vector((bbox["min_x"], (bbox["max_y"] - bbox["min_y"]) / 2, bbox["max_z"]))
last_step_x = max(v.co.x for v in stair.data.vertices if float_is_zero(v.co.z - bbox["max_z"]))
arrow.data.splines[0].points[0].co = Vector((0, 0, 0, 1))
arrow.data.splines[0].points[1].co = Vector((bbox["max_x"], 0, 0, 1))
arrow.data.splines[0].points[1].co = Vector((last_step_x, 0, 0, 1))
if not cls.get_assigned_product(arrow_element):
tool.Ifc.run("drawing.assign_product", relating_product=stair_entity, related_object=arrow_element)
pass
@classmethod
def create_camera(cls, name, matrix):