Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion src/ansys/api/sherlock/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.15.dev0
0.16.dev0
10 changes: 9 additions & 1 deletion src/ansys/api/sherlock/v0/SherlockCommonService.proto
Original file line number Diff line number Diff line change
@@ -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";
Expand Down Expand Up @@ -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.
Expand Down
88 changes: 85 additions & 3 deletions src/ansys/api/sherlock/v0/SherlockModelService.proto
Original file line number Diff line number Diff line change
@@ -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";
Expand Down Expand Up @@ -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.
Expand All @@ -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.
Expand All @@ -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".
}

Expand All @@ -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);
Expand All @@ -123,5 +202,8 @@ service SherlockModelService {

// Generate a trace model.
rpc generateTraceModel(GenerateTraceModelRequest) returns (ReturnCode);

// Export a trace model.
rpc exportTraceModel(ExportTraceModelRequest) returns (ReturnCode);
}