Inspecting Fabrication Data with the CAM Editor in Altium Designer

Created: February 6, 2023 | Updated: February 6, 2023
Applies to Altium Designer version: 23

Altium Designer's CAMtastic Editor (CAM) offers a variety of tools, the most basic of which are for viewing and editing CAM data. Once image and drill files have been imported, the CAM Editor can receive instructions determining layer types and stackup, at which point a netlist can be extracted and compared with an IPC netlist generated from the original PCB design software. These netlists will handle not just through-hole components, but blind and buried vias as well. The CAM Editor also offers Design Rule Checking, panelization, and NC-Routing (plus milling) tools.

CAM Action Basics

The CAM Editor environment utilizes some slightly different methods for performing actions and procedures than you may be accustomed to.

Action Before Selection

The way actions are performed within the CAM Editor may seem backward to new users who are used to selecting objects before telling the program what to do to them. Similar to other CAM tools, the CAM Editor reverses this process: first, you choose the action, then you select the objects to act upon, finishing with an execute command.

If this is not the way you are used to working, then you can lean on a couple of crutches until you find your footing. First, look at the cursor. When it displays as a cross-hair target over the design workspace, that means it's not in selection mode (a square pick-box cursor is displayed during selection mode). The fact that the selection buttons are all grayed-out can remind you that you haven't picked an action yet; at least not one that calls for general selections. The status bar, which is located at the bottom of the main editing window, is particularly helpful during multi-step processes when you're wondering why nothing is happening; the status bar will let you what the CAM Editor is waiting for you to do.

To repeat the previous placement/editing command, right-click within the design space and choose the Repeat command from the context menu, or use the Shift+Ctrl+R keyboard shortcut. After launching the command, the last placement/editing command will be repeated. For example, if you have just finished placing a line object, launching the command will repeat the line placement function, and you will enter line placement mode once again.

Right-click Execution

First, you choose a command, then you select a set of objects. After this, the CAM Editor waits for an execution command. This gives you the freedom to carefully construct your selection over various layers and groups of objects. The basic way to send the execute command is by right-clicking. The prompts in the Status Bar will indicate when a right-click can be used in this way. You can also use the Shift+F9 keyboard shortcut to execute the current function after all required objects involved in the function have been selected.

You may notice that after you have executed a function the cursor does not return to its inactive state. Instead, the selection pick box remains, and the status bar prompts you to start selecting again. This happens when the Auto Repeat Functions option is enabled on the CAM Editor - General page of the Preferences dialog.

The right-click button can sometimes be used to cancel current processes. This works when you have not yet completed a required step, such as selecting objects. The Esc key, however, is a safer button to press for cancellations in general. 

If the current command uses a dialog at any stage, this feature will only cancel out of the dialog. You will need to use the feature again to completely abort the command.

Editing Modes

The CAM Editor supports two editing modes: CAM and NC (Routing). The modes are enabled using the respective CAM Editor and NC Editor commands available when selecting View » CAM Editor or View » NC Editor from the main menu. Alternatively, you can set the editing mode directly from the drop-down available in the CAMtastic panel. Essentially, these modes differ in how the data is displayed. The CAM Editor mode will show you images exactly as they will be drawn or flashed onto the photographic film, which will be used in PCB manufacture. The NC Editor mode adds markers to drill holes and rout paths.

A rout path shown in NC Editor mode.A rout path shown in NC Editor mode.

The CAM Editor will always be in one of these two editing modes. While in CAM Editor mode, the routing tools will be grayed out in the menus. Likewise, when the NC Editor mode is active, the normal CAM editing tools are disabled. When the CAM Editor mode is active, the CAMtastic panel will give you quick access to the DCodes defined in the Aperture List through a drop-down list. When the NC Editor mode is active, this drop-down shows the set of tools for drilling, routing, and milling instead. Most importantly, the design space will correspond with the current editing mode. The NC Editor mode denotes drill points and routing paths with special markers: each drill point is marked with an X, while routing paths contain plunge and retract points and, when necessary, direction markers as well. These instruction markers are invisible when working in CAM Editor mode.

The CAMtastic Panel

The panel, which is available whenever a CAM document is active, contains the salient information for that CAM document, including the layers, the current Dcode or tool bit, grid/unit settings, and the absolute location of the cursor within the design space. You can also alternate focus between the Info, DRC, Nets, and Steps regions of the panel for other design-specific information.

The Layers region shows all created/imported layers and their visibility status. The current layer will have a white X through its associated color swatch and is also reported at the top of the region. You can double-click on another layer's name to make it the current layer.

When there are layers present, right-clicking anywhere in this region gives you quick access to layer commands, including the ability to lock, rename, or add layers. If you have created a new document and wish to start adding layers, use the Edit » Layers » Add command to add the first layer.

You can highlight any layer in this list then use the Up Arrow and Down Arrow keys on the keyboard to scroll through the CAM data in single-layer mode. The Right Arrow key will make all layers visible, while the Left Arrow key will isolate the highlighted layer. Multiple layers can be selected by using the standard Shift+Click and Ctrl+Click features, allowing you to show, hide, or delete various layers at once. You can use the +/- and * keys on the numeric keypad to cycle through all visible layers or only signal/plane layers, respectively.

Layers may be deleted from the panel, but doing so is an irreversible action. The Undo command in the Edit menu will not restore deleted layers.

You can toggle back and forth between the CAMtastic panel and the active CAM document by using the Shift+F5 keyboard shortcut. The F4 key will toggle the visibility state of all floating panels.

In Gerber, a "hole" or cutout in a polygon (Gerber region) is created by first defining the dark region (LPD, or Load Polarity Dark), and then defining the clear cutout region (LPC, or Load Polarity Clear) over the top of the dark region. The Comp Flag column in the CAMtastic panel indicates the total number of Load Polarity commands that are present in that layer file, which equals the number of cutouts in polygons times two, since both the LPC & LPD commands are counted. Note that the default state is Dark, so a command pair is only issued for each cutout that must be created (commands are not needed for a region that does not have a cutout). Note also that each character in a TrueType font is output as a Gerber region. Each letter that includes a hollow area, like A or B, will include cutouts, so their presence on a layer will also affect the Comp Flag total for that layer.  

Panel Features

The drop-down list at the top of the panel allows you to quickly change between the CAM Editor and the NC Editor modes. The section directly beneath this field lists all of the available layers in the current CAM document (*.cam). Layers are listed in the same order that they appear in the Layers Table dialog, which is available by selecting Tables » Layers from the main menu.
For each layer in the list, the name and number are given, along with an option for controlling the visibility of the layer (whether it is turned on or off). A color box is also available, which shows the color that is currently assigned to the layer. Clicking on the color opens the Change Layer Color dialog, providing a variety of colors to choose from.
At the top of the layers list, the name of the current layer is displayed. The current layer is the layer that will be used to place any new objects, such as lines, polylines, and drill points. The current layer is also distinguished by a white cross placed in the color box for that layer's entry. To make any layer the current layer, double-click on its entry in the list.
Right-clicking on a single layer entry in the list will pop-up a menu containing the following layer-related commands:

  • Type -  use this command to display the layer type that has been assigned to the layer in the Layers Table dialog.
  • ON - use to toggle the visibility of the layer. When the layer is turned on (i.e. it is visible in the design space) a tick symbol will appear to the left of the command and the corresponding visibility option for the layer will become enabled.
  • Current - use to make the selected layer the current layer. A tick symbol will appear to the left of the command, the name of the layer will appear in the Current Layer field (at the top of the layers list) and a white cross will appear in the associated color box for the layer.
  • Lock / Lock Selected - use to lock the selected layer(s), preventing any drawing from being carried out upon it. When enabled, a tick symbol will appear to the left of the command.
  • RESCan / RESCan Selected - use to perform a date comparison for the selected layer between data (Gerber/ODB ++ Feature) existing in the active CAM document and that last generated from the same source PCB document. If the last generated data is newer than the existing data, the Reload command will be enabled.
  • Reload / Reload Selected - use to regenerate data for the selected layer that has been detected by the Rescan process to have been changed. All changes to the layer will be taken into the active CAM document in order to resynchronize with the source PCB document.
  • All On - use to make all layers visible (on) in the design space.
  • All Off - use to make all layers invisible (off) in the design space.
  • Isolate - use to make all layers invisible (off) in the design space, with the exception of the chosen layer (on).
  • Scroll Up - use to scroll up through each layer in the list, starting from the currently selected layer. As each layer is selected, it is made the current layer and all other layers are made invisible in the design space.
  • Scroll Down - use to scroll down through each layer in the list, starting from the currently selected layer. As each layer is selected, it is made the current layer and all other layers are made invisible in the design space.
  • Compare - use to open the Compare Layers dialog, where you may compare two layers, change the layer tolerance, and alter the map layer resolution.
  • Compress Layers - use to combine layers that have the same type specified in the layers table into a single layer. This only applies to layers of which there should only be one per design (eg. top, bottom, mask, silkscreen, drill top, drill bottom).
  • Rename - use to rename the currently selected layer. After launching the command, the Enter Value dialog will appear. Type a new name for the layer (in lowercase only) and click OK - the new name replaces the old one.
  • Add Layer - use to create a new layer and add it to the list. After launching the command, the Enter Value dialog will appear. Enter a name for the new layer (in lowercase only) and click OK - the layer is added to the end of the list.
    If multiple layers are selected in the list, the Type entry in the menu will display Multiple Selection and the following commands will be unavailable for use: On, Current, Lock, Scroll Up, Scroll Down and Add Layer.
  • Turn On / Turn On Selected - use to make all selected layers visible (On) in the design space. This command will only become available if at least one of the layers in the selection is currently turned off.
  • Turn Off / Turn Off Selected - use to make all selected layers invisible (Off) in the design space. This command will only become available if at least one of the layers in the selection is currently turned on.
  • Lock / Lock Selected - use to lock the selected layers, preventing any drawing from being carried out upon them. Once the layer is locked, it will be indicated as such by showing a checkmark to the right of the command. To unlock the click the locked layer(s) again.
  • Delete / Delete Selected - use to delete the selected layers from the CAM document.

Info Tab

The Info tabThe Info tab

The Info tab displays information after running any of the Query-based commands (Object, Group, Net, Minimum Annular Ring), which are available from the Analysis menu.


The DRC tabThe DRC tab

The DRC tab lists the violations that exist after running a Design Rule Check (DRC) on the current document. Where violations exist, a top-level folder for the particular design check is listed and underneath, sub-folders for all individual violating objects. Clicking on a sub-folder will select, zoom and center the offending object(s) in the design editor window.
If the DRC error is fixable through the use of the Auto Fix feature, you can right-click on the error's sub-folder and select Fix DRC Error from the pop-up menu.

Nets Tab

The Nets tabThe Nets tab

The Nets tab displays the nets that are included in the design after the netlist has been extracted by selecting the Tools » Netlist » Extract command. For each entry, the total net length is also listed. Clicking on a net entry will select, zoom, and center all objects associated with that net in the design editor window.

Steps Tab

The Steps tabThe Steps tab

The Steps tab displays the ODB Steps that are currently defined for the document. The name of the current step is displayed at the top of the tab. Double-clicking on a step entry will make it the current step.
Right-click on a step entry in the tab to access a pop-up menu containing the following commands:

  • Current - use to make the chosen Step the current Step. A tick symbol will appear to the left of the command entry.
  • Delete - use to delete the chosen Step from the design document. The current Step cannot be deleted, nor can a Step that has been inserted into another Step.
  • Rename - use to rename the chosen Step. After launching the command, the Enter Value dialog will appear. Enter the new name for the Step (in lowercase only) and click OK - the new name for the Step will replace all instances of the current name.
  • Add Insert - use to insert one Step inside another. The Add Insert to ODB Step dialog will appear. Use this dialog to select the Step to insert (from the list of available Steps) and define the location, array size, and orientation information. Clicking OK will add the insert as a sub-Step of the nominated parent Step in the tab - entered using the format: n: StepName (Rows, Columns), where [n] is the next available number allocated to the inserted Step, starting from 1.
    In the design editor window, the inserted Step will appear as a number of empty white rectangles, the number of which is determined by the array size chosen in the Add Insert to ODB Step dialog. White crosses are also displayed, one per Step in the array, with the lower-left cross located at the chosen Base Point coordinate(s), again defined in the dialog. These crosses define where the object content of the inserted Step will be located if you choose to explore the Step array. The command to explode the Step array can be found by right-clicking on the sub-Step entry in the tab. The subsequent pop-up menu that appears also contains commands for modifying the inserted Step array and deleting it
  • Add Step - use to create a new Step. The Enter Value dialog will appear. Enter a name for the new Step (in lowercase only) and click OK - the Step will be added at the bottom of the list and will be made the current Step.
  • Move Objects - use to move objects from one Step to another. This command is only available if the source Step for the move is the current Step.
    After launching the command, the cursor will change to a small square and you will be prompted to select objects to include in the move. Position the cursor over individual objects and click to select or use one of the many selection tools available.
    Once the selection has been made, right-clicking will open the New Step for Objects dialog. Select the Step you wish to move the objects to and click OK - the objects will be removed from the current Step and added to the target Step.
  • Copy Objects - use to copy objects from one Step to another. This command is only available if the source Step for the copy is the current Step. This command is similar to the Move Objects command, the only difference being that the selected objects are not removed from the source Step, they are purely copied.
  • Add Venting - use to add a venting pattern around panelized PCBs in a panel. This command is available only if the PCBs were panelized using the Tools » Panelize PCB command or by loading ODB++ data that contains a panel.
  • Remove Venting - use to remove any venting pattern from a panelized PCB. This would be used, for example, if the PCB boundaries have been modified after venting had been added.
  • Refresh Inserts - use to refresh the available inserts to reflect changes.

The bottom region of the panel contains the following fields:

  • 1 - Depending on whether you are currently using the CAM Editor or NC Editor mode, this control allows you to select the current D code or Drill Tool respectively.

  • 2 - This control allows you to select the current object snap mode.

  • 3 - This control allows you to change the current design space units. Select between millimeters or inches.
  • 4 - This field in the panel displays the X-Y coordinates of the cursor position in the main design space. It applies whatever units have been selected in control 3.

Additional Information about Steps

  • Each defined ODB Step in the design contains the same list of layers. The difference between steps lies in the objects that they contain on those layers.
  • Two or more Steps must be defined for the current document before one Step can be inserted into another.
  • Unlike a normal Step & Repeat array, when one Step is inserted into another the resulting array consists totally of outlined entries. The lower-left entry does not display the objects for the Step in full. If you click on the top-level entry for the inserted Step (not its entry under the defined parent Step), then the objects contained in the inserted Step will be shown at the location marked by the lower-left white cross. The parent Step and all other array elements in the inserted Step will not be shown.
  • The Steps tab is automatically refreshed whenever you click OK in the Steps Table dialog, which is opened by selecting Tables » Steps from the main menu.
    The D code, object snap mode, and design space units can be changed during the placement of Draws (e.g. lines, polylines, rectangles, etc). For example, you can place a line with segments drawn using differing D codes, all in the same placement session. You can draw a polyline, change the D code partway through its placement, and when you finish placement, the current D code will be applied to the entire polyline.


  • By default, the Draw and Flash colors assigned to a layer are identical. Changing the assigned layer color in the panel will update both Draw and Flash colors in the Layers Table dialog. If you want to change the Draw or Flash colors individually, you will have to edit their respective entries in the dialog. When editing colors through the dialog, only the Draw color assignment will be reflected in the panel.
  • Select an entry in the layers list and press the Left Arrow key, to turn all layers off except that one. Select an entry in the layers list and press the Right Arrow key, to turn all layers on.
  • Rescan and Reload-based commands will only become available if the Reset auto-load options after generation option are enabled prior to initial Gerber/ODB++ output generation. This option can be found in the Output Job Options dialog, accessed from the Tools menu when the associated Output Job file (*.OutJob) is active. Enabling this option prevents output data from being loaded into a new CAM document when data is subsequently generated from the source PCB document.
  • After extraction of the netlist from the Gerber information contained in the current document, the nets appear listed in the Nets tab of the panel with default names. These names take the format $Netn (where n is the next integer number assigned based on the order of extraction). If you have imported an IPC-D-356 formatted netlist, generated from the PCB document, you can rename the nets to the more meaningful names that were assigned in the original PCB design. To do this, choose Tools » Netlist » Rename Nets from the main menus.
  • Multiple nets may be selected in the Nets tab - all subsequently becoming selected in the design editor window.
  • When interrogating DRC errors, selecting an entry in the DRC tab will turn on only the layer(s) upon which the violating object(s) reside. All other layers will be turned off. When interrogating nets, the relevant layers must be turned on beforehand, otherwise, you may see nothing at all.
Found an issue with this document? Highlight the area, then use Ctrl+Enter to report it.

Contact Us

Contact our corporate or local offices directly.

We're sorry to hear the article wasn't helpful to you.
Could you take a moment to tell us why?
200 characters remaining
You are reporting an issue with the following selected text
and/or image within the active document: