ZBrush Not at the Movies
What is Zbrush?
Zbrush is a 3D design program oriented toward the creation of complex objects with organic form as well as "hard surface" objects--things with mechanical form.
It is inexpensive as 3D design programs go, and a semi-casual user can create interesting objects quickly with relatively little effort. It has an intensely high learning curve, however, even if you have copious experience with other 3D design software.
When I first started using ZBrush, it was barely suitable for CNC design. It lacked many features, and had no way of writing files that common CAM programs could convert into CNC machine instructions. With each version it adds new features that make it easier to design machined objects. It also has a 3D Print Export function built in now, which exports STL files commonly used by CAM programs. The past year has been a good one for CNC ZBrush users.
Hard to Learn
The program is difficult to learn, even if you have prior experience with 3D design. It doesn't matter if you've used AutoCAD for 3D or Lightwave or SketchUp or whatever. ZBrush is different. Underneath ZBrush's 3D tools lies a specialized 2D drawing program that was the heart of today's 3D program. Because ZBrush is a 2-and-a-Half-D drawing program with very powerful 3D object editing and creation abilities on top, it has its own unique way of doing things. And a very, very "custom" interface.
I strongly recommend the following book to help you overcome some of the frustration I went through when I started using ZBrush. It'll guide you past most of the landmines.
Then take advantage of the copious training videos out there. Look for ones where they display keystrokes onscreen or carefully describe the keystrokes as they do them. You can drive yourself mad trying to figure out what they're up to otherwise.
Once you tame ZBrush, it can do amazing things. Here's a test render of something I've built that's not for the CNC (yet!)
Managing precise dimensions in ZBrush can be a challenge. It's designed for artistic work, where eyeballing it is good enough. I've managed to use it for controlling dimensions where necessary, though. The best way is to build up objects out of parts that you can control the precise size of individually.
Outside Dimension Control
The Geometry submenu under the Tool top level menu has a Size section. Using this, it's possible to control the outside dimensions of an object on each of the three axes:
Inside Dimension Control
It's not possible to use this for controlling inside dimensions, such as the width of a cut out slot, however. What you can do, though, is create an object of the right size and shape then use the solid geometry operations to use it as a cutout for your inside section.
The Geometry submenu also has a Position section that can be used for precisely placing objects. Some math may be required, as it places the object's center with respect to the center of the overall workspace.
Size, Shape, Etc.
The Deformation controls under the Tool menu can also be used to obtain precise results. Most of the controls use either degrees or percentage of current size as numeric entries to control the degree of deformation or translation. Again, a little calculation may be required to convert a displacement dimension to a percentage of an object's size on an axis, but the capability is there. I spend more time in this menu than anywhere else when creating objects for CNC. In essence, it's the same as ZBrush's new Transformation modelling, but with added precision. When I want to create new geometry, I do it outside this menu. But when I want precise placement, I use a combination of masking and numeric entry here.
Preparing for CAM
The tools to export for 3D printing produce fine STL files for CNC CAM programs as well as for 3D printing. Most CAM programs don't deal well with the high polygon, vertex, and edge counts that ZBrush deals with. So it's usually necessary to simplify the mesh before exporting.
I always save a separate copy of my mesh before doing this. Sometimes strange things happen to the topology in the process that aren't immediately apparent. So I always keep a version of the mesh that hasn't been retopo'ed at all set aside just in case. Once that's done, the Decimation Master is my go-to tool for simplifying the mesh. ZBrush has several tools for mesh modification in it, Decimation Master get the results I want the easiest, and with the fewest surprises.
The two CAM programs I've used, MeshCAM 4 and Cut3D, both like geometries below about one and a half million polys--preferably less than a million. MeshCAM deals with complex meshes faster than Cut3D, but there are some delays that might worry you if you're used to things moving faster.
When I use Decimation Master, I decimate each subtool individually. I've had many occasions where doing multiple subtools at once causes ZBrush to crash, or where the geometry goes totally haywire. When doing individual subtools, I at least know which subtool is causing the problem, and can deal with it individually, or just decide to leave it alone if I can reduce complexity enough elsewhere. I also decimate "lightly" on the first pass on each object, only targeting a reduction of about 5%. After that it's often possible to decimate again more heavily. On problem subtools, I will take advantage of the tools under Tools>Geometry>Modify Topology to lighten the load of Decimation Master a bit. Specifically, using Order Points prior to decimation, along with a very light decimation of about 2% on the first pass, has allowed me to decimate a few objects of 4 million polys or more that I wasn't able to decimate otherwise.
The price of ZBrush has gone up since I purchased it, but it's still one of the cheapest full 3D object editors out there. Most cost more than twice what ZBrush does, and many require extra-cost add-ons before you can use them for CAD. Generally, they have an interface that is better for CAD, especially with low-poly topology, but for high-poly organic forms they suffer in comparison to ZBrush, so you have to pick which set of trade-offs works best for what you do.