Another update full of bugfixes! v1.72b also includes a new hole-drilling operation for generating peck-drilling cutpaths, for when using the profile milling operation in combination with Ramp entry cuts to generate helical hole-milling isn't going to work as well as just using a regular old drill bit to make a hole. Also included is a new tutorial that walks the user through what goes into making a halftone from an image, both grayscale/photo images as well as monochrome image designs.
There have also been a variety of improvements and enhancements. Operations which perform any Z-plane contouring of the canvas for generating cutpaths will see improved accuracy now, without increasing computation time for toolpath generation. This applies to 2D and 2.5D milling operations, as well as any operations that use a canvas Z-plane contouring as input.
The free trial nag screen appears less frequently now for trial users and a bug that would cause the UI to become unresponsive if the nag screen appeared while the user was interacting with the UI has also been fixed.
The bigger changes are detailed below, and for a list of all of the changes that come with v1.72b they should open automatically after installing this update, otherwise they can be viewed via the Help menu in PixelCNC.
New Halftoning Tutorial
This update includes a new interactive tutorial that shows users how to use 3D Contouring operations to create a halftone project. It covers what considerations there are to keep in mind when using different V-bits to create halftones from both photograph/grayscale images, as well as from monochrome (black-and-white) images.
This tutorial shows how to use PixelCNC to create both dark-on-light (i.e. cuts pertain to the dark color used) as well as light-on-dark. It also shows the user how to manipulate the brightness/contrast of a raster-layer that's been loaded from an image for varying the overall shade balance to control the final appearance of the halftone that results from the generated cutpaths. Be sure to check the new tutorial out!
New Hole Drilling Operation
A new operation has been added to PixelCNC specifically for generating peck-drilling toolpaths from circular/hole features contoured from the canvas or that are contained in a paths-layer. The operation can be found in the Specialty Cuts category on the Operation Type selection dialog.
When generating a Hole Drilling toolpath, the operation can either contour the canvas or a selected paths-layer, as do the various 2D milling operations, to detect and locate circular features which are then compared against the selected tool's diameter to determine if they should be included in the toolpath. An operation parameter is included, named Diameter Deviation, which allows specifying an error threshold for the diameter of detected circular features that should be included in the resulting toolpath. This parameter specifically relates to the diameter of the smallest circle that contains a contour, and does not pertain to its actual roundndess - which must at least be as round as a hexagon (i.e. a Polsby-Popper score of at least 0.9). Circular features that contour with more than six line segments should satisfy this requirement without issue.
With this new operation's parameters, the Link Cuts option has been replaced with a Full Retract toggleable option. The Leave Stock parameter is replaced with a retract-distance value that is only used to indicate how far to retract the drill between pecks if the Full Retract option is disabled. Otherwise the Full Retract option will result in a rapid to the Rapid Height above the canvas before feeding to the start of the next peck at the Engage feed rate, and peck by Cut Depth further down at the cutting feed rate. The caveat is that the Full Retract option will not be visible during simulation playback as rapids and plunge entry cuts are not simulated, causing multiple peck drills with full retraction to appear as one continuous cut move. Actual exported G-code will include the full retraction to the Rapid Height, and plunge entry cut at the Entry feed rate down to the start of the next drill peck.
In most situations the Engage feed rate is best left at or below the cutting feed rate, but for purposes of peck-drilling it would likely save time when Full Retract is enabled to have the Engage feed rate actually be higher than the cutting feed rate, to save time when feeding back down into subsequent drilling pecks. Disabling Full Retract and setting a Retract distance manually can be faster in some situations, depending on the machine, drill bit, and total drilling depth.
While different tool types can be used with the new operation, it's suggested that users stick with the Cylinder tool type for drill bit definitions. If you do wish to capture the pointed geometry of a bit for a more accurate simulation appearance, the Tapered or V-Bit tool types can be used but because only the tapered portion is considered as the Flute Length of the tool you will need to enable the Ignore Tool Lengths option on the operation's parameters to allow individual drilling moves to be deeper than the tip of the drill. Ideally, we'll be adding a new Drill tool type to better handle the situation in the future.
Improved 2.5D Milling Accuracy
An issue was discovered with how PixelCNC contours heightmaps for generating horizontal milling type cutpaths. More specifically, 2D and 2.5D milling toolpaths generated from the canvas would be closer to the canvas than they should've been by about one canvas heightmap pixel. This meant that the problem was generally mitigated by simply increasing the resolution of the canvas - which can be a potentially very expensive means of dealing with the issue!
In the animation above the issue is demonstrated using a very low resolution canvas, to illustrate the issue more clearly. A combination of Parallel Carving and 2.5D Offset Milling are used to toolpath the simple canvas. The parallel carving cutpaths are where they should be, so that the cutter's geometry traverses the canvas surface. However, the 2.5D milling cutpaths (using a cut Stepover of zero, to enable the horizontal finishing mode) end up being too close to the canvas surface for the cutter geometry.
In the simulation shown for v1.71b you can see how the horizontal finishing cuts are overpowering the parallel carving cuts. They should be intersecting exactly across the workpiece as is shown in the v1.72b simulation.
Here's another comparison animation that shows the simulated result of the same operations in v1.71b and v1.72b, with larger spacing between cuts to further exaggerate the issue.
Obviously the problem was never as bad as is shown here, as long as projects used more common canvas resolutions of 100+ pixels/inch, but any horizontal milling operations that contoured the canvas would invariably yield cuts that were closer to the canvas than they should've been. We're just glad we caught the issue!
Sectioned Simulation Caching
With operations that have a relatively long and complex toolpaths, and/or a large tool compared to the canvas size, scrubbing the simulation progress timeline could become bogged down when scrubbing toward the end of the operation. This is due to how PixelCNC would calculate the entire cut simulation from the beginning of the operation up to the point the corresponds with where the progress slider is positioned. Toward the end of an operation with a long toolpath, or large tool/canvas size ratio, this meant a lot of computation for each simulation update as the progress slider is moved around.
To help mitigate this issue we've opted to cache several simulation progress increments by dividing up the simulated cuts into multiple progress sections. Now when scrubbing the progress slider for an operation PixelCNC will start the simulation calculation from one of these cached progress points, reducing the amount of compute required to calculate the simulation state to the actual progress slider's position. The caveat is that instead of generating one cut simulation heightmap after generating an operation's toolpath, PixelCNC must generate multiple heightmaps. This takes only a little bit more time to do, and some extra memory, but it shouldn't be much of an issue for most systems, except perhaps the lowest-end out there.
Users can always turn down their simulation resolution if things get unmanageably slow while scrubbing an operation's simulation progress slider but the new multi-part simulation heightmaps will improve responsiveness across the board for situations that would've been a bit slow.
Fixed Small Stepover Spiral Toolpaths
PixelCNC dynamically modulates the angular increment used to generate the base spiral path that is conformed to the canvas for the Spiral Carving operation. This worked great in most situations, but once a very tiny stepover is used the angular increment would become excessively small, resulting in far more vertices being generated than was actually necessary. This could lead to buffer overflow crashes with larger projects. This has been fixed in v1.72b to prevent small cut stepover distances from producing exponentially higher numbers of vertices and causing a buffer overflow. The GIF above shows a 0.002" stepover being used, with the grid subdivisions visible at 1/32".
Fixed Metric G-Code Export from Inch Projects
Exporting G-Code for a project that's in inches, using a metric post-processor, could result in many small redundant moves at times - specifically because detecting whether or not to output a position would still be performed in the measurement units of the project, rather than the units of the post-processor. This has been rectified so that the actual coordinate from the toolpath is first transformed according to any project-to-G-code conversion before determining if the coordinate is valid for being output.
Fixed Several Freeze/Crash Bugs
Some of these didn't exist in older versions of PixelCNC and appeared as a result of new features/functionality being added with recent updates. They also appeared when changes to certain internal systems were made over time and small bits of code were left behind that didn't quite fit with the changes being made.
We're always looking for more bug reports, along with ideas/suggestions for PixelCNC. Please don't hesitate to let us know if you've encountered any issues by sending us an email at: email@example.com. PixelCNC can only be improved if we're made aware of what things need work.
We have a list of new operation/toolpath types we'd like to add into PixelCNC, and a few other canvas editing features and functions to make it easier to produce certain 3D shapes, and perform different path-editing operations while editing a paths-layer. We're also working on a new tutorial to show how to create the 3D US flag that is shown on the front page of our website to help users become more familiarized with the versatility of PixelCNC's canvas editing functionality and what's possible with the set of features that are available.
We are always looking for feedback from users, bug reports, etcetera and would love to hear from our users! Feel free to send us an email to let us know what is on your mind. Tell us what you like, what you don't like, what could be better, and what you'd like to see in PixelCNC, by sending us an email: firstname.lastname@example.org