@@ -819,6 +819,20 @@ def unite(self, other: Union["Body", Iterable["Body"]], keep_other: bool = False
819819 """
820820 return
821821
822+ def combine_merge (self , other : Union ["Body" , list ["Body" ]]) -> None :
823+ """Combine this body with another body or bodies, merging them into a single body.
824+
825+ Parameters
826+ ----------
827+ other : Union[Body, list[Body]]
828+ The body or list of bodies to combine with this body.
829+
830+ Notes
831+ -----
832+ The ``self`` parameter is directly modified, and the ``other`` bodies are consumed.
833+ """
834+ return
835+
822836
823837class MasterBody (IBody ):
824838 """Represents solids and surfaces organized within the design assembly.
@@ -1360,6 +1374,17 @@ def remove_faces(self, selection: Face | Iterable[Face], offset: Real) -> bool:
13601374
13611375 return result .success
13621376
1377+ @min_backend_version (25 , 2 , 0 )
1378+ @check_input_types
1379+ def combine_merge (self , other : Union ["Body" , list ["Body" ]]) -> None : # noqa: D102
1380+ other = other if isinstance (other , list ) else [other ]
1381+ check_type_all_elements_in_iterable (other , Body )
1382+
1383+ self ._grpc_client .log .debug (f"Combining and merging to body { self .id } ." )
1384+ self ._grpc_client .services .bodies .combine_merge (
1385+ body_ids = [self .id ] + [body .id for body in other ]
1386+ )
1387+
13631388 def plot ( # noqa: D102
13641389 self ,
13651390 merge : bool = True ,
@@ -1903,6 +1928,9 @@ def unite(self, other: Union["Body", Iterable["Body"]], keep_other: bool = False
19031928 else :
19041929 self .__generic_boolean_command (other , False , "unite" , "union operation failed" )
19051930
1931+ def combine_merge (self , other : Union ["Body" , list ["Body" ]]) -> None : # noqa: D102
1932+ self ._template .combine_merge (other )
1933+
19061934 @reset_tessellation_cache
19071935 @ensure_design_is_active
19081936 @check_input_types
0 commit comments