User Interface

Overview

Razen uses a unified tab interface to edit board schematics and layout, as well as part symbols and footprints. The screenshot below shows the major components of the user interface.

_images/uioverview.png

Main View

The focus of the Razen interface is the main view and displays the current project or part. The tab bar along the top of the main view allows switching between multiple projects and parts.

The mainview can be manipulated panned and zoomed using the mouse - middle button drag to pan, mouse wheel to zoom. Arrow keys and Page Up/Page Down are the equivalent keyboard shortcuts. See Tools for more information on interacting with objects in the main view.

Below the main view is the infobar, which shows information about the current view. The infobar displays the following information:

  • Current view type (schematic or layout) - click to switch back and forth
  • Current grid scale and units - click the scale to modify it, click the units to switch back and forth between mm and inches.
  • Current cursor position in grid units
  • Number of unrouted nets
  • Number of DRC errors on last DRC run.

Projects and Parts

In Razen there are two major types of design - Projects and Parts. Both Projects and Parts use the same interface and are each made up of two separate views - Schematic and Layout.

A part represents a single physical component in your design (a chip or resistor for example), and is made up of a symbol (schematic view) and footprint (layout view). The link between a symbol and footprint is managed with the Pin Mapping dialog.

A project represents a PCB, and is made up of a schematic and a layout. The link between the schematic and layout is a netlist which is automatically created from Parts and Wires in a schematic. Wires between two part pins in the schematic get added to the netlist which generates Airwires (indicating a trace needs to be routed), between the respective pads.

Tools

The tool palette to the left of the main view shows the available tools for the current view. The tools will change depending on the current selection and whether you are editing a part or a project.

The current tool is shown at the top of the tool palette. To leave a tool and return to the selection tool, press escape or the cancel button. In selection mode escape will deselect currently selected objects.

Certain tools will show their options in the tool palette. For example the Line tool allows setting the width and layer via options.

Mouse click behaviour in tools is shown in the table below:

Mouse button Modifier Action
Left-click   Current tool action
Right-click   Alternative tool action
Double left-click   Move selection
Left-click Ctrl/Cmd When in selection mode, select next-nearest
Left-click Ctrl/Cmd+Shift When in selection mode, select previous-nearest
Left-click Shift Add to selection
Left-drag   Area select
Left-drag Alt Pan view
Middle-drag   Pan view

For detailed help on tools, see the Editing Tools section.

Panels

On the right of the main view are a number of panels. These show information about the current design, such as selected object properties, layer visibility, and design errors.

Properties

The properties panel shows the properties of the current selection. When multiple objects are selected, the common properties of the entire selection are shown.

Layers

The layers panel shows the layers of the current view. Double click a layer to toggle it’s visibility. In the layout view, the “All Top” and “All Bottom” will toggle all the layers for a specific side of the PCB.

DRC Results

The DRC results panel shows the results of the last Design Rule Check. selecting an error in the list will highlight the objects causing the error. Double clicking an error will zoom to the objects.

Command Prompt

The command prompt (shortcut colon) provides access to the Python scripting API for the current design. It can be dragged up to show longer results.

The command prompt defines a number of shortcuts to access the current design:

s is the current selection. For example, this will set the angle of all objects in the current selection to 45 degrees:

s.angle = 45

u is the UI API class. For example, this will create a new project tab (equivalent to clicking file->new):

u.newTab()

t is the current Tab API class. For example, this will save the current project with a commit message (viewable in the history):

t.save("Fixed routing near R1")

p is the current Project API class. For example, this will create the text “Hello World” at the origin of the current schematic:

p.schematic.text((0,0), "Hello World", 1, Layers.Label)

Custom user commands can be implemented in python files in the conf/cmds directory. These commands will be available at the python prompt. For a list of available commands use:

cmds()

For help on a command use:

help(commandname)