12.10. Sherlock Stackup Service- SherlockStackupService.proto

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

The APIs in this section allow you to perform updates on laminate layers. Clicking on the active links in the table below will take you to the selected API.

Table 12.248: Index to Sherlock Stackup Service APIs

Method NameRequest TypeResponse TypeDescription
For display purposes, some strings in the first three columns are broken into multiple lines and should be read as continous. For example, the first string in column two should be interpreted as: .ListLaminatesRequest
listLaminates.ListLaminates Request.ListLaminates ResponseReturns a list of project's CCAs and their laminates.
updateLaminate.Update Laminate Request.ReturnCode

Update properties for a given laminate layer.

listLaminate ThicknessUnits.ListLaminate Thickness UnitsRequest.ListLaminate ThicknessUnits ResponseList all the supported laminate layer thickness units.
listConductor Materials.ListConductor Materials Request.ListConductor MaterialsResponse

List all conductor materials.

listFiber Materials.ListFiber Materials Request.ListFiber MaterialsResponseList all fiber materials.
listLaminate Materials Manufacturers.ListLaminate Materials Manufacturers Request.ListLaminate Materials Manufacturers ResponseList all laminate materials manufacturers.
listLaminate Materials.ListLaminate Materials Request.ListLaminate Materials Response

See note below.

listLaminate Materials: List all laminate materials (both based on manufacturer specified or without). If manufacturer is empty or not provided, then all manufacturers and their laminate materials will be returned. If a manufacturer is provided, then only that manufacturer's laminate materials will be returned.
listConstruction Styles.ListConstruction StylesRequest.List Construction StylesResponse

List all construction styles.

listConductorLayers.ListConductor LayersRequest.ListConductor LayersResponseReturns a list of project's CCAs and their conductor layers.
updateConductor Layer.UpdateConductor LayerRequest.ReturnCode

Update properties for a given conductor layer.

getLayerCount.GetLayer CountRequest.GetLayer CountResponseReturns the number of stackup layers.
getTotal ConductorThickness.GetTotalConductor ThicknessRequest.GetTotalConductor ThicknessResponseReturns the total thickness for all conductor layers.
getStackupProps.GetStackup PropsRequest.GetStackup PropsResponseReturns a summary of the stackup properties.
genStackup.GenStackupRequest.ReturnCodeGenerate stackup layers.

12.10.1. Generate Stackup

12.10.1.1. GenStackupRequest

Request to generate stackup layers for a CCA.

Table 12.249: GenStackupRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.
boardThicknessdouble Board thickness.
boardThicknessUnitstring Board thickness unit.
pcbMaterialManufacturerstring PCB material manufacturer.
pcbMaterialGradestring PCB material grade.
pcbMaterialstring PCB material.
conductorLayersCntint32 Number of conductor layers.
signalLayerThicknessdouble Signal layer thickness.
signalLayerThicknessUnitstring Signal layer thickness unit.
minLaminateThicknessdouble Minimum laminate layer thickness.
minLaminateThicknessUnitstring Minimum laminate layer thickness unit.
maintainSymmetrybool If set to true, maintain symmetry.
powerLayerThicknessdouble Power layer thickness.
powerLayerThicknessUnitstring Power layer thickness unit.

12.10.1.2. Examples: Generate Stackup

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "boardThickness": 1.4,
  "boardThicknessUnit": "mil",
  "pcbMaterialManufacturer": "Grace",
  "pcbMaterialGrade": "FR-4",
  "pcbMaterial": "FR4-97",
  "conductorLayersCnt": 8,
  "signalLayerThickness": 0.5,
  "signalLayerThicknessUnit": "oz",
  "minLaminateThickness": 0.5,
  "minLaminateThicknessUnit": "mil",
  "maintainSymmetry": true,
  "powerLayerThickness": 0.8,
  "powerLayerThicknessUnit": "oz"
} 
Python Example

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

12.10.2. Get Layer Count

12.10.2.1. GetLayerCountRequest

Requests the number of layers in the stackup.

Table 12.250: GetLayerCountRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.

12.10.2.2. GetLayerCountResponse

Represents the number of layers in the stackup.

Table 12.251: GetLayerCountResponse

FieldTypeLabelDescription
returnCodeReturnCode Status code of response.
countint32 Number of stackup layers.

12.10.2.3. Exampes: Get Layer Count

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board"
} 
Python Example:

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

12.10.3. Get Stackup Properties

12.10.3.1. GetStackupPropsRequest

Requests a summary of the stackup properties.

Table 12.252: GetStackupPropsRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.

12.10.3.2. GetStackupPropsResponse

Represents a summary of the stackup properties.

Table 12.253: GetStackupPropsResponse

FieldTypeLabelDescription
returnCodeReturnCode Status code of response.
boardDimensionstring Board dimension.
boardThicknessstring Board thickness.
densitystring Board density.
conductorLayersCntstring Number of conductor layers.
ctExystring CTExy.
ctEzstring CTEz.
exystring Exy.
ezstring Ez.

12.10.3.3. Example: Get Stackup Properties

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board"
}
Python Example

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

12.10.4. Get Conductor Thickness

12.10.4.1. GetTotalConductorThicknessRequest

Requests the total thickness on all conductor layers in a stackup.

Table 12.254: GetTotalConductorThicknessRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.
thicknessUnitstring Conductor layer thickness unit.

12.10.4.2. GetTotalConductorThicknessResponse

Represents the number of layers in the stackup.

Table 12.255: GetTotalConductorThicknessResponse

FieldTypeLabelDescription
returnCodeReturnCode Status code of response.
totalThicknessdouble Total thickness.

12.10.4.3. Example: Get Total Conductor Thickness

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "thicknessUnit": "mm"
} 
Python Example

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

12.10.5. List Conductor Layers

12.10.5.1. ListConductorLayersRequest

Request for a list of conductor layers.

Table 12.256: ListConductorLayersRequest

FieldTypeLabelDescription
projectstring Sherlock project name.

12.10.5.2. ListConductorLayersResponse

Represents the properties for all CCAs and their corresponding conductor layers.

Table 12.257: ListConductorLayersResponse

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 last string in column one should be interpreted as: ccaConductorLayerProps
returnCodeReturnCode Status code of response.
ccaConductor LayerPropsListConductorLayersResponse. CCAConductorLayerProprepeated

12.10.5.3. Examples: List Conductor Layers

Proto Request Example
{
  "project": "Tutorial Project"
} 
Python Example:

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

12.10.6. List CCA Conductor Layer Properties

12.10.6.1. ListConductorLayersResponse.CCAConductorLayerProp

Represents a CCA and its conductor layers.

Table 12.258: ListConductorLayersResponse.CCAConductorLayerProp

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 last string in column one should be interpreted as:

ListConductorLayersResponse.CCAConductorLayerProp.ConductorLayerProp

ccaNamestring The CCA name.
conductorLayerProps

ListConductorLayersResponse. CCAConductorLayerProp. ConductorLayerProp

repeated

12.10.6.2. ListConductorLayersResponse. CCAConductorLayerProp.ConductorLayerProp

ListConductorLayersResponse.CCAConductorLayerProp.ConductorLayerProp

Represents a conductor layer and its properties.

Table 12.259: ListConductorLayersResponse.CCAConductorLayerProp.ConductorLayerProp

FieldTypeLabelDescription
layerstring An internal layer ID associated with this conductor layer.
typestring Layer type (i.e. SIGNAL, POWER, SUBSTRATE).
materialstring Name of this conductor material.
thicknessdouble Conductor layer thickness.
thicknessUnitstring Conductor layer thickness unit.
conductorPercentstring Conductor percentage.
resinMaterialstring Resin material.
densitydouble Layer density.
CTExydouble CTExy.
CTEzdouble CTEz.
Exydouble Exy.
Ezdouble Ez.

12.10.7. List Conductor Materials

12.10.7.1. ListConductorMaterialsRequest

Request to list valid conductor materials.

12.10.7.2. ListConductorMaterialsResponse

Represents a list of valid conductor materials.

Table 12.260: ListConductorMaterialsResponse

FieldTypeLabelDescription
ReturnCodeReturnCode Status code of response.
conductorMaterialstringrepeatedConductor material name.

12.10.7.3. Examples: List Conductor Materials

Proto Request Example
{ }
Python Example

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

12.10.8. List Construction Styles

12.10.8.1. ListConstructionStylesRequest

Empty request to list valid construction styles.

12.10.8.2. ListConstructionStylesResponse

Represents a list of valid construction styles.

Table 12.261: ListConstructionStylesResponse

FieldTypeLabelDescription
ReturnCodeReturnCode Status code of response.
constructionStylestringrepeatedConstruction style.

12.10.8.3. Examples: List Construction Styles

Proto Request Example
{ }
Python Example

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

12.10.9. List Fiber Materials

12.10.9.1. ListFiberMaterialsRequest

Empty request to list valid fiber materials.

12.10.9.2. ListFiberMaterialsResponse

Represents a list of valid fiber materials.

Table 12.262: ListFiberMaterialsResponse

FieldTypeLabelDescription
ReturnCodeReturnCode Status code of response.
fiberMaterialstringrepeatedFiber material name.

12.10.9.3. Examples: List Fiber Materials

Proto Request Example
{ }
Python Example

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

12.10.10. List Laminate Materials Manufacturers

12.10.10.1. ListLaminateMaterialsManufacturersRequest

Empty request to list valid materials manufacturers names.

12.10.10.2. ListLaminateMaterialsManufacturersResponse

Represents a list of valid materials manufacturers names.

Table 12.263: ListLaminateMaterialsManufacturersResponse

FieldTypeLabelDescription
ReturnCodeReturnCode Status code of response.
manufacturerstringrepeatedManufacturer name.

12.10.10.3. Examples: List Laminate Materials Manufacturers

Proto Request Example
{ }
Python Example

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

12.10.11. List Laminate Materials

12.10.11.1. ListLaminateMaterialsRequest

Request a list of materials from a given manufacturer.

If manufacturer is empty, all manufacturers and their materials will be returned.

Table 12.264: ListLaminateMaterialsRequest

FieldTypeLabelDescription
manufacturerstring Manufacturer name.

12.10.11.2. ListLaminateMaterialsResponse

Represents a list of manufacturers materials.

Table 12.265: ListLaminateMaterialsResponse

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 last string in column one should be interpreted as: manufacturerMaterials
ReturnCodeReturnCode Status code of response.
manufacturer MaterialsListLaminateMaterialsResponse .ManufacturerMaterialsrepeated

12.10.11.3. ListLaminateMaterialsResponse.ManufacturerMaterials

Table 12.266: ListLaminateMaterialsResponse.ManufacturerMaterials

FieldTypeLabelDescription

For display purposes, the long string in column two is broken into multiple lines. It should be interpreted as: ListLaminateMaterialsResponse.ManufacturerMaterials.GradeMaterials

manufacturerstring Manufacturer name.
gradeMaterialsListLaminateMaterialsResponse. ManufacturerMaterials.GradeMaterialsrepeated

12.10.11.4. ListLaminateMaterialsResponse.ManufacturerMaterials.GradeMaterials

Represents a grade and the materials with this grade.

Table 12.267: ListLaminateMaterialsResponse.ManufacturerMaterials.GradeMaterials

FieldTypeLabelDescription
gradestring Grade.
laminateMaterialstringrepeatedMaterial name.

12.10.11.5. Examples: List Laminate Materials

Proto Request Example
{
  "manufacturer": "Arlon"
}
Python Example

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

12.10.12. List Laminate Thickness Units

12.10.12.1. ListLaminateThicknessUnitsRequest

Empty request to list valid laminate thickness units.

12.10.12.2. ListLaminateThicknessUnitsResponse

Represents a list of valid laminate thickness units.

Table 12.268: ListLaminateThicknessUnitsResponse

FieldTypeLabelDescription
ReturnCodeReturnCode Status code of response.
unitstringrepeatedThickness unit.

12.10.12.3. Examples: List Laminate Thickness Units

Proto Request Example
{ }
Python Example

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

12.10.13. List Laminates

12.10.13.1. ListLaminatesRequest

Request for a list of laminates.

Table 12.269: ListLaminatesRequest

FieldTypeLabelDescription
projectDirstring The full path to the Sherlock project directory.

12.10.13.2. ListLaminatesResponse

Represents the properties for all CCAs and their corresponding laminates

Table 12.270: ListLaminatesResponse

FieldTypeLabelDescription
For display purposes, the long string in column two is broken into multiple lines. It should be interpreted as: ListLaminatesResponse.CCALaminateProp
ReturnCodeReturnCode Status code of response.
ccaLaminatePropsListLaminatesResponse .CCALaminateProprepeated

12.10.13.3. ListLaminatesResponse.CCALaminateProp

Represents a CCA and its laminates.

Table 12.271: ListLaminatesResponse.CCALaminateProp

FieldTypeLabelDescription
For display purposes, the long string in column two is broken into multiple lines. It should be interpreted as: ListLaminatesResponse.CCALaminateProp.LaminateProp
ccaNamestring The CCA name.
laminatePropsListLaminatesResponse. CCALaminateProp.LaminateProprepeated

12.10.13.4. ListLaminatesResponse.CCALaminateProp.LaminateProp

Represents a laminate layer and its properties.

Table 12.272: ListLaminatesResponse.CCALaminateProp.LaminateProp

FieldTypeLabelDescription
For display purposes, the long string in column two is broken into multiple lines. It should be interpreted as: ListLaminatesResponse.CCALaminateProp.LaminateProp.GlassConstruction
layerstring An internal layer ID associated with this laminate layer.
manufacturerstring Manufacturer name of this material.
gradestring Grade of this material.
materialstring Name of this material.
thicknessdouble Laminate thickness.
thicknessUnitstring Laminate thickness unit.
constructionStylestring Construction style.
glassConstructionsListLaminates Response .CCALaminateProp .LaminateProp .GlassConstructionrepeated
fiberMaterialstring Fiber material if the construction style is glass.
conductorMaterialstring Conductor material.
conductorPercentstring Conductor percentage.
densitydouble Layer density.
CTExydouble CTExy.
CTEzdouble CTEz.
Exydouble Exy.
Ezdouble Ez.

12.10.13.5. ListLaminatesResponse.CCALaminateProp.LaminateProp.GlassConstruction

Represents the layers with a glass construction.

Table 12.273: ListLaminatesResponse.CCALaminateProp.LaminateProp.GlassConstruction

FieldTypeLabelDescription
stylestring Glass construction style.
thicknessdouble Glass construction thickness.
thicknessUnitstring Glass construction thickness unit.

12.10.13.6. Examples: List Laminates

Proto Request Example
{
  "project": "Tutorial Project"
}
Python Example

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

12.10.14. Update Conductor Layer

12.10.14.1. UpdateConductorLayerRequest

Represents the conductor layer properties requested to be updated.

To update a thickness, a thickness unit must be provided also.

Any property left out or set to "" or 0.0 will not be updated.

Table 12.274: UpdateConductorLayerRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.
layerstring The layer ID associated with this conductor layer.
typestring Layer type (i.e. SIGNAL, POWER, SUBSTRATE).
materialstring Name of this conductor material.
thicknessdouble Conductor layer thickness.
thicknessUnitstring Conductor layer thickness unit.
conductorPercentstring Conductor percentage.
resinMaterialstring Resin material.

12.10.14.2. Examples: Update Conductor Layer

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "layer": "1",
  "type": "POWER",
  "material": "COPPER",
  "thickness": 2.0,
  "thicknessUnit": "oz",
  "conductorPercent": "4.8",
  "resinMaterial": "COPPER-RESIN"
} 
Python Example

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

12.10.15. Update Laminate

12.10.15.1. UpdateLaminateRequest

Represents the laminate properties requested to be updated.

To update the material, valid values must be provided for manufacturer, grade, and material.

To update a thickness, a thickness unit must be provided also.

Glass construction should only be set when the construction style is not the "DEFAULT" value.

Any property left out or set to "" or 0.0 will not be updated.

Table 12.275: UpdateLaminateRequest

FieldTypeLabelDescription
For display purposes, the long string in column two is broken into multiple lines. It should be interpreted as: UpdateLaminateRequest.GlassConstruction
projectstring Sherlock project name.
ccaNamestring The CCA name.
layerstring The internal layer ID associated with this laminate layer.
manufacturerstring Manufacturer name of this material. Must be provided along with grade and material name.
gradestring Grade of this material.
materialstring Name of this material.
thicknessdouble Laminate thickness.
thicknessUnitstring Laminate thickness unit.
constructionStylestring Construction style.
glassConstructionUpdateLaminate Request .GlassConstructionrepeated
berMaterialstring Fiber material. Only updated if glass construction is selected.
conductorMaterialstring Conductor material.
conductorPercentstring Conductor percentage.

12.10.15.2. UpdateLaminateRequest.GlassConstruction

Represents the layers with a glass construction.

Table 12.276: UpdateLaminateRequest.GlassConstruction

FieldTypeLabelDescription
stylestring Glass construction style.
thicknessdouble Glass construction thickness.
thicknessUnitstring Glass construction thickness unit.

12.10.15.3. Examples: Update Laminate

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "layer": "2",
  "manufacturer": "Arlon",
  "grade": "FR-4",
  "material": "49N Data Sheet",
  "thickness": 0.02,
  "thicknessUnit": "in",
  "constructionStyle": "1027 0.0018 in Prepreg [73% resin]",
  "glassConstruction": [
    {
      "style": "1027 0.0018 in Prepreg [73% resin]",
      "resinPercentage": 73,
      "thickness": 0.02,
      "thicknessUnit": "in"
    }
  ],
  "fiberMaterial": "E-GLASS",
  "conductorMaterial": "COPPER",
  "conductorPercent": "2.0"
}
Python Example

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