This event is raised when the footprint is requested.

syntaxSyntax:
function OnBuildFootprint()

Remarks

The purpose of this function is to create all the objects that make up the footprint.

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