Protel DXP

Protel DXP is Altium's, previously known as Protel, current Electronic Design Package. Rebuilt from ground up, it has many new features compared with the precedessor Protel 99SE. As happens often, the package had to be released a bit early and therefore requires a few more touches. However from DXP2004 SP1 on it could have been be considered useable. The current version is SP4. The new forums to be found on the Altium website are well worth subscribing to. They just help to solve a problem much faster plus they propagate a worthy idea of yours to the developers rather quickly.

System requirements

The machine DXP is intended to be run requires Win2K and up. No WinNT, nor any toy windows versions. With 512MBytes the RAM is on the lower side. A scroll wheel mouse is recommended. A single screen with 1600x1200 is also on the lower side. There is a whealth of information and a lot to select. A second screen is recommended. Speedwise, an 1100MHz machine can cope with the manual tasks. I haven't tested autorouting yet.

Additional features

Coming from 99SE, the following features are noticed

Missing features

Compared to 99SE, the following is missing

Panelling PCBs

Panelling 2 layer PCBs is doable within the pcb editor by copy/pasting the copper. Even though similar rules as for the polygon pour apply, the power planes are rendered at the gerber producing process, not before. Somehow copy/pasting doesn't work for for the power planes. This is where CAMtastic comes in. After the gerber producing process, this tool works with copper and drill information.

Working with CAMtastic

As a recent addition, the different philosophy is still apparent. Before doing something, one has to select the action, and then do the selection, upon which this action is going to happen. The statusline is going to tell what next step is expected and accepted. A selection is terminated with a right mouse for example. ESC terminates the process that is current.

A special insight is that the native dataformat of CAMtastic is the *.cam files. This means, the gerbers have to be imported. Either by Files/Import/Gerber plus Files/Import/Drill,or by Files/Import/Quickload. And whatever work is done, has to be exported as gerber, as Camtastic acts on its own files.
For some reason CAMtastic is not useable do add lines. Their thickness is not settable, or at least I was unable to figure it out. Also deleting lines is a game. It behaves equally smart as the schematic editor does. A line can go round a corner when you don't expect it and it is gone. As said you cannot replace it with a new line, as this new line possibly has a different thickness. I found it can be copied from another place. Not really great, yes?

The layers can be made visible by checking them in the CAMtastic CAM editor panel. Single layer mode can be switched on/off by selecting a layer there with the mouse and subsequent left/ right cursor keys. The focus is lost quickly and requires reselection. The current layer is having a cross in the color square.

Panelling with CAMtastic

CAMtastic lets you not edit the layer names throught the process. So open a pcb project and import its gerbers by either quick load or normal load. Since the import process has some quirks, I suggest the normal import, as it offers better control. The name of these layers will be the name of the panelled product. After import, move the lot away from the origin, as the next import will also be at the same place provided you always have (0,0) at a fixed location of your designs. Moving is done by selecting Edit/Move from the menu and subsequent selection of the whole pcb. After the selection as area, it asks for the reference point, eg bottom left and then it ask for the new reference, meaning where the reference is shifted to. At this point is handy to know that the snap can be changed by "shift S". Since the whole pcb has to be visible for the selection, set the snap to 1000 before the moving process. Thus insuring the moving is done at a coarse level.

For some reason the board shape is also here, at least with multi layered pcb's. Assuming the planes have their own border, this board shape has to be deleted. This is done with Edit/Clear and subsequent selections consisting of left and right clicks.
Ok, then it is time to import the next pcb. There use the normal import of gerber and drill. As it immediately detects that it has to match layers, it will present a table of proposed layer matched. This table is faulty.
 xxxx.gto - yyyy.gto
 xxxx.gtl - yyyy.gtl
 xxxx.gbl - yyyy.gbl
 xxxx.gm1 - yyyy.gm1
 xxxx.gm2 - yyyy.gm1  // forgets that there may also be a second mechanic layer
 xxxx.gm3 - yyyy.gm1  // forgets that there may also be a third mechanic layer
 all the numbered layers above "1" are wrong.
Fortunately these layer sugesstions are drop-downs and the error can easily be corrected.

Ok now this pcb is also at the position in reference to the origin it had on the pcb. In case there are more pcbs to be imported, they all have to be shifted away from the origin until the last import which may stay.

Then the panel can be assembled from the various sub pcb's. This is also done by moving. Note that the panel requires one outline on the outline layer, whichever this may be. Meaning when all pcb's had outlines, delete them all, except one. Remember, it cannot be added unless a strange width line is acceptable. One line that already exists can be pulled and copied however.

Scripting with DXP2004

Meanwhile the name was changed from DXP2004 to Altium Designer. We'll refer to it as AD. Scripting is a means of solving complex tasks. Although the help lists quite a number of entries on "script", I didn't find the time yet to get involved with it. I just collected some scripts for useful operations. Script are clearly made for the daily user of DXP, not for the casual user sitting a just few days a month in front of it.
Scripts can be executed from DXP (leftmost menu), run script.

Toggling the loop removal

This script is just able to toogle the loop removal, there is not feedback on the current state. The code is saved under the filename LoopRemovalScript.pas. It can be assigned to a menu button.
Procedure ToggleLoopRemoval;
  PCB_SystemOptions: IPCB_SystemOptions;
   If PCB_SystemOptions.LoopRemoval Then

Run a URL

Any string on the schematic sheet can be run as URL by this script. The following code is saved under the filename RunURL.pas
Procedure RunURL;
 CurrentSheet : ISCH_Sheet;
 ALocation    : TLocation;
 HitTest      : ISCH_HitTest;
 i            : Integer;
 CurrentSheet := SchServer.GetCurrentSchDocument;
 If CurrentSheet = Nil Then Exit;
 ALocation := CurrentSheet.Location;
 If CurrentSheet.ChooseLocationInteractively(ALocation, 'Click a valid String URL to open the Web page') Then
    HitTest := CurrentSheet.CreateHitTest(eHitTest_AllObjects, ALocation);
    For i := 0 To HitTest.HitTestCount-1 Do
      If HitTest.HitObject[i].ObjectId = eLabel Then
         AddStringParameter('Mode', 'Go');
         AddStringParameter('Address', HitTest.HitObject[i].Text);

Adding datasheets to the schematic components

To the component in the schematic library add the following parameters:

ComponentLink1Description = datasheet - pdf
ComponentLink1URL = c:\datasheets\NationalSemiconductor\UA741.pdf
ComponentLink2Description = appnote
ComponentLink2URL = c:\datasheets\NationalSemiconductor\AN1123.pdf
ComponentLink3Description = National Semiconductor
ComponentLink3URL =

When the component is placed a righclick on the component lists under references, "datasheet - pdf", "appnote", "National Semiconductor" and subsequent clicking on them opens the links in the appropriate viewers.


last updated : 20.july.05 or perhaps later

Copyright (99,2005) Ing.Büro R.Tschaggelar