Fix regressions in MEP joins after switching over to numpy from mathutils

This commit is contained in:
Dion Moult
2025-03-12 23:05:15 +11:00
parent acdc40fb41
commit 6596f5bc4b
2 changed files with 18 additions and 13 deletions
+16 -11
View File
@@ -417,20 +417,25 @@ def i_create_default_mep_types():
model_props = tool.Model.get_model_props()
# add couple segments types
model_props.type_class = "IfcDuctSegmentType"
model_props.type_name = "RECT1"
model_props.type_template = "FLOW_SEGMENT_RECTANGULAR"
bpy.ops.bim.add_type()
i_trigger_operator("Add Element")
i_set_the_prop_property_to_value("Name", "RECT1")
i_set_the_prop_property_to_value("Class", "IfcDuctSegmentType")
i_set_the_prop_property_to_value("Representation", "Rectangular Distribution Segment")
i_click_button("OK")
model_props.type_template = "FLOW_SEGMENT_CIRCULAR"
model_props.type_name = "CIRCLE1"
bpy.ops.bim.add_type()
i_trigger_operator("Add Element")
i_set_the_prop_property_to_value("Name", "CIRCLE1")
i_set_the_prop_property_to_value("Class", "IfcDuctSegmentType")
i_set_the_prop_property_to_value("Representation", "Circular Distribution Segment")
i_click_button("OK")
# add an actuator type
model_props.type_class = "IfcActuatorType"
model_props.type_template = "MESH" # cube representation
model_props.type_name = "ACTUATOR"
bpy.ops.bim.add_type()
i_trigger_operator("Add Element")
i_set_the_prop_property_to_value("Name", "ACTUATOR")
i_set_the_prop_property_to_value("Class", "IfcActuatorType")
i_set_the_prop_property_to_value("Representation", "Custom Tessellation")
i_click_button("OK")
with bpy.context.temp_override(active_object=bpy.data.objects["IfcActuatorType/ACTUATOR"]):
bpy.ops.bim.add_port()
# port at cube's left side
@@ -1378,7 +1378,7 @@ class ShapeBuilder:
# prevent mutating arguments, deepcopy doesn't work
start_points = np.array(points)
if offset:
if offset is not None and offset.any():
start_points += offset
extrusion_offset = np.multiply(extrusion_vector, magnitude)
end_points = start_points + extrusion_offset
@@ -1573,7 +1573,7 @@ class ShapeBuilder:
circle_points += end_extrusion_offset
# circle verts are 0-15, rect verts are 16-19
points = circle_points + rect_points
points = np.concatenate((circle_points, rect_points))
transition_faces = [
(0, 19, 16), # base
(0, 16, 1),