From 600a4ccf3df5a4b0eaaf356daa4f3881aebffab1 Mon Sep 17 00:00:00 2001 From: Dominik Gresch Date: Mon, 7 Aug 2023 09:12:57 +0200 Subject: [PATCH 1/2] Add selection rule protos Add definitions for parallel, cylindrical, spherical, tube, and boolean selection rules. --- .../api/acp/v0/boolean_selection_rule.proto | 50 +++++++++++++++++++ .../acp/v0/cylindrical_selection_rule.proto | 42 ++++++++++++++++ .../api/acp/v0/parallel_selection_rule.proto | 43 ++++++++++++++++ src/ansys/api/acp/v0/production_ply.proto | 5 +- .../api/acp/v0/spherical_selection_rule.proto | 41 +++++++++++++++ .../api/acp/v0/tube_selection_rule.proto | 44 ++++++++++++++++ 6 files changed, 221 insertions(+), 4 deletions(-) create mode 100644 src/ansys/api/acp/v0/boolean_selection_rule.proto create mode 100644 src/ansys/api/acp/v0/cylindrical_selection_rule.proto create mode 100644 src/ansys/api/acp/v0/parallel_selection_rule.proto create mode 100644 src/ansys/api/acp/v0/spherical_selection_rule.proto create mode 100644 src/ansys/api/acp/v0/tube_selection_rule.proto diff --git a/src/ansys/api/acp/v0/boolean_selection_rule.proto b/src/ansys/api/acp/v0/boolean_selection_rule.proto new file mode 100644 index 0000000..209c6bd --- /dev/null +++ b/src/ansys/api/acp/v0/boolean_selection_rule.proto @@ -0,0 +1,50 @@ +syntax = "proto3"; +package ansys.api.acp.v0.boolean_selection_rule; + +import "ansys/api/acp/v0/base.proto"; +import "ansys/api/acp/v0/enum_types.proto"; + +enum BooleanOperationType { + INTERSECT = 0; + ADD = 1; + REMOVE = 2; +} + +message LinkedSelectionRule { + base.ResourcePath resource_path = 1; + BooleanOperationType operation_type = 2; + bool template_rule = 3; + double parameter_1 = 4; + double parameter_2 = 5; +} + +message Properties { + enum_types.StatusType status = 1; + repeated LinkedSelectionRule selection_rules = 2; + bool include_rule_type = 3; +} + +message ObjectInfo { + base.BasicInfo info = 1; + Properties properties = 2; +} + +message ListReply { repeated ObjectInfo objects = 1; } + +message CreateRequest { + base.CollectionPath collection_path = 1; + string name = 2; + Properties properties = 3; +} + +service ObjectService { + rpc List(base.ListRequest) returns (ListReply); + + rpc Get(base.GetRequest) returns (ObjectInfo); + + rpc Put(ObjectInfo) returns (ObjectInfo); + + rpc Delete(base.DeleteRequest) returns (base.Empty); + + rpc Create(CreateRequest) returns (ObjectInfo); +} diff --git a/src/ansys/api/acp/v0/cylindrical_selection_rule.proto b/src/ansys/api/acp/v0/cylindrical_selection_rule.proto new file mode 100644 index 0000000..808bf7a --- /dev/null +++ b/src/ansys/api/acp/v0/cylindrical_selection_rule.proto @@ -0,0 +1,42 @@ +syntax = "proto3"; +package ansys.api.acp.v0.cylindrical_selection_rule; + +import "ansys/api/acp/v0/base.proto"; +import "ansys/api/acp/v0/enum_types.proto"; +import "ansys/api/acp/v0/array_types.proto"; + +message Properties { + enum_types.StatusType status = 1; + bool use_global_coordinate_system = 2; + base.ResourcePath rosette = 3; + array_types.DoubleArray origin = 4; + array_types.DoubleArray direction = 5; + double radius = 6; + bool relative_rule_type = 7; + bool include_rule_type = 8; +} + +message ObjectInfo { + base.BasicInfo info = 1; + Properties properties = 2; +} + +message ListReply { repeated ObjectInfo objects = 1; } + +message CreateRequest { + base.CollectionPath collection_path = 1; + string name = 2; + Properties properties = 3; +} + +service ObjectService { + rpc List(base.ListRequest) returns (ListReply); + + rpc Get(base.GetRequest) returns (ObjectInfo); + + rpc Put(ObjectInfo) returns (ObjectInfo); + + rpc Delete(base.DeleteRequest) returns (base.Empty); + + rpc Create(CreateRequest) returns (ObjectInfo); +} diff --git a/src/ansys/api/acp/v0/parallel_selection_rule.proto b/src/ansys/api/acp/v0/parallel_selection_rule.proto new file mode 100644 index 0000000..d519d40 --- /dev/null +++ b/src/ansys/api/acp/v0/parallel_selection_rule.proto @@ -0,0 +1,43 @@ +syntax = "proto3"; +package ansys.api.acp.v0.parallel_selection_rule; + +import "ansys/api/acp/v0/base.proto"; +import "ansys/api/acp/v0/enum_types.proto"; +import "ansys/api/acp/v0/array_types.proto"; + +message Properties { + enum_types.StatusType status = 1; + bool use_global_coordinate_system = 2; + base.ResourcePath rosette = 3; + array_types.DoubleArray origin = 4; + array_types.DoubleArray direction = 5; + double lower_limit = 6; + double upper_limit = 7; + bool relative_rule_type = 8; + bool include_rule_type = 9; +} + +message ObjectInfo { + base.BasicInfo info = 1; + Properties properties = 2; +} + +message ListReply { repeated ObjectInfo objects = 1; } + +message CreateRequest { + base.CollectionPath collection_path = 1; + string name = 2; + Properties properties = 3; +} + +service ObjectService { + rpc List(base.ListRequest) returns (ListReply); + + rpc Get(base.GetRequest) returns (ObjectInfo); + + rpc Put(ObjectInfo) returns (ObjectInfo); + + rpc Delete(base.DeleteRequest) returns (base.Empty); + + rpc Create(CreateRequest) returns (ObjectInfo); +} diff --git a/src/ansys/api/acp/v0/production_ply.proto b/src/ansys/api/acp/v0/production_ply.proto index 77ccf68..f754259 100644 --- a/src/ansys/api/acp/v0/production_ply.proto +++ b/src/ansys/api/acp/v0/production_ply.proto @@ -16,10 +16,7 @@ message ObjectInfo { Properties properties = 2; } -message ListReply { - repeated ObjectInfo objects = 1; -} - +message ListReply { repeated ObjectInfo objects = 1; } service ObjectService { // Object is generated on update and read-only => diff --git a/src/ansys/api/acp/v0/spherical_selection_rule.proto b/src/ansys/api/acp/v0/spherical_selection_rule.proto new file mode 100644 index 0000000..e5e0287 --- /dev/null +++ b/src/ansys/api/acp/v0/spherical_selection_rule.proto @@ -0,0 +1,41 @@ +syntax = "proto3"; +package ansys.api.acp.v0.spherical_selection_rule; + +import "ansys/api/acp/v0/base.proto"; +import "ansys/api/acp/v0/enum_types.proto"; +import "ansys/api/acp/v0/array_types.proto"; + +message Properties { + enum_types.StatusType status = 1; + bool use_global_coordinate_system = 2; + base.ResourcePath rosette = 3; + array_types.DoubleArray origin = 4; + double radius = 5; + bool relative_rule_type = 6; + bool include_rule_type = 7; +} + +message ObjectInfo { + base.BasicInfo info = 1; + Properties properties = 2; +} + +message ListReply { repeated ObjectInfo objects = 1; } + +message CreateRequest { + base.CollectionPath collection_path = 1; + string name = 2; + Properties properties = 3; +} + +service ObjectService { + rpc List(base.ListRequest) returns (ListReply); + + rpc Get(base.GetRequest) returns (ObjectInfo); + + rpc Put(ObjectInfo) returns (ObjectInfo); + + rpc Delete(base.DeleteRequest) returns (base.Empty); + + rpc Create(CreateRequest) returns (ObjectInfo); +} diff --git a/src/ansys/api/acp/v0/tube_selection_rule.proto b/src/ansys/api/acp/v0/tube_selection_rule.proto new file mode 100644 index 0000000..1788d5c --- /dev/null +++ b/src/ansys/api/acp/v0/tube_selection_rule.proto @@ -0,0 +1,44 @@ +syntax = "proto3"; +package ansys.api.acp.v0.tube_selection_rule; + +import "ansys/api/acp/v0/base.proto"; +import "ansys/api/acp/v0/enum_types.proto"; +import "ansys/api/acp/v0/array_types.proto"; + +message Properties { + enum_types.StatusType status = 1; + base.ResourcePath edge_set = 2; + double outer_radius = 3; + double inner_radius = 4; + bool include_rule_type = 5; + bool extend_endings = 6; + bool symmetrical_extension = 7; + array_types.DoubleArray head = 8; + double head_extension = 9; + double tail_extension = 10; +} + +message ObjectInfo { + base.BasicInfo info = 1; + Properties properties = 2; +} + +message ListReply { repeated ObjectInfo objects = 1; } + +message CreateRequest { + base.CollectionPath collection_path = 1; + string name = 2; + Properties properties = 3; +} + +service ObjectService { + rpc List(base.ListRequest) returns (ListReply); + + rpc Get(base.GetRequest) returns (ObjectInfo); + + rpc Put(ObjectInfo) returns (ObjectInfo); + + rpc Delete(base.DeleteRequest) returns (base.Empty); + + rpc Create(CreateRequest) returns (ObjectInfo); +} From a979b8edca4ae06e29c48618433a04bdab1c3342 Mon Sep 17 00:00:00 2001 From: Dominik Gresch Date: Mon, 7 Aug 2023 10:38:57 +0200 Subject: [PATCH 2/2] Move BooleanOperationType and LinkedSelectionRule to separate files --- .../api/acp/v0/boolean_selection_rule.proto | 17 ++--------------- src/ansys/api/acp/v0/enum_types.proto | 11 ++++++++++- .../api/acp/v0/linked_selection_rule.proto | 15 +++++++++++++++ 3 files changed, 27 insertions(+), 16 deletions(-) create mode 100644 src/ansys/api/acp/v0/linked_selection_rule.proto diff --git a/src/ansys/api/acp/v0/boolean_selection_rule.proto b/src/ansys/api/acp/v0/boolean_selection_rule.proto index 209c6bd..36e7166 100644 --- a/src/ansys/api/acp/v0/boolean_selection_rule.proto +++ b/src/ansys/api/acp/v0/boolean_selection_rule.proto @@ -3,24 +3,11 @@ package ansys.api.acp.v0.boolean_selection_rule; import "ansys/api/acp/v0/base.proto"; import "ansys/api/acp/v0/enum_types.proto"; - -enum BooleanOperationType { - INTERSECT = 0; - ADD = 1; - REMOVE = 2; -} - -message LinkedSelectionRule { - base.ResourcePath resource_path = 1; - BooleanOperationType operation_type = 2; - bool template_rule = 3; - double parameter_1 = 4; - double parameter_2 = 5; -} +import "ansys/api/acp/v0/linked_selection_rule.proto"; message Properties { enum_types.StatusType status = 1; - repeated LinkedSelectionRule selection_rules = 2; + repeated linked_selection_rule.LinkedSelectionRule selection_rules = 2; bool include_rule_type = 3; } diff --git a/src/ansys/api/acp/v0/enum_types.proto b/src/ansys/api/acp/v0/enum_types.proto index e9bd58b..d74ea12 100644 --- a/src/ansys/api/acp/v0/enum_types.proto +++ b/src/ansys/api/acp/v0/enum_types.proto @@ -32,4 +32,13 @@ enum PlyType { ISOTROPIC = 5; UNDEFINED = 6; ADHESIVE = 7; -} \ No newline at end of file +} + +// Defines the type of linked selection rules. +// This is used in Boolean Selection Rules, and in the selection rules +// for Modeling Plies. +enum BooleanOperationType { + INTERSECT = 0; + ADD = 1; + REMOVE = 2; +} diff --git a/src/ansys/api/acp/v0/linked_selection_rule.proto b/src/ansys/api/acp/v0/linked_selection_rule.proto new file mode 100644 index 0000000..9c6810a --- /dev/null +++ b/src/ansys/api/acp/v0/linked_selection_rule.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; +package ansys.api.acp.v0.linked_selection_rule; + +import "ansys/api/acp/v0/base.proto"; +import "ansys/api/acp/v0/enum_types.proto"; + +// Defines a linked selection rule, as used in Boolean Selection Rules, +// and in Modeling Plies. +message LinkedSelectionRule { + base.ResourcePath resource_path = 1; + enum_types.BooleanOperationType operation_type = 2; + bool template_rule = 3; + double parameter_1 = 4; + double parameter_2 = 5; +}