Adds a keepout area in the PCB.

syntaxSyntax:
DlxLayer.DrawKeepout(shape, mode = DlxApp.KEEPOUT_ALL)
DlxLayer.DrawKeepout(shapeDef, mode = DlxApp.KEEPOUT_ALL)
DlxLayer.DrawKeepout(rect, rotAngle = 0, mode = DlxApp.KEEPOUT_ALL)
DlxLayer.DrawKeepout(points, slotWidth = 0, mode = DlxApp.KEEPOUT_ALL)
DlxLayer.DrawKeepout(center, sizex, sizey = 0, rotAngle = 0, mode = DlxApp.KEEPOUT_ALL)

Parameters

Parameter Description
shape A DlxFigure object with the shape.
shapeDef String with the definition of the copper shape. For more information, see Shape Format Specifications.
rect A DlxRect object that specify the copper rectangle.
rotAngle The angle, in degrees, of rotation of the copper with respect to the x-axis.
points Arrays of DlxPoint objects with coordinates of the polygon vertices.
slotWidth If greater than zero, the vertices specified in points define a slot whose width is defined by slotWidth. If equal to zero the vertices defined in points define a polygon.
center A DlxPoint object with the coordinates specifying the center of the ellipse.
sizex A positive value that defines the radius of the circle or the half length of the x-axis of the ellipse.
sizey A positive value defining the half length of the y-axis of the ellipse. If zero is specified, sizey is set equal to sizex.
mode Specify a combination of the following values:
DlxApp.KEEPOUT_TRACKS
DlxApp.KEEPOUT_PADS
DlxApp.KEEPOUT_VIAS
DlxApp.KEEPOUT_DEVICES
DlxApp.KEEPOUT_JUMPER
DlxApp.KEEPOUT_ALL

Return Value

The newly created DlxKeepout object. Call the IsValid() method to determine if the object was created correctly.

Remarks

This method fails if the layer is not one of the copper layers or the Keepout layer.

Example

  Copy codeCopy code
var prj = DlxApp.GetJob().GetProject("Example PCB");
if (!prj.IsValid())
  prj = DlxApp.GetJob().NewProject("Example PCB");
var doc = prj.GetDocument("Examples PCB", DlxApp.DOCTYPE_PCB);
if (!doc.IsValid())
{
  doc = prj.NewDocument("Examples Pcb", DlxApp.DOCTYPE_PCB);
  doc.SetPageFormat("A4", false);
  var page = doc.NewPage("PCB", 0, true);
  page.LoadLayerStack("2 layer pcb stackup.clxlys");
  page.DrawBoard(new DlxRect(10, 10, 290, 200));
  page.SelectView("Draw Copper From Top");
}
if (doc.IsValid() && doc.Activate())
{
  var page = doc.GetActivePage();
  if (page.IsValid())
  {
    var layer = page.GetLayerFromType(DlxApp.LAYERTYPE_TOPCOPPER);
    if (layer.IsValid())
    {
      var points1 = new Array();
      points1[0] = new DlxPoint(90, 120);
      points1[1] = new DlxPoint(100, 130);
      points1[2] = new DlxPoint(110, 120);
      layer.DrawKeepout(points1);

      var points2 = new Array();
      points2[0] = new DlxPoint(90, 130);
      points2[1] = new DlxPoint(100, 140);
      points2[2] = new DlxPoint(110, 130);
      layer.DrawKeepout(points2, 3);
      layer.DrawKeepout("V80,160,0;V95,180,0;V110,160,0;V80,160,-120;");
      layer.DrawKeepout(new DlxRect(40,120,70,160), 0);
      layer.DrawKeepout(new DlxPoint(140,140), 20);
    }
  }
}

See also