Main | News | Doc & FAQ & pool & tutorials | Support | People | Events & timeline | pcb-rnd

# pcb-rnd FAQ

## 1. export

### 1.1. Gerber export not producing excellon drill files

That is correct, by default direct gerber export shouldn't produce excellon files as excellon is a different format. Direct gerber export also won't produce ps or png files.

You have two ways getting excellon files:

- If you need only excellon drill files, you can do a direct export using the execllon export format; on GUI use the "File/Export layout" menu or the {f e} key combination and select excellon; on CLI use -x excellon. Unless you have an CNC router it's unlikely you want drill files only.
- What you probably should do instead of direct exporting is CAM exporting, using "File/Export with CAM job..." or {f c} on the GUI or "-x cam jobname" on the CLI. The CAM exporter is designed to invoke multiple export plugins (e.g. gerber and excellon). pcb-rnd is shipped with preconfigured CAM jobs for the most popular fab houses so you get file names you can directly upload to them. If you have a fab not yet supported, please contact me.

Note: as of 2019, for the transition time, direct exporting to gerber using any of the old naming styles (e.g. "fixed") will still cross-call the excellon export plugin and produce the extra (non-gerber) drill files. It will also generate a bunch of warnings telling you that this feature will be removed soon. You shouldn't depend on this too much.

## 2. padstacks

### 2.1. Intern copper layer shape not rendering

Does the padstack has a hole? Does the hole drill through any internal copper layer (in non-thru-hole case)?

Internal copper layers are special: there are multiple of them. The padstack will place the intern shape on any internal copper layer that the padstack's hole reaches. If the padstack has no hole, no internal layer shape is rendered, even if it is specified.

## 3. slots (oval holes)

### 3.1. My slot doesn't show up on screen or in exports

Make sure you have the right layer groups and layers set up:

- a mech layer group with purpose uroute and another with purpose proute for unplated and plated slots
- make sure there is a layer in each group that has auto in the comb flags - padstack side effects will land only on auto layers; auto layers are indicated with white hatching in the layer selector's layer color

## 4. DSN format

### 4.1. There are no holes in padstacks on import

The DSN format was originally designed for autorouting; an autorouter doesn't need to know the geometry of a hole, assuming copper annulus is always around the hole. Thus old versions of the file format simply does not have a way to describe holes.

Some software extended the format and use a hole directive that pcb-rnd picks up - but if the file does not contain holes, pcb-rnd can't improvise them.

You can use query() to find offending padstacks and use propset() or the padstack editor to install the holes.

### 4.2. There are no silk graphics on subcircuits after import

The DSN format does not specify silk. There are outline and keepout objects in the format and pcb-rnd loads them on special purpose documentation layers. The use of these objects vary from tool to tool - some tools will draw the bounding box of the part using lines on the outline layer, but other tools may just draw a large, rectangular filled polygon.

Use the per subcircuit layer bindings to map them on a board silk layer.

### 4.3. Missing solder mask cutouts and solder paste patterns after import

The DSN format does not specify solder mask or paste. Please use the padstack editor on the affected padstacks.

## 5. build/install

### 5.1. Error while loading shared libraries

If the above error message appears and lists librnd-* libs when executing pcb-rnd, that means your operating system's dynamic loader is unable to find There are trhee common reasons for this:

- pcb-rnd is installed from binary and librnd is not installed. Install librnd.
- librnd is installed from source to standard installation prefix (/usr or /usr/local); on some systems ldconfig needs to be run after installing new libs from source so that the system's dynamic loader can find the new .so files
- librnd is installed from source to a non-standard installation prefix, e.g. installation in home directory or /opt; see INSTALL.librnd.txt for the extra steps this setup requires