Skip to content

Commit c804e88

Browse files
authored
New Export Trace Model (#43)
1 parent 84696fa commit c804e88

File tree

3 files changed

+95
-5
lines changed

3 files changed

+95
-5
lines changed

src/ansys/api/sherlock/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.15.dev0
1+
0.16.dev0

src/ansys/api/sherlock/v0/SherlockCommonService.proto

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2023 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.
1+
// Copyright 2023-2024 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.
22
syntax = "proto3";
33

44
option java_package = "sherlock.grpc";
@@ -103,6 +103,14 @@ message GetSoldersResponse {
103103
repeated string solderName = 1; // List of valid solder materials.
104104
}
105105

106+
/**
107+
* Represents a common measurement with a value and a unit.
108+
*/
109+
message Measurement {
110+
double value = 1;
111+
string units = 2;
112+
}
113+
106114
service SherlockCommonService {
107115

108116
// Returns health status of gRPC server.

src/ansys/api/sherlock/v0/SherlockModelService.proto

Lines changed: 85 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
// Copyright 2023 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.
1+
// Copyright 2023-2024 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.
22
syntax = "proto3";
33

44
import "ansys/api/sherlock/v0/SherlockCommonService.proto";
5+
import "ansys/api/sherlock/v0/SherlockAnalysisService.proto";
56

67
option java_package = "sherlock.grpc";
78
option java_outer_classname = "SherlockModelServiceProto";
@@ -60,7 +61,7 @@ message ExportFEAModelRequest {
6061
/**
6162
* Request to export a trace reinforcement model.
6263
*/
63-
message ExportTraceReinforcementModelRequest {
64+
message ExportTraceReinforcementModelRequest {
6465
string project = 1; // Sherlock project name.
6566
string ccaName = 2; // The CCA name.
6667
string exportFile = 3; // Full file path to the trace reinforcement export file.
@@ -81,7 +82,9 @@ message ExportTraceReinforcementModelRequest {
8182
MinHoleDiameterForShellOrBeam minHoleDiameterForShellOrBeam = 2;
8283
}
8384
TraceParam traceParam = 8; // Trace properties (Diameter Threshold and Minimum Hole Diameter for Shell/Beam).
85+
8486
message TraceDrillHoleParam {
87+
option deprecated = true;
8588
string drillHoleModeling = 1; // Enables or disables drill hole modeling, valid values are ENABLED/enabled or DISABLED/disabled.
8689
message MinHoleDiameter {
8790
double value = 1; // Minimum hole diameter value.
@@ -94,7 +97,11 @@ message ExportTraceReinforcementModelRequest {
9497
}
9598
MaxEdgeLength maxEdgeLength = 3;
9699
}
97-
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.
100+
oneof drillHoleParams{
101+
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.
102+
DrillHoleModeling drillHoleModeling = 11; // Properties used for exporting drill holes.
103+
}
104+
98105
string coordinateUnits = 10; // Units of exported model coordinates, valid values are "in", "mm", "m", "mil", "micron", "nm".
99106
}
100107

@@ -114,6 +121,78 @@ message GenerateTraceModelRequest {
114121
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.
115122
}
116123

124+
/**
125+
* Different ways meshes are created. The options
126+
* available depend on the export file type.
127+
*/
128+
enum MeshType {
129+
NONE = 0; // Defines only geometric volumes without generating mesh elements.
130+
BONDED = 1; // Defines meshed elements generated by Sherlock.
131+
SWEEP = 2; // Defines geometric volumes along with commands to mesh the volumes depending on the file type.
132+
}
133+
134+
/*
135+
* Indicates which trace regions to include in the 3D model.
136+
*/
137+
enum TraceOutputType {
138+
ALL_REGIONS = 0; // Both Conductor and Dielectric.
139+
CONDUCTOR_REGIONS = 1; // The traces themselves.
140+
DIELECTRIC_REGIONS = 2; // Regions that surround the conductor regions (Ex. areas filled with resin).
141+
}
142+
143+
/**
144+
* Drill hole properties used for exporting trace models.
145+
*/
146+
message DrillHoleModeling {
147+
bool drillHoleModelingEnabled = 1; // Determines if drill holes will be included in the exported model.
148+
Measurement minHoleDiameter = 2; // All drill holes with a diameter less than this will not be included in the exported model.
149+
// Set this to 0 to include all drill holes.
150+
Measurement maxEdgeLength = 3; // Specifies the size of the segments used to represent round drill holes by a polygon.
151+
}
152+
153+
/**
154+
* Request to export one or many trace models.
155+
*/
156+
message ExportTraceModelRequest {
157+
repeated TraceModelExportParams traceModelExportParams = 1; // Parameters for a single trace model export.
158+
}
159+
160+
/**
161+
* All parameters required to export a trace model.
162+
*/
163+
message TraceModelExportParams {
164+
string project = 1; // Sherlock project name.
165+
string ccaName = 2; // Sherlock CCA name.
166+
string filePath = 3; // Full file path to the trace export file.
167+
string copperLayerName = 4; // Name of the layer in the CCA to export.
168+
bool overwriteExistingFile = 5; // Option that determines if any existing files get overwritten.
169+
bool displayModelAfterExport = 6; // Option to display the model after the export is done.
170+
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.
171+
bool useFEAModelID = 8; // Use FEA Model ID.
172+
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.
173+
174+
/*
175+
* Mesh properties used for exporting trace models.
176+
*/
177+
message PcbMeshPropParam {
178+
MeshType meshType = 1; // Options of different trace meshing strategies. The options available depend on export file type.
179+
bool isModelingRegionEnabled = 2; // Determines if pre-defined modeling regions will be applied to the exported trace model.
180+
}
181+
PcbMeshPropParam pcbMeshPropParam = 10; // Properties used for exporting PCB mesh.
182+
183+
/**
184+
* Trace properties used for exporting trace models.
185+
*/
186+
message TracePropParam {
187+
TraceOutputType traceOutputs = 1; // Options to select which trace regions to include in the 3D model.
188+
ElementOrder elementOrder = 2; // Type of FEA element to be used when modeling each component. (First/linear, Second/quadratic, Solid Shell)
189+
Measurement maxMeshSize = 3; // Value passed to FEA meshing tool to indicate the desired element sizes.
190+
int32 maxHolesPerTrace = 4; // Maximum number of holes allowed in a trace before partitioning it into multiple traces.
191+
}
192+
TracePropParam tracePropParam = 11; // Properties used for exporting the traces.
193+
DrillHoleModeling drillHoleModeling = 12; // Properties used for exporting drill holes.
194+
}
195+
117196
service SherlockModelService {
118197
// Export an FEA Model.
119198
rpc exportFEAModel(ExportFEAModelRequest) returns (ReturnCode);
@@ -123,5 +202,8 @@ service SherlockModelService {
123202

124203
// Generate a trace model.
125204
rpc generateTraceModel(GenerateTraceModelRequest) returns (ReturnCode);
205+
206+
// Export a trace model.
207+
rpc exportTraceModel(ExportTraceModelRequest) returns (ReturnCode);
126208
}
127209

0 commit comments

Comments
 (0)