Can We Talk CAM Programs?

Home Model Engine Machinist Forum

Help Support Home Model Engine Machinist Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

CFLBob

Well-Known Member
HMEM Supporting Member
Joined
Feb 10, 2018
Messages
999
Reaction score
302
Location
Central Florida
I'm getting to really hate my CAM program, DeskProto. I bought version 5.0 years ago and have been using it ever since. Earlier this year, I saw they had a free version of the SW available for hobbyists; currently version 7. The thing is, either the one I bought or the reduced feature free version 7 keep using the same old algorithms.

I could fill pages, but my annoyances come down to its general approach to creating tool paths. In every case I've tried I end up with smoother looking edges and better looking parts writing G-code by hand. Unfortunately, I need to take up a lot of space to explain the questions.

Let me start with the pretty simple part I've been working on, a piston connecting rod. Since it's from copyrighted plans, I'll present a picture with some dimensions stripped just to show what I'm talking about.
Conn-Rod.png


It’s just circles, portions of circles, and straight lines. None of those "organic shapes" that modern designers seem to like, just geometry that Euclid would be at home with.

Every single dimension and the coordinates of every single point you need to know are in the file we supply the CAM program. The long tapered portion? Find the coordinates of the center of the pieces of arc at both ends, then one line of code to tell the G-code interpreter the start and end points gets you smooth lines. The way my CAM program does it is to approximate that line with short segments in pure X or pure Y movements. I can control the step over between tool paths but they never seem to be smooth enough. Instead of one line of code I get tons of lines (hundreds of lines? I never counted).

I wanted to emulate the approach I saw @Mayhugh1 use to make his tiny, two-sided parts in his Ford 300 build. I have ordinarily used one pass to machine something like this, but decided to do a rough and a fine pass. The rough pass was going to be .025 above the final geometry, and using a technique they call waterline cutting which is largely cutting away the excess material around the part. It's hard to see much in this view from DP, but this is the way it shows the tool paths.

rough_pass.jpg


There are hidden problems in this file, but I don't need to get too deeply into everything it does. The part that's genuinely stupid is that it cuts the paths top down in layers I control the thickness of, but it only does that within one cutter diameter of the part. It clears out the rest of the rough part by plunging the cutter to the full depth of cut (in this case, one half the part thickness or 0.219") all in one cut, and then goes sideways cutting 0.200 inches deep instead of 0.025. That totally negates any planned feed rate. Except that since the desired 0.219 isn't a multiple of 0.025, it stopped at the highest multiple, 0.200", eventually making the part the wrong size.

Let me add the fine pass.

fine_pass.jpg


Look along the center of the part, where in order to create the taper, it broke the nice, smooth taper into stair steps. Not just vertical lines; it won’t just drop the cutter straight down without moving X or Y while it moves Z. The same is true around the circles. It always moves the cutter in X while it’s lowering or raising it in Z. The step over between passes was .0147" so a little under 1/64”. The cutter diameter is 0.250, so that’s D/17. That seemed like a relatively fine step over to me. Running this cut took 1-1/2 hours. If I decreased the step over, that would increased the number of passes needed and that time would have to go up.

And the part is even uglier than the software shows.

ConnRodTest_Side1.jpg


Ignore the cutoff area closest to the camera – Mach3 barfed in some way I’ve not seen before. Maybe a power glitch. Yeah, the part would have been ruined, but not by the CAM software and this is a test/experimental part anyway.

I guess the question is does anybody's software recognize something like this as lines and circles and do a better job of generating smooth edges? I've written small pieces of G-code before, like to cut the circular cutouts in the side plates for the same engine. Likewise, I've done tapered sides by doing what I described before: find where to put the start and end points of the edge I want (including the effect of the radius of the cutter) and I know they come out smoother.

I'm still using Rhino3D rather than Fusion 360, or anything with CAM built in, so any software that would accept .STL or other common formats is a candidate to me, but I'd like to find a CAM package that doesn't make things so hideously ugly.
 
Bob,

Mecsoft offers a free CAM called Freemill and a Freemill for Rhino. You might check to see what the capabilities are. I've never used Freemill but I do use their Visual mill software.

Chuck
 
Thanks, Chuck,


I'm running a version of Rhino earlier than they support with Freemill for Rhino, but I don't need something that will plug into Rhino.

Do you have any input on how "smart" about making tool paths Freemill CAM is?


Bob
 
Bob, I don't have any experience with Free Mill. It looks like a no frills version of Mecsoft's Visual CAM which does a fine job on tool paths. I just learned that Free Mill is a plug in that runs inside Mecsoft's VisualCAD which appears to be a free CAD program. VisualCAD - Completely Free CAD Software | MecSoft Corporation

This is a YouTube by Mecsoft giving a demo of Free Mill.

You can always give MecSoft a call to see what they have to say. I've told you more than I know.

CamBam might also be an option.

Chuck
 
You can dump files in various standard CAD formats into Fusion 360 and then use Fusion's CAM mode to generate your g-code. I mentor the local high school robotics program, and we would design in SolidWorks, export a .STEP file, and then upload that into Fusion to generate the CAM. We used SolidWorks because that was the legacy. CAM fed either a Haas TM-1 or an old Deckel FP2NC. The Haas code was and is excellent.

We've since switched to 100% Fusion CAD and CAM and aren't looking back, especially with the great Fusion Teams feature that allows student designers to collaborate.
 
As I understand your problem DeskProto v 5 was working and DeskProto v7 produces strange tool path artifacts from the same STL input. Have you verified that?

What does the Mach3 toolpath display look like if you set Z above the part an just run the rod program?
If Mach3 is trying to interpolate and the mill moves only one axis at a time, I'd suspect a configuration problem
possibly with the preprocessor.

What, if anything, is different in the gcode produced by v 5 (that works) vs v 7 (with issues) particularly in the setup code.

Have you considered creating a very simple test profile so you could focus on whether the problem is with the g-code created by DeskProto or by the pulse and direction outputs from Mach3 to the mill while running the program?

After running the rod program, will a MDI diagonal move (eg G17 G91 G2 x1 y1) cause X & Y motion occur at the same time or sequentially?

What if you edit that command into the rod program after setup code and then single step to see that actual move? (Don't forget to take it out and reload).

While DeskProto could be at fault, it is also possible that your are starting the program with Mach3 in a different configuration
state than the DeskProto program expected. For example, while setting tool length offset, Mach3 enables TLO. The post
might assume TLO is off until after a tool change where TLO for that tool is enabled.

If your root cause is interface misconfiguration not DeskProto g-code, a different CAM product may have similar problems
(or entirely new ones) as well as a new learning curve.
 
Last edited:
Not used that one but F360 allows you to set the depth of roughing cuts and then the finer step ups, also max sideways depth of cut. You want to be looking for so,ething like "adaptive" cutting which uses the edge of the cutter and starts from the outside and works in.

The CAM is only as smart as the user in choosing the best way to machine a part. The parallel finish passes you show are not as good as a contour around the outside and horizontal for the flat parts. The problem with the parallel is that it does not work well when a feature runs almost parallel to the direction of cut in much the same way as contour does not work well on near horizontal surfaces

You can barely see the facets left by the adaptive. eg on that tapered section it would just do a straight line but around the ends would be very slightly stepped you can just see that in this video around the little end as it starts the two finishing passes at about 1.40 into the video. The finish passes are as smooth as you would likely want, I usually leave 0.3mm on teh adaptive and then set the contour finish as two passes of 0.2 and then 0.1mm.



This one shows the adaptive better as it cuts 5or 6mm depth then starts to step up to follow the shape of the part. I have included screen shots of the tool paths, bit more organic though! You can also see that for the rod I use scallop for the upper more horizontal area and then change to ramp as it gets more vertical the further down the cutter goes.

 
Last edited:
This is the same part in the first video with a parallel finish path , same stepover as yours with a 4mm ball nose cutter. You can see the remaining blue areas that have not been machined away

parallel.JPG


Compare that to how little is left in blue after a contour around the outside done with a 6mm straight cutter and a horizonal done with a 6mm dia 1mm corner radius cutter

cont and hor.JPG

So the operator needs to choose the right method provided the CAM offers the options.

F360 also has the option to simulate the cuts which is what these screen shots are taken from so you can see if it is going to do what you want before actually cutting metal
 
As I understand your problem DeskProto v 5 was working and DeskProto v7 produces strange tool path artifacts from the same STL input. Have you verified that?

What does the Mach3 toolpath display look like if you set Z above the part an just run the rod program?
If Mach3 is trying to interpolate and the mill moves only one axis at a time, I'd suspect a configuration problem
possibly with the preprocessor.

What, if anything, is different in the gcode produced by v 5 (that works) vs v 7 (with issues) particularly in the setup code.

Have you considered creating a very simple test profile so you could focus on whether the problem is with the g-code created by DeskProto or by the pulse and direction outputs from Mach3 to the mill while running the program?

After running the rod program, will a MDI diagonal move (eg G17 G91 G2 x1 y1) cause X & Y motion occur at the same time or sequentially?

What if you edit that command into the rod program after setup code and then single step to see that actual move? (Don't forget to take it out and reload).

While DeskProto could be at fault, it is also possible that your are starting the program with Mach3 in a different configuration
state than the DeskProto program expected. For example, while setting tool length offset, Mach3 enables TLO. The post
might assume TLO is off until after a tool change where TLO for that tool is enabled.

If your root cause is interface misconfiguration not DeskProto g-code, a different CAM product may have similar problems
(or entirely new ones) as well as a new learning curve.

This will be a long one to reply to because there's so much here. Let me try to grab a line or two at a time.

As I understand your problem DeskProto v 5 was working and DeskProto v7 produces strange tool path artifacts from the same STL input. Have you verified that?

I didn't mean to leave that impression. Both programs produced essentially the same output, it's just not what I'd like to see. The free version of 7 doesn't include the waterline tool paths that I used for the rough pass, so I used 5. I ended up using the files from 5 for both passes.

What does the Mach3 toolpath display look like if you set Z above the part an just run the rod program?
If Mach3 is trying to interpolate and the mill moves only one axis at a time, I'd suspect a configuration problem
possibly with the preprocessor.

It looks the same. I always air cut with the tool above the work with a new file, at least for a few minutes, to get comfortable that the moves are where I expect them. The mill can move all three axes at a time and always has. I've never encountered a situation where it wouldn't, which means I would have been troubleshooting that long enough that it would stand out in memory.

After running the rod program, will a MDI diagonal move (eg G17 G91 G2 x1 y1) cause X & Y motion occur at the same time or sequentially?

What if you edit that command into the rod program after setup code and then single step to see that actual move? (Don't forget to take it out and reload).

I've never tried this. I've also never used tool length offsets, don't have a tool changer that would need it, and let DeskProto add the offset for the cutter radius into the toolpaths.

I chose the long axis (X-axis) as the main direction of my tool paths with only the short step overs in Y, and as @Jasonb says, I might have gotten better results if I had made that Y axis movements with step overs in X. A quick check of the tool paths in DeskProto shows they look better, but in CNCCookbook's GWizard Editor, the steps are still obvious. I might have to do that as an experiment.

A trick I just realized I could do is to run the toolpaths at an angle to the long axis, which would minimize those steps. I'd have to divide the part in half and create two tool path files using different angles for both sides to get it to make both sides smoother.

While DeskProto could be at fault, it is also possible that your are starting the program with Mach3 in a different configuration
state than the DeskProto program expected. For example, while setting tool length offset, Mach3 enables TLO. The post
might assume TLO is off until after a tool change where TLO for that tool is enabled.

If I started Mach3 in a different configuration, it wasn't deliberate. I've been working on just this sequence of operations on one side of one part for at least a week, and the few things Deskproto puts in the startup of the files is always the same: G17 G20 G40 G49 G64 G90 G94. All I've done is run the rough and fine pass files and then some manual moves of the machine from the command line or with my hand controller. I did that to check zero in all three directions to ensure nothing wandered between the rough and fine passes.

The only oddity I can attribute to Mach3 might have been a powerline glitch but I have no way to prove that. A few lines into the fine pass file, it suddenly stopped moving and Mach3 gave me the indication that the E-Stop had been hit. While I had been wandering around cleaning up, I don't recall getting close enough to brush against it, and the switch didn't need to be reset - which means it wasn't pushed in all the way. After that, my hand controller wouldn't work and I had to quit and restart Mach to get it to work.
 
Last edited:
I don't see anything in that finished part to suggest there is a problem with the CAM program, it is simply following the unsuitable parallel finishing path selected.

If you can post what the missing internal radius is where the rod meets the little end I'll draw it up later and show you why it has come out like that. Also what dia ball nose tool did you use for the finish path?

It's also a lot quicker if you use the best toolpaths for the job, that whole conrod roughed and finished both sides took 49mins and I could have gone faster.
 

Attachments

  • radius.JPG
    radius.JPG
    40.2 KB · Views: 47
Not used that one but F360 allows you to set the depth of roughing cuts and then the finer step ups, also max sideways depth of cut. You want to be looking for so,ething like "adaptive" cutting which uses the edge of the cutter and starts from the outside and works in.

The CAM is only as smart as the user in choosing the best way to machine a part. The parallel finish passes you show are not as good as a contour around the outside and horizontal for the flat parts. The problem with the parallel is that it does not work well when a feature runs almost parallel to the direction of cut in much the same way as contour does not work well on near horizontal surfaces

You can barely see the facets left by the adaptive. eg on that tapered section it would just do a straight line but around the ends would be very slightly stepped you can just see that in this video around the little end as it starts the two finishing passes at about 1.40 into the video. The finish passes are as smooth as you would likely want, I usually leave 0.3mm on teh adaptive and then set the contour finish as two passes of 0.2 and then 0.1mm.



This one shows the adaptive better as it cuts 5or 6mm depth then starts to step up to follow the shape of the part. I have included screen shots of the tool paths, bit more organic though! You can also see that for the rod I use scallop for the upper more horizontal area and then change to ramp as it gets more vertical the further down the cutter goes.



Thanks for this and the second post. Very helpful info.

It seems like the F360 CAM processor offers options that I don't have. Maybe I need to move to that. DeskProto 5.0 (the version I bought) offers this and the free version of 7 doesn't include all of these.

DeskProto_Cuts.png


There are options under the different strategies in the left panel, but no adaptive cutting and no option for scalloping or ramping cuts. Contouring is similar to the Waterline cutting that I like and used for the rough pass, except that their waterline doesn't cut to the actual contour of the part, just the depth you tell it to cut to. It's best for roughing a chunk of metal down to something close in size to the real parts. I found it had an aspect I hadn't considered. It wouldn't cut to the full depth I wanted because the depth wasn't an integer multiple of the cut depth. It was supposed to cut 0.220 deep, but cut to 0.200 deep because the next multiple of the .025 DOC I told it to use would have been too deep. It's possible just choosing a different depth of cut would fix that.

Changing cutters is going to be a separate file for each cutter since I don't have a tool change system, but that's not a big deal.

The radius you asked about is 1/8".

As I mentioned in my previous reply, I simulated the parallel tool paths along the Y axis. In DeskProto the steps along the shaft are less obvious, but in the G-code visualization program I have, GWizard Editor from CNC Cookbook, they're still visible.

When you say,
The finish passes are as smooth as you would likely want, I usually leave 0.3mm on teh adaptive and then set the contour finish as two passes of 0.2 and then 0.1mm.
Are those dimensions the step over or the depth of cut?

This leads me to ask about your milling machine. How many spindle RPMs can you achieve and what sort of feed rates are you using? My CNC-converted G0704 still has the original motor which only spins at 2400 RPM max. For small cutters, the speeds and feeds calculator always wants to spin the bit faster than I can, so since the cutter is moving slower in IPM than it can cut, I have to slow down the feed rate. At 2400 RPM, I cut this part at 4 IPM.

I'm also interested in another area I may have screwed up: choice of cutters. I used two, both 1/4" diameter, a carbide ball nose cutter for the rough pass and a flat end cutter for the fine pass. I see you used three cutters, and I think you used the smaller ball nose cutter for the finish pass.
 
Having used Fusion 360 for years now I'm amazed the other cam programs have even survived in the hobby market. It's free, powerful and well supported with a huge user base / forum. I have migrated to the $400+ / year version for my business so I'm not sure if the instant Autodesk support is also available but it sure gets my questions answered fast.
 
Having used Fusion 360 for years now I'm amazed the other cam programs have even survived in the hobby market. It's free, powerful and well supported with a huge user base / forum.

I agree, I use F360 and have always been able to get it to do what I want. Not always straight forward and some time you need to "trick" it. But it works very well for me.

I agree with @Jasonb, it is important to use the correct machining stategy. I will use an "adaptive" to clear the bulk of the material, a "horizontal" to finish flat surfaces, a "ramp" or "contour" to finish vertical walls, a "pencil" to get nice radius in corners and a "parallel" for complex finished surfaces. There is no one strategy that will do it all.
 
I will use an "adaptive" to clear the bulk of the material, a "horizontal" to finish flat surfaces, a "ramp" or "contour" to finish vertical walls, a "pencil" to get nice radius in corners and a "parallel" for complex finished surfaces.

What does that look like? Six different files with six different cutters, or what?
 
I try to organize my files by cutter size. For example, I might run the 1/4" flat end mill program first. This single file could contain an "adaptive" or "pocket" strategy that clears most of the material (leaving about .015"), a "horizontal" strategy to finish the top flat surfaces, and a "ramp" strategy to finish the vertical sides. The second file might be for a 1/4" ball end mill (or smaller) for a curved feature, and a final file for a 1/16" end mill to mill some small holes. So I only need to load three tools and run three files.

Look at post #42 here: Conrod for an example
 
Right, dealing with the first question about smooth sides first. As you said there are no organic 3D shapes to the part and all surfaces are either vertical or horizontal so no real need to use ball ended cutters on this job. It's just a case of choosing the best option to get the finish you want.

I tend to draw in Alibre and as there were a few other dimensions missing I used the trace function to import the drawing and do my design over that but it makes no difference to the CAM

bobs conrod.JPG


This was then exported as a STEP file and opened in Fusion 360

First I did similar to what Bob used, a waterline type cut to rough out the part. I don't tend to work this way as all the cutting tends to be done by just the end of the cutter which will blunt faster and you have wasted the rest of the cutter. I used a 6mm cutter so near as dam a 1/4" in imperial

I then did a parallel finish using the same stepover as Bob, same tool as there are no internal fillets on this part or organic shapes.

As you can see it leaves those same lumps along the side of the tapered part of the rod as you are basically cutting to a diagonal line in a series of steps equal to the stepover you set. Also the widest part ha snot been cut to finish as it is not an increment of the stepover. The blue is metal that ha snot been removed, green the desired finished surface.

bob conrod parallel.JPG


I then ran the CAM again using an adaptive tool path for roughing which I set as 1D vertical depth of cut which was 6mm and a stepover of 0.1D or 0.6mm so in imperial with a 1/4" cutter that would be 1/4" vertical cut x 0.025" horizontal stepover. This makes better use of the cutting edges and is also faster overall than the waterline type cut even if feed rates are the same. Once the cutter has got to 0.3mm (12thou) of teh edge it starts to rise in steps of 0.5mm (20thou) which allows it to remove some metal around the two bosses as well.

This was followed by a contour cut with the same 6mm tool at full depth of the, actually 0.5mm (2othou) below the bottom taking two passes of 0.2 and then 0.1mm horizontal step over (0.008 and 0.004")

Finally a horizontal cut was taken to clean up the 0.3mm left on the flat surface and around the two bosses.

As you can see there is no blue uncut material and the finished surfaces will be smooth with good transitions from straight to curved.

bob conrod cont.JPG


I'll write some more in a while but will leave you with F360's simulation of the two different approaches to the same part

 
Last edited:
So now we can see there is no problem with the actual program being used but just the chosen path what can Bob try.

Looking at that list of options in your last image the bottom one "contour only" looks like it will be the same as the contour I used so after roughing set that to the full depth of the part and a lit more say 0.45-" total and cut around the outer profile of the part.

For the two bosses and flat side of the rod I would look at the "block" option and hope that it does not cut through the bosses or failing that select each boss and do a contour around that with depth set to the edge of the rod and find something to do the flat bit between them.

If you can post a similar screen shot of what options come up when the roughing tab is clicked and I'll see if anything there is a better option
 
Are those dimensions the step over or the depth of cut?

This leads me to ask about your milling machine. How many spindle RPMs can you achieve and what sort of feed rates are you using? My CNC-converted G0704 still has the original motor which only spins at 2400 RPM max. For small cutters, the speeds and feeds calculator always wants to spin the bit faster than I can, so since the cutter is moving slower in IPM than it can cut, I have to slow down the feed rate. At 2400 RPM, I cut this part at 4 IPM.

I'm also interested in another area I may have screwed up: choice of cutters. I used two, both 1/4" diameter, a carbide ball nose cutter for the rough pass and a flat end cutter for the fine pass. I see you used three cutters, and I think you used the smaller ball nose cutter for the finish pass.

Yes they are the stepovers, the tool was cutting the full vertical depth of the part plus a little beyond the bottom so a total of 11.2mm in the case of that part. The adaptive clearing cuts were 11.5mm vertical depth and 0.4mm sideways step over so 0.453" x 0.016" a bit less than my usual stepover as height was more.

I have a Sieg KX3 which has a 5000rpm top speed so as I tend to use upto 6mm cutters mostly I also have to adjust things to suit. I mostly use 3 flute cutters and in this case would use a high helix uncoated carbide specifically designed for cutting aluminium but also good on other non ferrous metals, wood and plastics. Feed will depend a little on the part as one with a lot of tight internal corners and lots of changes of direction I may feed a bit slower than a less complex shape but typically at 5000rpm I will be feeding a 3 flute cutter at 500mm/min thats 20IPM so with your spindle being approx half the speed that would equate to say 10IPm. This gives me a chip load of 0.033mm or 0.0013" so no great strain on the machine. A 2 flute cutter would be 66% of that feed rate to keep the same chip load and a 4 flute cutter 133%.

When it comes to depth and stepover my vertical stepdown is generally 1D on the 6mm cutter so 6mm vertical depth or 0.250" vertical depth on a 1/4" cutter and sideways stepover of 0.1D gives me 0.6mm sideways depth of cut or 0.025"

The machine is capable of taking more off and it is worth doing a few tests to see at what sort of rates your machine is happy with. I did these tests on 6082 aluminium with a constant 1.25D vertical depth and 0.6mm sideways depth and kept increasing the feed rates. Details of feed sin the captions on the video, FZ = Chip load.



Rather than waste a lump of steel I had a fair bit to remove from this block so again just played about over riding the feed rate. This is a coated 3 flute 6mm cutter about 0.9D vertical as that suited the part but the same 0.1D sideways



Cutter wise I only tend to use a ball nose cutter when I'm doing more shapely work such as around the outside patterns or when making something look like it is cast as the ball end gives a smoother finish to the sloping sides with their draft angle or for very curved parts such as say the spokes of a flywheel. ball nose cutters are also turning very slowly at their centre so you will be cutting a lot below optimum speed which affects finish. When I do use them I mostly have 4 flute ones rather than the more common 2 flute as for the same chip load you can feed them twice as fast as a 2 flute which as the 3D finishing paths often have a very small stepover speeds the whole job up.

My goto cutters are 3-flute 6mm and I only reduce diameter if the job need sit such as tighter internal corner fillet or if teh tool has to cut between to protruding parts that are less than a cutter diameter apart.

Talking of internal fillets, always try and use a cutter with a smaller radius than the internal fillet or at teh design stage make the fillets a bit larger than the cutter you are going to use as this reduces cutter engagement and reduces chatter in tight corners. So for that 1/8" internal radius on the conrod ideally use the next common size down which for you is likely to be 3/16" or draw it with a 0.078" radius.
 
Last edited:

Latest posts

Back
Top