diff --git a/src/ansys/api/sherlock/VERSION b/src/ansys/api/sherlock/VERSION index 8bd8554..4f8c6b7 100644 --- a/src/ansys/api/sherlock/VERSION +++ b/src/ansys/api/sherlock/VERSION @@ -1 +1 @@ -0.15.dev0 +0.16.dev0 diff --git a/src/ansys/api/sherlock/v0/SherlockCommonService.proto b/src/ansys/api/sherlock/v0/SherlockCommonService.proto index 22613c1..38509f1 100644 --- a/src/ansys/api/sherlock/v0/SherlockCommonService.proto +++ b/src/ansys/api/sherlock/v0/SherlockCommonService.proto @@ -1,4 +1,4 @@ -// Copyright 2023 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited. +// Copyright 2023-2024 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited. syntax = "proto3"; option java_package = "sherlock.grpc"; @@ -103,6 +103,14 @@ message GetSoldersResponse { repeated string solderName = 1; // List of valid solder materials. } +/** + * Represents a common measurement with a value and a unit. + */ + message Measurement { + double value = 1; + string units = 2; +} + service SherlockCommonService { // Returns health status of gRPC server. diff --git a/src/ansys/api/sherlock/v0/SherlockModelService.proto b/src/ansys/api/sherlock/v0/SherlockModelService.proto index 669cb97..ea45caf 100644 --- a/src/ansys/api/sherlock/v0/SherlockModelService.proto +++ b/src/ansys/api/sherlock/v0/SherlockModelService.proto @@ -1,7 +1,8 @@ -// Copyright 2023 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited. +// Copyright 2023-2024 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited. syntax = "proto3"; import "ansys/api/sherlock/v0/SherlockCommonService.proto"; +import "ansys/api/sherlock/v0/SherlockAnalysisService.proto"; option java_package = "sherlock.grpc"; option java_outer_classname = "SherlockModelServiceProto"; @@ -60,7 +61,7 @@ message ExportFEAModelRequest { /** * Request to export a trace reinforcement model. */ -message ExportTraceReinforcementModelRequest { + message ExportTraceReinforcementModelRequest { string project = 1; // Sherlock project name. string ccaName = 2; // The CCA name. string exportFile = 3; // Full file path to the trace reinforcement export file. @@ -81,7 +82,9 @@ message ExportTraceReinforcementModelRequest { MinHoleDiameterForShellOrBeam minHoleDiameterForShellOrBeam = 2; } TraceParam traceParam = 8; // Trace properties (Diameter Threshold and Minimum Hole Diameter for Shell/Beam). + message TraceDrillHoleParam { + option deprecated = true; string drillHoleModeling = 1; // Enables or disables drill hole modeling, valid values are ENABLED/enabled or DISABLED/disabled. message MinHoleDiameter { double value = 1; // Minimum hole diameter value. @@ -94,7 +97,11 @@ message ExportTraceReinforcementModelRequest { } MaxEdgeLength maxEdgeLength = 3; } - TraceDrillHoleParam traceDrillHoleParam = 9; // Drill Holes modeling parameters - Min Hole Diameter and Max. Edge Length. If any of this parameter is provided, drill hole modeling will be enabled. + oneof drillHoleParams{ + TraceDrillHoleParam traceDrillHoleParam = 9 [deprecated = true]; // Drill Holes modeling parameters - Min Hole Diameter and Max. Edge Length. If any of this parameter is provided, drill hole modeling will be enabled. + DrillHoleModeling drillHoleModeling = 11; // Properties used for exporting drill holes. + } + string coordinateUnits = 10; // Units of exported model coordinates, valid values are "in", "mm", "m", "mil", "micron", "nm". } @@ -114,6 +121,78 @@ message GenerateTraceModelRequest { bool useSnapshotForNonImageLayer = 10; // Use an image to generate the trace model for layers that are not image layers. If a snapshot image exists for the layer, that snapshot is used. Otherwise this creates an image that is identical to creating a snapshot. } +/** + * Different ways meshes are created. The options + * available depend on the export file type. + */ + enum MeshType { + NONE = 0; // Defines only geometric volumes without generating mesh elements. + BONDED = 1; // Defines meshed elements generated by Sherlock. + SWEEP = 2; // Defines geometric volumes along with commands to mesh the volumes depending on the file type. +} + +/* + * Indicates which trace regions to include in the 3D model. + */ +enum TraceOutputType { + ALL_REGIONS = 0; // Both Conductor and Dielectric. + CONDUCTOR_REGIONS = 1; // The traces themselves. + DIELECTRIC_REGIONS = 2; // Regions that surround the conductor regions (Ex. areas filled with resin). +} + +/** + * Drill hole properties used for exporting trace models. + */ +message DrillHoleModeling { + bool drillHoleModelingEnabled = 1; // Determines if drill holes will be included in the exported model. + Measurement minHoleDiameter = 2; // All drill holes with a diameter less than this will not be included in the exported model. + // Set this to 0 to include all drill holes. + Measurement maxEdgeLength = 3; // Specifies the size of the segments used to represent round drill holes by a polygon. +} + +/** + * Request to export one or many trace models. + */ +message ExportTraceModelRequest { + repeated TraceModelExportParams traceModelExportParams = 1; // Parameters for a single trace model export. +} + +/** + * All parameters required to export a trace model. + */ +message TraceModelExportParams { + string project = 1; // Sherlock project name. + string ccaName = 2; // Sherlock CCA name. + string filePath = 3; // Full file path to the trace export file. + string copperLayerName = 4; // Name of the layer in the CCA to export. + bool overwriteExistingFile = 5; // Option that determines if any existing files get overwritten. + bool displayModelAfterExport = 6; // Option to display the model after the export is done. + optional bool clearFEADatabase = 7; // Clears FEA Database. Applicable for .apdl, and .cdb. This will be set to false if it is omitted for applicable file types. + bool useFEAModelID = 8; // Use FEA Model ID. + optional string coordUnits = 9; // Units of the coordinate system. Applicable to .py .wbjn, and .stp/.step. This will be set to mm if omitted for applicable file types. + + /* + * Mesh properties used for exporting trace models. + */ + message PcbMeshPropParam { + MeshType meshType = 1; // Options of different trace meshing strategies. The options available depend on export file type. + bool isModelingRegionEnabled = 2; // Determines if pre-defined modeling regions will be applied to the exported trace model. + } + PcbMeshPropParam pcbMeshPropParam = 10; // Properties used for exporting PCB mesh. + + /** + * Trace properties used for exporting trace models. + */ + message TracePropParam { + TraceOutputType traceOutputs = 1; // Options to select which trace regions to include in the 3D model. + ElementOrder elementOrder = 2; // Type of FEA element to be used when modeling each component. (First/linear, Second/quadratic, Solid Shell) + Measurement maxMeshSize = 3; // Value passed to FEA meshing tool to indicate the desired element sizes. + int32 maxHolesPerTrace = 4; // Maximum number of holes allowed in a trace before partitioning it into multiple traces. + } + TracePropParam tracePropParam = 11; // Properties used for exporting the traces. + DrillHoleModeling drillHoleModeling = 12; // Properties used for exporting drill holes. +} + service SherlockModelService { // Export an FEA Model. rpc exportFEAModel(ExportFEAModelRequest) returns (ReturnCode); @@ -123,5 +202,8 @@ service SherlockModelService { // Generate a trace model. rpc generateTraceModel(GenerateTraceModelRequest) returns (ReturnCode); + + // Export a trace model. + rpc exportTraceModel(ExportTraceModelRequest) returns (ReturnCode); }