I fixed lots of bugs (and left even more), reworked the state machine (the former was a joke: every edit feature had it's own state variable. Total crap), some refractoring. It's easier to polish a program, if you are actually working with it and it's not just some toy.
I added new and pretty useful features, such as:
- Snap to point
- Cycle between overlapping points for selection
- Rotate selected with center point - reference point - new direction
- Mirror selected Vertical/horizontal constrains work with these too
- Set start/depart of selected sequence
- Some special features for my need:
- Display foam (the stuff the machine cuts)
- Set foam position and size
- Toggle tool-swept path: it would be easier to explain if I spoke English. So the hot wire melts the foam, and it melts in a much bigger diameter than the diameter of the wire. And that's a very important info for stable cutting, for designing trajectories for small surface features, etc
- Windowing: I added dialogs for text/number imput. Such as setting feedrates, entering comment text etc. Message boxes.
- Better file stuff: save/save as/open/new works pretty much like in other programs
- Data type-in: If the user hits enter during certain commands, values can be typed into a dialog box instead of clicking with the mouse in the editor. Offset values for moving, angle for rotation, insertion coordinates, etc.
- Feed system reworked. There are no default feeds, all feed values are loaded from the CNC file and the user can only assign those loaded values. However, the user can define new feed values and redefine existing ones (obviously, the data is updated accordingly). I found this system to be quite intuitive (much more intuitive than making all the feeds accessible and with some hard coded default values that totally fucked up the whole thing when loading the values form the CNC files on top of this "feed table". And better, if there weren't any pre-defined feeds and feedrates were just thrown around without control). The only flaw is that gradual feed changes cannot be used (or have to be edited manually)
- Calculating total machine time
- Progress bar...One very important thing is still missing: Undo/Redo. That will be the next big and unavoidable step.
Note, that the help text inside the program is OFF, the "manual" is the right thing.