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.

FWiz.CalcHoleDiameter(leadWidth, leadTick=-1)


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.


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 = - F;
  legendCtx.DrawLine(new DlxPoint(rect.left,y), new DlxPoint(rect.right,y));
  legendCtx.DrawRectangle(rect, FWiz.SHAPEMODE_OUTLINE);

  // Add Courtyard

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

See also