Altium: How to import board shape from SolidWorks

In many projects the PCB designers don’t have the luxury of defining the size and shape of their PCBs, due to mechanical restrictions. Altium has many features that make it easy to collaborate with the mechanical designers, one of them being the ability to import board shapes from any 3D modelling software. Here is how to import board shape from SolidWorks:

  • Let’s say we have a 3D model of the PCB in SolidWorks like the picture below:
  • First, we ‘ll have to save this drawing in DXF format, which is recognized by Altium. Click on File->Save As and choose DXF file format. In the options that show up, make sure you choose correct views or entities that you want to export.
  • The next window that pops up can be used to remove the entities you might not want to export. If you have only the board outline in your exported file, your job will be easier. Click Save after making any necessary corrections. That’s all you need to do in SolidWorks. Similar approach can be followed in other 3D modelling software. Before you close the file, note down the unit used for measurement in your model. My model is set for inches.
  • Open Altium and create a new PCB. Then, go to File->Import. Select DXF as the file format and open the file you exported in the previous step. If you do not see DXF file format listed, you will have to install the appropriate Importer Plugin (Dxp-> Plug-ins and updates). In the options windows that open, make sure to choose the correct units and click Ok.
  • You will see the board outline imported to one of the mechanical layers.
  • Select the lines and click on Design->Board Shape->Define from selected objects.
  • That’s it. You ‘ll have the board shape same as the 3D model.

    Hope this was helpful!

PCB trace width, via size, etc. calculation tool

When you layout your PCB, one of the basic decisions to take is the trace width. I have come across various online tools which can be used for calculating trace width, but most of them were either obsolete or unreliable. I recently found a very comprehensive tool for all PCB design calculation needs.

Saturn PCB Design Toolkit
Saturn PCB Design Toolkit [image source:]
You can download the Saturn PCB Toolkit for free from here. I use the tool mostly for calculating trace widths based on the current handling capability required, impedance characteristics of the trace, via properties, etc. The tool also has various other calculations which may be of use. The website also has an informative help page.

Now you can use your brain for things that are more challenging – like understanding the Duckworth–Lewis method.

Gerber: basics, file name extensions and viewer

Whichever program you use for PCB layout, the final output will be a set of gerber files. Gerbers are just text files with co-ordinate positions and other info, which tell your vendor which parts of the board must have copper (or overlay or solder mask, etc. depending on the layer) and which parts must not. It is always a good idea to talk to your PCB vendor and find out the gerber format (version, units, number format, leading/trailing zeros, etc.) in which they need the files. If you are not able to contact the vendor while generating the gerbers, it usually works if you attach a ReadMe file listing the configuration along with the gerbers.You might also have to generate NC drill files separately.

The file name extension for gerbers varies with PCB software. For Eagle, OrCAD or Protel, refer here. For Altium, here.

It might also help to view gerber files in a third party viewer before sending the files to the vendor. Pentalogix’s ViewMate and gerbv are good viewers that you can download for free.

When work is play, literally – PS3 Sixaxis controlling Altium Designer

I do most of my design work in Altium Designer. I got tired of scrolling with my mouse, so wanted to spice things up. I found a PS3 Sixaxis controller lying around and thought it would make a cool controller.

Altium controlled with PS3 Sixaxis controller
Altium controlled with PS3 Sixaxis controller

I found drivers for the controller developed by MotioninJoy, which are available for free download. They also have a well written wiki and an active support forum. Here is how you bake the bun:

  1. Get the latest stable version of the driver (choose 32 bit or 64 bit carefully) and follow the installation instructions given here.
  2. Connect the controller. I do not have a bluetooth receiver, so I connected using a USB cable (you will need a mini-usb to usb cable).
  3. After making sure that the controller is properly recognized and listed, click on “Profiles”. Select the “Custom” profile and click on “==>Create”.
  4. You ‘ll see a window where you can configure each controller input. See picture below:
    MotioninJoy profile editor
    MotioninJoy profile editor

    Edit the profile to match your usage. I configured one joystick for moving the cursor and another joystick for scrolling. Right buttons for mouse buttons and Esc key and few other buttons as different keystrokes for using keyboard shortcuts in Altium (e.g. P->V for placing a Via).

  5. Once done editing, click on “Enable”. There you go. The coolest controller for laying out PCBs!

This is just one usage example. You can customize the controller profile for any application you use. You can also Import/Export profiles, so that you need not configure it each time.

Imagine inserting a local pattern in Solidworks with press of a single button! Have fun!