2525from pathlib import Path
2626from typing import Union
2727
28- from ansys .api .dbu .v0 .dbumodels_pb2 import EntityIdentifier
29- from ansys .api .geometry .v0 .commands_pb2 import (
30- AssignMidSurfaceOffsetTypeRequest ,
31- AssignMidSurfaceThicknessRequest ,
32- CreateBeamCircularProfileRequest ,
33- )
3428from ansys .api .geometry .v0 .commands_pb2_grpc import CommandsStub
3529from beartype import beartype as check_input_types
36- from google .protobuf .empty_pb2 import Empty
3730import numpy as np
3831from pint import Quantity , UndefinedUnitError
3932
4033from ansys .geometry .core .connection .backend import BackendType
41- from ansys .geometry .core .connection .conversions import (
42- plane_to_grpc_plane ,
43- point3d_to_grpc_point ,
44- )
4534from ansys .geometry .core .designer .beam import (
4635 Beam ,
4736 BeamCircularProfile ,
7059 ensure_design_is_active ,
7160 min_backend_version ,
7261)
73- from ansys .geometry .core .misc .measurements import DEFAULT_UNITS , Distance
62+ from ansys .geometry .core .misc .measurements import Distance
7463from ansys .geometry .core .misc .options import ImportOptions , TessellationOptions
7564from ansys .geometry .core .modeler import Modeler
7665from ansys .geometry .core .parameters .parameter import Parameter , ParameterUpdateStatus
7766from ansys .geometry .core .shapes .curves .trimmed_curve import TrimmedCurve
7867from ansys .geometry .core .shapes .parameterization import Interval , ParamUV
79- from ansys .geometry .core .typing import RealSequence
68+ from ansys .geometry .core .typing import Real , RealSequence
8069
8170
8271@unique
@@ -330,9 +319,9 @@ def __export_and_download_legacy(self, format: DesignFileFormat) -> bytes:
330319 # Process response
331320 self ._grpc_client .log .debug (f"Requesting design download in { format } format." )
332321 if format is DesignFileFormat .SCDOCX :
333- response = self ._commands_stub . DownloadFile ( Empty () )
322+ response = self ._grpc_client . services . designs . download_file ( )
334323 received_bytes = bytes ()
335- received_bytes += response .data
324+ received_bytes += response .get ( " data" )
336325 elif format in [
337326 DesignFileFormat .PARASOLID_TEXT ,
338327 DesignFileFormat .PARASOLID_BIN ,
@@ -818,17 +807,16 @@ def add_beam_circular_profile(
818807 if not dir_x .is_perpendicular_to (dir_y ):
819808 raise ValueError ("Direction X and direction Y must be perpendicular." )
820809
821- request = CreateBeamCircularProfileRequest (
822- origin = point3d_to_grpc_point (center ),
823- radius = radius .value .m_as (DEFAULT_UNITS .SERVER_LENGTH ),
824- plane = plane_to_grpc_plane (Plane (center , dir_x , dir_y )),
810+ self ._grpc_client .log .debug (f"Creating a beam circular profile on { self .id } ..." )
811+
812+ response = self ._grpc_client ._services .beams .create_beam_circular_profile (
813+ center = center ,
814+ radius = radius ,
815+ plane = Plane (center , dir_x , dir_y ),
825816 name = name ,
826817 )
827818
828- self ._grpc_client .log .debug (f"Creating a beam circular profile on { self .id } ..." )
829-
830- response = self ._commands_stub .CreateBeamCircularProfile (request )
831- profile = BeamCircularProfile (response .id , name , radius , center , dir_x , dir_y )
819+ profile = BeamCircularProfile (response .get ("id" ), name , radius , center , dir_x , dir_y )
832820 self ._beam_profiles [profile .name ] = profile
833821
834822 self ._grpc_client .log .debug (
@@ -885,7 +873,9 @@ def set_parameter(self, dimension: Parameter) -> ParameterUpdateStatus:
885873 @protect_grpc
886874 @check_input_types
887875 @ensure_design_is_active
888- def add_midsurface_thickness (self , thickness : Quantity , bodies : list [Body ]) -> None :
876+ def add_midsurface_thickness (
877+ self , thickness : Distance | Quantity | Real , bodies : list [Body ]
878+ ) -> None :
889879 """Add a mid-surface thickness to a list of bodies.
890880
891881 Parameters
@@ -899,6 +889,7 @@ def add_midsurface_thickness(self, thickness: Quantity, bodies: list[Body]) -> N
899889 -----
900890 Only surface bodies will be eligible for mid-surface thickness assignment.
901891 """
892+ thickness = thickness if isinstance (thickness , Distance ) else Distance (thickness )
902893 # Store only assignable ids
903894 ids : list [str ] = []
904895 ids_bodies : list [Body ] = []
@@ -912,15 +903,11 @@ def add_midsurface_thickness(self, thickness: Quantity, bodies: list[Body]) -> N
912903 )
913904
914905 # Assign mid-surface thickness
915- self ._commands_stub .AssignMidSurfaceThickness (
916- AssignMidSurfaceThicknessRequest (
917- bodies_or_faces = ids , thickness = thickness .m_as (DEFAULT_UNITS .SERVER_LENGTH )
918- )
919- )
906+ self ._grpc_client ._services .bodies .assign_midsurface_thickness (ids = ids , thickness = thickness )
920907
921908 # Once the assignment has gone fine, store the values
922909 for body in ids_bodies :
923- body ._surface_thickness = thickness
910+ body ._surface_thickness = thickness . value
924911
925912 @protect_grpc
926913 @check_input_types
@@ -952,8 +939,8 @@ def add_midsurface_offset(self, offset_type: MidSurfaceOffsetType, bodies: list[
952939 )
953940
954941 # Assign mid-surface offset type
955- self ._commands_stub . AssignMidSurfaceOffsetType (
956- AssignMidSurfaceOffsetTypeRequest ( bodies_or_faces = ids , offset_type = offset_type . value )
942+ self ._grpc_client . _services . bodies . assign_midsurface_offset (
943+ ids = ids , offset_type = offset_type
957944 )
958945
959946 # Once the assignment has gone fine, store the values
@@ -976,7 +963,7 @@ def delete_beam_profile(self, beam_profile: BeamProfile | str) -> None:
976963 removal_obj = self ._beam_profiles .get (removal_name , None )
977964
978965 if removal_obj :
979- self ._commands_stub . DeleteBeamProfile ( EntityIdentifier ( id = removal_obj .id ) )
966+ self ._grpc_client . _services . beams . delete_beam_profile ( id = removal_obj .id )
980967 self ._beam_profiles .pop (removal_name )
981968 self ._grpc_client .log .debug (f"Beam profile { removal_name } successfully deleted." )
982969 else :
0 commit comments