Remember the bad old MS-DOS times? When strange programs like the Norton
Commander were considered state-of-the-art? Oh my. The worst thing in
those times was the behaviour of more or less ANY program in case
something went WRONG: You either got a crash, or things were completely
screwed up, or things began to get REALLY complicated.
Take file copying, for instance: Copying a file to another location was
a breeze even then, but what happened if the file already existed in the
destination folder? You got the message 'File already exists. Overwrite
it?' Well, what the heck, I don't know! Did I make an error and want to
overwrite a newer version with an older one? Or what? No other file
information was shown, the user couldn't decide and had to cancel the
whole process, check manually and try again. Frustrating.
Some years later, the Windows File Manager started to ask the SAME
question, but displayed CRUCIAL file information (date, time, size)
about source and destination, so that the user could decide properly.
MUCH better. Thank you.
In the meantime, nearly all sensible programs have an at least halfways
decent failure behaviour, but, unfortunately, EAGLE at points is NOT one
of them. In case of failure, it just cancels the operation and leaves
the user in the rain. At other points, a warning COULD be displayed, but
isn't. Examples:
1. Renaming NETS:
The user wants to rename a net and types in the new desired name
in the corresponding NAME dialog box. BUT the name already exists.
EAGLE, being clever, warns the user: 'Do you want to connect these
nets?' This question is IMPORTANT and, it's THERE. Wonderful. The
user selects 'No', because he doesn't want to create short-circuits,
and voila! That's it. All dialogs have closed. Hey, there was a
REASON why the user wanted to rename that net. He just mistyped.
Now he just has to start the renaming again and type in the desired
name AGAIN (this time without a typo, hopefully).
It would be nicer if selecting 'No' would NOT cancel the whole
renaming, but just go back to the rename dialog, so the user could
CHANGE things instead of doing EVERYTHING once again.
2. Renaming PARTS:
The user got a circuit from someone else, where a resistor was
NAMED 'shunt'. This needs to be renamed to 'R' something, so that
the resistor is correctly sorted into the bill of materials. The
user renames the part 'R10', but gets the error message 'R10
already exists'. Boing, that's the end again. He has to start
the renaming again.
3. Renaming NETS (again):
The user renames a net to 'A,B'. Everything is done without
problems. SOUNDS nice. The only problem appears LATER, when the
user tries to include this net into a bus: The bus uses the
comma as net SEPARATOR, so it seems to be IMPOSSIBLE to include
the net 'A,B' into this bus. I tried. It didn't work. Does anyone
know a way around that? I haven't found one. Neither ''' nor
'"' worked. Therefore, net names MAY contain a comma, but that
might be a PROBLEM later on. The user should be informed about
this when renaming.
4. Renaming PARTS (again):
A new EAGLE user added several connectors and now wants to equip
them with descriptive texts like 'INPUT1', 'OUTPUT1', 'INPUT2',
etc. He uses the NAME command to do that. Everything works as
expected, and the texts appear properly. The only problem is that
one should NOT use NAME for that, but VALUE. This is a typical
error made by >80% of all new users (at least in our institute).
It's not BAD, of course, but the BOM is then completely screwed
up. Therefore, there SHOULD be some sort of warning if the user
tries to do that.
Of course, (1) and (2) can be implemented quite easily, and there's no
harm in doing that, but what about (3) and (4)? Errors like that can
surely happen with NEW users, but what about the experts? They KNOW how
to do things, and they surely do NOT like to click away thousands of
unnecessary warnings. If they WANT to rename such things, they want to
do that WITHOUT warning.
That's where a (relatively new - only 10 years old) GUI invention comes
in handy: The warning with 'Don't show this message again' checkbox in
it. This is SO WONDERFUL! This way, newbies can get their warning to
bring them on the right path and prevent them from unknowingly doing
harmful things, ans as soon as they KNOW not to do this again, they can
remove that message forever.
Examples:
5. For (3), the warning could read 'Net names containing a comma
prevent them from being included in a bus. Do you want to
keep the new name?' YES renames, NO goes BACK TO THE RENAME DIALOG,
CANCEL cancels the renaming. And the 'Don't show this message
again' checkbox is there to throw the whole thing away or not.
6. For (4), the algorithm could be: If the first name characters
are NOT the device's prefix, or if this is NOT followed by an
integer number, then show the warning 'If a component's name
does not include its prefix and a number, it might be wrongly
sorted into the bill of material. Do you want to keep the new
name?' Behaviour as mentioned above.
At SOME point in the GUI, there should be an option to reset all of
these 'Don't show anymore' flags to their 'the user wants to see me'
default.
Anyway, try
- take to MOST PROBABLE action in case of problems (and don't
always automatically cancel it) and
- try to prevent often-made errors with warnings that can be
clicked away forever.
The MOST common mistakes new EAGLE users make (and which could be caught
by an algorithm) are the following:
- Closing ONE window and continuing work, screwing up the whole
design (already partly solved by the F/B annotation warning).
- Using a grid other than 0.1" in the schematics.
- Using WIRE instead of NET to create electrical connections in
the schematic.
- MOVING existing nets to create electrical connections. That
LOOKS connected, but just doesn't work at all.
- Using a board grid that is different from 0.1" (or continued
halfening of it).
- Placing electrically unconnected board wires over electrically
connected ones (to do 45 degree things and track widening),
resulting in DRC errors.
- RENAMING components instead of setting their values (as seen
above).
- [The 'comma in net' problem of course is NOT common, but it
could be intercepted as easily]
And yes, experts might want to do all of these things, but the NEW user
should be warned accordingly...
Andreas Weidner