Just for evaluation. Mentor Designer Schematic Capture > wheel zoom Mentor Designer Layout > ctrl+wheel zoom PCBWeb > wheel zoom Diptrace > wheel zoom NI Ultiboard > wheel zoom Upverter > wheel zoom EasyEDA > wheel zoom Eagle > Wheel zoom Altium > ctrl+wheel zoom
On Mon, Aug 31, 2015 at 9:53 AM, Mark Roszko <mark.ros...@gmail.com> wrote: > >The mouse wheel and navigation (as mentioned above). > Make it consistent with other EDA, CAD and drawing applications: > wheel -> up/down, shift-wheel -> left/right, ctrl-wheel -> zoom > > > I disagree, EAGLE uses mouse wheel zoom and it is by far one of the > most widely used tools these days. > > On Mon, Aug 31, 2015 at 10:15 AM, Attila Kinali <att...@kinali.ch> wrote: > > On Wed, 12 Aug 2015 00:09:06 +0200 > > Attila Kinali <att...@kinali.ch> wrote: > > > >> So, I would like to ask, whether there would be any interest of the > >> developers to work on the UI. If so, I would start collecting > >> points on the UI that are worth to work on and how to improve them. > > > > Ok, here is a list of the things I stumbled upon in the UI. > > > > Generally, there are very few strict rules in UI design, most of > > it is opinion. So, please accept the things I list here as my view, > > which most likely will differ from yours. I do not intend to impose > > my view on you, but rather want to give an insight on what someone, > > who has done quite a bit of electronic design, finds cumbersome when > > using Kicad. Also, the list is quite skewed to issues in pcbnew, > > because that is what I was mostly using last week, when I took notes. > > > > I also incorporated the comments I got from my friend Andrew Bradford. > > These are marked with (bradfa). > > > > All comments are based on kicad from bzr from about a month ago > > (2015-08-10 r6080). > > > > Of the general rules of UI design, the most important one is consistency, > > both internal and external. Consistency helps the user to develop a > mental > > model on how the application is supposed to work. This help in not > needing > > to remember exactly how to do X, but being able to derive the key > presses, > > mouse movement, etc on the spot. External consistency is a behaviour > similar > > to other applications, internal consistency behaviour that is similar > within > > the application itself. > > > > One example where Kicad fails with internal consistency are the symbol > and > > component editors compared to the schematic and layout entry > respectively. > > Even though they do very similar things, they work differently. > > An example where Kicad fails with external consistency is the use of the > > mouse wheel. While all EDA, CAD and simple drawing applications I've used > > in the past have the following mapping: > > > > wheel -> up/down > > shift-wheel -> left/right > > ctrl-wheel -> zoom > > > > Kicad has the following mapping: > > > > wheel -> zoom > > shift-wheel -> up/down > > ctrl-wheel -> left/right > > > > And this is probably my biggest gripe with Kicad. Even after several > weeks > > of using Kicad, I still use the wrong one in the first try. If possible, > > I would advise to change this before the release, as the release will > > attract a lot of people who have never used Kicad before and they will > > for sure stumble over this as I have. Especially as this cannot be > changed > > in any of the preferences menus. > > > > The second most important rule of UI is to make things explicit. Do not > > hide the state a certain tool is in, but show it somewhere. For example, > > the push-and-shove router only works with the OpenGL canvas. This is > highly > > non-obvious. I had to look at Tomasz introduction video twice to spot the > > hint that I have to change the canvas. Also, the differen canvas behave > > differently. This is _not_ a good idea. If there is need to have multiple > > canvas types, then make them behave exactly the same, or at least as far > > as possible and warn the user when he is trying to do something that the > > current canvas type does not support. But better still: remove all canvas > > types but one. > > > > In a similar vein, why the heck is dragging behaviour of tracks hidden in > > the track settings context menue? It took me half a day to figure out why > > dragging tracks moved the whole track element instead of drag the track > > elastically. Even though I guessed it was some setting somewhere, I could > > not find it in any preferences menu. A good way to at least alleviate > > this issue is to put all persistent settings into one big (tool-)global > > preferences dialog. If you have a look at commercial EDA/CAD tools, they > > have humongous preferences dialogs, with hundreds if not thousands of > > settings. Yes, this is cumbersome. But at least you have a chance to find > > a setting there, even if it means to check each sub-dialog. > > > > The place where Kicad has done this right are the lists of key shortcuts. > > Heck, I love this! I wish more tools had an accessible list like this, > > that is only two mouse clicks away! > > > > The third rule most important rule (in an CAD like application) is the > > placement of keys and symbols. The farther they are apart the more mouse > > and hand movement is necesssary to use them. E.g. a wire is placed > pressing > > W, but to end it, one has to press K. While this would be ok if one had > > both hands on the keyboard, but for this task the right hand rests on the > > mouse and draws the wire. So one has to either lift the right hand from > > the mouse or move the left hand over to the right half of the keyboard. > > While the first is a natural movement, but has a long distance, the > second > > one is an "un-natural" movement and forces one to look on the keyboard to > > find the right key. Yes, one can change the key settings. But honestly, > how > > many people will do this? Most, especially casual users, will just live > > with the default settings (and even for "professional" users it is > usually > > a good idea to stick with the defaults, as it helps when working in > different > > environments). > > > > > > Ok, now for the real part: > > > > General: > > > > * (bradfa) Make a wizard for the creation of a project, which allows to > set > > - Whether the default libraries should be used or not > > - Paper size > > > > * (bradfa, me) Create a way to gracefully handle changes of schematic > > symbols and footprints. Currently, they get silently replaced, which > can > > (and often does) lead to problems. Either cache the symbols/footprints > > in the project or versionize them such that changes can be caught. > > > > * The mouse wheel and navigation (as mentioned above). > > Make it consistent with other EDA, CAD and drawing applications: > > wheel -> up/down, shift-wheel -> left/right, ctrl-wheel -> zoom > > > > * (bradfa) Allow for copy/paste and a move ability across pages. This > would > > be hard given the way the selection and copy/cut operations work with > the > > drag a box around things workflow. Not sure what the right way to > solve > > it is, but it should be solved. > > > > * Fix the drawing issues (ghost lines etc). Yes, I know, this is most > likely > > a bug in wx. But it is annoying as hell. So if wx needs to be fixed, > then > > fix wx. > > > > * Get rid of plot vs print. Use one that does the right thing > > > > > > Schematic entry: > > > > * Print by default in color. We are in the year 2015. Most people have > color > > printers these days. If you think it should configurable, then make a > config > > option somewhere, that is _global_ and does not revert to the other > thing > > when you use a different path for printing. > > > > * Make powersymbols global netlabels that do not depend on being in the > right > > library. Heck, this is the most cumbersome way to define power symbols > I have > > ever seen! For every new power rail I define, I need to create a new > power > > symbol. And above all, it has to be in a library called "power", which > of > > course is not documented. Additionally, this masks power symbols with > the > > same name. The "right" way to do it, would be have specially marked > symbols, > > (have a property POWERSYMBOL) that have a name field which doubles as > the > > net label. This way, one can create one symbol of the right form, set > it > > in the schematic, and change its label according to the needs. > > > > * Create a junction automatically, when a wire is passing over a pin. > > This is usefull when, e.g. placing a dozen blocking C's. Then you just > > pass with the wire once over all, instead of having to stop at each C. > > Actually better still: When a pin or a wire ends on a wire, connect > them, > > even if there is no junction. > > > > * When creating/placing netlabels: remember the last created label. > > It is normal to set a label at multiple places at once, and also > > to have multiple labels that are named similarly. > > As advanced feature: if the label ends in a number, automatically > increment > > the number. > > > > * (bradfa) Allow for non-hierarchical multi-sheet schematics. Especially > for > > big parts or boards where there are many big parts (think 1000 pin BGA > > and 64 bit wide DDR3 and other "modern computer things") it's simply > > easier and more elegant looking to organize a common set of parts > across > > more than one non-hierarchical sheet. Being forced to use hierarchy > > means either I'm going to have to use a bigger sheet (which I can't > > print, most people can't print on A3 size paper, let alone larger) or I > > have to break my single unit of schematic up into yet another hierachy, > > which for things like DDR, especially in something like a 64 bit wide > of > > x8 chips, is hard to fit onto one page. > > > > > > Schematic Symbol editor: > > > > * Explicitly make it clear which symbol is being edited. The name should > be > > placed somewhere prominently. Either in the title bar or in a corner > of the > > window. > > > > * Allow for multiple symbol editor windows to be open, for easy > copy&paste. > > > > * Add a pane with a view of the library. This would allow for faster > selection > > of the symbol one wants to edit/view. > > > > * Get rid of the double-confirm needed to save a changed symbol (why do > I need > > to save the changes of the symbol and then again save the changes of > the > > library?) > > > > > > > > Layout editor: > > > > * I do not really like the idea of having the board on a sheet, though i > > can understand the reasoning. IMHO it comes from the old pen and pencil > > times, when people drew on pre-made sheets of paper. Today, i don't > really > > see a point here. Yes, having some text describing the layout somewhere > > (the sheet header) is nice, but why place the frame as well? > > > > * Start with a board creation wizard. In 99% of the cases people will > start > > with a rectangular PCB of a predetermined size. A wizard would allow > for > > a quick and easy creation of the board shape without the need to place > > a number of lines precisely. The wizard should als create an automatic > > keep out line around the PCB (there is usally a 0.5mm to 1mm keepout > > at the board edges for production reasons. For PCB separation by > scoring > > this goes up to 2-3mm). > > To make be able to call this wizard at a later stage (or not cal it at > all) > > would be also a good idea. > > > > * Make board edges a polygon line. I.e. disallow the breaking up of the > closed > > shape by moving a single line. Breaking of a polygon should be > explicit, > > when the user demands it, i.e. to insert another line shape. And those > should > > "snap" automatically into the polygon again and be not be broken until > > requested. > > > > * All components should be placed next to each other, sorted by sheet > they > > are on. Not ontop of each other. > > > > * Allow placing explicitly a single via. And do not remove the netlabel > of a > > via if it's not connected to any track. The reason for this is simple: > after > > a layout is finished, I hunt for places where the ground (or power > plane) > > connectivity is not good over different layers (think long parallel > tracks > > on the bottom layer that carry high frequency signals, the ground > between > > the tracks becomes a long (but wide) wire itself. Adding a via every > now > > and then connects the ground to the ground plane on another layer.) > > Currently the only way to do this is to place a track that starts at > some > > GND pin and runs in a zig-zag course over the PCB. > > > > * Allow to place a track in the middle of nowhere. Reason is similar as > above. > > > > * Allow to set the net of a track/via explicitly. Not only while drawing > > the track/setting the via, but also afterwards. > > > > * Make all canvas feature complete and equivalent. (reason given above) > > IMHO make the OpenGL canvas the default one. It's the one with the > nicest > > features. Also it does not screw up every time one draws a track. > > > > * Allow rotations in both directions. (probably R, shift-R). Make R the > one > > that goes in clock-wise direction, which is the "natural" direction > for most > > people. > > > > * The important key shortcuts are all over the keyboard, which means > > the user has to constantly move his hands around (see above). > > > > * Switching of trace width is.. meh.. the default canvas allows only to > use > > pre-defined values (which is nice in theory, but not when you have to > add > > every allowable line width explicitly into the settings). The OpenGL > canvas > > allows to set to a value. Which is IMHO nicer, but there should be some > > "remembering" of old used values that present themselv in a drop down > menu. > > > > * All dialogs for creating something (planes, etc) should remember their > > settings that have been previous used. Chances are high I want to > create > > another instance with the same settings. > > > > * Give unconnected pins a "No Net" label instead of a random netlabel. > > The random netlabel is confusing. One does automatically want to find > > the other component/pin that connects to it. > > > > * Create an un-select key shortcut. > > > > * Zoming centers the window at the point where the mouse pointer was > > pointing to. This sudden jump is very annoying. Instead the point the > mouse > > pointer is pointing to should be kept fixed and the zoomed window moved > > accordingly. > > > > * When moving parts references, highlight the part it belongs to. > > > > * Make highlighting and masking levels configurable by sliders > > (Altium does that in a very cool way) > > > > * Place a small scale at the lower right corner. It is often very hard to > > judge how large something is, when doing the layout. A ruler would > allow > > to have a quick look, to verify that one is actually drawing something > > roughly 1mm in size and not 10mm in size. > > > > * Allow for different line thickness on non-copper planes. > > > > * Allow for arbitrary shapes (rectangles, circles, rings, polygones) on > > non-copper planes (e.g. for modifying the paste mask or solder mask) > > > > * Add a "undo" for tracks while drawing them. If I am drawing a track > > and realize I've passed a component on the wrong side and thus have > ended > > up in the wrong spot, I want to be able to backtrack to the place I > went > > wrong and continue from there. Currently, I either have to cancel the > track > > and start from zero again, or place the track and delete the part that > is > > wrong and start from there. > > > > * Have a toggle (key shortcut) between "show all layers" and "show only > active > > layer". In complex boards with more then 8 layer (sometimes even from > 6 up) > > the other layers start to confuse and I want to disable them. But from > time > > to time i need to know where I am and need to quickly reenable them. > > > > * Enabling/disabling layers takes way too much time when area fills are > > involved. I have here a simple design of 10x8cm board, with few > components > > (two dozen in total), but it already takes a second to enable/disable > > a single layer. > > > > * BUG: Two area fills with the same priority but different nets will > overlap, > > when drawn over eachother. The right thing to do here is to draw the > area > > fills in a specific order and to cut later ones off when they get too > close > > to another fill. Of course, this will then need some form of > configuration > > in which order the fills are drawn (could replace the priority). > > > > * Mouse drag behaviour "interactive" is what people would expect today. > > Please make it the default. > > > > * Allow the grid to be changed with a key command that makes the grid > > smaller/larger. > > > > * Allow the grid to be switched off completely. > > > > * Make pin snap-in radius configurable. > > > > Footprint editor: > > > > * Explicitly make it clear which symbol is being edited. The name should > be > > placed somewhere prominently. Either in the title bar or in a corner > of the > > window. > > > > * Allow for multiple symbol editor windows to be open, for easy > copy&paste. > > > > * Add a pane with a view of the library. This would allow for faster > selection > > of the symbol one wants to edit/view. > > > > * Make measurements easy and intuitive. The current "press space and > watch > > the status line" is not! This requires at least an explicit command. > > > > * Allow the grid to be changed with a key command that makes the grid > > smaller/larger. > > > > * Allow the grid to be switched off completely (especially important > > for measuring things). > > > > * Create a "snapp to nearest center/vertex" option (also important for > > measurement) > > > > > > Yes. I know. This is a damn long list. But this is still just the > beginning. > > There are many issues, a lot that you only realize when you use the tool > for > > the first time (because you get used to the quirks) and others that you > only > > realize after using the tool for some time. Especially consistency issues > > are quite difficult to catch. I still hope this list is usefull. > > > > Please let me know what you think. > > > > > > In an other note: I love the new website! It is a lot better! > > Especially the documentation is now the first thing one sees > > and thus does not have to search for it anymore! > > > > > > Attila Kinali > > > > > > -- > > It is upon moral qualities that a society is ultimately founded. All > > the prosperity and technological sophistication in the world is of no > > use without that foundation. > > -- Miss Matheson, The Diamond Age, Neil Stephenson > > > > _______________________________________________ > > Mailing list: https://launchpad.net/~kicad-developers > > Post to : kicad-developers@lists.launchpad.net > > Unsubscribe : https://launchpad.net/~kicad-developers > > More help : https://help.launchpad.net/ListHelp > > > > -- > Mark > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : kicad-developers@lists.launchpad.net > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp >
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp