Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
7e56087
adding tracker to components.
umutsoysalansys Oct 28, 2025
ec15305
parts and components update methods are added.
umutsoysalansys Nov 3, 2025
ec8f85e
Merge branch 'feat/component-tracking' into feat/tracking-updates
umutsoysalansys Nov 5, 2025
52d1011
temp hack to deal with flukes.
umutsoysalansys Nov 5, 2025
f78c491
response name is changed in backend.
umutsoysalansys Nov 5, 2025
f6c1272
rename fix
umutsoysalansys Nov 5, 2025
0e470ab
update methods to return the componets and parts
umutsoysalansys Nov 6, 2025
42a75d5
adding created components.
umutsoysalansys Nov 6, 2025
d1045ff
Update prepare_tools.py
umutsoysalansys Nov 6, 2025
e751e5a
chore: auto fixes from pre-commit hooks
pre-commit-ci[bot] Nov 6, 2025
4936133
Update __init__.py
umutsoysalansys Nov 6, 2025
4399c80
Merge branch 'feat/tracking-updates' of https://github.com/ansys/pyan…
umutsoysalansys Nov 6, 2025
83b07dc
revert change
umutsoysalansys Nov 7, 2025
9f3de08
clean up
umutsoysalansys Nov 7, 2025
7dae04f
Update admin.py
umutsoysalansys Nov 7, 2025
f9e31f3
chore: auto fixes from pre-commit hooks
pre-commit-ci[bot] Nov 7, 2025
c752837
Update admin.py
umutsoysalansys Nov 7, 2025
b902219
Merge branch 'feat/tracking-updates' of https://github.com/ansys/pyan…
umutsoysalansys Nov 7, 2025
f8718f7
Update test_design.py
umutsoysalansys Nov 10, 2025
387882e
chore: auto fixes from pre-commit hooks
pre-commit-ci[bot] Nov 10, 2025
5b8451e
chore: adding changelog file 2359.added.md [dependabot-skip]
pyansys-ci-bot Nov 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions doc/changelog.d/2359.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Tracking updates
67 changes: 67 additions & 0 deletions src/ansys/geometry/core/_grpc/_services/v0/conversions.py
Original file line number Diff line number Diff line change
Expand Up @@ -1390,6 +1390,54 @@ def serialize_body(body):
"is_surface": body.is_surface,
}

def serialize_component(component):
return {
"id": component.id,
"name": getattr(component, "name", ""),
"display_name": getattr(component, "display_name", ""),
"part_occurrence": {
"id": getattr(component.part_occurrence, "id", "")
if hasattr(component, "part_occurrence")
else "",
"name": getattr(component.part_occurrence, "name", "")
if hasattr(component, "part_occurrence")
else "",
}
if hasattr(component, "part_occurrence")
else None,
"placement": {
"m00": getattr(component.placement, "m00", 1.0)
if hasattr(component, "placement")
else 1.0,
"m11": getattr(component.placement, "m11", 1.0)
if hasattr(component, "placement")
else 1.0,
"m22": getattr(component.placement, "m22", 1.0)
if hasattr(component, "placement")
else 1.0,
"m33": getattr(component.placement, "m33", 1.0)
if hasattr(component, "placement")
else 1.0,
},
"part_master": {
"id": getattr(component.part_master, "id", "")
if hasattr(component, "part_master")
else "",
"name": getattr(component.part_master, "name", "")
if hasattr(component, "part_master")
else "",
}
if hasattr(component, "part_master")
else None,
"master_id": getattr(component, "master_id", ""),
"parent_id": getattr(component, "parent_id", ""),
}

def serialize_part(part):
return {
"id": part.id,
}

def serialize_entity_identifier(entity):
"""Serialize an EntityIdentifier object into a dictionary."""
return {
Expand All @@ -1399,6 +1447,25 @@ def serialize_entity_identifier(entity):
response = kwargs["response"]
return {
"success": response.success,
"created_parts": [serialize_part(part) for part in getattr(response, "created_parts", [])],
"modified_parts": [
serialize_part(part) for part in getattr(response, "modified_parts", [])
],
"deleted_parts": [
serialize_entity_identifier(entity) for entity in getattr(response, "deleted_parts", [])
],
"created_components": [
serialize_component(component)
for component in getattr(response, "created_components", [])
],
"modified_components": [
serialize_component(component)
for component in getattr(response, "modified_components", [])
],
"deleted_components": [
serialize_entity_identifier(entity)
for entity in getattr(response, "deleted_components", [])
],
"created_bodies": [
serialize_body(body) for body in getattr(response, "created_bodies", [])
],
Expand Down
10 changes: 9 additions & 1 deletion src/ansys/geometry/core/_grpc/_services/v0/prepare_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

from ..base.conversions import from_measurement_to_server_length
from ..base.prepare_tools import GRPCPrepareToolsService
from .conversions import build_grpc_id
from .conversions import build_grpc_id, serialize_tracker_command_response


class GRPCPrepareToolsServiceV0(GRPCPrepareToolsService):
Expand Down Expand Up @@ -62,10 +62,13 @@ def extract_volume_from_faces(self, **kwargs) -> dict: # noqa: D102
# Call the gRPC service
response = self.stub.ExtractVolumeFromFaces(request)

serialized_tracker_response = serialize_tracker_command_response(response=response.changes)

# Return the response - formatted as a dictionary
return {
"success": response.success,
"created_bodies": [body.id for body in response.created_bodies],
"complete_command_response": serialized_tracker_response,
}

@protect_grpc
Expand All @@ -81,10 +84,15 @@ def extract_volume_from_edge_loops(self, **kwargs) -> dict: # noqa: D102
# Call the gRPC service
response = self.stub.ExtractVolumeFromEdgeLoops(request)

serialized_tracker_response = serialize_tracker_command_response(
response=response.complete_command_response
)

# Return the response - formatted as a dictionary
return {
"success": response.success,
"created_bodies": [body.id for body in response.created_bodies],
"complete_command_response": serialized_tracker_response,
}

@protect_grpc
Expand Down
Loading
Loading