Pick and Place Data

Pick and Place Data Bruce

Surface mounted components are frequently placed on a circuit board by an automatic placement machine, typically called a Pick and Place (PnP) machine. A PnP data file is used to instruct the machine where to place each component on the board prior to soldering. PnP data consists of a designator, x and y coordinates, a rotation and a description for each automatically placed component. The location of fiducial marks should also included in the PnP data.

PnP data may be added to a product in the following ways:

  • Import a PnP file together with the Gerber and Drill data.

  • Import a PnP file directly into the Assembly Data Manager.

  • PnP data may be added manually, component by component.

Pick and Place Data Manager

The Pick and Place data tab of the Assembly Data Manager lists components to the left of a graphic viewer. Use the check boxes at the top to show or hide components on one or both sides of the board.

Double-click on a component in the list to locate a component in the viewer. The viewer will zoom to show the component centered in an area of about 25 x 25 mm.

The check boxes in the component list determine whether or not the component is to be included for automatic placement. Only components with a check mark are shown in the viewer.

It is possible to change the check box state of multiple components by selecting the desired components in the list, right-clicking, and choosing Toggle selected components.

Right-click and choose Edit component to modify the properties of a component in the PnP data.

There are four action buttons:

  • Import a Pick and Place data file – Import a text file
  • Save changes to product – Updates the Pick&Place layer in the product.
  • Align Pick and Place data with board data – Align the data if they do not have the same origin.
  • Add component to Pick and Place data – Manually add a component to the list.

Importing a Pick and Place file

Click on the Import button and select the file to import. Its contents will be added to the component list and shown in the viewer. It may be necessary to specify to which side of the board the imported data applies.

A number of Pick and place file formats, (such as those from Allegro, Altium, Cadstar, Kicad, OrCad and PADS) are automatically parsed.

If the file format is not immediately recognized, then it may be specified in the Pick and Place Data Import dialog box, which displays the original file contents, parsed file contents and the interpreted XYR data.

The following may be specified:

  • Number of header lines

  • First character of comment lines

  • Separated or fixed-width columns

  • Separator and quote characters (for separated files)

  • Column widths (for fixed-width files)

  • Unit of measure for X and Y coordinates

  • Angle rotation direction (counter-clockwise or clockwise)

  • Column mapping. (Up to 3 columns may be combined as the component description.)

Aligning Pick and Place data with board data

If the origin of the PnP data does not match that of the board data, it can be aligned as follows:

  1. Click on the Align button so that it is active.

  2. In the viewer, left-click and draw a selection rectangle around a PnP symbol (cross with arrow). A rubber-band line stretches from the component to the mouse pointer.

  3. Left-click and draw a new selection rectangle around all pads of the selected component. The component will be moved to the center of a rectangle exactly enclosing the selected pads.

  4. Check that the PnP data is correctly aligned. If not, repeat steps 1-3 with a different component.

Note: If PnP data for a side is not visible, then it will not be moved. In this manner, it is possible to aling PnP data for the top and bottom sides independently of each other.

Adding a component to the Pick and Place data

PnP data may be created manually, as follows:

  1. Click on the Add component button so that it is active.

  2. In the viewer, left-click and draw a selection rectangle around all pads of the component. The component will be placed at the center of a rectangle exactly enclosing the selected pads.

  3. In the Add Pick and Place component dialog box, specify the layer, designator, rotation and description of the component. Clicking the OK button creates the PnP component.

  4. Repeat steps 1-3 as for each additional component.

Saving changes

If you have made any changes to the PnP data, including using the check boxes to show/hide individual components, then you must save your changes to the PCB product. Click on the Save button to save the changes in the product and update the product in the Macaos Repository.

Pick and Place file formats

Pick and Place file formats Bruce

Details of some of the pick and place file formats supported by Macaos Enterprise are listed below. Note: All coordinate and rotation values are floating point values unless specified as integer. Non-integer coordinate and rotation values must use . (period) as a decimal separator.

Allegro:

  • One-line header, no trailer
  • Fixed-width fields, space padded
  • First line: UUNITS = <MILLIMETERS|INCHES|MILS>
  • Field 1 (char 1-22) = designator
  • Field 2 (char 23-36) = X coordinate in unit
  • Field 3 (char 37-49) = Y coordinate in unit
  • Field 4 (char 50-56) = rotation (integer degrees)
  • Field 5 (char 57-end) = description

Allegro (without header):

  • No header or trailer lines
  • Field delimiter = <SPACE>
  • Field 1 = designator
  • Field 2 = X coordinate in mm
  • Field 3 = Y coordinate in mm
  • Field 4 = rotation
  • Field 5 = description

Altium (newer format):

  • Several header lines
  • Last header line contains: Designator and Footprint
  • Fixed-width fields determined by text in last header line
  • One of header lines should contain: Units used: mm|mil|inch
  • Valid columns: Designator Comment Layer Footprint Center-X Center-Y Rotation Description
  • Field 1 = designator
  • Field 2 = comment (description part 2) (optional)
  • Field 3 = side <TopLayer|BotLayer>
  • Field 4 = footprint (description part 1)
  • Field 5 = X coordinate in mm, mil or inch
  • Field 6 = Y coordinate in mm, mil or inch
  • Field 7 = rotation in degrees
  • Field 8 = description in quotes (description part 3) (optional)

Altium/Protel (older format):

  • One-line header, no trailer
  • Field delimiter = <SPACE>
  • First line begins with: Designator Footprint
  • Field 1 = designator
  • Field 2 = footprint (description part 1)
  • Field 3 = X coordinate+<mm|mil>
  • Field 4 = Y coordinate+<mm|mil>
  • Field 5 = unused
  • Field 6 = unused
  • Field 7 = unused
  • Field 8 = unused
  • Field 9 = layer <T|B>
  • Field 10 = rotation in degrees
  • Field 11 = description (part 2)

CADint properties report:

  • No header or trailer lines
  • Field delimiter = <TAB>
  • Field 1 =X coordinate in mm
  • Field 2 = Y coordinate in mm
  • Field 3 = rotation (integer degrees)
  • Field 4 = designator
  • Field 5 = description (part 1)
  • Field 6 = description (part 2)
  • Field 7 = description (part 3)
  • Field 8 = side <top|bottom>

Cadstar PICK&PLACE:

  • Four-line header, no trailer
  • Fixed-width fields, space padded
  • First, second and fourth lines: any text
  • Third line (50 chars): Name Pos. x Pos. y Part Orient Side
  • Field 1 (char 1-8) = designator
  • Field 2 (char 9-18) = X coordinate in mm
  • Field 3 (char 19-28) = Y coordinate in mm
  • Field 4 (char 29-38) = description (part 1)
  • Field 5 (char 39-46) = rotation in degrees
  • Field 6 (char 47-56) = side <Top|Bottom>
  • Field 7 (char 57-end) = description (part 2)

Cadstar P&P:

  • Five-line header, no trailer
  • Fixed-width fields, space padded
  • First, second and fifth lines: any text
  • Fourth line (71 chars): Pos: Name: X: Y: Orient: Side:
  • Field 1 (char 1-12) = designator
  • Field 2 (char 13-30) = description
  • Field 3 (char 31-42) = X coordinate in mm
  • Field 4 (char 43-54) = Y coordinate in mm
  • Field 5 (char 55-66) = rotation in degrees
  • Field 6 (char 67-end) = side <Top|Bottom>

Eagle XYR (semicolon-delimited):

  • No header or trailer lines
  • Field delimiter = ; (semicolon)
  • Field 1 = description
  • Field 2 = X coordinate in mils (integer)
  • Field 3 = Y coordinate in mils (integer)
  • Field 4 = rotation (integer degrees)
  • Field 5 = designator

Eagle XYR (space-delimited):

  • No header or trailer lines
  • Field delimiter = <SPACE>
  • Field 1 = designator
  • Field 2 = X coordinate in mils (integer)
  • Field 3 = Y coordinate in mils (integer)
  • Field 4 = rotation (integer degrees)
  • Field 5 = description
  • Field 6 = optional description part 2

Expedition AIS:

  • several line header
  • Fixed-width fields, space padded
  • First line: $HEADER$
  • Header ends with: $END HEADER$
  • Header contains: UNITS MM or UNITS INCH
  • Part section begins with: $PART_SECTION_BEGIN$
  • Part section ends with: $PART_SECTION_END$
  • Field 1 (char 1-32) = designator
  • Field 2 (char 34-65) = description
  • Field 3 (char 67-76) = X coordinate in mm
  • Field 4 (char 78-87) = Y coordinate in mm
  • Field 5 (char 89-98 = rotation in degrees
  • Field 6 (char 100-109) = side <TOP|BOTTOM>
  • Field 7 (char 111-end) = ignored

kicad Postions:

  • Five line header, one-line trailer
  • Fixed-width fields, space padded
  • First line starts with: ### Module positions
  • Third line: ## Unit= mm, Angle = deg.
  • Last line: ## End
  • Field 1 (char 1-9) = designator
  • Field 2 (char 11-20) = val (description part 2)
  • Field 3 (char 22-37) = package (description part 1)
  • Field 4 (char 39-48) = X coordinate in mm
  • Field 5 (char 50-59) = Y coordinate in mm
  • Field 6 (char 61-69) = rotation in degrees
  • Field 7 (char 71-end) = side <top|bottom>

PADS NetWizard:

  • Several line header, no trailer
  • Field delimiter = ; (semicolon), all fields quoted with " (quote mark)
  • Second header line contains: PADS NetWizard
  • Third line: Unit: mm
  • Field 1 = designator
  • Field 2 = description
  • Field 3 = Y coordinate in mm
  • Field 4 = X coordinate in mm
  • Field 5 = rotation (integer degrees)
  • Field 6 = side <Top|Bottom>

Quad:

  • One-line header, no trailer
  • Fixed-width fields, space padded
  • First line: 33 characters, where character 6 is X and character 14 is Y
  • Field 1 (char 1-5) = designator
  • Field 2 (char 7-12) = X coordinate in mils (integer)
  • Field 3 (char 15-20) = Y coordinate in mils (integer)
  • Field 4 (char 21-24) = rotation (integer degrees)
  • Field 5 (char 25-end) = description

Siemens:

  • No header, one-line trailer
  • Field delimiter = , (comma)
  • Last line: EOT
  • Field 1 = unused
  • Field 2 = description
  • Field 3 = X coordinate in mm
  • Field 4 = Y coordinate in mm
  • Field 5 = rotation in degrees
  • Field 6 = unused
  • Field 7 = designator

SMF:

  • Four-line header, no trailer
  • Field delimiter = , (comma)
  • First line: any text
  • Second line: any text
  • Third line: PLACER;
  • Fourth line: Pads-Software;
  • Field 1 = designator
  • Field 2 = unused
  • Field 3 = unused
  • Field 4 = description
  • Field 5 = unused
  • Field 6 = unused
  • Field 7 = unused
  • Field 8 = unused
  • Field 9 = X coordinate in mils
  • Field 10 = Y coordinate in mils
  • Field 11 = rotation in degrees
  • Field 12 = unused

SVM:

  • One-line header, no trailer
  • Field delimiter = <TAB>
  • First line: SYMBOL<TAB>PP_TAG_X<TAB>PP_TAG_Y<TAB>ROTATION<any text>
  • Field 1 = description
  • Field 2 = X coordinate in mm
  • Field 3 = Y coordinate in mm
  • Field 4 = rotation in degrees
  • Field 5 = unused
  • Field 6 = unused
  • Field 7 = unused
  • Field 8 = designator

Zevatech:

  • One-line header, no trailer
  • Fixed-width fields, space padded
  • First line: HEADER<22 spaces>version<any text>
  • Field 1 (char 29-34) = designator
  • Field 2 (char 35-41) = X coordinate in inch
  • Field 3 (char 42-48) = Y coordinate in inch
  • Field 4 (char 54-57) = rotation in degrees
  • Field 5 (char 62-end) = description