To whom it may concern,
I have discovered what I believe to be a flaw in both the name and execution of "Perfect Grain" within Microvellum.
I will try my best to articulate myself, but I may need to draw something to aid in someone's understanding.
In my opinion, "Perfect Grain Matching" would take gaps between elements into account; anything less is "Close Grain" or "Modestly Aligned Grain".
An example situation is as follows:
- A cabinet has a drawer face at the top, and two doors below it.
- The desired alignment for these faces is that the outside edges of the doors and the outside edges of the drawer face are in plane
- Assume all gaps are 1/8" wide
- The doors should have a 1/8" gap between them, and 1/8" gap above them between them and the drawer face above
- Assume that the assigned outline tool has a diameter of 3/8"
Currently in Microvellum it seems as though when "Perfect Grain" is turned on, upon outputting CNC nesting G-code, it will take the two doors and put them side by side with the drawer above. The nest will use the assigned outline tool (in this case 3/8" diameter) and the tool path for the outline/border cut will result in the drawer front being OFFSET from the doors by at least 3/8" of an inch (it will actually be whatever part clearance value you have set in your post-processor).
This offset in the tool paths makes it impossible to have vertical grain run perfectly from the drawer front downwards through the doors. An aggravating factor is that the drawer front will be nested "favoured" to one door edge or the other, instead of at least centered between the two of them.
In my mind, a possible solution is that when "Perfect Grain" is enabled, all elements affected by that should be grouped into a single outline/border tool path, and an assigned tool (in this case 1/8") should be used to route a "final depth" pass between the elements, slicing what could be thought of as a "Block" or "Blank" into 3 parts, following their original outline/border dimensions. This would result in both horizontal and vertical alignment of the parts and thus, the grain. Obviously if you use 3/32" or 2mm gaps, you would need to use a more narrow tool, but 1/8" is pretty standard and very achievable.
My current/old workflow before Microvellum was to take the "total foot print" of all of the faces (drawers, doors, etc) and to then manually create tool paths for my CNC machine to follow. What I have described above is an "automated" way to do this. I don't know what coding would look like, but obviously a way to associate and recognize adjacent outline/border tool paths and "merge them" and then "replace them" with a single, new tool path with an individually assigned tool would be required.
I think that in the current state of function, "Perfect Grain" is more like "Approximate Grain Matching but also dependent on part clearance variables, tool diameters, etc"..
My trainer showed me that a "work around" is to modify the nest inside AutoCAD, stretching a part to "become the foot-print/block" of the entirety of the concerned parts, and then drawing polylines and assigning tools to those polylines to create custom tool paths. While this appears to work (though we haven't send the G-Code to the CNC machine yet), it requires deleting parts from the nest, so you lose part labels and all associated data with those deleted parts.
A perfect solution would be something that adds these "narrow tool paths" only where required, and maintains the discrete entity data of each part (allowing labels with edgebanding preferences, etc). Being able to apply this to adjacent cabinets would also be necessary, with the software being able to discern where it needs to "split door gaps" between product faces.
If this is too much to ask, that's unfortunate. I think that it would really differentiate Microvellum as being capable of doing automatically what is currently impossible without direct manual intervention, and the sacrifice of the part data that Microvellum prides itself on generating, manipulating, and maintaining.