**Tricks and tips for ElectronicDesign**

**Eagle**

Eagle has scriptability. Eg moving components is possible with simple commands. However, moving connected traces and vias can be a problem.

**Circular placement**

Let's assume we want to place 10 or 11 pads on a circle (centered 0,0 - offsetting is really simple).

In the example:

- 22mm from the center
- 2.54mm from each other

The octave (matlab) formula would be:

r=22; dist=2.54; # calculate the half of base angle in radian: ang=dist / r / 2 ; # Let's make a vector with some values: a=[0 : ang : 0.6]; # now let's see the coordinates in mil units # Since r is in mm, # we apply the * (1 / 0.0254 ) constantmultiplier to get mils: b= r / 0.0254 .*[sin(a); cos(a)]

- x:
**0.00000**49.97223**99.78**149.25133**198.23**246.54314**294.04**340.55225**385.93**430.02692**472.69** - y:
**866.14**864.69895**860.36**853.18553**843.15**830.31198**814.70**796.38286**775.41**751.84995**725.79**

- Naturally, mirroring around the X is just a - sign.
- Also, only the bold coordinates are used (for 11 pads) or only the non-bold ones (for 10 pads).
- You can easily verify with Pithagoras formulat that x^2 + y^2 = 866.14^2 for every coordinate-pair
- and distance of neighbour bold (or non-bold) coordinates is appr. 100 mil

Similar, but slightly different values and formatting:

# in mil: r=895; dist=100; # calculate the half of base angle in radian: ang=dist / r / 2 ; a=[0 : ang : 0.6]; b= r .*[cos(a); sin(a)]'

- 895.00000 0.00000
- 893.60372 49.97400
- 889.41922 99.79206
- 882.45956 149.29876
- 872.74647 198.33962
- 860.31024 246.76162
- 845.18968 294.41367
- 827.43196 341.14710
- 807.09251 386.81609
- 784.23477 431.27814
- 758.93007 474.39451

That looks much better then the way I did it on the LED test pcb.

I used mastercam to place it then I readout the x,y for each in mastercam. And then did move one at a time to the x,y in eagle