VoluMill Universal Client Documentation version 1.5.2



Welcome to the documentation for the VoluMill Universal Client. This documentation will be updated from time to time, so please check back frequently. If you are looking to implement your own client to connect to the VoluMill service, or just want to look around the source code, welcome. If you are looking for the latest free binaries of the Universal Client or a client tailored to your own CAM system, they can be downloaded from http://www.volumill.com .

Currently you will see doxygen-generated documentation of all of the header files used by the Universal Client. This is very useful as a quick reference, but at the moment many of the functions have little or no explanation to them beyond the prototypes, although we are working to improve this. The best way to get started on building your own client is to download and build the Universal Client and modify the code in the VoluMillGUI directory to suit your needs. You may not need to modify anything in the Common directory, but if you do it should not be too difficult to figure out what's going on from the source code.

The current incarnation of the Universal Client comes with an integrated viewer written in OpenGL. This may be useful in your own application, or it can be a nice visual tool when checking the VoluMill toolpath in your application against the toolpath generated by the Universal Client. The simple deployment project for the Universal Client is also included for your reference. You do not need to build the deployment project to run the VoluMill Universal Client after building from source.


The Celeritive Universal Client is Open Source, and is licensed under two separate licenses. All of the files under the Common subdirectory are licensed under the GNU Lesser General Public License (http://www.fsf.org/licensing/licenses/lgpl.html). In a nutshell, though, you can generally use this library without limitation in your application, whether open or closed source. However, any modifications to the library must remain open source and available in source form to any of your users. The purpose of this restriction is to encourage open collaboration on the library so that it becomes stronger and more full-featured.

The files under VoluMillGUI are licensed under the Apache Public License (http://www.apache.org/licenses/LICENSE-2.0). This is a more permissive license that stipulates that you need to preserve our copyright notice in any modified versions you create. Otherwise, you may use any or all of the code in this directory in your own application. Please read the license for more information.

The libraries under ThirdParty are under the licenses granted by the creators of those libraries. We provide those libraries as a convenience for building the software only, and explicitly disavow any ownership of code in those libraries. The libraries are basically unchanged, except for one or two small modifications to the XmlRpc++ library needed to make it compile under Visual Studio 2005. We may make other changes to the ThirdParty libraries in the future on an as-needed basis.

Getting a Celeritive Developer Account

In order to generate toolpaths using our client or a client of your creation, you will need a Celeritive Developer Account username and password. Please contact us via our contact form on our website http://www.volumill.com and let us know what you are planning to develop. While you are waiting for us to approve your request, you can get a free trial account at our website to get started. All you need to do is input your name and email address into the form on the site, and you will automatically receive an email message to activate your account.

Building the Universal Client

Get the latest code

Download the latest source .zip files from our Download page at http://www.sourceforge.net/projects/volumill . You will need to download Code.zip and ThirdParty.zip. Unpack them both into some directory, e.g. c:/volumill, so that you get c:/volumill/Code and c:/volumill/ThirdParty.

(NOTE: You will eventually be able to check out the latest non-ThirdParty code from our subversion repository at http://volumill.svn.sourceforge.net . We are still in the process of migrating our repository to sourceforge. Any subversion client should work; we recommend TortoiseSVN (http://tortoisevn.tigris.org), but you can use any subversion client you like.)

Build the client

A solution (.sln) file for building the VoluMill Universal Client is available in the Code/VoluMillGUI subdirectory. This solution file builds the Common.lib library as well as the VoluMill Universal Client.exe executable. Prebuilt libraries for Release and Debug are included in the ThirdParty.zip file, or you can rebuild them yourself if you need to. Currently this will only work in Visual Studio 2005, although the code may still build in Visual Studio 2003. Additionally, you'll notice that the Common and ThirdParty directories have Makefiles that will allow you to build the code in Linux. It should be relatively easy to create a client using any reasonably conforming C++ compiler.

You should be able to select "Build Solution" from the Visual Studio IDE to create Debug or Release versions of the client.

Testing the client

Once you have built the client, you should be able to run it from within the Visual Studio IDE. The first time you try to generate a toolpath, you will need to give your Celeritive username and password. Please note that if you need a sample DXF file or G-code macros, they are included in the deployment project subdirectory, VoluMillGUISetup. You can also build the help files from source in the help subdirectory of VoluMillGUI using the Microsoft help compiler, or just open the .htm source files in your favorite web browser. Alternatively, you may want to install the latest prebuilt client from our website http://www.volumill.com .

Getting help

For help, please visit our Help Forum on Sourceforge.net by accessing the "Public Forums" link at http://sourceforge.net/projects/volumill . More urgent inquiries can be sent to us using the contact form on our website http://www.volumill.com .

Changes from 1.3.5

The major changes in this version relate to the introduction of open pocket milling (with separate part and material boundaries) and cleanup milling (also known as rest machining). The Universal Client determines what is a part boundary and what is a material boundary (sometimes known as an "air wall" in some systems) based on what layer the geometry is on inside the DXF file. The layer selection dialog inside the Universal client allows the user to specify whether each layer specifies part boundaries, material boundaries, or should be ignored. A preview button on this dialog shows the results of this specification.

There are additional parameters that need to be sent to the client for open pocket and cleanup milling operations. These parameters, along with the other parameters already in use, are defined in ParamIds.h. One parameter, PARAM_CORNER_RADIUS, which was previously used (erroneously) to turn corner picking on or off, has been replaced with PARAM_PICK_CORNERS. Set this to 1 if you want corners to be picked, or set it to 0 to leave a little more material in the corners and reduce your cycle time. A typical reason to leave it off is if you are planning to come back with a smaller tool and clean up the corners anyway.

Also new in this release is the VoluMill Network Diagnostics tool located in the VoluMillDiagnostics subdirectory. This is a simple dialog-based application that runs a few tests to ensure that there are no firewall issues interfering with a connection to the VoluMill service. In the included deployment project, this application can be optionally run during setup to ensure that everything is working properly.

Generated on Tue Jan 29 21:37:56 2008 for VoluMill Universal Client by  doxygen 1.4.6