12.7. Sherlock Model Services- SherlockModelServices.proto

Click here to return to the main index to Sherlock's APIs.

The API in this section allows you to export the 3D model, material definitions, and material assignments from Sherlock so they can be shared with other applications such as Ansys Workbench. Clicking on the active links in the table below will take you to the selected API.

Table 12.146: Index to Sherlock Model Service APIs

Method NameRequest TypeResponse TypeDescription

For display purposes, some strings in the first two columns are broken into multiple lines and should be read as continuous. For example, the last entry in column two should be interpreted as: .ExportTraceReinforcementModelRequest

exportAEDB.ExportFEAModelRequest.ReturnCodeExport an Electronics Desktop model.
exportFEAModel.ExportFEAModelRequest.ReturnCodeExport an FEA Model.
exportTraceModel.ExportTraceModelRequest.ReturnCodeExport a trace model.
exportTrace ReinforcementModel.ExportTrace ReinforcementModelRequest.ReturnCode Export a trace reinforcement model.
generateTraceModel.GenerateTraceModel Request.ReturnCodeGenerate a trace model.

12.7.1. Drill Hole Modeling

Drill hole properties used for exporting trace models.

Table 12.147: DrillHoleModeling

FieldTypeLabelDescription
drillHoleModelingEnabledbool Determines if drill holes will be included in the exported model.
minHoleDiameterMeasurement All drill holes with a diameter less than this will not be included in the exported model.
maxEdgeLengthMeasurement Set this to 0 to include all drill holes. Specifies the size of the segments used to represent round drill holes by a polygon.

12.7.2. Export AEDB

12.7.2.1. ExportAEDBRequest

Request to export an Electronics Desktop model.

Table 12.148: ExportAEDBRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.
exportFilestring Full file path to the Electronics Desktop export file.
overwritebool Overwrite existing file if true.
displayModelbool Display model after export if true.

12.7.2.2. Example: ExportAEDB

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "exportFile": "C:\\TestFilePath",
  "overwrite": true,
  "displayModel": true
}
Python Example:

For a Python example, refer to the online PySherlock Reference.

12.7.3. Export FEA Model

12.7.3.1. ExportFEAModelRequest

Request to export an FEA model

Table 12.149: ExportFEAModelRequest

FieldTypeLabelDescription
For display purposes, some strings in the first two columns are broken into multiple lines and should be read as continuous. For example, the fourth entry in column two should be interpreted as: ExportFEAModelRequest.ExportAnalysis
projectstring Sherlock project name.
ccaNamestring The CCA name.
exportFilestring Full file path to the export file.
analysisExportFEAModel Request.ExportAnalysis
drillHoleParamExportFEAModelRequest. DrillHoleParam Drill Holes modeling parameters - Min Hole Diameter and Max. Edge Length. If any of this parameter is provided, drill hole modeling will be enabled.
detectLead Modelingstring

If enabled, automatically enable lead modeling if any part has lead geometry defined, valid values are ENABLED/enabled or DISABLED/disabled.

leadModelParamExportFEAModelRequest. LeadModelParam
displayModelbool Display model after export.
clearFEADatabasebool Clear FEA Database before defining model.
useFEAModelIDbool Use FEA Model ID.
coordinateUnitsstring Units of exported model coordinates, valid values are "in", "mm", "m", "mil", "micron", "nm".

12.7.3.2. Examples: Export FEA Model

Proto Request Example:
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "exportFile": "C:\\Temp\\test.wbjn",
  "analysis": 2,
  "drillHoleParam": {
    "drillHoleModeling": "Enabled",
    "minHoleDiameter": {
      "value": 5.0,
      "unit": "mm"
    },
    "maxEdgeLength": {
      "value": 5.0,
      "unit": "mm"
    }
  },
  "detectLeadModeling": "Enabled",
  "leadModelParam": {
    "leadModeling": "Enabled",
    "leadElemOrder": "First Order (Linear)",
    "maxMeshSize": {
      "value": 11,
      "unit": "mm"
    },
    "verticalMeshSize": {
      "value": 3,
      "unit": "mm"
    }
  },
  "displayModel": false,
  "clearFEADatabase": true,
  "useFEAModelID": false,
  "coordinateUnits": "nm"
}
Python Example:

For a Python example, refer to the online PySherlock Reference.

12.7.3.3. ExportFEAModelRequest.DrillHoleParam

Table 12.150: ExportFEAModelRequest.DrillHoleParam

FieldTypeLabelDescription

For display purposes, some strings in the second column are broken into multiple lines and should be read as continuous. For example, the last entry in column two should be interpreted as:

ExportFEAModel Request.DrillHoleParam.MaxEdgeLength

drillHoleModelingstring Enables or disables drill hole modeling, valid values are ENABLED/enabled or DISABLED/disabled.
minHoleDiameterExportFEAModel Request.DrillHoleParam. MinHoleDiameter
maxEdgeLengthExportFEAModel Request.DrillHoleParam. MaxEdgeLength

12.7.3.4. ExportFEAModelRequest.DrillHoleParam.MaxEdgeLength

Table 12.151: ExportFEAModelRequest.DrillHoleParam.MaxEdgeLength

FieldTypeLabelDescription
valuedouble Maximum edge length value.
unitstring Maximum edge length unit.

12.7.3.5. ExportFEAModelRequest.DrillHoleParam.MinHoleDiameter

Table 12.152: ExportFEAModelRequest.DrillHoleParam.MinHoleDiameter

FieldTypeLabelDescription
valuedouble Minimum hole diameter value.
unitstring Minimum hole diameter unit.

12.7.3.6. ExportFEAModelRequest.LeadModelParam

Table 12.153: ExportFEAModelRequest.LeadModelParam

FieldTypeLabelDescription

For display purposes, some strings in the second column are broken into multiple lines and should be read as continuous. For example, the last entry in column two should be interpreted as:

ExportFEAModelRequest.LeadModelParam.VerticalMeshSize

leadModelingstring Enables or disables lead modeling, valid values are ENABLED/enabled or DISABLED/disabled.
leadElemOrderstring Element order, valid values are "First Order", "Second Order", or "Solid Shell".
maxMeshSizeExportFEAModel Request.LeadModel Param.MaxMeshSize
verticalMeshSizeExportFEAModel Request.LeadModel Param.VerticalMeshSize
thicknessCountint32 The number of elements through the lead thickness that will be created per lead.
aspectRatio int32 The aspect ratio is multiplied by the lead thickness divided by the through thickness count to give the lead element height.

12.7.3.7. ExportFEAModelRequest.LeadModelParam.MaxMeshSize

Table 12.154: ExportFEAModelRequest.LeadModelParam.MaxMeshSize

FieldTypeLabelDescription
valuedouble Max mesh size value.
unitstring Max mesh size unit.

12.7.3.8. ExportFEAModelRequest.LeadModelParam.VerticalMeshSize

Table 12.155: ExportFEAModelRequest.LeadModelParam.VerticalMeshSize

FieldTypeLabelDescription
valuedouble Vertical mesh size value.
unitstring Vertical mesh size unit.

12.7.3.9. ExportFEAModelRequest.ExportAnalysis

Table 12.156: ExportFEAModelRequest.ExportAnalysis

FieldTypeDescription
NaturalFreq0
HarmonicVibe1
ICTAnalysis2
MechanicalShock3
RandomVibe4

12.7.3.10. Examples: Export FEA Model

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "exportFile": "C:\\Temp\\test.wbjn",
  "analysis": 2,
  "drillHoleParam": {
    "drillHoleModeling": "Enabled",
    "minHoleDiameter": {
      "value": 5.0,
      "unit": "mm"
    },
    "maxEdgeLength": {
      "value": 5.0,
      "unit": "mm"
    }
  },
  "detectLeadModeling": "Enabled",
  "leadModelParam": {
    "leadModeling": "Enabled",
    "leadElemOrder": "First Order (Linear)",
    "maxMeshSize": {
      "value": 11,
      "unit": "mm"
    },
    "verticalMeshSize": {
      "value": 3,
      "unit": "mm"
    }
  },
  "displayModel": false,
  "clearFEADatabase": true,
  "useFEAModelID": false
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.7.4. Export Trace Model

12.7.4.1. ExportTraceModelRequest

Request to export one or many trace models.

Table 12.157: ExportTraceModelRequest

FieldTypeLabelDescription
traceModelExportParamsTraceModelExportParamsrepeatedParameters for a single trace model export.

12.7.4.2. Example: exportTraceModel

Proto Request Example
{
  "traceModelExportParams": [
    {
      "project": "Tutorial Project",
      "ccaName": "Main Board",
      "filePath": "C:\\test.wbjn",
      "copperLayerName": "copper-01.odb",
      "overwriteExistingFile": true,
      "displayModelAfterExport": true,
      "clearFEADatabase": true,
      "useFEAModelID": true,
      "coordUnits": "mm",
      "pcbMeshPropParam": {
        "meshType": 0,
        "isModelingRegionEnabled": true
      },
      "tracePropParam": {
        "traceOutputs": 0,
        "elementOrder": 1,
        "maxMeshSize": {
          "value": 5,
          "units": "mm"
        },
        "maxHolesPerTrace": 50
      },
      "drillHoleModeling": {
        "drillHoleModelingEnabled": true,
        "minHoleDiameter": {
          "value": 0,
          "units": "mm"
        },
        "maxEdgeLength": {
          "value": 5,
          "units": "mm"
        }
      }
    }
  ]
}
Python Example:

For a Python example, refer to the online PySherlock Reference.

12.7.5. Export Trace Reinforcement Model

12.7.5.1. ExportTraceReinforcementModelRequest

Request to export a trace reinforcement model.

Table 12.158: ExportTraceReinforcementModelRequest

FieldTypeLabelDescription

For display purposes, some strings in column one and column two are broken into multiple lines and should be read as continuous. For example, the last entry in column two should be interpreted as:

ExportTraceReinforcementModelRequest.TraceDrillHoleParam

projectstring Sherlock project name.
ccaNamestring The CCA name.
exportFilestring Full file path to the trace reinforcement export file.
overwritebool Overwrite existing file if true.
displayModelbool Display model after export if true.
clearFEADatabasebool Clear FEA Database before defining model if true.
generateModels ForAllLayersbool Generate models for all layers.
traceParamExportTraceReinforcement ModelRequest.TraceParam Trace properties (Diameter Threshold and Minimum Hole Diameter for Shell/Beam).
traceDrillHoleParamExportTraceReinforcement ModelRequest. TraceDrillHoleParam Deprecated. Drill Holes modeling parameters - Min Hole Diameter and Max. Edge Length. If any of this parameter is provided, drill hole modeling will be enabled.
drillHoleModelingDrillHoleModeling Properties used for exporting drill holes.
coordinateUnitsstring Units of exported model coordinates, valid values are "in", "mm", "m", "mil", "micron", "nm".

Fields with deprecated option
NameOption
traceDrillHoleParamtrue

12.7.5.2. ExportTraceReinforcementModelRequest.TraceDrillHoleParam

Table 12.159: ExportTraceReinforcementModelRequest.TraceDrillHoleParam

FieldTypeLabelDescription

For display purposes, some strings in column one and column two are broken into multiple lines and should be read as continuous. For example, the last entry in column two should be interpreted as:

ExportTraceReinforcementModelRequest.TraceDrillHoleParam.MaxEdgeLength

drillHole Modelingstring

Enables or disables drill hole modeling, valid values are ENABLED/enabled or DISABLED/disabled.

minHole DiameterExportTraceReinforcementModelRequest .TraceDrillHoleParam.MinHoleDiameter
maxEdge LengthExportTraceReinforcementModelRequest. TraceDrillHoleParam.MaxEdgeLength

12.7.5.3. ExportTraceReinforcementModelRequest.TraceDrillHoleParam.MaxEdgeLength

Table 12.160: ExportTraceReinforcementModelRequest.TraceDrillHoleParam.MaxEdgeLength

FieldTypeLabelDescription
valuedouble Maximum edge length value.
unitstring Maximum edge length unit.

12.7.5.4. ExportTraceReinforcementModelRequest.TraceDrillHoleParam.MinHoleDiameter

Table 12.161: ExportTraceReinforcementModelRequest.TraceDrillHoleParam.MinHoleDiameter

FieldTypeLabelDescription
valuedouble Minimum hole diameter value.
unitstring Minimum hole diameter unit.

12.7.5.5. ExportTraceReinforcementModelRequest.TraceParam

Table 12.162: ExportTraceReinforcementModelRequest.TraceParam

FieldTypeLabelDescription

For display purposes, some strings in column one and column two are broken into multiple lines and should be read as continuous. For example, the last entry in column one should be interpreted as:

minHoleDiameterForShellOrBeam

diameterThresholdExportTraceReinforcementModel Request.TraceParam.DiameterThreshold
minHoleDiameter ForShellOrBeamExportTraceReinforcementModelRequest .TraceParam.MinHoleDiameter ForShellOrBeam

12.7.5.6. ExportTraceReinforcementModelRequest.TraceParam.DiameterThreshold

Table 12.163: ExportTraceReinforcementModelRequest.TraceParam.DiameterThreshold

FieldTypeLabelDescription
valuedouble Diameter threshold value.
unitstring Diameter threshold unit.

12.7.5.7. ExportTraceReinforcementModelRequest.TraceParam.MinHoleDiameterForShellOrBeam

Table 12.164: ExportTraceReinforcementModelRequest.TraceParam.MinHoleDiameterForShellOrBeam

FieldTypeLabelDescription
valuedouble Min. hole diameter value for Shell/Beam.
unitstring Min. hole diameter unit for Shell/Beam.

12.7.5.8. Example: SherlockModelService.exportTraceReinforcementModel()

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "exportFile": "C:\\export.stp",
  "overwrite": true,
  "displayModel": true,
  "clearFEADatabase": true,
  "generateModelsForAllLayers": true,
  "traceParam": {
    "diameterThreshold": {
      "value": 5,
      "unit": "mm"
    },
    "minHoleDiameterForShellOrBeam": {
      "value": 5,
      "unit": "mm"
    }
  },
  "traceDrillHoleParam": {
    "drillHoleModeling": "Enabled",
    "minHoleDiameter": {
      "value": 5,
      "unit": "mm"
    },
    "maxEdgeLength": {
      "value": 5,
      "unit": "mm"
    }
  },
  "drillHoleModeling": {
    "drillHoleModelingEnabled": true,
    "minHoleDiameter": {
      "value": 3,
      "units": "mm"
    },
    "maxEdgeLength": {
      "value": 5,
      "units": "mm"
    }
  },
  "coordinateUnits": "mm"
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.7.6. Generate Trace Model

12.7.6.1. GenerateTraceModelRequest

Request to generate a trace model.

Table 12.165: GenerateTraceModelRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name. If left empty, trace models will be generated for all CCAs and all of their copper layers.
copperLayerNamestring Copper layer from which to generate the trace model. If left empty, trace models will be generated for all copper layers.
maxArcSegmentdouble Max arc segment.
maxArcSegmentUnitsstring Max arc segment units.
minTraceAreadouble Min trace area.
minTraceAreaUnitsstring Min trace area units.
minHoleAreadouble Min hole area.
minHoleAreaUnitsstring Min hole area units.
useSnapshotFor NonImageLayerbool 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.

12.7.6.2. Example: Generate Trace Model

Proto Request Example:
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "copperLayerName": "copper-01",
  "maxArcSegment": 10,
  "maxArcSegmentUnits": "mm",
  "minTraceArea": 2,
  "minTraceAreaUnits": "mm2",
  "minHoleArea": 1,
  "minHoleAreaUnits": "mm2",
  "useSnapshotForNonImageLayer": true
}
Python Example:

For a Python example, refer to the online PySherlock Reference.

12.7.7. Trace Model Export Parameters

12.7.7.1. TraceModelExportParams

All parameters required to export a trace model.

Table 12.166: TraceModelExportParams

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring Sherlock CCA name.
filePathstring Full file path to the trace export file.
copperLayerNamestring Name of the layer in the CCA to export.
overwrite ExistingFilebool Option that determines if any existing files get overwritten.
displayModel AfterExportbool Option to display the model after the export is done.
clearFEADatabasebooloptionalClears FEA Database. Applicable for .apdl, and .cdb. This will be set to false if it is omitted for applicable file types.
useFEAModelIDbool Use FEA Model ID.
coordUnitsstringoptionalUnits of the coordinate system. Applicable to .py .wbjn, and .stp/.step. This will be set to mm if omitted for applicable file types.
pcbMeshPropParamTraceModelExport Params.PcbMesh PropParam Properties used for exporting PCB mesh.
tracePropParamTraceModel Export Params. TracePropParam Properties used for exporting the traces.
drillHoleModelingDrillHoleModeling Properties used for exporting drill holes.

12.7.7.2. TraceModelExportParams.PcbMeshPropParam

Mesh properties used for exporting trace models.

Table 12.167: TraceModelExportParams.PcbMeshPropParam

FieldTypeLabelDescription
meshTypeMeshType Options of different trace meshing strategies. The options available depend on export file type.
isModelingRegionEnabledbool Determines if pre-defined modeling regions will be applied to the exported trace model.

12.7.7.3. TraceModelExportParams.TracePropParam

Trace properties used for exporting trace models.

Table 12.168: TraceModelExportParams.TracePropParam

FieldTypeLabelDescription
traceOutputsTraceOutputType Options to select which trace regions to include in the 3D model.
elementOrderElementOrder Type of FEA element to be used when modeling each component. (First/linear, Second/quadratic, Solid Shell)
maxMeshSizeMeasurement Value passed to FEA meshing tool to indicate the desired element sizes.
maxHolesPerTraceint32 Maximum number of holes allowed in a trace before partitioning it into multiple traces.

12.7.8. MeshType

Different ways meshes are created. The options available depend on the export file type.

Table 12.169: MeshType

NameNumberDescription
NONE0Defines only geometric volumes without generating mesh elements.
BONDED1Defines meshed elements generated by Sherlock.
SWEEP2Defines geometric volumes along with commands to mesh the volumes depending on the file type.

12.7.9. TraceOutputType

Indicates which trace regions to include in the 3D model.

Table 12.170: TraceOutputType

NameNumberDescription
ALL_REGIONS0Both Conductor and Dielectric.
CONDUCTOR_REGIONS1The traces themselves.
DIELECTRIC_REGIONS2Regions that surround the conductor regions (Ex. areas filled with resin).