KiCad PCB EDA Suite
Project Templates

Author: Brian Sidebotham

Proposal

To add new project template functionality to KiCad to facilitate the easy setup of projects which have common attributes such as pre-defined board outlines, connector positions, schematic elements, design rules, etc.

Definitions

A template is a directory of files, which includes a directory of metadata. The template system name (SYSNAME) is the directory name under which the template files are stored. The metadata directory (METADIR) contains pre-defined files which provide information about the template.

All files and directories in a template are copied to the new project path when a project is created using a template, except METADIR.

All files and directories which start with SYSNAME will have SYSNAME replaced by the new project file name, excluding the file extension.

Metadata

A template's METADIR must contain the required files, and might optionally contain any of the optional files

Required Files
~~~~~~~~~~~~~~

/info.html  - Contains html formatted information about the template which is used by the
              user to determine if the template is what they are after. The <title> tag
              determines the actual name of the template that is exposed to the user for
              template selection. Using html to format this document means that images can
              be in-lined without having to invent a new scheme. Only HTML supported by
              wxHTML can be used to format this document.

Optional Files
~~~~~~~~~~~~~~

/icon.png   - A 64 x 64px PNG icon file which is used as a clickable icon in the template
              selection dialog.

Operation

The KiCad File menu will be modified to change New from a menu item to a pop-out menu item, in the same manor as Open Recent. There will be two options on the pop-out menu:

Blank -> Will act exactly the same as the current new menu item so that anyone who wishes to create a blank project won't have their settings lost or feel alienated.

From Template -> Will open the template selection dialog.

The template selection dialog will have a list of icons on the left, and a wxHTML window to the right. A single click on a template's icon on the left will load that templates info.html metadata file and display it in the wxHTML window.

A double click on a template's icon will start the new project creation and will open a new file dialog. If the user selects a valid location for the new project, the template will be copied to the new project location ( excluding METADIR as mentioned earlier ) and any files that match the string replacement rules will be renamed to reflect the new project's name.

The list of available templates will be gathered from the following sources:

wxStandardPaths::GetExecutableDir()/../share/template/ wxStandardPaths::GetUserDataDir()/templates/ wxGetEnv(wxT("KICAD_PTEMPLATES")) wxGetEnv(wxT("KICAD"))/template/