Calculate the diameter of the hole from the pin size. The calculation takes into account the IPC level selected in the Footprint wizard dialog box.

syntaxSyntax:
FWiz.CalcHoleDiameter(leadWidth, leadTick=-1)

Parameters

Parameter Description
leadWidth Pin diameter or the width of the pin if it is not round.
leadTick If the pin is square or rectangular also specify the thickness in addition to the width.

Return Value

Returns the calculated value for the hole diameter.

Example

See the TO-220 sample code for the complete script.

  Copy codeCopy code
function OnBuildFootprint()
{
  var A = FWiz.GetValue("A");
  var b = FWiz.GetValue("b");
  var c = FWiz.GetValue("c");
  var e = FWiz.GetValue("e");
  var J1 = FWiz.GetValue("J1");
  var E = FWiz.GetValue("E");
  var F = FWiz.GetValue("F");

  var styleIndex = 0;
  if (FWiz.IsAutoPadStyle(styleIndex))
  {
    styleIndex = 1;
    var holeSize = FWiz.CalcHoleDiameter(b, -1);
    var padSize = FWiz.CalcPadDiameter(holeSize);
    FWiz.GetPadStyle(styleIndex).InitTHPadStack(holeSize, padSize, FWiz.GetValue("PADSHAPEMODE")==1);
  }

  // Add Pads
  FWiz.DrawPad(0, 0, "2", styleIndex, 0);
  FWiz.DrawPad(-e, 0, "1", styleIndex, 0);
  FWiz.DrawPad(e, 0, "3", styleIndex, 0);

  // Add Legend
  var legendCtx = FWiz.GetLegendCtx();
  var rect = new DlxRect();
  var y = J1 + c / 2 - A / 2;
  rect.SetRect(new DlxPoint(0,y), E, A);
  y = rect.top - F;
  legendCtx.DrawLine(new DlxPoint(rect.left,y), new DlxPoint(rect.right,y));
  legendCtx.DrawRectangle(rect, FWiz.SHAPEMODE_OUTLINE);
  legendCtx.DrawAttributes();

  // Add Courtyard
  FWiz.DrawCourtyard(rect);

  // Set Name
  var description = FWiz.Format("TO-220 3 leads; in the upright position; %s", FWiz.GetIPCinfo());
  FWiz.SetFootprintName("TO-220V3", description);
}

See also