Unroll 3D object - Documentation
Workflow
As CamBam does not have a machining operation that manages a 4th rotary axis, the working process is as follows:
-
Open and position a 3D object to align its center of rotation with the Y axis of CamBam. (the green axis); for that, use the Numerical Move/Rotate plugin for example, or the built-in rotations functions of CamBam to turn the model in the right position. Alignment can then be achieved with the standard CamBam alignment feature.
-
Unroll the 3D object with the Unroll 3D Model plugin, to get a surface machinable with a regular 3D machining operation on XYZ. On this picture, the 3D surface in red is an unroll of the initial 3D object in gray. The source object can then be deleted to free up memory, especially if it is a very dense mesh.
In the case of this example, the 3D model is 50mm diameter, but I start from a rough piece of 64mm diameter (32mm radius) so I put a Stock radius of 32 in the plugin. (and Stock Surface will also need to be 32 in the machining operation) so that the tool does not plunge into the material when roughing. The Z min at -10 means that the plugin will test the shape up to 10mm below its axis, which is necessary here because some areas are lower than the axis of rotation.
The higher the number of Angular Steps, more the resulting form will be detailed, here 360 steps will give 360 "bands" of 1 ° wide once the object unrolled. The Axial stepover represents the spacing of the measurement points along each "band", expressed in current drawing unit. (mm or inches) -
Position the resulting surface to match the orientation of your 4th axis. By default, after unrolling, the resulting surface is ready for machining with a 4th axis whose axis of rotation is aligned with the Y axis of the milling machine. If your 4th axis is aligned with the X axis then it will be enough to turn the surface unrolled by 90 °.
-
Apply one or more 3D machining operations to this surface, making sure to set the machining boundaries so that the center of the tool reaches exactly the edges of the surface ; The goal is to prevent the tool from descend to the edges, which would make a groove in the workpiece at the junction of the two edges if the tool goes too far, or leave unmachined material at the join of the edges if it do not go far enough.
Depending on the selected scanning methode in the 3D machining operation, horizontal or vertical, and the orientation of your 4th axis on the machine, the machining can be done by turning (toolpaths perpendicular to the axis of rotation) or by bands, the rotary axis does not turn during machining (moves are parallel to the axis of rotation)
On this image, the surface is oriented for machining with a 4th axis aligned on Y and the toolpaths will produce a machining by turning once the Gcode re-wrapped around Y.
Stock surface must have the same value as the Stock Radius used in the plugin, Target Depth must also match the Z min value used in the plugin, so that the tool actually reaches the requested depth; here 10mm below the axis of rotation. Of course, the Clearance Plane must have a value greater than Stock Surface as usual.To ensure that the center of the tool comes exactly to the edge of the surface, set the Boundary Method to Shape Outline and set a value of -R (minus of the radius) of the tool for Boundary Margin. In this case, -1.5 for a tool of 3mm diameter. For the clarity of the picture, there is only one finishing pass, with very wide passes, but of course it is quite possible to do the roughing with multiple passes, then to do the finishing in one or several passes "crossed" with a second / third machining operation, as on any current 3D machining in fact.
This example shows the use of a 3D scanline machining operation, but it is quite possible to use the Waterline method, especially for roughing.
-
Once the 3D machining operations are correctly set, use one of the following two methods to obtain a 4-axis Gcode.
Note: the Z = 0 on the milling machine must be set to the axis of rotation of the 4th axis and not to the surface of the workpiece.
-
With CamBam V 0.98
Create the Gcode then wrapp it with the Wrapper pluginIn the Wrapper plugin:
Diameter should be equal to 2x the radius used for unrolling (so 64 in the case of this example)
Base Z should be equal to the radius, so, equal to Stock Surface.It will be necessary to use a post processor designed for the Wrapper plugin. Do a copy of the one that you usually use, and in the Options section of the post-processor, set Arcs Output to Convert to lines.
- With CamBam V 1.0
Same as for version 0.98, the Wrapper plugin can be used, but it is also possible to do it directly using a post processor set to wrap the Gcode directly with CB (without plugin), which is easier than with the Wrapper plugin . In this case choose a post processor that as been set to wrap in the list of post processors (see below) in the Post processor property of the Machining folder, and produce your 4-axis Gcode directly.
In the 3D machining operation, Stock Surface must have the same value as Stock Radius so that the post processor does the wrapping correctly (it is the Stock Surface value that is used by the post processor to define the radius of the wrapping)
-
Set up a post processor for wrapping with CamBam V1.
Version 1.0 of CamBam makes it possible to use a specific post processor for the wrapping which makes it possible to do without the Wrapper plugin and which produces directly a 4 axis Gcode, it will have to be chosen in the Machining folder, in the Post Processor section, to generate the Gcode. Two generic post processors are provided for wrapping around X or Y (RotaryX and RotaryY); if these post processors are not suitable for your control system, you will have to modify your usual post processor as follows:
- On the System tab of CamBam, make a copy of the post processor that you usually use (right click on the name of the post processor, copy, then paste) and rename it eg: Wrap_Y for a 4th axis aligned on Y
- In the Rotary Axis section of the post processor you just copied, set the 3 following parameters:
Axis of Spin, it is the axis on which your 4th axis is aligned; here Y; if yours is aligned with X, then of course you have to enter X.
Rotary axis, the letter that will be used to designate the axis in the Gcode.
Rotary Wrap, should be True to enable Gcode wrapping.
There is no adjustment of the wrapping radius, it is the Stock Surface value of of your machining operations that will be used to define this radius (hence the importance of working with the Z = 0 at the axis !)
- It is also necessary to modify the macros in the Moves section of the post processor for Feed Move (G1) and Rapid (G0) as well as the three parameters in the Canned Cycles section to remove the output of the linear axis that is not used (the one that is converted to a rotary axis). Drilling cycles are not used for 3D machining, but other machining operations than 3D can be wrapped too, so they can be modified as well. Macros for Arc CCW and Arc CW do not need to be changed because arcs will always be converted to lines when Rotary Wrap is enabled and therefore, these macros will never be used with this post processor.
For example, the Feed Move macro (G1) contains the following macro:
{$g1} {$_f} {$_x} {$_y} {$_z} {$_a} {$_b} {$_c}
For a wrap around Y, it will be necessary to delete the reference to the axis X ({$ _x}); it will become:
{$g1} {$_f} {$_y} {$_z} {$_a} {$_b} {$_c}
If your 4th axis is oriented on X, then of course it will be the reference to the Y axis that will have to be removed in the macros.to edit a macro, click in the line that contains the macro and then on the | ... | which appears to its right, edit the text of the macro in the editor and click OK.
-
Once all the macros have been modified, right-click on the name of your new Post Processor > Save to save it.