Some of these may be redundant with others' wishlists, but I'll mention
them anyway to lend my support.
1) Undo/redo functionality would be more effective if there were a way
to see the 'stack' of the last few commands. To make this happen, all
commands that can actually alter the board, schematic, or library data
should generate an acknowledgement message in the status line as well as
an entry on the 'stack.'
Essentially, it should always be clear what an undo or redo command will
actually undo or redo. Most people have probably seen the
"Schematic/board not saved. Save?" prompt when exiting EAGLE after
being away from their PC for a few hours, and quite a few of us have
been left wondering exactly what we did before our attention-deficit
disorder kicked in.
2) It'd be nice to have a visual indication of whether or not the board
or schematic has been changed since the last save. Many editors put an
asterisk next to the window title, or use some similar indicator.
3) Consider using tUnrouted / bUnrouted layers to allow airwires
entirely on the top or bottom layers to be hidden.
4) Net classes need to have user-specifiable colors associated with
them... ideally for both traces and airwires, but at least for the latter.
5) The MARK command should be persistent. No real purpose is served by
toggling back to the previous command after a MARK, since users often
need to move the reference mark around multiple times if they're using
that command at all. In general, the fact that some commmands are
'sticky' while others are not is more confusing/distracting than helpful.
6) If a part has been smashed, it might be nice if clicking on any
silkscreen associated with it would select the tName instead of the part
itself. This would help avoid the "hunt the '+'" problem familiar to
anyone who has worked with a crowded board layout full of smashed parts.
6a) Along those lines I agree with those who argue that the smashed
state should be the default. I can't remember the last time I used an
unsmashed part. At least make this a user preference.
7) Failing that, when the MOVE command is active, at least highlight all
the '+' markers associated with smashed parts. It's frustrating to move
silkscreen labels around in a dense layout because you always tend to
select the part instead of the labels unless you remembered to lock the
parts down or deselect the tOrigins/bOrigins layers.
8) Allow groups to be moved to explicit coordinates, just as individual
parts can be. (Perhaps this is already supported and I've missed it.)
9) When dragging a part, group, or trace, allow SHIFT to be held down to
constrain the motion to the first direction of movement. This is a very
common feature in graphical editors of all sorts, and would save a lot
of grid manipulation.
10) Allow multiple arguments for commands such as MOVE. When doing
initial parts placement on a new board, it'd be nice if I could say
"MOVE R1, R2, R4, R5" to pull in a whole stack of related components at
once.
11) The 'Cancel' button in the DISPLAY dialog should restore the layer
selection that was active when the dialog was first called up. The way
it works now, what's the difference between hitting 'OK' and 'Cancel'?
In both cases the current layer selection will be kept.
12) In general layer selection is a weak point of the UI. If it could
be made completely modeless without conflicting with the 'stack'
suggestion above, that would be a big improvement.
13) When changing the name of a part on a schematic, don't just tell me
that the new name "Already exists" -- give me the option to swap names
with the conflicting part. Same with pad names in the package editor.
14) Pulldowns for user grid and layer aliases should have check marks
for the current selection, if the current grid or layer configuration
still corresponds to the last selected alias.
15) It should be possible to press CTRL to snap a MOVE target to the
nearest grid location at any time while the command is in progress, not
just when the move is initiated.
16) Don't try to convert between units in the GRID dialog, or at least
make it possible to disable this behavior with a user preference. When
switching between metric and English units, it seems I have to issue
every GRID command twice... once to set the unit, and again to override
the ridiculous value EAGLE adopts when it tries to interpret my new
value in the old unit or vice versa.
17) The default value for the VALUE command should be the previous
entered value, not the component's current value. The current value is
the one value that is known not to be desired, so why use it as the
default?
18) Along the same lines, consider adding VALUE to the options
accessible via the CHANGE command. This would make it easier to assign
a new value to multiple components.
19) It might be nice to offer a compiled version for x64 editions of
Windows and other 64-bit OSes. This buys you an extra 10% or so of
speed for no real work, assuming your dependencies are all available in
64-bit versions.
20) "Edit device in library" and "Edit package in library" should be
available on the right-click context menus in the schematic and board
editors.
21) If there's a way to run multiple copies of EAGLE at once without
trampling eaglerc.usr and any other configuration files, it would be
appreciated. It's frustrating to lose a lot of custom ASSIGNs and
aliases because you forgot to exit from another instance that was only
launched to refer to another board layout.
I'd suggest keeping assignments and aliases in a separate file alongside
eaglerc.usr that is not overwritten except when its contents change.
This would also have the advantage of not losing assignments and aliases
just because the user didn't save the .brd/.sch that was open at the time.
22) Silkscreen width should be checkable by DRC.
23) DRC should also report the current airwire count, a la RATSNEST.
24) The default selection when the four-way arrow cursor is used to
choose from objects on multiple layers beneath the mouse cursor should
be the object on the last selected layer, since 99% of the time that is
what the user will want.
25) Pressing ESC should terminate the VIA command, as it does with most
other commands. Right now the only way to terminate the VIA command
appears to be to reach all the way up to the Stop icon on the toolbar.
26) When drawing a rectangle, show the size of the rectangle alongside
the current cursor position.
27) One thing that tripped me up recently is your use of the $HOME
environment variable. My (Windows 7) system didn't originally have a
HOME environment variable until I installed the msysgit package the
other day. At that point, EAGLE appeared to "forget" all of my aliases,
assignments, and UI preferences. I eventually realized that when the
HOME variable appeared courtesy of msysgit, EAGLE created a new
eaglerc.usr in $HOME\eagle (users\johnm\eagle) and forgot about the one
in users\johnm. Suggest either not using $HOME at all, or ensuring that
it is created during installation if it doesn't already exist.
...
It may not be apparent from this huge list of nitpicks, but I actually
really enjoyed using 5.11.0 on a large-scale project recently, coming
back to EAGLE for the first time in a couple of years. There were
absolutely no crashes or instances of data loss, and the new
alpha-blending renderer introduced with V5 worked way better than I
thought it would. Thanks for your hard work on V5 and for your
consideration of these requests.
-- john, KE5FX
