Electrical – Intersect Off-Grid Wires in Eagle PCB

eaglepcb

When working with surface mount components with different pitches, or with mechanical dimensions on different grids, the situation inevitably occurs that you have two wires or lines that need to be connected, but neither are on the current grid – in fact they may not end up on any sensible grid.

As an example, here are two lines, neither on the routing grid, which must be connected together to form a right angle (or mitred join).

Off-Grid Wires

When these are traces being routed, it becomes fairly straight forward as the route tool allows for snapping to the ends of air-wires, so you can simply click on one end and then have the route snap at the other end.

However when such lines are not traces – such as silk screen lines or dimension lines, the snap doesn't work. You can CTRL+LeftClick on the end of the first line to start routing, but Eagle won't let you snap to the end of the second line.

You can also drag the ends of the lines so that they overlap, however there is no tool to intersect two lines unless the end of one lands exactly on the other.

The question arises as to what the simplest way of joining these wires?

Best Answer

There are actually a couple of ways to do this if we assume that both lines orthogonal. If they are not, neither of these methods will work, and you have to instead do a series of trigonometric calculations to work out the intersection point.

The first method involves opening the properties dialog for both of the lines in turn to find the intersection point. For the horizontal line, you would find the Y coordinate of the line and then set this as the end Y coordinate for the vertical line. Then for the vertical line you find the X coordinate, and set this as the end X for the horizontal line.

Personally I find this somewhat of a pain as you have to open each dialog box twice and copy numbers between them. It also means you have to make sure you have the correct end of the line and it's easy to get mixed up.

I have recently come across a simpler method which doesn't require opening the properties boxes, so I figured I'd share it.

  1. With the wire tool, CTRL+LeftClick on the horizontal line (could do vertical first if you want). This will automatically start extending the line, automatically selecting the same layer and width of the existing line. route the line until you are near to where the intersection will be, but on a nice grid dot. Make sure the grid point you choose is inside the corner.

    Step 1

  2. Now repeat with the vertical line, ending on the same grid point as in the first step. This will join the lines.

    Step 2

  3. Next select the miter tool, selecting a very large straight miter. You can do this from the command buttons, or by simply typing miter -10 where the value 10 represents an amount significantly larger than your current grid, and the minus sign indicates straight.

    Click on both outer corners that were created during routing to miter them:

    Step 3a Step 3b

  4. The final step is to set the size of this miter to however large you need. If you want a right angle rather than miter, that is the same as setting a miter of 0. Run the miter command again, this time with your desired size, e.g. miter -0 for right angle. Click on the middle of the mitered corner a couple of times, and the miter updates to the correct size:

    Step 4

Once you get used to the process, this approach is far faster than trying to merge them using the properties dialog.