Awesome Open Source
Awesome Open Source

Altium Designer addons

What is it

This is a set of addons for Altium Designer, a CAD software for Electronic designers. This project contains some scripts, examples and other content which is developed to provide extended features for Altium Designer.
No real consistency exists between each script because they have been developed separately by individual developers. You can use only one script out of the full set if you want.

How to use

Step 1: download the add-on you want.

  1. Either clone the entire set of add-ons on your computer (if you're accustomed to Git),
  2. Or download only the add-on you want by clicking its download link from the list below.

Step 2: integrate the script into Altium Designer and execute it.
If you are a newcomer to Altium scripts, please read the "how to" wiki page. Some developers may also have provided some screen captures or examples of use.

Please be advised: Some scripts may not work out-of-the-box. Some may be old, unmaintained. Others may be provided as a demonstration, or should be integrated in an other script to fully work.

License(s) to use/share

Unless otherwise specified this project don't follow any particular license such as GPL, MIT or BSD. In any case everything is distributed "as is" with no warranty.
However some authors may have specified a license for their script(s). In this case you are supposed to follow the rules implied by this license for the concerned scripts.

How to contribute

If you want to add your contribution to our project feel free to fork the repository, commit your changes and submit a pull-request.
You are encouraged to read the GitHub fork guide.

List of available scripts

Add-on name & download link Script description
AddDatumPointToArcs This script will add tracks to selected arcs. This tracks end in arc center, so after that you can easily move objects to arc center.
AddPopInfoToODBPP This script/outjob adds the populated/not populated info to Altium Designer ODB++ Output.
AddWireStubsSch it search for unconected pins of components in schematic sheet and draw small segment of a wire on it equipped by net label according to the name or designator of the pin
AdjustDesignators it will center the designator in top and bottom overlay
AdjustDesignators2 This script modifies designator position. It is based on AdjustDesignator script from Mattias Ericson, only user gets the form in which he can enable/disable and modify certain options, like layers, height etc.
Arc8 script that connects arc tangent and via/Pad, or places tangent to connect two arcs
AutoHotkey Enhancement Script script provides several enhancements to Altium Designer, such as limited autocomplete for filter expressions, improved mouse wheel support, and various tweaks to save time on frequently-used tasks
About AutoHotkey
AutoRouter_Interface This script creates an interface to auto routers. It fixes some problems with rte importer and dsn exporter, and gives user the ability to import ses file.
AutoSTEPplacer This script will place STEP files on a footprint in a library if they have same name. STEP file must be in the same directory as library, or it's subfolder.
BetterRevertVCS Improves the existing "Revert" core feature by closing and re-opening the reverted file.
BoardAutoSizer Redefine Board Shape based on Embedded Board Arrays
CalculatePolyArea This script calculates area of selected poly or region
ComponentPlacement This script allows user to equalize relative component placement between two groups of components
ConnectionLinesOnSelection script that enables user to show/hide connection lines on selected objects
CopyAngleToComponent script for copying angle of track to a component
CopyDesignatorsToMechLayerPair No description yet
CopyTracesRadial No description yet
CreateTableOfContents Script that can be used to create Table Of Contents on newly created top level sheet in PCB Project
CurrentCalculator PCB script that gives the user a dialog box with current (Amperes) handling calculations for a selected track. The script determines if the track is on an internal or external layer, and provides current calculations for 1, 5, and 10°C rise above ambient
DeleteAllSelectedItemsInPCBLib This script can be used to delete selected objects in PCB Library. Currently you can only delete selected objects that are part of currently visible footprint, but this script deletes selected objects that are in other footprints
DeleteInvalidPCBObjects Cleans a PCB documents of some current invalid objects. Checks for invalid regions or polygons and deletes them
DeleteSelectedSplit Script that can be used to delete selected split plane. It actually creates region based on selected split plane, with holes inside, so no copper will appear on that place
DesignReuse Script that simplifies true design reuse - route circuit once and reuse same routing in your next design. This automated design reuse is using Device Sheets or SCH snippets in SCH, and PCB Snippets in PCB. For more info read "How to use this script.odt" document (in OpenOffice or M$ Word) form the zip file
Distribute script that distributes distance between selected lines
DrcOnOff This script toggles Online DRC check box in DXP->Preferences->PCB editor->General what enables/disables online DRC checks.
EagleToAD package of scripts for conversion of PCB project from Cadsoft Eagle to Altium Designer (manual available only in Czech)
Fillet Script that places arcs to corners of selected tracks (Fillet command)
FilletWithRadius script that rounds connection on horizontaland vertical lines by fixed radius value
FilterObjects Script that filters objects based on type, layer and parent
FixConnections Fix Connections is a modified version of Fix Overlaps v2.2 created by Petar Perisin, there are some features and UI improvements for better usability.
FixOverlaps script that will clean nets in chosen net class of overlaps
FlipComponents Script flips selected components. If there are no selected objects it asks user to click on components that will be flipped. It uses smart mechanism for flipping, which tries to keep pads position.
FormatCopy Used to copy formattings from one object to others. Works on pads, vias, dimensions, coordinate, string and regions & poly in PCB and all sch objects
FormatPaintBrush This script is used to copy formattings from one object to the others. Currently it works on dimensions, coordinate, String and poly in PCB and all sch objects
GetPinData script which selects a schematic component and copies its pin information as a csv into the clipboard.
HideParametersSch Script for show/hide function of component user parameter in the project. Script is fixed to search only parameters with "=CURRENTFOOTPRINT" string in the value. Could by modified to specific purposes (condition is on line #44).
Hyperlynx Exporter Script for PCB export to hyp file. It adds fills, regions, polygons and split planes in hyp file
IBIS Editor Script that overrides [Model Selector] and [Submodel] keywords in IBIS File
ImportPinPackageLengths Import a component's package lengths for each pin from a csv
IncrementDesignator Script that enables user to set designators with mouse. Works on Components (in SchDoc and PCBDoc), pins (SCHLIB) and pads (PCBLIB). Designators can be swapped too. When working with pins it can also move pin names
IsPadCenterConnected This script checks weather pads have track in their center. if not, pad is selected
LRJustify Script that switches selected text between left and right justification on a sch
LayerStackExporter script that exports layer stack to a CSV file
LayersAndObjects This script creates a form similar to a panel, from which you can control layer and object display. Originated from LayersPanel script.
LayersPanel This script creates a form similar to a panel, from which you can control layer display. Originated from ShowHideLayers script.
LengthTuningHelper script that helps in length tuning of DDR3-FPGA interfaces, where you need to include length of lines inside FPGA. This one also helps in length tuning when you need to include via stack size to length of a net.
LockMultiPartComponents This script can be used to lock parts in multi-part components. It searches for "Group" parameter in all components and assigns a value in it, based on current component designator
LockNetRouting Script which locks or unlocks routing tracks, vias and components (possible to exclude components) on selected net. That aims to prevent some unwanted changes on PCB during routing
ManualToAutoDesignator This script will change manual designators to auto-positioned. Will operate on all or selected components.
MechLayerNames Script that saves mech layer names to txt file. This names can then be imported it to another PCB Document
Menu_SVN A custom menu item dedicated to SVN actions
Wiki page
MoveAPdesignators This script allows user to modify distance between auto-positioned designators and component
MoveToLayer This script moves selected copper tracks to selected signal layer, while maintaining connectivity with Vias that are automatically placed.
MultiPCBProject This Script enables Project to be used with multiple PCB documents, so that project is split among multiple PCB Documents. It is workaround solution that uses blankets to point which PCB document gets the circuit under it.
OpenComponentPCBLib opens the component footprint library of a selected component on PCB
OpenLib No description yet
OpenSchDocs script will open all sch documents in current PCB project
PCBScale This script allows you to scale selected objects on a PCB by amount.
ParamToPCB This script allows user to transfer component parameters to the PCB
PlaceDashedLines Places dashed lines (union) on PCB current layer by repeated cursor/mouse clicks.
PlaceRectangle This script places a rectangle on the PCB
PlanarTXv0.7 Script to create planar transformer made by Darren Moore
PnPcustom No description yet
PrintAllvariants This Script saves variant information to CSV file, which can then be easily opened in excel
RadialComponentPlacement No description yet
ReAnnotateSelection This can be used to re-annotate selected components on PCB
RenumberPads Script helps with changing order of pads mainly in Altium PCBLIBs. You just start script, select start index and increment and you create new designators of pads by clicking on them in the new order
RoomFromPoly Script to create room from selected objects or from selected polygon
RotationStep easier way to modify PCB editor rotation step settings (when Spacebar is used to rotate an object)
Run_exe script that can open exe file from Altium. Currently supports PCB Toolkit, TraceSim and TX-Line
SCH - SelectTouchingRectangle Script made because some people wanted select touching rectangle feature in Sch
SCH - Selection Filter Script that uses select Touching trectangle, but user can choose object types that will be selected
SelectBadConnections This script checks weather Tracks and arcs on signal connect totaly on some other object. Center-to-center check is done. If not, it is selected. Tolerance (and zero tolerance) is supported
SelectConnectedOnLayer This script is similar to SelectConnectedTracks, only it works with arcs, it's faster and objects do not have to have common point
SelectConnectedTrack script for selection of connected NoNet track on Mech layers
SelectViaAntennas This script selects unnecessary vias on PCB (vias connected only on one layer)
SheetParameters script that modifies document parameters in all SCH documents of focused project.
ShowHideDesignators script allows easily show or hide Designators and Comments in PcbDoc file
ShowHideLayers This script allows very easy turning layers on/off
SingleLayerWithConnectionLines This script enables user to see all connection lines in a display similar to single layer mode
SinglePinNets No description yet
SpiralTrackVer01.8 Spiral Generator script made by Darren Moore
StitchingVias NOT MAINTAINED: "Via stitching" is now part of the core features of Altium Designer since version 10 released in 2010~2011.
Tenting_Vias No description yet
TestpointMaker This script creates test points for a net class
ThievingPads Script that adds thieving pads to a PCB Document. Pads are added in a dummy component, that allows easier manipulation
TortoiseSVN Replaces Altium SVN dialog boxes by the one from TortoiseSVN. Warns about unsaved files while committing (checking-in).
TrimExtend Script that trims or extends tracks up to a point where first selected track is. This function is available in all 3D tools
UpdateFootprintHeightFrom3dModelHeight script that updates Footprint height based on height of it's 3D model (in PCB library)
UpdateNetOnClick script will update net of all selected objects to a net user chooses with a mouse click
VariantFilter Script to apply a filter on the PCB in order to highlight the "fitted / unfitted" components of a chosen variant
VariousADMenuCustomization No description yet
VendorTools Script that can be used to exchange info between different FPGA vendors and AD. Currently supports Altera
ViaSoldermaskBarrelRelief the script searches for vias on board with higher then defined hole size and opens soldermask for the vias by given value from the edge of hole to prevent possible mask damage.
WheelSelector This script allows selection and scrolling through insight form using wheel.
XIA_Release_Manager This is the script in use at XIA LLC to do all Altium output generation, packaging (zipping), and release-tag. Everything is done within Subversion (SVN)
Wiki page
ZoomAndCenter This script invokes zoom and centers view on zoomed area. similar how PCAD worked with zoom
ZoomComponent PCB function similar to Altium's Jump Component, but it also zoom, mask and/or select component
"mil-mm-conv", unit conversion calculator script allows easily convert entered value to all other units interpretations
Wiki page
Custom Pick&Place report (deleted) script for generating user defined P&P for SMD components only
XIA_Update_From_Database (deleted) This is the script in use by XIA LCC to update schematic designs with respect to the company components database. This includes synchronization of user parameters (MFGNAME, Description, etc.), synchronization of footprints, and setting the Comment parameter

Other shared content

Component libraries

Library name & download link Library description
Libs_CAndreatta set of individual schematic symbols and footprints Cyril Andreatta. Plain SchLib and PcbLib files.
Wiki page
Libs_NetTieLib set of components for joining and splitting signals on PCB.
Wiki page
Libs_RRutledge General Library by Ryan Rutledge. Plain SchLib and PcbLib files.
Wiki page

Document templates

Template name & download link Template description
AltiumPCBProjectTemplate Sample project template for 2 and 4 layer board design in Altium Designer.
Wiki page

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
pascal (325

Find Open Source By Browsing 7,000 Topics Across 59 Categories