Posted April 22, 2019 by Deftware
This is a small update comprising mostly bugfixes and changes that I felt should be released sooner rather than later. This version is actually a fork from v1.32a which I have manually transposed the changes from the main development version into. The main development version is currently incapable of being compiled due to the incorporation of the new layered canvas system and I felt that some of these fixes were important enough to warrant their own release ASAP. Otherwise these would've sat in the main development version, unreleased, until the canvas system is completed, which is going to be another month or two.
v1.33a changes.txt:
This is purely a superficial change because some users reported the need for being able to cut out a relief/emboss project after it was done carving. To my mind they wanted the ability to generate a toolpath only around the actual outer-most contour(s), ignoring any internal contours. So, to create an "outline mode" for the "outline operation", which was a conflict in naming, I opted to just rename the whole operation itself from "outline" to "profiling", as it does in fact enable the user to generate toolpaths which profile a contour that's generated for a given threshold depth on the input image.
The new outline mode that has been added to the operation allows the user to generate cutpaths from either the outer-most pockets or islands.
Above shows the outline mode enabled for the profiling operation, set to cut the outer-most islands.
Above shows the same as before, but set to cut the outer-most pockets that are found.
The profiling operation (formerly the Outline operation) has had the additional functionality of being able to include tabs in the generated cutpaths. These are to allow the user to leave tiny bits of stock between the outside and inside of the profiling cut, which will hold the piece being cut out in place. The user can adjust the spacing, length, and height of the generated toolpath tabs (though not currently taking tool radius into account).
Tabs are not limited to outline mode, they can be incorporated into any profiling operation's generated toolpath. If any of the tab parameters are equal to zero then tabs will be omitted from the toolpath entirely.
Project and simulation 3D shading can now be adjusted via the View Settings dialog under the Config menu.
The adjustment range is from 0.0 to 2.0. In the image above on the left is shading set to 0.3, on the right it's 1.7
PixelCNC has relied on producing more-than-necessary numbers of triangles for any meshes that it generates. The mesh that is displayed for the current project is not the same mesh upon which intersection maths are performed to generate the various contours that comprise a toolpath, but the meshes that are happen to be generated using the same algorithm. The mesh displayed in the 3D view for the current project is purely for user convenience, and is actually lower-resolution than the meshes that are generated for generated toolpaths off of. As such, smaller details are conveyed via shaded texturing.
Here's a project mesh with some fine details that are conveyed via the shaded texture, which is mapped onto a lower-resolution mesh that does not actually conform to the underlying project image:
Here you can see the project mesh on the left-side, the underlying mesh in wireframe mode in the middle, and yet the simulation with a relatively small tool and a tiny step-over is able to reproduce the details that are present in the project mesh's texture but not the mesh itself.
v1.33a has had some refinement to the meshing algorithm which reduces redundant triangles, not by performing a secondary pass to eliminate them but instead by not producing them in the first place. The GIF animation below shows v1.32a and v1.33a. The mesh with more triangles is from v1.32a, and is generated from the same project that is open in the v1.33a frame of the animation.
Originally the extra triangles generated were a product of the meshing algorithm attempting to prevent any fine details from slipping through and not represented via the recursive triangle subdivision. They would sometimes "fall through the cracks". The new approach eliminates the overzealous subdivision while still capturing the small details.
If you do happen to encounter a situation where it appears that the toolpaths being generated do not capture the details of the project then please report your findings to the messageboard so we can adjust things accordingly.