Recently,I’ve been working on a design in Altium. Nothing that unusual or complicated, so I didn’t expect any troubles. I went through the standard steps of importing a dxf outline, creating board shape and placing parts. And then halfway through routing I started getting some very annoying slowdowns. You’d touch a net to start routing a trace from it and cursor changes into a spinning “wait” circle and sits there for 30 seconds or more. In some cases I had to stop Altium process and reopen it again. Not good when you have many nets to touch!
Many things were tried to see what’s causing this, all in vain:
- Tried AD14 instead of AD13 I normally run
- Rebooting my PC
- Switching to a faster PC with more memory
- Recreated PCB file from scratch
- Removed components they seemed to be causing troubles, then re-added back
At that last step I noticed that the same parts were behaving just fine and not slowing things down if I left them outside board outline and tried running traces there. Aha, something to do with the board shape! I removed board shape, drew a basic rectangle instead and suddenly everything is back to normal. OK, I suppose I could just respect board outline manually until routing is done and then re-enable it for for final checks? It’s not ideal but better than nothing.
Restoring the shape and trying various areas of the board narrowed the search to several corners where my cursor would freeze as soon as I drag a trace there. Those areas also happen to be somewhat (3-5mm) near the curves on the board outlines, not even in the immediate vicinity mind you. Examining the outline closely, showed that while most of it was made out of the usual lines and curves, some areas consisted of a very large number of small overlapping segments:
Ok, so most likely when AD runs online DRC, it stumbles when handling these. If that’s the case, all we have to do is remove them from the keepout layer and see what happens. Simply selecting and removing each of these areas took a good 5 minutes each, further confirming the guilty party. At that stage, all formerly unusable areas suddenly started behaving normally and we are back in business.
Next time your design slows down like mine- check those outlines.. In my design I plan on finishing the routing and then restoring the keepout outline for final DRC checks and polygon pour clipping. A better solution would be to redraw the outline to eliminate those multiple fragments or convert it automatically. If anybody knows a clean way to do that- feel free to leave a comment.
Thanks, and hope this saves somebody else a bit of time!