Hi Lukas,
First of all I just wanted to say a big thank you for developing this tool. It's fantastic and it's clear to me that you've put a lot of time, skill, and heart into it. I'm just learning to use it right now, so I have a chance to provide some "fresh user" feedback.
- I really like the approach you've taken with library management. It feels very modern, fast, and flexible.
- You've taken some pretty unconventional choices in your UI approach, but I think they work well.
- I appreciate the extensive documentation you've written. I think more is still needed, but you've done an excellent job with it.
- What's your long-term plan for this tool? Do you plan to keep supporting it? Do you develop it in addition to having a separate full-time job?
- Do you accept donations, and will you consider paid feature requests?
OK, that said, here are some thoughts I have about things that could be improved...
1) Grid origin offset. Let's say that I am drawing some features that need to have vertices at locations 1.05 mm, 2.05 mm, 3.05 mm... this is a pattern that frequently occurs. I won't be able to place those vertices with a grid density of 1 mm, so I have to use 0.05 mm grid density, which is actually much finer than the work that I'm trying to do. If I could have a 1 mm grid, but offset it by 0.05 mm, that would be very nice!
2) Exact numeric input for coordinates. Sometimes, even with grid assistance, it's just too frustrating to use the mouse, and I want to put something exactly at some (x,y) location. Especially if I'm reading coordinates off of a device datasheet to draw a pad for some heatsink or something. You have something very much like this for your "Move Exact" tool. The same popup could be used when you're placing a vertex (or something) in the first place, using absolute coordinates. Speaking of which,
3) Move exact absolute. The move exact tool supports relative motion, but it would be nice if I could move something to an absolute coordinate, rather than only shifting. This would let me just throw down a polygon roughly and then move each vertex into the correct position afterward; right now, I need to know exactly where the vertex started in order to move it the correct amount. Of course, I can read that off the UI at the bottom corner and do the math using your handy math-parsing feature, so this is just a nice-to-have since it would save time.
4) (+/-) zoom UI buttons or hotkeys. Sometimes I don't have a mouse or scrollwheel available.
5) Searchable Preferences window. Your brilliant space bar menu has a search box; why not the (much-more-extensive) Preferences window where such a feature is needed more? IDEs such as Eclipse have this and it's quite handy. Once you can search preferences, that also allows you (the developer) the freedom to make much more things adjustable via preferences, without worrying about cluttering the UI. Then you can have less hard-coded constants... such as...
6) Adjustable snap radius. Right now I just find the default distance at which the UI will try to "correct" my cursor by snapping to an existing object location to be much too wide, and I don't think I can configure it anywhere.
7) Speaking of which, sometimes I notice that the (x,y) readout at the bottom of the screen will read something (eg. X:000.000, Y:000.000) but then when I actually click, the vertex will end up at Y:0.005 or something. This isn't because I jiggled the mouse when clicking -- it even happens when I use touchpad entry. I think the coordinate readout doesn't always give a trustworthy picture of where something will go when I click.
I really like your layer system but I think there's a couple of minor UI bugs. For example, try clicking on the display type once to change it. It won't change right away -- not until you move the cursor away from the layer selection, when suddenly at that point it changes. This can be quite confusing.
9) A fillet tool would be awesome -- eg. press a key, then click on the corner of a polygon, and it gets replaced by a tangent arc of a certain dimension.
10) Inclusive/Exclusive group select. This is a neat feature that Solidworks has -- if you click-and-drag your mouse to create a selection box, it will behave differently if you drag the box leftward than if you drag it rightward. If I recall correctly, dragging to the left will select "inclusively" -- any object that has even a tiny corner inside your box will get selected. Dragging to the right selects "exclusively" -- an object must be fully enclosed within the selection box to be selected. This is surprisingly useful.
11) Lock layers. Right now, if I drag a selection box, I'll end up capturing things from other layers even if those layers aren't visible. It would be nice to have an extra column in the layer table UI, perhaps displaying a padlock symbol, that lets you lock layers to prevent selecting or disturbing anything on those layers.
Anyway, thanks again for all the work you've done on this. It looks like a fantastic and very powerful tool.