Télécharger rota_imp.procedur

Retour à la liste

Numérotation des lignes :

  1. * ROTA_IMP PROCEDUR PV090527 23/10/10 21:15:04 11748
  2. 'DEBPROC' ROTA_IMP monmail*'MAILLAGE' angle*'FLOTTANT' poin1*'POINT' poin2*'POINT';
  3. *
  4. * impose une condition de rotation d'un angle angle autour d'un axe poin1 poin2
  5. *
  6. * Attention la raideur fabriquee depend de l'angle
  7. * Attention ne fonctionne pas si il y a des points sur l'axe de rotation
  8. *
  9.  
  10.  
  11. *
  12.  
  13. 'DEPL' monmail 'TOUR' angle poin1 poin2;
  14.  
  15. coorx = 'COOR' 1 monmail;
  16. coory = 'COOR' 2 monmail;
  17. coorz = 'COOR' 3 monmail;
  18.  
  19. 'DEPL' monmail 'TOUR' (angle * -1) poin1 poin2;
  20.  
  21. axe = poin2 'MOIN' poin1;
  22. axe = axe / ('NORM' axe);
  23. axex = 'COOR' 1 axe;
  24. axey = 'COOR' 2 axe;
  25. axez = 'COOR' 3 axe;
  26. poin1x = poin1 'COOR' 1;
  27. poin1y = poin1 'COOR' 2;
  28. poin1z = poin1 'COOR' 3;
  29.  
  30. * vecteur radial apres rotation
  31. coorx = coorx - poin1x;
  32. coory = coory - poin1y;
  33. coorz = coorz - poin1z;
  34.  
  35. * normale au vecteur radial et a l'axe de rotation
  36. norm1x = (axey * coorz) - (axez * coory);
  37. norm1y = (axez * coorx) - (axex * coorz);
  38. norm1z = (axex * coory) - (axey * coorx);
  39. normch = (norm1x 'NOMC' 'UX') et (norm1y 'NOMC' 'UY') et (norm1z 'NOMC' 'UZ');
  40.  
  41. * matrice de blocage dans la direction normale
  42. *rrota = 'BLOQ' monmail 'DIRE' normch;
  43. rrota = 'RELA' normch;
  44.  
  45. * coordonnees initiales
  46. coorx = 'COOR' 1 monmail;
  47. coory = 'COOR' 2 monmail;
  48. coorz = 'COOR' 3 monmail;
  49. coorx = coorx - poin1x;
  50. coory = coory - poin1y;
  51. coorz = coorz - poin1z;
  52. coorch = ((coorx 'NOMC' 'UX') et (coory 'NOMC' 'UY') et (coorz 'NOMC' 'UZ')) ;
  53.  
  54. * second membre
  55. lrota = rrota * (coorch * -1);
  56.  
  57. 'FINP' rrota lrota;
  58.  
  59.  
  60.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales