Posted September 24, 2019 by Deftware
v1.37a not only took a lot longer to get out than I had hoped but also comes with a changelist that's right up there in size with v1.34a - which was the biggest update ever. I was planning on adding mostly just support for text-layers and also raster editing, and while those remain the important things included in the update a lot of other little changes and additions have been made as well, far more than I had imagined would be the case. The big time sink over the last two weeks, however, was chasing down bugs that decided to pop up left and right each time I was preparing to package builds.
Here's the changes.txt for v1.37a:
TrueType/OpenType fonts installed to the system are enumerated upon initialization and can be used for creating what is the equivalent of a raster-layer (except that it cannot be edited as one via the new raster-editing mode). Text-layers can be modified by selecting "Edit Text-Layer" on the left side of the window.
While in text editing mode users can scroll through the list of fonts that was found installed on the system to select which one they want their text to be rendered with. The point-size (relatively speaking) of the text can also be adjusted. The means of setting the size may change in the future, I'm not convinced using a horizontal slider is the way to go on that just yet but it's definitely appealing to be able to quickly scale the text with real-time feedback.
In their current form, text-layers are very simple and rather limited. One of the additional features is to allow users to plot text along a path or otherwise have the individual characters situated in different ways beyond straightforward left-to-right text, which will enable much more elaborate designs to be created.
Raster-layers can now be edited manually. This is currently in a bit of a crude form that has plenty of room for being expanded upon and refined. Regardless, the core systems are all in place now and ready to be fleshed out over the coming months. Also, included with raster-editing mode is the ability to create blank raster-layers as well which was something that was already planned but not added because it would've had no use or purpose being that there was not yet any way to edit their contents at the time.
Similar to the image editing program GIMP (and probably Photoshop too), holding the SHIFT key will allow for drawing line segments with individual clicks:
A new means of generating raster-layers from paths-layers is the Stroke Paths function, which can be found among the other raster-from-paths options:
The brush specification follows that of the raster-editing mode. As raster-editing brush definitions are expanded upon the stroke-paths brushes will see the same enhancements and additional features and brush types.
Raster and model layers can now both be cropped to a rectangular area by holding down the ALT key while downscaling a layer:
There are still several things planned for implementation over the coming months. For one, an undo/redo system is highly necessary - which will allow the user to revert any changes they've made to a layer, both its properties and content. With all of the compositing and layer editing modes in play it can be easy to make a change that's harder to revert manually than the original change itself - like if you accidentally delete a node or path while in path-editing mode, or make a brush stroke that was unintended (ouch!) Without an undo/redo system, however crude or limited, working with any program becomes geometrically more challenging.
Additionally, more advanced text-layer capabilities such as being able to have text follow paths with character orientations set to a specific angle or angled to follow the path. I'd really like to flesh out the text-layer functionality to be much more involved and capable, possibly over the course of two or three updates in a piecemeal fashion.
Another planned piece of functionality involves generating raster-layer shapes from paths in more ways than the existing means. Aside from the new stroke-paths function the rest of the raster-from-paths functions operate exclusively on closed paths that are not open-ended. Generating a wider variety of raster-layer shapes entails your typical single/double rail sweeps and the like, pretty bog-standard stuff.
Then there's all the other little things (and then some) such as support for DXF formats, exporting layers back out in different formats, exporting toolpaths in various formats besides G-code, etcetera. The sky's the limit! Well, that's not true, in actuality time is the limit. I can only pump out so many lines of code in a given period of time!
I'm always open to suggestions so please feel free to report any ideas you may have on the forums - or just leave a comment here on the devlog posts that I make for each released build. Anything you think would make PixelCNC easier to use, or a feature that you'd like to have, and especially bug reports! I can't find all the bugs and write all the code because I can't come up with every single possible use case that users can so it's imperative that bugs discovered are reported - ideally with enough information to actually recreate and examine the bug on my end.
Thanks for reading and stay tuned!