Transformation stack (#TRAFO STACK)

The #TRAFO STACK command permits the use of a specific transformation stack that is preconfigured in the channel parameters. [CHAN// Transformation stack parameters]. This allows you to create machine-specific combinations of Cartesian and kinematic transformations independently from the NC program. The #TRAFO STACK command therefore combines #TRAFO and several #(A|B)CS commands into a compact command.

Alternatively, coordinate systems (#CS/ #ACS/ #BCS) and a kinematic transformation can be grouped in the NC program.

It is possible to assign a group name and to activate and deactivate all group elements at the same time.

Notice

notice

Transformations are additional options and subject to the purchase of a license.

Syntax for Select a stored or configured stack:

#TRAFO STACK ON [NAME=<StackName>]

Syntax for Store/save a stack:

#TRAFO STACK DEF [NAME=<StackName> [KINSTEP1=<KinId>] [KINSTEP2=<KinId>]

                                         {ID=<Ident> GRP=<GrpId> [IDX=..] } ]

NAME=<StackName>

Configured or new name of the stack

KINSTEP1=<KinId>

Configured or new kinematic ID of the first step

KINSTEP2=<KinId>

Configured or new kinematic ID of the second step

 

Triplets to define Cartesian transformation groups, comprising:

ID=<Ident>

Name of the coordinate system. The ID must be defined in P-CHAN-00490.

GRP=<GrpId>

Group assignment of the coordinate system. Permitted parameters:

CS: #CS machining coordinate system

ACS: #ACS coordinate system

BCS: #BCS basic coordinate system

IDX=..

Optional, index or position within the specified group. Without a specified index, the next free index within the group is assigned.

10 triplets can be programmed. However, only a maximum of 5 per group.

Syntax for Deselect all Cartesian and kinematic transformations:

#TRAFO STACK OFF

The #TRAFO STACK ON [..] command deactivates all currently active Cartesian and kinematic transformations and activates all Cartesian and kinematic transformations assigned to this stack name.

If a transformation stack contains no kinematic transformation, previously active kinematic transformation are disabled.

At program start, all stacks are reset as defined by the parameters in the channels(P-CHAN-00752 to P-CHAN-00756).

After a transformation stack is activated, the activated transformation can still be changed by #TRAFO and #(A|B)CS.

The P-CHAN-00757 parameter automatically activates a transformation stack at program start.

Programing Example

prg_example

Defining and using a stack in NC program 1

All the CS IDs must already be defined in the channel parameter list.

%100

;channel test1 [0,0,0]

#TRAFO STACK DEF [NAME=STACK1 \

                  GRP=CS  ID=test1 \

                  GRP=ACS ID=test1 \

                  GRP=BCS ID=test1 ]

#TRAFO STACK ON [NAME=STACK1]

;transformation stack (from bottom to top):

;[0,0,0] = CS test1

;[0,0,0] = ACS test1

;[0,0,0] = BCS test1

:

Defining and using a stack in NC program 2

If CS IDs are not yet used in the program, they can be redefined.

%101

;channel parameter: test1 [0,0,0]

#TRAFO STACK DEF [NAME=STACK1 KINSTEP1=KIN1 \

                  GRP=CS ID=test1 \

                  GRP=ACS ID=test1 \

                  GRP=BCS ID=test1 ]

#CS DEF [test1][1,10,3] ;redefinition of test1 applies only to #CS

#TRAFO STACK ON [NAME=STACK1]

;transformation stack (from bottom to top):

;[1,10,3] = CS test1

;[0, 0,0] = ACS test1

;[0, 0,0] = BCS test1

;KIN1

:

Defining and using a stack in NC program 3

Up to 5 CS can be assigned to a group but the group must be explicitly specified for each ID.

%102

;channel parameter: test1 [0,0,0]

;channel parameter: test2 [10,10,10]

#TRAFO STACK DEF [NAME=STACK1 \

                  GRP=CS ID=test1 \

                  GRP=CS ID=test2 ]

#TRAFO STACK ON [NAME=STACK1]

;transformation stack (from bottom to top):

;[10,10,10] = CS test2

;[ 0, 0, 0] = CS test1

:

Using several stacks in the NC program

Up to 5 stacks can be defined in the channel.

%103

;channel parameter CS:

;basis [100,10,90]

;boffs [  0, 0, 0]

;aufsp [ 10,10,10]

;aoffs [  0, 0, 0]

;werks [  0, 0, 0]

;trafo_stack[0].name        acs

;trafo_stack[2].name        worko

;trafo_stack[2].kin[0]      KIN1

;trafo_stack[2].bcs.id[0]   basis

;trafo_stack[2].bcs.id[1]   boffs

;trafo_stack[2].acs.id[0]   aufsp

;trafo_stack[2].acs.id[1]   aoffs

;trafo_stack[2].cs.id[0]    werks

;trafo_stack[3].name        work

;trafo_stack[3].kin[0]      KIN1

;trafo_stack[3].bcs.id[0]   basis

;trafo_stack[3].acs.id[0]   aufsp

#TRAFO STACK ON [NAME=work]

;transformation stack (from bottom to top):

;aufsp [ 10,10,10]

;basis [100,10,90]

;KIN1

:

#TRAFO STACK OFF

#BCS DEF [boffs] [0.01, -0.05, 0.1]

#ACS DEF [aoffs] [-0.03, -0.02, 0.0]

#TRAFO STACK ON [NAME=worko]

;transformation stack (from bottom to top):

;aoffs [-0.03, -0.02, 0.0]

;aufsp [ 10,10,10]

;boffs [0.01, -0.05, 0.1]

;basis [100,10,90]

;KIN1

:

#TRAFO STACK OFF

#TRAFO STACK ON [NAME=acs]

: