From 57d1f48fee22fd17c0c5208ec996900c9ed511bb Mon Sep 17 00:00:00 2001 From: Dominik Gresch Date: Fri, 12 Jan 2024 11:10:21 +0100 Subject: [PATCH] Add API for geometry-related features Add API for the following features: - CutoffSelectionRule - GeometricalSelectionRule - Modeling Ply thickness properties (by geometry, by table, taper edges) --- src/ansys/api/acp/VERSION | 2 +- .../api/acp/v0/cutoff_selection_rule.proto | 51 +++++++++++++++++++ .../acp/v0/geometrical_selection_rule.proto | 47 +++++++++++++++++ src/ansys/api/acp/v0/modeling_ply.proto | 28 +++++++++- 4 files changed, 125 insertions(+), 3 deletions(-) create mode 100644 src/ansys/api/acp/v0/cutoff_selection_rule.proto create mode 100644 src/ansys/api/acp/v0/geometrical_selection_rule.proto diff --git a/src/ansys/api/acp/VERSION b/src/ansys/api/acp/VERSION index 4dd9b28..d8f69e2 100644 --- a/src/ansys/api/acp/VERSION +++ b/src/ansys/api/acp/VERSION @@ -1 +1 @@ -0.1.0.dev2 +0.1.0.dev3 diff --git a/src/ansys/api/acp/v0/cutoff_selection_rule.proto b/src/ansys/api/acp/v0/cutoff_selection_rule.proto new file mode 100644 index 0000000..a0ecc4f --- /dev/null +++ b/src/ansys/api/acp/v0/cutoff_selection_rule.proto @@ -0,0 +1,51 @@ +syntax = "proto3"; +package ansys.api.acp.v0.cutoff_selection_rule; + +import "ansys/api/acp/v0/base.proto"; +import "ansys/api/acp/v0/enum_types.proto"; + +enum CutoffRuleType { + GEOMETRY = 0; + TAPER = 1; +} + +enum PlyCutoffType { + PRODUCTION_PLY_CUTOFF = 0; + ANALYSIS_PLY_CUTOFF = 1; +} + +message Properties { + enum_types.StatusType status = 1; + CutoffRuleType cutoff_rule_type = 2; + base.ResourcePath cutoff_geometry = 3; + base.ResourcePath taper_edge_set = 4; + double offset = 5; + double angle = 6; + PlyCutoffType ply_cutoff_type = 7; + bool ply_tapering = 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/geometrical_selection_rule.proto b/src/ansys/api/acp/v0/geometrical_selection_rule.proto new file mode 100644 index 0000000..7959ed4 --- /dev/null +++ b/src/ansys/api/acp/v0/geometrical_selection_rule.proto @@ -0,0 +1,47 @@ +syntax = "proto3"; +package ansys.api.acp.v0.geometrical_selection_rule; + +import "ansys/api/acp/v0/base.proto"; +import "ansys/api/acp/v0/enum_types.proto"; + +enum GeometricalRuleType { + GEOMETRY = 0; + ELEMENT_SETS = 1; +} + +message Properties { + enum_types.StatusType status = 1; + GeometricalRuleType geometrical_rule_type = 2; + base.ResourcePath geometry = 3; + repeated base.ResourcePath element_sets = 4; + bool include_rule_type = 5; + bool use_default_tolerances = 6; + double in_plane_capture_tolerance = 7; + double negative_capture_tolerance = 8; + double positive_capture_tolerance = 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/modeling_ply.proto b/src/ansys/api/acp/v0/modeling_ply.proto index 170f797..b459f9b 100644 --- a/src/ansys/api/acp/v0/modeling_ply.proto +++ b/src/ansys/api/acp/v0/modeling_ply.proto @@ -7,6 +7,23 @@ import "ansys/api/acp/v0/array_types.proto"; import "ansys/api/acp/v0/ply_material.proto"; import "ansys/api/acp/v0/linked_selection_rule.proto"; +enum ThicknessType { + NOMINAL = 0; + FROM_GEOMETRY = 1; + FROM_TABLE = 2; +} + +enum ThicknessFieldType { + ABSOLUTE_VALUES = 0; + RELATIVE_SCALING_FACTOR = 1; +} + +message TaperEdge { + base.ResourcePath edge_set = 1; + double angle = 2; + double offset = 3; +} + message Properties { enum_types.StatusType status = 1; repeated base.ResourcePath oriented_selection_sets = 2; @@ -28,8 +45,15 @@ message Properties { base.ResourcePath draping_angle_2_field = 16; repeated linked_selection_rule.LinkedSelectionRule selection_rules = 17; - // TODO: variable thickness - // TODO: taper edges + + // variable thickness + ThicknessType thickness_type = 18; + base.ResourcePath thickness_geometry = 19; + base.ResourcePath thickness_field = 20; + ThicknessFieldType thickness_field_type = 21; + + // taper edges + repeated TaperEdge taper_edges = 22; } message ObjectInfo {