@@ -3909,3 +3909,26 @@ def test_write_body_facets_on_save(
39093909
39103910 missing = expected_files - namelist
39113911 assert not missing
3912+
3913+ def test_combine_merge (modeler : Modeler ):
3914+ design = modeler .create_design ("combine_merge" )
3915+ box1 = design .extrude_sketch ("box1" , Sketch ().box (Point2D ([0 , 0 ]), 1 , 1 ), 1 )
3916+ box2 = design .extrude_sketch ("box2" , Sketch ().box (Point2D ([0.5 , 0.5 ]), 1 , 1 ), 1 )
3917+ assert len (design .bodies ) == 2
3918+
3919+ # combine the two boxes and check body count and volume
3920+ box1 .combine_merge ([box2 ])
3921+ design ._update_design_inplace ()
3922+ assert len (design .bodies ) == 1
3923+ assert box1 .volume .m == pytest .approx (Quantity (1.75 , UNITS .m ** 3 ).m , rel = 1e-6 , abs = 1e-8 )
3924+
3925+ # create a third box
3926+ box1 = design .bodies [0 ]
3927+ box3 = design .extrude_sketch ("box3" , Sketch ().box (Point2D ([- 0.5 , - 0.5 ]), 1 , 1 ), 1 )
3928+ assert len (design .bodies ) == 2
3929+
3930+ # combine the two boxes and check body count and volume
3931+ box1 .combine_merge ([box3 ])
3932+ design ._update_design_inplace ()
3933+ assert len (design .bodies ) == 1
3934+ assert box1 .volume .m == pytest .approx (Quantity (2.5 , UNITS .m ** 3 ).m , rel = 1e-6 , abs = 1e-8 )
0 commit comments