Defining/activating a coordinate system for fixture adaptation (#ACS)

The fixture adaptation coordinate system (ACS) compensates a sloping position of the workpiece or workpiece pallet. It is defined, selected and deselected in the same way as the machining coordinate system (CS).

Syntax of ACS programming

Defining and storing an ACS:

#ACS DEF [ [<ACS-ID>] ] [ <v1>,<v2>,<v3>,<φ1>,<φ2>,<φ3> ]

 

Define and store with simultaneous activation:

#ACS ON [ [<ACS-ID>] ] [ <v1>,<v2>,<v3>,<φ1>,<φ2>,<φ3>

#ACS ON [<ACS-ID>]

Selecting a stored ACS

#ACS ON

Selecting the last ACS defined

#ACS OFF

Deselecting the last ACS activated

Parameter ACS-ID may not be programmed here since it is only permitted to deselect the last ACS activated.

<ACS-ID>

Coordinate system ID. The ACS-ID is assigned the default value 1 at program start. If the CS-ID is not programmed with #CS DEF or #CS ON, the next free CS-ID is calculated automatically. ACS programmed in this way are not available again after they are deselected with #ACS OFF.

<vi>

Components of the translatory offset vector in [mm, inch]. (These refer to the main axes in the sequence contained in G17).

<φi>

Angle of rotation in [°].

 

Note: Separate the translation and rotation components by commas. Gaps in the sequence can be marked by consecutive commas ", ,". However, to improve legibility, we recommend programming these components with 0.

Example: [,,10,,,45] ↔ [0,0,10,0,0,45]

Abbreviated programming of components is also permissible:

Example: [0,0,10]            translation only

               [0,0,10,0,30]    rotation with 2 rotation angles

The ACS is modal and may be selected and deselected independent of a CS.

Zero offsets and reference point offsets may be programmed in the ACS. However, they are only valid until the ACS is deselected and they are not stored.

#ACS OFF ALL

Deselect all ACS

Programing Example

prg_example

ACS example 1

N005 P1 = 2

N010 #ACS DEF [1][P1,15,5,20,30,45](Define and store)

                                   (a CS under ID 1)

                                   (Relative offsets: X2, Y15, Z5)

                                   (Rotation about Z:45°Y‘: 30° X‘‘:20°)

N020 #ACS ON[1]                    (Activate ACS with ID 1)

:

N100 #ACS OFF                       (Deselect ACS with ID 1)

:

N200 P1=10

N210 #ACS ON [P1,15,5,2,3,60]       (Define and activate an ACS)

                                   (with the automatically defined ID 2)

:

N300 #ACS OFF    (Deselect the last ACS activated (ID2))

                 (Then the ACS is deleted with ID 2)

:

N400 M30

Programing Example

prg_example

ACS example 2

N5 P1 = 2

N10 #ACS DEF [1][10,15,5,2,3,4.5]     (Define and store)
                                      (an ACS with ID 1)

N20 #ACS DEF [3][0.15,5,2,3,4,5]     (Define and store)
                                     (an ACS with ID 3)

N30 #ACS DEF [P1+3][2*P1,1,2,0,30,30] (Define and store)
                                     (an ACS with ID 5)

N30 #ACS ON                           (Activate the ACS with the)
                                     (last ID 5 programmed)

:

N50 #ACS OFF

N60 #ACS ON[3]                     (Activate ACS with ID 3)

:

N80 #ACS OFF

N90 #ACS DEF [3][0.1. 2,1,3,0,0.3]     (Redefine the ACS with ID 3)

:

M30

Programing Example

prg_example

ACS example 3

If several coordinate systems are selected in succession, e.g. with ACS ON [...] (without ACS_ID), they form a new linked total ACS. This must be deselected step by step by corresponding #ACS OFF.

It is permitted to select the combined ACS with and without ACS IDs but it is not recommended for the sake of NC program clarity.

Example of multiple programming of ACS (without ACS_ID):

N010 #ACS ON [0,0,0,0,0,20]  (Define and activate an ACS with)
                            (automatically defined ID 1)

                            (No offsets, only rotation 20° about Z)

N020 #ACS ON [0,0,0,0,0,30]  (Define and activate an ACS with)
                            (automatically defined ID 2)

                            (No offsets, only rotation 30° about Z)

->(This results in a total ACS with a rotation of 50° about Z)

:

N100 #ACS OFF    (Deselect the ACS with ID 2, then the ACS is)

                (deleted with ID 2.)

->(ACS remains active with ID 1 with a rotation of 20° about Z)

:

N200 #ACS OFF    (Deselect the ACS with ID 1, then the ACS is)

                (deleted with ID 1 and all ACS are deselected.)

:

N400 M30