Skip to content

Commit 7eff6de

Browse files
reworking booleans
1 parent 38f8799 commit 7eff6de

File tree

1 file changed

+31
-45
lines changed
  • src/ansys/geometry/core/_grpc/_services/v1

1 file changed

+31
-45
lines changed

src/ansys/geometry/core/_grpc/_services/v1/bodies.py

Lines changed: 31 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)