I'll relay observations I have about CNC now that I've been dabbling in for a few years. These are just my observations and thoughts on this. I'm an amateur here so don't take this as gospel. If you have a Gcode interpreter CNC machine (and that's just about everything I've ever seen - Mach3, LinuxCNC, Centroid, HAAS, GRBL) then you need to generate the GCode program for the machine to actually do something useful. There are generally three ways to do that.
1. Write the gcode yourself. e.g. for milling G01 X1.0 Y-1.0 Z-1.0 F4.0. This means move the spindle from where you are now to cartesian coordinate 1,-1,-1 at a feed rate of 4 units per minute. e.g. in imperial inches and inches per minute. Superficially this is simple enough and I've done this lots and still do. It rapidly gets laborious and it's easy to make a mistake. The language goes back to the fifties (70 years old kids) when every bit and byte in a computer was super expensive, programs were encoded on paper tape for storage, debuggers were primitive. So the language is really dense just to keep it as condensed as possible and that makes it hard to read and remember. There are about 100-200 commands with all kinds of modes and such. Most commands start with G or M and then a number. G0 is move fast, G01 is move and remove material, G02 is carve a circle CW, G03 is carve a circle CCW, etc. As a guy with programming experience I find this incredibly archaic and surprising this isn't a lot better - it's been 70 years come on! But standards are standards...
Example: AnglePlate.txt I wrote this program by hand to drill 30 holes with a center drill and then a twist drill. It was just to learn how and to make a angle plate I'm using in the shop for. See
https://canadianhobbymetalworkers.c...n-entire-day-drilling-6-holes.195/#post-15210 I actually used Excel to first generate a spreadsheet of coordinates and then formulas to spit out the program. That approach can actually be surprisingly effective. There is a video on youtube of a professional machinist doing this to make cam shafts for a boat steam engine on a 5 axis CNC mill.
2. So people got tired of approach #1 pretty quick and started writing programs to generate programs. Generally these programs that generate programs are called Wizards, conversational programming, VPS Visual Programming Systems or other fancy names - it's a simple question and answer setup e.g. on Mach 3 there is a facing wizard that asks questions about the size of the part, depth of cut, step over, RPM, feed rate and then it spits out a few dozen or more lines of GCODE that can then be run and face a part nicely. Lots of systems have these wizards like Mach 3 and any more modern controller HAAS, Siemens, etc. They don't all have them though and some of the ones that are out there are almost as bad as writing GCODE by hand. I was looking at a Taiwanese controller and it turned out to not have any wizards at all - if you bought that one then you are stuck with approach #1 or 3. Wizards can be annoying sometimes as they don't always remember what you did last time so you end up reentering values because the first time through had a mistake. In general though wizards are great and save a lot of effort. I do this all the time - the VPS system on the HAAS is really quite good.
3. What if the part is actually quite complicated? ie. you've got CAD drawing and there are loads of features that require milling, facing, drilling, slotting, threading and other operations ? Writing it by hand #1 would take days and days, #2 might work but you'd have to use lots of wizards and somehow bolt all the pieces together. What about a more sophisticated program that can handle all these features? Yup that's called CAM computer aided manufacturing. So CAM is the software that connects the CAD drawing/model to the tooling you want to use and generates all the GCode to execute the necessary steps. It's not that smart though you have to understand machining, and the tools to generate that feature, and basically tell the software all the details you would need to know to make the feature manually. Essentially there are a whole lot of wizards inside the CAM program and you need to know quite a bit about them to get them to do anything. If you've watched Youtuber NYC CNC John Saunders do his Fusion programming this is what I am talking about.
I've uploaded 1220.txt which is CAM generated program to make that metal etch folding tool (super small brake) I posted elsewhere on the site. you can see the program is thousands of lines long - typical CAM output. by the way the N100 prefixes on each line are the line numbers for the program steps. See
https://canadianhobbymetalworkers.com/threads/etch-fold-tool-small-brake.1807/#post-18467 for an explanation of what that program does.
So what about Fusion then? Well I like Fusion because the CAM is built in with the CAD. Invariably you discover things you want to change in the model so doing that is fairly easy as the two program areas (CAD and CAM) are side by side. Other CAM packages in some cases I understand are integrated within the CAD package but others are more stand alone. If it's not integrated then imagine you're in the CAM software and realize there is a mistake or change needed to the drawing. Ok, back to CAD, make the change, reexport the file, back to CAM, import, then what does the CAM software do? Update nicely hopefully. I'm not clear on how other packages like MasterCAM actually do this... good question to know before you commit to any one CAD and CAM system.
Tom O
@Tom O uses another CAD/CAM package which is also integrated. Tom?
Any of these tools though have a steep learning curve. So when shopping for a package I think productivity is a key question. What works well for you? I also think all software is moving to a model where frequent changes to the way the software works is fairly typical. MS Office, Adobe illustrator and such, etc. I don't particularly like this either as sometimes it's just change when it does not help and requires a lot of work. I'm still not as productive with Excel when they reorganized everything on us. So for me I'll put up with Fusion changing their interface - it hasn't been too painful so far and the price has been pretty good. Bugs get fixed. so...
This was a bit of a monologue... hopefully it helps somewhat. Maybe this belongs over in the CNC area.