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
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
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]
: