---
title: Coordinates
slug: coordinates
docTags: 
createdAt: 2024-09-06T14:16:01.277Z
---

![](https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/diMcV52EO-ozLwfBhI5Rh_coordinates.png)

The coordinates tab allows the operator to calibrate and switch between the coordinate systems. Furthermore, Z height compensation and optionally A Cylinder kinematics can be set up here.

# Calibrate

![](https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/25yHmSLd38se7rFJlPKRO_coordinates-calibrate.png)

Pressing one of the buttons in the calibrate section sets the current position as the origin for that coordinate system. The button performs `G10 L20 P... X... Y... Z...` Where `P...` is the number of the coordinate system and the coordinates are the current position of the machine. For more information on this action see [G10 (Set Coordinate System Data)](docId\:b9LKOzR8VYIIM7e85U0X3).

The offsets associated with a coordinate system can be seen on the [Variables tab](docId\:GXw9wEBk8aZ35cyV-ELYH) tab, where these values can be edited as well.

# Activate

![](https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/QknayZpUuqX3M-sa2ZpmB_coordinates-activate.png)

Pressing one of the buttons in the activate section activates that coordinate system. This means that the offsets of that coordinate system are applied to the machine's position. The button performs `G54` to `G59.3` depending on the button. For more information on this action see [G54 - G59.3 (Select Coordinate System)](docId\:baX8uyfAimzYLPAp9bPJ3).

The currently active coordinate system is shown by the accented color of one of the coordinates. Additionally, it can be seen in the list of currently active G-codes.

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/QNipqKGLvc_bhXQWHY4kk_image.png" size="26" width="178" height="97" position="flex-start" caption="G54 is currently active, G55 is not." showCaption="true"}

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/9_9UcJomty-U23qWbzrBI_image.png" size="72" width="357" height="66" position="flex-start" caption="G54 is currently active." showCaption="true"}

#

# Milling un-even surfaces.

This compensation can compensate for slight unevenness in the material surface. It is intended for relatively small compensation with a smooth, natural behavior.

![](https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/IQ9U9EEMBPQowmXMOxVlr_image.png)



![](https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/c8G6BQ9BnwlF9UdxPQCHK_image.png "Allowed types of compensation")

The compensation is applied directly to the motion of the Z axis, therefore the acceleration profile is determined by the shape of the compensation.

In cases where the compensation is not continuous, position errors may occur depending on the driver type used, the quantity of the discontinuity, and the speed of the actuators used. In open-loop systems, this may result in lost steps, and in closed-loop systems, this may result in a position following error.

## Start Measurement

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/nGIbg5xt2hK-ZsAMk32U5_z-height-comp-start-measurement.png" size="50" width="361" height="438" position="flex-start" showCaption="false"}

This button will pop up an interpreter dialog for the automatic measurement macro using a touch probe. It executes the `zhcmgrid` macro. We provide a default implementation for this in the default macro file, but this may be modified by the machine builder or user. These instructions assume the use of the unmodified macro.

![](https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/a9Tneol3JDsKWj9TNxKzu_z-height-comp-grid-measure-dialog.png)

- **nx** The number of points on the x-axis to be measured. This needs to be a whole number.
- **ny** The number of points on the y-axis to be measured. This needs to be a whole number (integer).
- **maxZ** The z height from where the measurements start. Ensure that this is higher than the highest point on the grid or the probe will collide with the material.
- **minZ** The lowest point that the probe operation will travel to. If a point is below this number on the z-axis, this point will not be measured, this is displayed to the user during and after the measurements.
- **gridSize** The distance between measurement points on each axis.
- **Feed** The feed rate at which the probe operation measures the point. The lateral movements occur at G0 speeds.

Pressing **Cancel** will not run the Z Height Calibration macro. Pressing **Submit** will perform the calibration. **Render** will render the movements of the macro in the job view. Executing the macro again after the render is complete will open the dialog again with the previously entered values. Adjustments can be made and the calibration can be started.

After the calibration is complete, the measurements will be loaded into the software, but it is not activated yet. This is done by either checking the **Z height compensation on** checkbox or by executing the `ZHC ON` command. Additionally, the compensation is saved to the installation directory as *zHeightCompTable.txt.*

## Save Measurement

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/L-SzZzCKzeCUak0Km3ywJ_z-height-comp-save-measurement.png" size="50" width="361" height="438" position="flex-start" showCaption="false"}

This button saves the measurements to a file. A dialog opens where the location and name of the file can be selected.

## Load Measurement

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/vVLlN8UX0JItTvbW_Pgfu_z-height-comp-load-measurement.png" size="50" width="361" height="438" position="flex-start" showCaption="false"}

This button will open a file dialog where the file containing the calibrations must be selected. This loads the file, but it does not activate the Z height compensation yet. This is done by either checking the **Z height compensation on** checkbox or by executing the `ZHC ON` command.

## Check Measurement

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/8Pj5qBxPNDrwYO3oh4pQS_z-height-comp-check-measurement.png" size="50" width="361" height="438" position="flex-start" showCaption="false"}

This button checks the currently loaded compensation file for completeness. This executes the `ZHCcheck 20` command.

## Move To Start Position

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/s-fr4XMZQuZDN98Q8ZxWY_z-height-comp-move-start-position.png" size="50" width="361" height="438" position="flex-start" showCaption="false"}

This button will move the machine to the first measurement point in the Z height compensation grid. It executes the `ZHCMOVETO 0 0` command.

## Z height compensation on

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/JmIPTKhRPhKyegWyjQQrW_z-height-comp-on.png" size="50" width="361" height="438" position="flex-start" showCaption="false"}

Checking this checkbox will enable the Z height compensation, unchecking it will disable the Z height compensation.

## Show current compensation value in DRO

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/wf_gUQNvmPqIG2RXpf18s_z-height-comp-show-in-dro.png" size="50" width="361" height="438" position="flex-start" showCaption="false"}

Checking this checkbox will show the compensation values in the DRO.

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
![](https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/qzkrJgnwj8_3euZf8hLjY_z-height-comp-off-dro.png "Show current compensation on")
:::

:::VerticalSplitItem
![](https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/w6MHfYzlLIDRxllf2zLIx_z-height-comp-on-dro.png "Show current compensation off")
:::
::::

**



# A Cylinder

![](https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/aoAlc8ZXSiqOp0IiYio-f_a-cylinder.png)

This feature is useful when milling on the outside of a cylinder using a rotary axis on the A-axis. When enabling this feature, a flat job file can be projected on the cylinder where the movements on the Y-axis are mapped to the A-axis, taking into account the radius of the cylinder.

:::hint{type="info"}
Note that this configuration is only visible when the A-axis is set to *4th milling axis* and Kinematics DLL is set to *acilinderkins.dll.*
:::

This feature requires some configuration to correctly map the Y-axis to the A-axis. It requires both the rotation point and the radius of the cylindrical workpiece.

## Setting Rotation Point

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/n9JY4gRnGt2BWjfGzyb5K_a-cylinder-rotation-point.png" size="70" width="458" height="185" position="flex-start" showCaption="false"}

The rotation point can either be set by entering the position and pressing (1) Set position, or by moving to the rotation point and pressing (1) Set to current position.

### (1) Set position

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/iLabS8-WNDjgTzt08Bwhp_a-cylinder-set-position.png" size="70" width="458" height="185" position="flex-start" showCaption="false"}

When the exact location of the rotation point is known beforehand, these coordinates (Y- and Z-axis) can be set directly in the respective input boxes. The (1) Set position needs to be pressed to apply and confirm this position.

### (1) Set to current position

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/8QKL616Tm9aQ59B-uEAlF_a-cylinder-set-to-current-position.png" size="70" width="458" height="185" position="flex-start" showCaption="false"}

When the exact position is not known beforehand, usually because the A-axis is removable and cannot be repositioned exactly, the position can be calibrated manually. To calibrate the position, move the machine to the rotation point on the Y- and Z-axis, and press (1) Set to current position.

## Setting Cylinder Radius

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/drcRxZHSGilMsLHxpV0fw_a-cylinder-radius.png" size="70" width="458" height="185" position="flex-start" showCaption="false"}

The cylinder radius can be set either by entering the radius in the input box labeled R and pressing (2) Set radius, or by moving to the machine so the tool touches the top of the material and pressing (2) Calibrate radius.

### (2) Set radius

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/l9g-F70ZIqcS5U5t1qgoh_a-cylinder-set-radius.png" size="70" width="458" height="185" position="flex-start" showCaption="false"}

When the exact radius of the material is known beforehand, the value can be entered in the input box labeled R. To confirm this position, the (2) Set radius button needs to be pressed.

### (2) Calibrate radius

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/kjdZ1vJ-JoPAsPK4pY7sw_a-cylinder-calibrate-radius.png" size="70" width="458" height="185" position="flex-start" showCaption="false"}

When the radius of the cylinder is not known beforehand, the radius can be determined by moving the tooltip on top of the material and pressing (2) Calibrate radius. This calculates the radius from the current position of the machine and the previously set rotation point.

## Reset calibration

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/Gsz-nyIpV7ojcisIGI-A5_a-cylinder-reset-calibration.png" size="70" width="458" height="185" position="flex-start" showCaption="false"}

Pressing the Reset calibration button will reset the rotation point and radius settings, in case Map Y -> A was turned on, it will be turned off after.

## Save calibration

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/Ireztnl4PU82RUpZ9Alz1_a-cylinder-save-calibration.png" size="70" width="458" height="185" position="flex-start" showCaption="false"}

Pressing the Save calibration button will save the rotation point and radius to the configuration file, so these values will automatically reload when restarting the software. Do note that Map Y -> A is not turned on automatically every time the software starts. This needs to be done either by moving the Y-axis to the rotation point and checking the checkbox or by executing the `KIN ON` command.

## Move to Y rotation point

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/bPgLklV9fkpoDPLK222yj_a-cylinder-move-to-y-rotation-point.png" size="70" width="458" height="185" position="flex-start" showCaption="false"}

Pressing the Move to Y rotation point button will move the machine to the Y coordinate of the rotation point.

:::hint{type="info"}
Note that the machine will move to the Y coordinate of the rotation point at the current X and Z coordinate. It is therefore important to ensure that the Z axis is at an appropriate height and there are no obstructions in the path.
:::

## Map Y -> A

::Image[]{src="https://api.archbee.com/api/optimize/wP9peVc2bAVBPOh6IboCS/r6W9YcxGiDObbQJpbu7UK_a-cylinder-map-y-to-a.png" size="70" width="458" height="185" position="flex-start" showCaption="false"}

Checking the Map Y -> A checkbox will turn the A Cylinder options on if all conditions are met. Ensure that:

- The rotation point is set
- The radius is set
- The Y-axis is at the rotation point

In case these conditions are not met, the option will not turn on and an error message will be visible in the message window.
