Transformation

Constraints

Error MessageOCL Expression
constraints
var outx,outy,outz,outux,outuy,outuz;
var anglist = angin.split('|||');
var ux,uy,uz,angle,vector;

var xu2,yu2,zu2,xt2,yt2,zt2;
xu2 = xu;
yu2 = yu;
zu2 = zu;
xt2 = xt;
yt2 = yt;
zt2 = zt;                                  
                               
              
if(anglist.length >= 2) {
  anglist.pop();
  for (var i = 0; i < anglist.length; i++) {
    angle = parseFloat(anglist[i].split('|')[0]);
    vector = anglist[i].split('|')[1];
    ux = parseFloat(vector.split(',')[0]);
    uy = parseFloat(vector.split(',')[1]);
    uz = parseFloat(vector.split(',')[2]);

    outx = xt2*Math.cos(angle*Math.PI/180) + (uy*zt2 -uz*yt2)*Math.sin(angle*Math.PI/180) + (1-Math.cos(angle*Math.PI/180))*(ux*xt2+uy*yt2+uz*zt2)*ux;
    outy = yt2*Math.cos(angle*Math.PI/180) + (uz*xt2 -ux*zt2)*Math.sin(angle*Math.PI/180) + (1-Math.cos(angle*Math.PI/180))*(ux*xt2+uy*yt2+uz*zt2)*uy;
    outz = zt2*Math.cos(angle*Math.PI/180) + (ux*yt2 -uy*xt2)*Math.sin(angle*Math.PI/180) + (1-Math.cos(angle*Math.PI/180))*(ux*xt2+uy*yt2+uz*zt2)*uz;
    xt2 = outx
    yt2 = outy
    zt2 = outz
  
    outux = xu2*Math.cos(angle*Math.PI/180) + (uy*zu2 -uz*yu2)*Math.sin(angle*Math.PI/180) + (1-Math.cos(angle*Math.PI/180))*(ux*xu2+uy*yu2+uz*zu2)*ux;
    outuy = yu2*Math.cos(angle*Math.PI/180) + (uz*xu2 -ux*zu2)*Math.sin(angle*Math.PI/180) + (1-Math.cos(angle*Math.PI/180))*(ux*xu2+uy*yu2+uz*zu2)*uy;
    outuz = zu2*Math.cos(angle*Math.PI/180) + (ux*yu2 -uy*xu2)*Math.sin(angle*Math.PI/180) + (1-Math.cos(angle*Math.PI/180))*(ux*xu2+uy*yu2+uz*zu2)*uz;
    xu2 = outux
    yu2 = outuy
    zu2 = outuz
}           

}


xout = xin + xt2;
yout = yin + yt2;
zout = zin + zt2; 

aout = ain + xr + ang*xu;
bout = bin + yr + ang*yu;
cout = cin + zr + ang*zu;

var angles = '';
if(ang != 0) { 
angles = angin + ang.toString()+'|'+xu2.toString()+ ','+yu2.toString()+ ','+zu2.toString() + '|||';  
angout = angles;                                                                                
} else if(ang == 0){
angout = angin;
}

Back to top

Copyright © 2017-2026 Association for Manufacturing Technology (AMT). All rights reserved. MTConnect® is a trademark of AMT. Terms of Use.

MTConnect SysML Model V2.2