# Storing several X- Y offsets

**URL:** <https://forum.onefinitycnc.com/t/storing-several-x-y-offsets/22617>\
**Category:** Original/PRO Series (Buildbotics) (Gen 1)\
**Created:** [October 2, 2023, 12:21am UTC](https://forum.onefinitycnc.com/t/storing-several-x-y-offsets/22617 "2023-10-02T00:21:50Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![349iq2345](https://avatars.discourse-cdn.com/v4/letter/3/bb73d2/32.png) [@349iq2345](https://forum.onefinitycnc.com/u/349iq2345)\
**Post date:** [October 2, 2023, 12:17pm UTC](https://forum.onefinitycnc.com/t/storing-several-x-y-offsets/22617/4 "2023-10-02T12:17:58Z")

</div>

Hey Ken,

yes, on startup of the machine, driving all axes to their home positions is always necessary because it enables the controller to know where its carriages are. This is called **homing**. Otherwise the machine would not know where the carriages are (they could have been moved while the machine was powered off). Usually you need to do this only once after startup of the machine. However on the stock Onefinity Original Series that uses [stall homing](https://forum.onefinitycnc.com/t/how-common-are-missed-steps/18352/8) for this, this is known not to ensure ideally accurate repeatability, so either retrofitting limit switches (e.g. with [inductive proximity limit sensors](https://forum.onefinitycnc.com/t/controller-software-tool-change-location-0-0-g54-g55-g56/10052/14)), or generally **zeroing** at a repeatable location like a fence or a block (e.g. by using the [XYZ touch plate](https://www.onefinitycnc.com/product-page/onefinity-3-axis-touch-probe)) are necessary to have an acceptable **repeatability** accuracy (which means, that a specific position before shutdown is really identical to the same position after startup the next day).

See also [Homing ≠ Zeroing](https://forum.onefinitycnc.com/t/keeping-zero-position/14115/44).

But I think what the original poster meant was to use one program multiple times to produce identical workpieces (or holes) at different locations on the workarea. In pure g-code, without a CAM program, you would use [g-code coordinate offsets](https://linuxcnc.org/docs/html/gcode/coordinates.html#cha:coordinate-system), possibly with a number of fences or fixtures (or dowels) on the workarea to put your multiple workpieces on the workarea. You would only need to **zero the _workpiece zero_ position once** in such cases, as all different workpiece coordinate systems that you switch in between inside your program are contained in the same program and relate to each other.

But nowadays, in a CAD/CAM program, you can also use a function where you can also simply copy your virtual model many times to have several identical copies of it in your toolpath and subsequently in your exported g-code.

---

_[View the full topic](https://forum.onefinitycnc.com/t/storing-several-x-y-offsets/22617)._
