MadVac engraving on aluminium Y axis cover plate

CAD - CAM - controller software


Rhinoceros solid modeling CAD - This is one of the best software packages I have ever used, CAD or otherwise. Rhino is the ideal tool for free form 3D or 2D modeling (not a CAD for drawing/printing/plotting output) and it is packed with a vast arsenal of modeling tools and it handles curves and surfaces and meshes in the most incredible ways and reliably! It is very customizable with superbly flexible GUI and there are always more than one ways/tools to accomplish the same thing. One can use graphical buttons for functions or a command line interface with "options". The documentation is excellent and you can tell the quality of software by the volume of traffic in the support forum (tips, help by others etc..).
Rhino imports and exports large variety of file formats and does so reliably. It is also fast in terms of CPU processing but it is a good idea to have a dedicated video card for it that supports open GL. Check out the things people make with it in the Rhino gallery. This application is really BIG, price, quality and feature wise. Highly recommended!

The picture shows the actual 3D tool path from Visual Mill g-code.
Mach2 - This is an excellent and very impressive software package programmed by Art Fenerty of ArtSoft in collaboration with many CNC users around the world. The development, new features, robustness and reliability take place at an incredible rate of speed. Users report bugs (it is actually encouraged since the development depends on it and which makes for top quality, stable software) Art fixes them and bug fixes are released almost every week! I highly recommend to educate yourself in the Mach2 pdf manuals on the principles of CNC. These manuals are the best in the public domain. Learning from the Mach2 discussion group is time well spent.

This software processes the output (tool path) of a CAM program (called g-code) and interfaces with the drivers that power the steppers/servos on the CNC machine. It not only runs the motors but can control outputs (spindles, coolant, tool changers, etc..) and inputs like limit switches all kinds of machine feedback mechanisms etc...The software GUI and functionality is extremely customizable, programmable with Visual Basic macros.
Very exciting stuff!

The one limiting factor of Mach2 is that it must rely on this huge "Albatross" called Windows which causes all kinds of problems in pulse smoothness on many computers and I would say that it is one of the most frequent causes of motors misbehaving and poor performance. I have had my share of these problems. This is of course NOT any fault of Mach2. There is new development on the horizon in this department with the G200X/ G100 board made by Geckodrive which will remove among other things the responsibility of pulsing from Windows. I see this as a real revolution in hobby CNC since this should smooth out the motors and improve reliability by an order of magnitude and will eliminate forever all this Windows caused nonsense. Unfortunately, this project is still and has been for a while in the hands of the CNC wizards at Geckogrive who are programming the chips in the board so that we mere mortals can make any use of it.

Anyway, the pulse irregularity I mentioned earlier will show as sudden "jerk" in the motor during motion which can under certain speeds (jogging) completely stall the motor. This has happened to me in some g-code files and it happens in the same positions in the code. There is nothing wrong with the G-code since it can run well and suddenly develop this hickup. Given the regularity of Mach2 the rest of the time, pulsing is very likely to blame. Of course, when you see this for the first time you will be tempted to look for mechanical causes.

There is a bit of learning curve but it will all make sense sooner or later. Read the manual!

By the way, if you want to learn the in's and out's of G-code, get a Peter Schmid's CNC Programming book II edition - very good.

Visual Mill (V5.08) - Is an excellent high precision program in the CAM core but unlike the previous two programs, which are quite smooth after you get past the lerning curve, Visual Mill is a different animal. It's a bitter fight nearly at every session but "eventually" the work gets done. On one level it is an incredible sophisticated software in how it calculates complex paths of many machining strategies over mesh surfaces and within the constraints of curve boundaries overimposed onto 2D or 3D parts. It remarkably calculates tool offsets in 3D in the 0.0001" range and there is no gouging of the finished surfaces. This is definitely Visual Mill's strongest point. The problems I encounter are less with its core functionality of generating tool paths then with its stability, some functionality and how well certain processes are handled or rather not handled.

Features I find excellent in Visual Mill:

1) 3D milling of surfaces - this is definitely the forte of this software. You can import pretty much any 3D surfaces or meshes and select the machining strategy and it will generate the properly offset toolpath in seconds! I have not had any problems with the 3D stuff which I image is the most complex on the computing and the complexity of the algorithms. The surfaces that it works on are actually meshes exported from solid modelers and the finer the imported mesh the more precisely VM will sculpt the surface.
2) Stock and cutting path simulation - Superb visual display of the surfaces, the toolpath generated and even a rendered "stock" model which shows what a solid slab of material would look like while and after the material is machined away. Get a really fast computer with lots of RAM (500Mb and a 1.5Gig pagefile is bare bones) and a video card to get the most out of this software.
3) Graphical user interface - Fantastically intuitive process of selecting geometry, tools, machining strategy, machining parameters (depths, entry, exit, how many passes, distance tolerance to the desired final surface etc...) live simulation, toolpaths, editing of tool paths...
4) Modular machining operations (MOP)- you can create one or many machining operations on one surface or curves and output singly or together in any combination into one G-code file; You can also add and remove machining regions (your imported models) from the machining operation. You can apply the MOP to one piece for testing and optimizing tool diameter, feeds, speeds, directions,engage, retract, z levels etc.. and when it works just add the remaining regions under the MOP. If your need to change one parameter such as feed speed or a diameter of a bit, change one parameter and the tool diameter offset is calculated for all the milling paths.This is a really brilliant approach and allows to handle a LOT of different cutting operations on many different models in one file! Very efficient.
5) Post processor customization - the post processor which takes the internal VM coding translates in into G-code which is digestible to many types of CNC machine brands and if you do not like any particular G code you can make edits to the post processor so that the Gcode file is made as you like it. You can add your own codes, comment etc...great. I often see people searching for specific post processors but this is very easy to alter from a generic post processor. The actual differences between many of the CNC systems seem very small and limited to only few g code words. VM comes with tons of postprocessors and it has one for Mach2 and 3 but you can use Fanuc postprocessor and similar.
7) G-code reliability - the g-codes generated by VM are flawless as for as I can tell for both 2D and 3D work. Mach2 always imports them well and faithfully and the steppers like the code too in its smoothness of movement. This works 100%.
8) Machining strategies - there are tons of choices of how to run the mill through the material for both 2D and 3D.
9) Machining and tool library - You can save the entire machining operation in a file and employ it on a different set of surfaces in a different file (instead of going though many steps to set up the operation parameters) just pick the new geometry/regions(surfaces or curves) to apply the operation against and it runs. Great time saver.
10) Between curve machining - this is a super feature to define which patch of the model surface you want to machine (bounded by a curve or between curves). Very clever.
11) Rendering of stock model and tool paths.Excellent!

Things that need to get fixed and are supremely irritating in VM:

It is a real pity that software of such ingenuity also shows a lack of some fundamental features that would make this software really top notch. Here are just some of the major ones that would greatly help in productivity.

1) Error reporting - This is a real productivity killer. Let's say you import a whole sentence of a font curves for letter engraving but VM throws an error, saying that it found a loop and cannot proceed. You spent the next few hours looking at every letter under microscope to find it. Visual Mill obviously knows where it found the problem, but it wont' tell.
Let's say that you set up many parameters for helical hole machining but VM says that it found a wrong parameter or reports "degenerate geometry found" - but it won't tell which. You boil at this stage wasting hour after hour but keep fighting! So a job that can take 10 minutes takes half a DAY to troubleshoot, I am not kidding. This brings back not so fond memories of Windows 95 in its full glory - Error - "contact system administrator", except this error is well defined and known to VM.
2) Extremely poor documentation - one learns a lot from good software documentation/help on how to use the software to its full potential. VM comes with a nice book of four example milling jobs but that is about it for software of such complexity and many subtleties. The CAD functions do not seem to be even listed in the helps section; I have not been able to find any reference to these even by keyword search. Some of the principles and assumptions behind some of the functions are just not explained so that they can be effectively used/exploited. Why not explain the power of the software? Beats me!
3) Cutting path optimization - Imagine you have a sheet full of disks to be cut, arranged in a nice "honey comb" pattern for material efficiency and would expect that one the whole sheet would be milled disk by disk, zig-zag pattern with reasonably short air time but no such luck. VM jumps around the sheet picking disks in semi random order - lots of "air" time, low productivity, and a clumsy way to change it. Some jobs start in the farthest corner of the table from the 0,0,0. The first move is the longest air move possible when the cut could start right at 0,0,0?
4) View rotation - sometimes you need to zoom to a detail of a large job and rotate it in the viewport to get a good look. VM keeps the center of rotation fixed in one point on the construction plane so in a zoom, rotation just moves the thing you want to look at off the screen?? This is fundamental stuff, but ignored.
5) Mouse button/keyboard function mapping - zooming, panning and rotation of the view should be all available through the mouse buttons and assignable to the buttons of one's choice with hot keys. No such thing here.
6) Letter engraving - I let these photos speak for themselves as to the logic of engraving. Image1, Image2. The 5 letters took 15 minutes of 100% CPU on a 400Mhz machine to complete. During the time that VM does its work, the software is "Not responding" in task manager or to any commands and the computer is virtually locked up.
It is a puzzle to me why complex 3D surface is done in a few seconds, while engraving takes forever.
7) Bug fixes - infrequent and often unfixed from version to version. All bugs that I have ever reported are still there.
8) Code editing - edit the tool path such as adding tabs (toolpath elevated in Z) to hold the part down, save the edits, regenerate the machining operation with some new parameters - all saved edits vaporized including your "billable hours".
9) Command function persistency - for instance, you want to measure distance between two points, click the appropriate function, try to zoom in a bit more but this wipes out the command. There is a lot VM could learn from Rhino in separating viewport manipulations (pan, zoom, rotate etc..) from CAD/CAM commands.
10) Geometry moves by mouse - moves are possible only by entering coordinates in x,y,z. This is minor and easy to live with but would be helpful.
11) Operations on curves - Let's say you want to change the start of a closed curve (the closing seam where the mill will enter and exit the material - important stuff) so you pick the "change curve start" command and get "Error - invalid curve". You split the curve which works, join the segments so that it is closed again and try again and it may or may not work - completely flakey and unpredictable.
12) Ball on chain (dongle) - one of the worst ideas must be to link the functionality of software to a $4000 piece of 2" plastic. If you lose it, you are out of your software or try to prove that you did lose it! You have to lug it from the office to the shop floor all the time. Imagine if every software title on your comp had a hardware lock and you would have to take a plastic shopping bag with 5 USB hubs and bucket of dongles everywhere you go. Ironically, perhaps this would eliminate this idiocy since nobody would tolerate it in everyday computing.

For me, VM defines the meaning of the proverbial "love, hate" relationship :)

© Copyright Vaclav Stejskal
All rights reserved

Last page update: 11 May 2005