As already stated in 'EAGLE GUI(2)', the menu of EAGLE is missing LOTS
of functions. That does of course not mean that EAGLE doesn't HAVE these
functions (it does!), but just that any new user will not KNOW that
these functions exist at all, because they can nowhere be SEEN in the GUI.
This is not such an overwhelming problem in the schematics editor
(though there are things to do there, too), but mainly in the board
editor. There, a new user will be frustrated by the lack of the
following functions (amongst lots of others):
1. Polygons can be drawn, but the resulting copper is never shown.
Well, of course it is - with RATSNEST, but that is not obvious.
The menu command to do that even IS available, but in English,
it is called RATSNEST, and no newbie knows what THAT means,
and in German, it's called 'Calculate airwires'. Both obviously
have nothing to do with the copper pour. Only in CadSoft's
programmer's minds do airwires and copper pour have things in
common. NOT in the typical user's mind. Seeing this menu entry,
I myself would NEVER, EVER use it to try to visualise the
copper pour. Fortunately, this is at least properly mentioned
in the help pages under the obvious POLYGON command. But
remember that NOT needing to read help pages or manuals is
always better than being forced to do so by the program.
2. Hiding undesired airwires (e.g., for GND, +5V, -5V) is only
possible via right-clicks on each signal, choosing PROPERTIES
and then AIRWIRES HIDDEN. Gosh, it took years to find that
out, and it's so complicated. Why isn't this easier? Well, of
course it is - with RATSNEST, but that is not obvious. NO
menu command for hiding or showing signals is available. The
user has to
- GUESS that this function DOES exist,
- GUESS the command name that perhaps will do it and
- read through all the corresponding help pages
until, after half an eternity or reading the complete manual
(whichever is shorter), he either arrives at the correct
command line syntax, or (highly probable) gives up earlier.
3. After realising that RATSNEST does THREE completely
unconnected things (they are ONLY connected in a programmer's
mind), which are
- optimising airwires,
- redisplaying the copper pour and
- hiding and showing airwires,
the user may be frustrated that these things are ALWAYS done
with RATSNEST. Sometimes, a ground polygon is one of the LAST
things one creates, so at first, there may be lots of airwires
that are optimised with RATSNEST, and later, after routing
everything, there will be the ground polygon that will be
recalculated by RATSNEST. So far, so good. But on DENSE
layouts, copper pour might become VERY dependent on small
variations of element positions, so the ground polygon must
be created FROM THE BEGINNING - and with all airwires still
there. ALWAYS seeing the ground polygon is frustrating,
because screen display is not so nice, then, and the time
needed for polygon recalculation is even MORE frustrating
if you just want to recalculate airwires with RATSNEST. But
you NEED that crappy polygon, and why the heck are polygons
and airwires always calculated at the same time? GRRRR! Well,
of course they are NOT - with SET POLYGON_RATSNEST OFF, one
can change that. Unfortunately, though being available in the
help pages, this behaviour must be changed SO often during
dense routing that the user types the keyboard to death with
that syntax.
4. Did I already mention that, in case of a calculated polygon
whose copper pour should NOT be shown, the user will
spectacularly FAIL to find any menu item to HIDE the
copper pour? That's a case for the command line again.
Please don't misunderstand me: As I have proven lots of times, I LIKE
EAGLE's command line, because it's SO wonderful for experts. But it's a
nightmare for beginners, because you have to KNOW what you MAY type, and
how should a new user know the SYNTAX for a certain function if he
doesn't even know of the EXISTENCE of that function (because it's
missing in the GUI)?
Therefore: Do NOT only provide menu items for strange and mysterious
commands, but a menu item for every ACTION that the typical user might
often want to use, and name it accordingly (NOT with the command name,
but with the ACTION), so that the user may FIND it.
For example, I provide our students with the following (nested) buttons
in the text menu:
- POLYGON: Calculate polygons
which does nothing but
SET POLYGON_RATSNEST ON;
RATSNEST;
- POLYGON: Ripup polygons
which does nothing but
SET POLYGON_RATSNEST OFF;
DISPLAY ALL;
RIPUP @;
DISPLAY LAST;
- [plus several other polygon commands to help CREATE polygons
connected to GND]
- RATSNEST: Calculate polygons
which does the SAME as above, just in case somebody cannot
remember in which text menu it resides
- RATSNEST: Ignore polygons
which does nothing but
SET POLYGON_RATSNEST OFF;
RATSNEST;
- AIRWIRES: Hide GND supplies
which does something similar to
SET POLYGON_RATSNEST OFF;
SET CONFIRM YES;
RATSNEST ! GND;
SET CONFIRM OFF;
(But currently still with a ULP, because at that time I created
that, the SET CONFIRM syntax was not yet invented. I will change
this to the above syntax in the future)
- AIRWIRES: Hide V+ supplies
which does something like
SET POLYGON_RATSNEST OFF;
SET CONFIRM YES;
RATSNEST ! V V VCC* VDD*;
SET CONFIRM OFF;
- AIRWIRES: Hide V- supplies
which does something like
SET POLYGON_RATSNEST OFF;
SET CONFIRM YES;
RATSNEST ! -V V- VEE* VSS*;
SET CONFIRM OFF;
- AIRWIRES: Hide all supplies
which does something like
SET POLYGON_RATSNEST OFF;
SET CONFIRM YES;
RATSNEST ! GND V V VCC* VDD* -V V- VEE* VSS*;
SET CONFIRM OFF;
- AIRWIRES: Show all signals
which does something like
SET POLYGON_RATSNEST OFF;
RATSNEST *;
This way, the user
5. SEES that such a thing is possible,
6. can use it IMMEDIATELY for common cases, and
7. look the syntax up further if those predefined cases are
just not enough for the design.
And YES, the above is not optimal, because the previous state of
POLYGON_RATSNEST is not restored (I don't know how to do this currently)
etc. But it's still FAR better than having NOTHING!
So, just for fun, a screenshot of SOME of the missing items from the
German 'Tools' menu of the board editor (I used a different distribution
than mentioned above to get rid of the strange word 'ratsnest'). All of
these items can be VERY easily included (the syntax is already THERE -
it must only be included in the GUI), with ONE exception:
- Hide/Show signals...
This would show a (not yet existing) dialog containing a list of ALL
available signals and let the user select which of these to show or
hide. Of course, THAT would need additional thinking and a bit of work,
but the above stuff is REALLY primitive to implement. As should be tons
of other already existing functions that are NOT visible in the GUI yet.
Andreas Weidner