please how can I change the orientation of a segment without changing its axes?
because I want the axes of the segment to stay same as the global coordinate system, but I want the segment (especially human body parts from the repository) to face another directions.
lets say the body is facing the +X global system, and I want the body to face -X global and keeping the local X in the +X global.
It is possible but it is a very huge task. You would have to re-edit the coordinates of all the nodes in the body, probably modify all the joint orientations, wrapping surfaces, etc.
So i would not recomend it.
Depnding on your need, maybe defining a new node in each segment with the desired orientation would be enough. This is very easy to do.
lets say the axes for a certain node (for the foot segment) taken from the system was
{{0.8006758, 0.3454292, 0.4894864}, {-0.3777097, 0.925258, -0.03511455}, {-0.4650308, -0.1567684, 0.8713036}}
and another node for a different segment has the same orientation as the global {{1,0,0},{0,1,0},{0,0,1}}
how can I re-orient the first coordinate into the global one, in other words, what is the transformation method (algorithm) to change from a coordinate system into another?
Please have a look at this small script i think it does what you need
Main = {
// The actual body model goes in this folder
AnyFolder MyModel = {
// Global Reference Frame
AnyFixedRefFrame GlobalRef = {
AnyRefNode node={
sRel={0,0,0};
AnyDrawRefFrame drw={RGB={0,1,0};};
};
}; // Global reference frame
// Global Reference Frame
AnyFixedRefFrame GlobalRef2 = {
Axes=RotMat(0.3*pi,x)*RotMat(0.4*pi,y)*RotMat(0.6*pi,z);
AnyRefNode node={
sRel={0,0,0};
AnyDrawRefFrame drw={RGB={1,0,0};};
};
AnyRefNode node1={
sRel={0.5,0,0};
ARel=..GlobalRef.Axes*..GlobalRef2.Axes';
AnyDrawRefFrame drw={RGB={1,0,0};};
};
};
}; // MyModel
// The study: Operations to be performed on the model
AnyBodyStudy MyStudy = {
AnyFolder &Model = .MyModel;
Gravity = {0.0, -9.81, 0.0};
};
}; // Main