Though the user interface of EAGLE is trimmed for doing things QUICKLY
and EFFECTIVELY, the difference between its own GUI and (de-facto
standard) Office-like programs makes it increasingly difficult for
'newbies' to accept the program as something really useful (as seen in
previous posts). With a little bit of time, people see that EAGLE's GUI
is not complete rubbish, but just DIFFERENT, and learn to accept it as
useful. But often, the FIRST IMPRESSION counts.
In order to loose neither professional long-term users nor potential new
customers, CadSoft would be well-advised to try to connect both worlds
(EAGLE and Office).
The main points critisised in the forums seem to be
- the lacking possibility to SELECT objects,
- the lacking possibility to DO things with those objects and
- the lacking possibility to GROUP objects.
(Though EAGLE does NOT lack some of the above points and does not NEED
the others, this is often the first impression of new users, so I just
leave that uncommented for now)
The following paragraphs suggest a way how CadSoft might implement ONE
additional command to make the first-time user much more happy than at
the moment:
1. Prelude A: Make all current commands work properly with either
single objects or groups. This mainly concerns
- MOVE/COPY/INVOKE etc., which do not work with only ONE
(ungrouped) object across sheets,
- VALUE, which does not work with groups and
- INFO, which does not work for groups, either.
This obviously is quite a bit of work, but it would make the
interface MUCH more logical.
2. Prelude B: Make the INFO dialog NON-modal and add the possibility
to anchor it somewhere in a window border. For the current EAGLE
behaviour, that doesn't make too much sense, but the whole thing
becomes useful when reading the next points.
3. Prelude C: Make the GROUP command also accept dragging rectangles
together with CTRL: This would add the selected objects to the
group (or remove them from it).
4. Add ONE command that is started with a button with a POINTER ARROW
on it. This is what newbies use for 'selecting things'. This
command will be QUITE difficult to implement, because it does
QUITE a lot of things:
a) If the user clicks a point where there is NO object available,
the current group is emptied, and the (non-modal) INFO dialog
shows nothing useful.
b) If the user clicks on an object, this object gets the SOLE
member of a (highlighted) group, and the INFO dialog shows the
usual things (editable, with an 'accept' button or similar).
c) If the user ctrl-clicks an object, this object is added to
or subtracted from the current group. The INFO dialog shows
only those fields that are available for ALL grouped
objects. If a field is the same for ALL grouped objects,
this field contains the common value, if NOT all objects
agree, the field is left empty or a word like 'several' (or
similar) is shown (checkboxes etc. would need TRISTATE
support). The INFO fields are all editable (therefore,
point 2 is crucial).
d) If the user drags a rectangle beginning at a place where
there is NO object, the command behaves the same as GROUP:
Either a new group is created, or objects are added to or
removed from it. The INFO dialog always stays working.
Up to now, the new command does more or less the same as
GROUP - it just cannot select objects with a polygon. But now
some additional functionality:
e) If the mouse button is pressed on an object from the current
group and the mouse is then dragged, the group is MOVED (as
is the case with nearly all graphics programs). I would
suggest that this movement is triggered by the LEFT mouse
button, even though 'normally', the RIGHT mouse button
would move the group. BUT we want to have Office-like
functionality here, and it should STILL be possible to
rotate and/or mirror the group.
f) Double-clicking on an object from a group shows the INFO
dialog (non-modal), even if it wasn't visible previously.
g) When double-clicking on an object NOT in the group, this
object gets the SOLE member of a new group, and the INFO
dialog is made visible.
h) (Ctrl)-right-clicking on an object from the group shows
a local menu based on the GROUP (and not only the clicked
OBJECT as done now).
With this approach, NEW users would have their often-sought
'selecting' method, and even long-time users could do moving
easier than before, because no change between group/move etc.
would be necessary. For SPECIAL wishes like grouping with a
polygon, the 'usual' commands would of course still work
(and even without ANY change).
5. Other thoughts:
a) Since the word GROUP is normally used for PERSISTENT
groups in every graphics program on earth, it MIGHT be
useful to rename GROUP to SELECTION (the old command
name would of course STILL work for compatibility).
b) Currently, the INFO dialog does NOT focus any edit
field after opening (which I always find a nuisance).
In the future, it would be nice if the MOST OBVIOUS
field would be automatically focused:
- In case of all objects of the group containing
the field that was LAST focused, use this.
- In case of NO previous focus, use the field that
the user will most likely want to EDIT. For
components: value, for nets/busses: name, for
wires: width, ...
c) Since the new 'pointer' command does not do ANYTHING
that cannot already be done with other EAGLE commands,
but just allows to use them more quickly (and perhaps
even more intuitively), there would be NO necessity
to include this in the command line syntax. Well,
STARTING the command via the command line would be very
useful, but please NO additional parameters (they would
be too complicated and useless, anyway).
d) Prelude A needs QUITE some thinking about how existing
commands should behave when confronted with groups.
This is NOT difficult programming, though. SOME ideas
for this should already have been mentioned in previous
EAGLE GUI posts of mine (as far as I remember).
The above approach would do several things:
- NOT break the current EAGLE workflow (which is much BETTER
than Office-style stuff)
- But ALLOW for Office-like usage for the most-often used
functions like 'selecting', moving and changing parameters,
meaning those functions that new users will most likely
try out first
- WITHOUT having to reprogram the whole of EAGLE, but just
adding ONE (quite complex) command.
- In my opinion, a win-win situation for both newbies and
professionals. The only ones weeping will probably be the
CadSoft programmers - but they are quite definitely the
minority...
Andreas Weidner
