Altium & Protel Add-on Servers and Scripts

We have written a number of add-on servers for Altium's Protel 99SE and scripts for Protel 2004 and later. You can find these below. Scripts labelled P2004 will likely work in later versions as well, or, if not, should do so with minor editing.

If you are interested in our very old, rough, off-the-cuff comparison of DXP versus P99SE - here it is.




CSFlipViewer (P99SE)

CSPartsListServer (P99SE)

CSExtractFromExcel (P99SE)




MacroHelper (P99SE)

ZoomWithPan (P99SE)

ToggleSelectionAll (P99SE)

SetSelectionAsTestPoints (P99SE)

SetPadNumbers (P2004 script)

Custom Server Development

We are happy to discuss custom server development. This can either occur as a fully funded development or as a partially funded development with Considered Solutions maintaining ownership.

Send an email to 'servers' at considered,com'au with your enquiry.
(All email addresses on this site have been masked to reduce the likelihood of harvesting by spammers.)


The following servers are a generally more complex than the freeware servers (listed below); they took longer to develop. Some consideration for these would be appreciated if you continue to use them after giving them a go. If you have paid something for them, or if we feel you are doing your bit for the Protel user community, we will be happy to provide support.

CSFlipViewer- Sometimes it would be nice to be able to view a PCB from the bottom. This is especially so when positioning bottom side designators. This server provides a resizable always-on-top floating window in which the area around the mouse cursor is shown flipped. The flip can be horizontal (X-flip), vertical (Y-Flip) or both. Similar in nature to the myriad on-screen magnifiers but with a unique X and Y-flip function - and without the magnification. You can see a screen shot here.

Tested under Protel P99SE SP6. Suggested consideration USD$5.
Download CSFlipViewer here

You can pay online with Visa or Mastercard into our PayPal account.

(See here for other payment options.)


CSPartsListServer - This server extends the functionality of Protel Parts List/BOM generation. The server will be most beneficial to those producing many parts lists that require a consistent format with the space saving consolidated designator format. It features:

Developed and tested under Protel P99SE SP6. Registration price USD$10.
Download CSPartsListServer here

You can pay online with Visa or Mastercard into our PayPal account.

(See here for other payment options.)

Please note: a revised version of this server was upload to this site on 22th January 2002. This new version includes support for sorting on the first designator in a designator list. Version 1.5.0 is the latest version.


CSExtractFromExcel- This server will optionally fill-in some of the changeable fields of a Protel Schematic sheet or project, extracting the required data from an Excel spreadsheet. It features:

Developed and tested under Protel P99SE SP6. Registration price USD$20.
Download CSExtractFromExcel here

You can pay online with Visa or Mastercard into our PayPal account.

(See here for other payment options.)




These servers are free. Use them and share them as you wish. Make sure any copyright messages remain with the distribution files and it would be nice if you could let me know you are using them. Feedback on how to make them better is always appreciated. But do not expect any (reliable) support. You may find us on the PrU mailing list/web forum and we may be prepared to answer questions there. Other users on this mailing list may also be able to offer support.

MacroHelper - Protel provides two methods of automating tasks. Servers are usually quite complex and require Borland Delphi to develop. A simpler method is ClientBasic macros. These macros are simple enough to write but are extremely limited in the data that can be queried and set in the design databases. For instance, it is not possible to retrieve any component fields from a schematic, nor is it possible to place tracks or request the user select a coordinate in the PCB workspace. This server overcomes some of these limitations, exposing a selected number of schematic and PCB entities and operations, to macros. Detailed on-line help and sample macros are provided. Tested under Protel P99SE SP6.

The following processes are provided:
1. PCB - AskUserForCoordinate - a macro can prompt the user for a coordinate and retrieve the location as both an absolute coordinate and relative to any offset origin. The macro can provide prompt text, that appears in the Protel Client status bar. A status return is provided to allow the macro to determine if the user cancelled the operation.
2. Schematic - ComponentInformation - not yet implemented - a macro can retrieve from, and set into, a schematic database any attribute of a component. All attributes can be read. Some, such as the read-only library fields can not be set using this process. Components are selected by designator. An error return is provided to indicate success or failure of the requested operation. Send us an email if you are interested in this capability.
3. Others as people request them, and we think them worthwhile.

If you use this send us an email to let us know.

ZoomWithPan - Protel uses the PgUp and PgDn buttons for zoom operations within PCB and schematic. A new user mentioned on a mailing list that they were used to a zoom operation about the cursor also panning the screen to centre the cursor. We do not like this behaviour - at least mostly we prefer zoom without the pan but maybe we are just used to that - but we wrote this server to show that it can be done. Tested under Protel P99SE SP6. Updated 23 March 2002.

ToggleSelectionAll- This add-on server for Protel 99SE PCB toggles the selection of all PCB objects. Those already selected are deselected and those de-selected become selected. Tested under Protel P99SE SP6.See the readme.txt file within the zip file for details.

SetSelectedAsTestPoints - This server allows you to set the testpoint state of selected pads and vias. Only selected pads and vias are changed. Pads that are part of a component are changed if selected. If you have a pad which is, say, set to a bottom testpoint and it is selected - running the server with TestpointAction=TopOnly will *not* clear the bottom testpoint status. Think in terms that the server is checking the Top testpoint checkbox only and leaving the other alone.

SetPadNumbers - This Protel 2004 script allows you to set a starting pad number and then go around clicking on pads to set the pad number incrementing after each click.