Hi Steve. Thanks for you reply.
In fact, the solution I adopted is slightly different from that one I first suggested. Maybe if I explain my problem you will figure out why.
Here I have an NDT inspection cell assembled with 2 robots and 2 external axis. The robots are placed one in front of the other and the external axis perform translation and rotation of the inspected part in between the robots.
To help me defining the inspection pattern I use Mastercam and Robotmaster applications. Theese softwares need the part to be positioned in what is called “top” view, that is Z axis pointing to the tool main direction. For most of open shell parts, there is absolutly no problem in that.
The part I’m working with now is a cylinder and for convenience of monipulation, I attached it to the rotary axis. In the CAM software I need to define thw coordinate system as Z pointing to the radius, wich is the main tool path. X and Y are defined in the center of the cylinder and of the external axis, so it can rotate about the external axis without misalignment. Thus, the final coordinate system would be oriented as the baseframe of the robot.
So, there is the problem. To define X and Y axis on the cylinder shell it wold be better if I had a solid phisical point to use as reference. It is ok to define X1 and X2 marking the diameter of the cylinder, but Y would be “floating” in the air, because there is no reference point for the center.
As you confirmed, my solution was to rotate the wobj defined, but it could not be done simply by using OrientZYX, because as the part is attached to the trail, it is a coordinated wobj subordinated to the external axis baseframe. Above there are the code lines I used to perform the rotation correctly:
!Coordinated wobj defined by the flex pendant
TASK PERS wobjdata wCilindro:=[FALSE,FALSE,“M8DM1”,[[1440,2400,485],[1,0,0,0]],[[18.1519,-168.862,-594.504],[0.69516,-0.023002,0.718019,-0.0259393]]];
! dynamic wobj to be used in the isnpection routine
PERS wobjdata wOrgR1:=[FALSE,FALSE,“M8DM1”,[[1440,2400,485],[1,0,0,0]],[[18.1519,-168.862,-594.504],[0.705121,-0.0359002,-0.0130411,-0.708058]]];
!Rotation angles
VAR num Rx;
VAR num Ry;
VAR num Rz;
! Transformation pose used to move from une coord system to other
PERS pose wtransf := [[0,0,0],[0.5, 0.5, -0.5, -0.5]];
! Loads the robot defined cylinder wobj
wOrgR1 := wCilindro;
! Loads original axis orientations
Rz := EulerZYX(, wCilindro.oframe.rot);
Ry := EulerZYX(Y, wCilindro.oframe.rot);
Rx := EulerZYX(X, wCilindro.oframe.rot);
! Final orientation = Baserfrmae R1 + WobjRot + ExtAxisRot
! New orientation parameter according to the original wobj
Rz := -90;
Ry := 0;
Rx := 90;
! Calculates the transformation that would lead to the desired orientation
wtransf.rot := OrientZYX(Rz, Ry, Rx);
! Calculates the direct transformation from base frame to the new orientation, bypassing the original wobj.
! Sets the new orientation to the wobj to be used.
wOrgR1.oframe := PoseMult(wOrgR1.oframe, wtransf);
So, that was my solution. If somebody has an easier one, all tips are welcome!! 
Best regards
Leo