PixelCNC v1.80b - 50% Off Spring Sale!
This update includes some new features - and of course the requisite bugfixes too!
For the month of May, PixelCNC can be had at 50% off the normal price by using the coupon code SPRING50 at checkout when purchasing a product key. While we do have sales from time to time, they usually are nowhere near as substantial! This may be a recurring annual sale as business tends to slow down across many industries during the spring time. We see a significant slump in sales too at this time of year.
Without further ado, these are the most prominent changes that are included in PixelCNC v1.80b:
Parallel Carving Cutpath Sorting
The Parallel Carving operation now uses a different approach for sorting cutpaths when the Distance Sort option is enabled. Rather than cuts being sorted via 'next-nearest-neighbor' they are instead ordered so as to reduce, and sometimes eliminate, slotting cuts from occurring which entail full cutter face engagement with the workpiece.
As you can see above with the v1.78b cut ordering, there is a lot of jumping into slotting cuts.
Here you can see that the v1.80b cut ordering tries to stick to only moving to a cut that's already had material removed next to it first, minimizing, and sometimes eliminating, the possibility of a slotting cut. This also greatly improves toolpath quality when Rest Machining or multiple levels of cuts are used.
However, this does mean that overall operation runtime is increased by a small amount but now users should be able to use the Parallel Carving operation with a larger Cut Depth as the cut Stepover will be abided by in a more meaningful way. The new cutpath ordering does not guarantee that every single cut will not be a slotting cut as this is simply impossible in some situations - but where there are cuts that should be performed first, they will be.
We're aiming to include similar sorting improvements to other 3D Contouring operations in PixelCNC. Each operation requires a different approach for ensuring that cuts only occur next to other cuts that have already removed material next to them, but we'll be working on pursuing this to improve the overall toolpath quality that PixelCNC has to offer. While this does mean slightly longer runtimes for operations, users will be able to run their machine faster and harder without worrying about a lot of slotting cuts that bury the cutter - which is not ideal with less rigid and smaller routers and mills.
Volumetric Wood Grain Simulation Shader
Per a user's inquiry about whether or not PixelCNC supported loading an image to render the CNC simulation heightmap with - specifically a wood grain texture image, so that they could get a better idea as to what their project will look like when cut from a piece of wood - we have added a procedural volumetric wood grain shader controlled via a set of parameters.
Users can now toggle between the default heightmap color gradient and volumetric wood grain rendering modes via Simulation Appearance. The Volumetric Wood Grain rendering mode uses two simulation colors like the Color Gradient mode, except the colors pertain to the annual early/late wood growth (i.e. the wood rings).
Parameters for controlling the woodgrain are shown above. We made an effort to keep the number of parameters as low as possible while still allowing for a wide range of wood grain types to be emulated.
Machine Origin Manipulation
A project's established machine origin can now be placed outside of the canvas volume. This allows users to confine their toolpaths to a smaller area that no longer must include where the machine will be zeroed out. The machine origin XYZ coordinates can be set to values outside of the canvas' dimensions via the editboxes on the Canvas Properties UI panel while in the Project Canvas mode. Using the percentage knobs will still restrict the origin to the canvas volume, however, but only if they are interacted with.
The machine origin can also be directly manipulated within the 3D view now. A second set of machine origin axes with a right-angle cube is shown in the 3D view when the Canvas Properties panel is visible. The origin axes include three grab handles for moving the origin along the individual axes. A fourth grab handle is shown at the intersection of the axes for moving the origin horizontally.
Automatic Layer Alignment/Sizing
New buttons have been added to the Layer Size and Layer Origin value editboxes on the Layer Properties panel which allow for quickly scaling, positioning, and aligning layers with the canvas volume itself.
The XYZ Size values now include buttons for sizing a layer to the canvas' dimensions.
The XYZ Origin values also now include buttons similar to those for moving the machine origin to the sides/center of the canvas volume, allowing users to automatically move a layer against the left/right/center, front/back/middle, and top/bottom sides of the canvas volume. If the layer includes any rotation or tilt this is accounted for when aligning the layer to the canvas with these buttons.
Confine Cuts Option
The 3D Contouring operations have new Confine Cuts behavior when the option is enabled from their parameters, under Miscellaneous Options. This is to eliminate the many vertical feeds that would previously occur when using a 3D Contouring operation as a finishing pass for relief carving type projects.
Tool Definitions
Tool definitions now include the number of flutes that the tool should have. This is so that users who have cutters with the same geometry that differ only in their number of flutes can keep track of which tool they intended to use with an operation. Previously, users would have to include the number of flutes in the name of a tool definition but we'd like for it to be a part of the definition itself as it opens up some possibilities for the future (like automatic suggestion of speeds/feeds). It is important that the speeds and feeds used for a toolpath take into account the number of flutes that the cutting tool will have as it affects how much work that each flute will need to do. Note that the addition of the number of flutes to tool definitions does not currently affect cutpath generation in any way.
We've also added the ability to import/export tool libraries. We've been having some users who like to use their tool definitions across multiple systems and would resort to copying their PixelCNC config.dat file from one system to another - which would break software activation on the destination system and require re-activation. This re-activation wouldn't count toward a product key's three allowed concurrent activations if PixelCNC was already activated on that system, but it was still an inconvenience for users to have to deal with. This is what motivated including a means for transferring tool libraries between systems.
The options for importing and exporting a Tool Library from/to PixelCNC can be found in the File menu. Exported Tool Library files have a .PTL filename extension.
...and we've also increased the size of the tool library from 32 definitions to a 256 definitions! :D
Removed Raymarched Simulation
We've decided to remove the raymarched simulation rendering option from PixelCNC now that the heightmap rendering method used by both the canvas and simulation is capable of nearly identical visual fidelity as the simulation's raymarched renderer, but with much better performance.
The raymarched simulation was a vestige of PixelCNC's earlier days, when we were literally generating a mesh for rendering heightmaps on the screen. The raymarched simulation rendering allowed us to have a simulation system that no longer required generating and updating a mesh by allowing graphics hardware to, in effect, directly render the simulation heightmap. However, this was much more demanding on graphics hardware - but it did allow for higher visual fidelity and faster simulation updates during playback.
As we've evolved the heightmap rendering the raymarched rendering method for the simulation mode was just left in PixelCNC more so as a novelty. This was in spite of the newer heightmap rendering technique catching up to and surpassing it in some ways. We felt the time had come to lay the raymarching option to rest. Farewell old code!
Fixed Windows 7 Compatibility
A change to how PixelCNC conserves compute while not the focused application in v1.78b resulted in breaking Windows 7 compatibility. This was caused by using a Windows API that was only introduced with Windows 8 and we didn't catch it. v1.80b instead relies on APIs that existed before Windows 8 to conserve compute resources.
What's Next?
Making changes to the machine origin will cause PixelCNC to update the simulation heightmaps for any existing operations. This is due to the machine origin being baked into toolpaths when they are generated for an operation, causing them to effectively move with the machine origin when it changes. This requires that toolpaths be regenerated if the canvas machine origin has changed. We'll be re-working toolpath generation, G-code export, and the generation of simulation heightmaps so that the origin can be freely moved around without requiring that anything be recomputed. It would instead only affect exported G-code (and displayed origins for canvas layers, even though those are already decoupled from the machine origin internally) and not require toolpaths to be recomputed manually. This will also prevent PixelCNC from stalling to recompute simulation heightmaps for existing operations whenever the machine origin is moved.
We were hoping to add some wood grain presets with the new Volumetric Wood Grain shader, and allow users to save their own. This is something we'll be working on integrating into PixelCNC for release in a future version.
We are still working on getting a separate Lite version of PixelCNC released. It requires creating a new product key system that's parallel to the existing one and then we must decide which features will not be included in the Lite version that currently exist in PixelCNC. It's looking like we will be omitting all of the layer editing functionality and about half of the operation types. It will still include the canvas system for compositing content together, and probably the content library too - but Lite users will not be able to upload content to the library. Our target price point for PixelCNC Lite is ~$50, which we hope will make it more accessible to hobbyists and students who want to have a capable program for doing most things but that don't need more advanced capabilities.
That's it for now. As always, please don't hesitate to contact us if you have any questions, ideas, or feedback and feel free to send us an email at: support@deftware.org
Thanks for reading and happy CNCing! :]