@@ -994,64 +994,50 @@ def get_tesellation_with_options(self, **kwargs) -> dict: # noqa: D102
994994
995995 @protect_grpc
996996 def boolean (self , ** kwargs ) -> dict : # noqa: D102
997- # v1 uses the combine method instead of a separate boolean method
998- # Map the v0 parameters to v1 combine parameters
999- return self .combine (
1000- target = kwargs ["target" ],
1001- other = kwargs ["other" ],
1002- type_bool_op = kwargs ["method" ],
997+ from ansys .api .discovery .v1 .operations .edit_pb2 import BooleanRequest
998+
999+ # Create the request - assumes all inputs are valid and of the proper type
1000+ request = BooleanRequest (
1001+ body1_id = build_grpc_id (kwargs ["target" ]),
1002+ tool_body_ids = [build_grpc_id (id ) for id in kwargs ["other" ]],
1003+ method = kwargs ["method" ],
10031004 keep_other = kwargs ["keep_other" ],
1004- transfer_named_selections = False ,
10051005 )
10061006
1007+ # Call the gRPC service
1008+ response = self .edit_stub .Boolean (request = request )
1009+
1010+ if not response .tracked_command_response .command_response .success :
1011+ raise ValueError (f"Boolean operation failed: { kwargs ['err_msg' ]} " )
1012+
1013+ # Return the response - formatted as a dictionary
1014+ return {"complete_command_response" : response }
1015+
10071016 @protect_grpc
10081017 def combine (self , ** kwargs ) -> dict : # noqa: D102
10091018 from ansys .api .discovery .v1 .operations .edit_pb2 import (
10101019 CombineIntersectBodiesRequest ,
10111020 CombineIntersectBodiesRequestData ,
1012- CombineMergeBodiesRequest ,
1013- CombineMergeBodiesRequestData ,
10141021 )
10151022
1016- target_body = kwargs ["target" ]
1017- other_bodies = kwargs ["other" ]
1018- type_bool_op = kwargs ["type_bool_op" ]
1019- keep_other = kwargs ["keep_other" ]
1020- transfer_named_selections = kwargs .get ("transfer_named_selections" , False )
1023+ # Create the request - assumes all inputs are valid and of the proper type
1024+ request = CombineIntersectBodiesRequest (
1025+ request_data = [
1026+ CombineIntersectBodiesRequestData (
1027+ target_selection_ids = [build_grpc_id (kwargs ["target" ])],
1028+ tool_selection_ids = [build_grpc_id (id ) for id in kwargs ["other" ]],
1029+ keep_cutter = kwargs ["keep_other" ],
1030+ subtract_from_target = True ,
1031+ transfer_named_selections = kwargs ["transfer_named_selections" ],
1032+ )
1033+ ]
1034+ )
10211035
1022- if type_bool_op == "intersect" :
1023- request_data = CombineIntersectBodiesRequestData (
1024- target_selection_ids = [build_grpc_id (target_body )],
1025- tool_selection_ids = [build_grpc_id (body ) for body in other_bodies ],
1026- keep_cutter = keep_other ,
1027- subtract_from_target = False ,
1028- transfer_named_selections = transfer_named_selections ,
1029- )
1030- request = CombineIntersectBodiesRequest (request_data = [request_data ])
1031- response = self .edit_stub .CombineIntersectBodies (request = request )
1032- elif type_bool_op == "subtract" :
1033- request_data = CombineIntersectBodiesRequestData (
1034- target_selection_ids = [build_grpc_id (target_body )],
1035- tool_selection_ids = [build_grpc_id (body ) for body in other_bodies ],
1036- keep_cutter = keep_other ,
1037- subtract_from_target = True ,
1038- transfer_named_selections = transfer_named_selections ,
1039- )
1040- request = CombineIntersectBodiesRequest (request_data = [request_data ])
1041- response = self .edit_stub .CombineIntersectBodies (request = request )
1042- elif type_bool_op == "unite" :
1043- # Create request data with all body IDs
1044- all_body_ids = [build_grpc_id (target_body )]
1045- all_body_ids .extend ([build_grpc_id (body ) for body in other_bodies ])
1046-
1047- request_data = CombineMergeBodiesRequestData (target_selection_ids = all_body_ids )
1048- request = CombineMergeBodiesRequest (request_data = [request_data ])
1049- response = self .edit_stub .CombineMergeBodies (request = request )
1050- else :
1051- raise ValueError (f"Invalid boolean operation type: { type_bool_op } " )
1036+ # Call the gRPC service
1037+ response = self .edit_stub .CombineIntersectBodies (request = request )
10521038
10531039 if not response .tracked_command_response .command_response .success :
1054- raise ValueError (f"Boolean operation failed: { response } " )
1040+ raise ValueError (f"Boolean operation failed: { kwargs [ 'err_msg' ] } " )
10551041
10561042 # Return the response - formatted as a dictionary
10571043 return {"complete_command_response" : response }
0 commit comments