CAM Coordinate Systems Explored


Blog Categories

When learning any CAM software, there are many fundamental concepts you need to understand.  The most basic of these are the different CAM Coordinate Systems in play, how they relate to each other and to the Machine Tool you are using on the shop floor.  

The World Coordinate System (WCS)

The WCS is the coordinate system about which all design geometry is constructed.  This coordinate system is defined by the CAD system rather than the CAM system.  The CAM system does not have any control over this coordinate system.  The CAM system simply defines all of its coordinate systems in relation to this coordinate system about which all parts are designed.  
The default WCS is shown below in each of the CAD systems that MecSoft CAM supports (Rhino, VisualCAD and SOLIDWORKS).  Notice the default orientation of the WCS in each.  In Rhino and VisualCAD, the XY plane of the WCS defines the Top View.  In SOLIDWORKS, the XY of the WCS plane defines the Front View.  

The MCS represents the natural coordinate system of the Machine Tool as defined by the machine tool vendor. Each machine tool has built into it a coordinate system that is defined by the geometry of the machine.  The machine “knows” where it is within its own coordinate system by a series of limit switches and encoders that are located on each of the axes.  When they are powered up, most machines go through a homing cycle and each axis is moved until it hits a limit switch.  This coordinate system is called the Machine Tool Coordinate system.

The Machine Tool Coordinate System (MCS)

Machine Tool Coordinate System (MCS)

In RhinoCAM & VisualCAM

For a milling application, it is natural to have both the MCS and the WCS aligned.  The phrase “naturally aligned” means that the machinist thinks of the part design to be oriented in the same way it would be on the machine tool table during machining.  Note that the MCS and WCS are not necessarily coincident but their axial planes are just parallel to each other.
Even if the design is not in this natural position, it would be easy to orient the designed part, using the transformation tools in the host CAD systems (Rhino and VisualCAD), in such a way as to make them aligned.  By default, in both RhinoCAM and VisualCAD/CAM the MCS and WCS are coincident and aligned.


In a parametric design system such as SOLIDWORKS parts cannot be easily reoriented.  That is because the parts are designed using constraints and reorientation would not be possible without destroying these constraints and thus the entire design history.  Additionally, the default sketch plane in SOLIDWORKS is not the XY plane of the WCS (like in Rhino and VisualCAD) but is rather the XZ plane.  Refer to the WCS orientations shown above for each CAD system.
This makes parts that are designed in SOLIDWORKS, using its default sketch plane, to appear not to be in the natural orientation that a machinist would typically like the part to be in.   For a machinist, it is natural for the machine tool (MCS) Z axis to be aligned with the Z axis of the WCS to mimic how the part would be placed on the machine tool table.
In VisualCAM for SOLIDWORKS, you are provided with the Machine Tool Coordinate System tab in the Machine Tool Setup dialog.  The controls on this tab can be used to set the Z axis of the MCS to be aligned with the Y axis of the WCS, thus aligning the MCS to the XZ plane.  This dialog is shown below.

The Machine Tool Coordinate System tab of the Machine Tool Setup dialog is shown in VisualCAM for SOLIDWORKS.  These controls allow you to orient the MCS.

The principal reason the Machine Tool Coordinate System (MCS) exists is to allow setting of the default orientation of machining operations.  If the MCS is not set (as in RhinoCAM & VisualCAD/CAM) the default orientation of machining operations will be the WCS (because they are naturally aligned by default).

The Program Coordinate System (PCS)

The PCS is the coordinate system about which all toolpath or program points are computed and referenced.  The physical analog of this coordinate system on the machine tool is called the workpiece coordinate system.  By default, this workpiece coordinate system will be coincident with the MCS.  However, the origin of this workpiece coordinate system could be changed by the machine operator.  This is usually defined by the machine operator by touching off the tool to a fixed point in space, for example, a corner or middle point of the workpiece.
The machine tool controller interprets all program point coordinates with respect to this workpiece coordinate system.  Thus the PCS of the CAM system represents the workpiece coordinate system on the machine tool.  In MecSoft CAM, the PCS is computed as the Setup Coordinate System with the origin coincident with either the MCS origin or at the Work Zero, if one is created.  A Work Zero can be created for each setup using the dialog shown below (Program > Work Zero).

The Work Zero dialog in MecSoft CAM

Work Zero defines the Work Offset that is commanded by the G54-G59 G-codes.

An example of the PCS or workpiece coordinate system and its relationship to the MCS is shown below.  In this example, the user has set the workpiece coordinate system to be with the same orientation of the MCS but with a different origin point, in this case the North-West corner of the top face of the stock model.

The PCS Origin and the MCS on the Machine Tool

From the blog

The latest industry news, interviews, technologies, and resources.
Don LaCourse

Don LaCourse

Don LaCourse is an Application Engineer with MecSoft Corporation. Don brings over 20 years of experience in CAD/CAM operations in both automotive and mold design applications. Don also has extensive experience in documenting CAD/CAM products and is actively involved with writing the on-line help as well as creating training tutorials for MecSoft's products.

Try us out,

no strings attached!

Download Demo Form

Product of Interest(Required)
This field is for validation purposes and should be left unchanged.

Product of Interest(Required)
This field is for validation purposes and should be left unchanged.