Télécharger @carene.procedur

Retour à la liste

Numérotation des lignes :

  1. * @CARENE PROCEDUR CB215821 15/12/02 21:15:01 8719
  2. ************************************************************************
  3. *-----------------------------------------------------------------------
  4. *
  5. * PROCEDURE CARENE (ECRITE PAR MR MALEYRAN ) MLN/CERN JANVIER 91
  6. *
  7. *
  8. * CONTRUCTION D'UNE COQUE LISSEE PAR LA METHODE D'ENERGIE MINIMUM DE
  9. * DEFORMATION (ECRITE PAR MR MALEYRAN
  10. *
  11. *-----------------------------------------------------------------------
  12. *
  13. * ENTREE COU EST UNE TABLE TELLE QUE:
  14. *
  15. *
  16. *
  17. * COU.1 MAILLAGE DE TYPE LIGNE SEG2 REPRESENTANT LE COUPLE
  18. * INITIAL DE LA COQUE.
  19. * (COU_1 EST LE MAITRE_COUPLE DANS UN PLAN DONT LA NORMALE EST
  20. * LA DIRECTION PRINCIPALE DES LISSES
  21. *
  22. * COU.2 MAILLAGE DE TYPE LIGNE SEG2 REPRESENTANT LE COUPLE
  23. * FINAL DE LA COQUE.
  24. * (COU.2 EST LE COUPLE FINAL QUELCONQUE DANS L'ESPACE 3D)
  25. *
  26. * COU.N MAILLAGE DE TYPE LIGNE SEG2 REPRESENTANT LE COUPLE
  27. * INTERMEDIAIRE DE RANG N DE LA COQUE.
  28. * (COU.3 EST UN COUPLE INTERMEDIAIRDE DANS UN PLAN PARALLELE
  29. * A YOZ C'EST A DIRE OX = CONSTANT. OX DOIT ETRE UN MULTIPLE
  30. * DE N_COU)
  31. * (COU.1 COU.2 (COU.3) DOIVENT AVOIR LE MEME NOMBRE DE
  32. * POINTS ET ETRE PARCOURUES DANS LE MEME SENS).
  33. *
  34. * ROT_1 LISTREEL DES ROTATIONS IMPOSEES AU POINT
  35. * INITIAL DE COU.1
  36. * (LISTREEL DE DIMENSION 3 DONT LES VALEURS PEUVENT ETRE :
  37. * 0. < RX, RY, RZ <= 45. EN DEGRES (ROTATIONS IMPOSEES)
  38. * RX, RY, RZ, > 45. (ROTATIONS LIBRES))
  39. *
  40. * ROT_2 LISTREEL DES ROTATIONS IMPOSEES AU POINT
  41. * FINAL DE COU.2
  42. * (LISTREEL DE DIMENSION 3 DONT LES VALEURS PEUVENT ETRE :
  43. * 0. < RX, RY, RZ <= 45. EN DEGRES (ROTATIONS IMPOSEES)
  44. * RX, RY, RZ, > 45. (ROTATIONS LIBRES))
  45. *
  46. * N_COU FLOTTANT (DISTANCE ENTRE ELEMENTS DE LA COQUE)
  47. *
  48. * AXE_P ENTIER (DIRECTION DES LISSES)
  49. * 1 : SUIVANT OX
  50. * 2 : SUIVANT OY
  51. * 3 : SUIVANT OZ
  52. *
  53. *-----------------------------------------------------------------------
  54. *
  55. * SORTIE
  56. *
  57. * CARE_1 CARENE LISSEE
  58. * LIS TABLE DES LISSES
  59. * COUI table des couples
  60. *
  61. *-----------------------------------------------------------------------
  62. 'DEBP' @CARENE COU*'TABLE'
  63. ROT_1*'LISTREEL' ROT_2*'LISTREEL' N_COU*'FLOTTANT' AXE_P*'ENTIER' ;
  64. 'OPTI' 'DIME' 3 'ELEM' 'QUA4' 'MODE' 'TRIDIM' ;
  65. 'TITRE' ' LISSAGE DE CARENE (Energie de deform. mini.)' ;
  66. X = (0. 0. 0.) 'DROI' 1 ((N_COU * 5.) 0. 0.) ;
  67. Y = (0. 0. 0.) 'DROI' 1 (0. (N_COU * 5.) 0.) ;
  68. Z = (0. 0. 0.) 'DROI' 1 (0. 0. (N_COU * 5.)) ;
  69. X = X 'COUL' 'ROUG' ;
  70. Y = Y 'COUL' 'ROUG' ;
  71. Z = Z 'COUL' 'ROUG' ;
  72. O1 = 1E5 1E5 1E5 ;
  73. NCO = 'NBEL' COU.1 ;
  74. COU_1X = 'COOR' AXE_P COU.1 ;
  75. COU_2X = 'COOR' AXE_P COU.2 ;
  76. 'SI' ((MAXI COU_2X) < 0.) ;
  77. COE_1 = -1. ;
  78. 'SINON' ;
  79. COE_1 = 1. ;
  80. 'FINSI' ;
  81. COU_DX = (ABS COU_2X) - (ABS COU_1X) ;
  82. MAX_DX = 'MAXI' COU_DX ;
  83. NLI = (MAX_DX / N_COU) ;
  84. NLIE = 'ENTI' NLI ;
  85. 'SI' ((NLI - NLIE) < (N_COU / 1000.)) ;
  86. NLIE = NLIE ;
  87. 'SINON' ;
  88. NLIE = NLIE + 1 ;
  89. 'FINSI' ;
  90. I = 0 ;
  91. LIS = 'TABLE' ;
  92. BLO = 'TABLE' ;
  93. DIP = 'TABLE' ;
  94. 'REPETE' BOU_1 (NCO + 1) ;
  95. I = I + 1 ;
  96. P1X P1Y P1Z = 'COOR' (COU.1 'POIN' I) ;
  97. P2X P2Y P2Z = 'COOR' (COU.2 'POIN' I) ;
  98. *
  99. * LES LISSES SONT SUR OX
  100. *
  101. 'SI' ('EGA' AXE_P 1) ;
  102. *
  103. P12X = (ABS P2X) - (ABS P1X) ;
  104. N12 = (P12X / N_COU) ;
  105. N12E = 'ENTI' N12 ;
  106. 'SI' (N12E > 0) ;
  107. 'SI' ((N12 - N12E) < (N_COU / 1000.)) ;
  108. N12E = N12E ;
  109. MAI_1 = (P1X 0. 0.) DROI N12E (P2X 0. 0.) ;
  110. 'SINON' ;
  111. P2I = N12E * N_COU * COE_1 ;
  112. N12E = N12E + 1 ;
  113. MAI_1 = (P1X 0. 0.) DROI (N12E - 1) (P2I 0. 0.) DROI 1 (P2X 0. 0.) ;
  114. 'FINSI' ;
  115. 'SINON' ;
  116. MAI_1 = (P1X 0. 0.) DROI 1 (P2X 0. 0.) ;
  117. 'FINSI' ;
  118. NEI = 'NBEL' MAI_1 ;
  119. DEI = NLIE - NEI ;
  120. 'SI' ('EGA' DEI 0) ;
  121. 'SINON' ;
  122. INC1 = N_COU / 1000. ;
  123. * INC1 = 0.
  124. MAI_1 = MAI_1 'DROI' DEI ((P2X + INC1) 0. 0.) ;
  125. 'FINSI' ;
  126. J = 1 ;
  127. BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' 1) ;
  128. DIP.J = 'DEPI' BLO.J 0. ;
  129. J = J + 1 ;
  130. BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' 1) ;
  131. DIP.J = 'DEPI' BLO.J P1Y;
  132. J = J + 1 ;
  133. BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' 1) ;
  134. DIP.J = 'DEPI' BLO.J P1Z ;
  135. J = J + 1 ;
  136. BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' 'FINA') ;
  137. DIP.J = 'DEPI' BLO.J 0. ;
  138. J = J + 1 ;
  139. BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' 'FINA') ;
  140. DIP.J = 'DEPI' BLO.J P2Y;
  141. J = J + 1 ;
  142. BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' 'FINA') ;
  143. DIP.J = 'DEPI' BLO.J P2Z ;
  144. K = 'DIME' COU ;
  145. 'SI' (K > 2) ;
  146. CO1 = K - 2 ;
  147. L = 2 ;
  148. 'REPE' BOU_3 CO1 ;
  149. L = L + 1 ;
  150. P3X P3Y P3Z = 'COOR' (COU.L 'POIN' I) ;
  151. DENS N_COU ;
  152. LL1 = (P1X 0. 0.) DROI (P3X 0. 0.) ;
  153. NL1 = 'NBNO' LL1 ;
  154. J = J + 1 ;
  155. BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' NL1) ;
  156. DIP.J = 'DEPI' BLO.J 0. ;
  157. J = J + 1 ;
  158. BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' NL1) ;
  159. DIP.J = 'DEPI' BLO.J P3Y;
  160. J = J + 1 ;
  161. BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' NL1) ;
  162. DIP.J = 'DEPI' BLO.J P3Z ;
  163. 'FIN' BOU_3 ;
  164. 'FINSI' ;
  165. *
  166. 'FINSI';
  167. *
  168. * LES LISSES SONT SUR OY
  169. *
  170. 'SI' ('EGA' AXE_P 2) ;
  171. *
  172. P12Y = (ABS P2Y) - (ABS P1Y) ;
  173. N12 = (P12Y / N_COU) ;
  174. N12E = 'ENTI' N12 ;
  175. 'SI' (N12E > 0) ;
  176. 'SI' ((N12 - N12E) < (N_COU / 1000.)) ;
  177. N12E = N12E ;
  178. MAI_1 = (0. P1Y 0.) DROI N12E (0. P2Y 0.) ;
  179. 'SINON' ;
  180. P2I = N12E * N_COU * COE_1 ;
  181. N12E = N12E + 1 ;
  182. MAI_1 = (0. P1Y 0.) DROI (N12E - 1) (0. P2I 0.) DROI 1 (0. P2Y 0.) ;
  183. 'FINSI' ;
  184. 'SINON' ;
  185. MAI_1 = (0. P1Y 0.) DROI 1 (0. P2Y 0.) ;
  186. 'FINSI' ;
  187. NEI = 'NBEL' MAI_1 ;
  188. DEI = NLIE - NEI ;
  189. 'SI' ('EGA' DEI 0) ;
  190. 'SINON' ;
  191. INC1 = N_COU / 1000. ;
  192. MAI_1 = MAI_1 'DROI' DEI (0. (P2Y + INC1) 0.) ;
  193. 'FINSI' ;
  194. J = 1 ;
  195. BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' 1) ;
  196. DIP.J = 'DEPI' BLO.J P1X;
  197. J = J + 1 ;
  198. BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' 1) ;
  199. DIP.J = 'DEPI' BLO.J 0. ;
  200. J = J + 1 ;
  201. BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' 1) ;
  202. DIP.J = 'DEPI' BLO.J P1Z ;
  203. J = J + 1 ;
  204. BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' 'FINA') ;
  205. DIP.J = 'DEPI' BLO.J P2X;
  206. J = J + 1 ;
  207. BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' 'FINA') ;
  208. DIP.J = 'DEPI' BLO.J 0. ;
  209. J = J + 1 ;
  210. BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' 'FINA') ;
  211. DIP.J = 'DEPI' BLO.J P2Z ;
  212. K = 'DIME' COU ;
  213. 'SI' (K > 2) ;
  214. CO1 = K - 2 ;
  215. L = 2 ;
  216. 'REPE' BOU_3 CO1 ;
  217. L = L + 1 ;
  218. P3X P3Y P3Z = 'COOR' (COU.L 'POIN' I) ;
  219. DENS N_COU ;
  220. LL1 = (0. P1Y 0.) DROI (0. P3Y 0.) ;
  221. NL1 = 'NBNO' LL1 ;
  222. J = J + 1 ;
  223. BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' NL1) ;
  224. DIP.J = 'DEPI' BLO.J P3X;
  225. J = J + 1 ;
  226. BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' NL1) ;
  227. DIP.J = 'DEPI' BLO.J 0. ;
  228. J = J + 1 ;
  229. BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' NL1) ;
  230. DIP.J = 'DEPI' BLO.J P3Z ;
  231. 'FIN' BOU_3 ;
  232. 'FINSI' ;
  233. *
  234. 'FINSI' ;
  235. *
  236. * LES LISSES SONT SUR OZ
  237. *
  238. 'SI' ('EGA' AXE_P 3) ;
  239. *
  240. P12Z = (ABS P2Z) - (ABS P1Z) ;
  241. N12 = (P12Z / N_COU) ;
  242. N12E = 'ENTI' N12 ;
  243. 'SI' (N12E > 0) ;
  244. 'SI' ((N12 - N12E) < (N_COU / 1000.)) ;
  245. N12E = N12E ;
  246. MAI_1 = (0. 0. P1Z) DROI N12E (0. 0. P2Z) ;
  247. 'SINON' ;
  248. P2I = N12E * N_COU * COE_1 ;
  249. N12E = N12E + 1 ;
  250. MAI_1 = (0. 0. P1Z) DROI (N12E - 1) (0. 0. P2I) DROI 1 (0. 0. P2Z) ;
  251. 'FINSI' ;
  252. 'SINON' ;
  253. MAI_1 = (0. 0. P1Z) DROI 1 (0. 0. P2Z) ;
  254. 'FINSI' ;
  255. NEI = 'NBEL' MAI_1 ;
  256. DEI = NLIE - NEI ;
  257. 'SI' ('EGA' DEI 0) ;
  258. 'SINON' ;
  259. INC1 = N_COU / 1000. ;
  260. MAI_1 = MAI_1 'DROI' DEI (0. 0. ( P2Z + INC1)) ;
  261. 'FINSI' ;
  262. J = 1 ;
  263. BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' 1) ;
  264. DIP.J = 'DEPI' BLO.J P1X;
  265. J = J + 1 ;
  266. BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' 1) ;
  267. DIP.J = 'DEPI' BLO.J P1Y;
  268. J = J + 1 ;
  269. BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' 1) ;
  270. DIP.J = 'DEPI' BLO.J 0. ;
  271. J = J + 1 ;
  272. BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' 'FINA') ;
  273. DIP.J = 'DEPI' BLO.J P2X;
  274. J = J + 1 ;
  275. BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' 'FINA') ;
  276. DIP.J = 'DEPI' BLO.J P2Y;
  277. J = J + 1 ;
  278. BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' 'FINA') ;
  279. DIP.J = 'DEPI' BLO.J 0. ;
  280. K = 'DIME' COU ;
  281. 'SI' (K > 2) ;
  282. CO1 = K - 2 ;
  283. L = 2 ;
  284. 'REPE' BOU_3 CO1 ;
  285. L = L + 1 ;
  286. P3X P3Y P3Z = 'COOR' (COU.L 'POIN' I) ;
  287. DENS N_COU ;
  288. LL1 = (0. 0. P1Z) DROI (0. 0. P3Z) ;
  289. NL1 = 'NBNO' LL1 ;
  290. J = J + 1 ;
  291. BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' NL1) ;
  292. DIP.J = 'DEPI' BLO.J P3X;
  293. J = J + 1 ;
  294. BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' NL1) ;
  295. DIP.J = 'DEPI' BLO.J P3Y;
  296. J = J + 1 ;
  297. BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' NL1) ;
  298. DIP.J = 'DEPI' BLO.J 0. ;
  299. 'FIN' BOU_3 ;
  300. 'FINSI' ;
  301. *
  302. 'FINSI' ;
  303. *
  304. ROT1 = 'EXTR' ROT_1 1 ;
  305. ROT2 = 'EXTR' ROT_1 2 ;
  306. ROT3 = 'EXTR' ROT_1 3 ;
  307. COE = PI / 180. ;
  308. 'SI' (ROT1 '&lt;EG' 45.) ;
  309. J = J + 1 ;
  310. BLO.J = 'BLOQ' 'RX' (MAI_1 'POIN' 1) ;
  311. DIP.J = 'DEPI' BLO.J (ROT1 * COE) ;
  312. 'FINSI' ;
  313. 'SI' (ROT2 '&lt;EG' 45.) ;
  314. J = J + 1 ;
  315. BLO.J = 'BLOQ' 'RY' (MAI_1 'POIN' 1) ;
  316. DIP.J = 'DEPI' BLO.J (ROT2 * COE) ;
  317. 'FINSI' ;
  318. 'SI' (ROT3 '&lt;EG' 45.) ;
  319. J = J + 1 ;
  320. BLO.J = 'BLOQ' 'RZ' (MAI_1 'POIN' 1) ;
  321. DIP.J = 'DEPI' BLO.J (ROT3 * COE) ;
  322. 'FINSI' ;
  323. ROT1 = 'EXTR' ROT_2 1 ;
  324. ROT2 = 'EXTR' ROT_2 2 ;
  325. ROT3 = 'EXTR' ROT_2 3 ;
  326. 'SI' (ROT1 '&lt;EG' 45.) ;
  327. J = J + 1 ;
  328. BLO.J = 'BLOQ' 'RX' (MAI_1 'POIN' 'FINA') ;
  329. DIP.J = 'DEPI' BLO.J (ROT1 * COE) ;
  330. 'FINSI' ;
  331. 'SI' (ROT2 '&lt;EG' 45.) ;
  332. J = J + 1 ;
  333. BLO.J = 'BLOQ' 'RY' (MAI_1 'POIN' 'FINA') ;
  334. DIP.J = 'DEPI' BLO.J (ROT2 * COE) ;
  335. 'FINSI' ;
  336. 'SI' (ROT3 '&lt;EG' 45.) ;
  337. J = J + 1 ;
  338. BLO.J = 'BLOQ' 'RZ' (MAI_1 'POIN' 'FINA') ;
  339. DIP.J = 'DEPI' BLO.J (ROT3 * COE) ;
  340. 'FINSI' ;
  341. BLOT = @STBL BLO ;
  342. DIPT = @STBL DIP ;
  343. MS = 'TEXT' 'MECANIQUE ELASTIQUE' ;
  344. AFF1 = 'MODE' MAI_1 MS 'POUTRE' ;
  345. MAT1 = 'MATE' AFF1 'YOUN' 1. 'NU' .3 ;
  346. CAR1 = 'CARA' AFF1 'SECT' 1. 'INRY' 1. 'INRZ' 1. 'TORS' 2. ;
  347. RIG1 = 'RIGI' AFF1 (MAT1 ET CAR1);
  348. RIGT = RIG1 'ET' BLOT ;
  349. DEP1 = 'RESO' RIGT DIPT ;
  350. LIS.I = MAI_1 'PLUS' DEP1 ;
  351. 'FIN' BOU_1 ;
  352. BOR = 'TABLE' ;
  353. I = 0 ;
  354. 'REPE' BOU_2 NCO ;
  355. I = I + 1 ;
  356. BOR.I = LIS.I 'REGL' 1 LIS.(I + 1) ;
  357. 'FIN' BOU_2 ;
  358. CARE_1 = @STBL BOR ;
  359. COUI = 'TABLE' ;
  360. I = 0 ;
  361. 'REPE' BOU_10 NLIE ;
  362. I = I + 1 ;
  363. J = 1 ;
  364. 'REPE' BOU_11 NCO ;
  365. J = J + 1 ;
  366. 'SI' ('EGA' J 2) ;
  367. PCOU = (LIS.(J - 1) POIN I) DROI 1 (LIS.J POIN I) ;
  368. 'SINON' ;
  369. PCOU = PCOU 'ET' ((LIS.(J - 1) POIN I) DROI 1 (LIS.J POIN I)) ;
  370. 'FINSI' ;
  371. COUI.I = PCOU ;
  372. 'FIN' BOU_11 ;
  373. 'FIN' BOU_10 ;
  374. 'ELIM' (N_COU / 100.) CARE_1 ;
  375. CARE_1 = 'REGE' CARE_1 ;
  376. LMOT = CARE_1 'ELEM' 'TYPE' ;
  377. DLMOT = 'DIME' LMOT ;
  378. 'SI' ('EGA' DLMOT 1) ;
  379. CARE_1Q = CARE_1 'ELEM' 'QUA4' ;
  380. CARE_1 = CARE_1Q ;
  381. 'FINSI' ;
  382. 'SI' ('EGA' DLMOT 2) ;
  383. CARE_1Q = CARE_1 'ELEM' 'QUA4' ;
  384. CARE_1T = CARE_1 'ELEM' 'TRI3' ;
  385. CARE_1T = 'REGE' CARE_1T ;
  386. CARE_1T = CARE_1T 'ELEM' 'TRI3' ;
  387. CARE_1 = CARE_1Q 'ET' CARE_1T ;
  388. 'FINSI' ;
  389. CARE_1 = CARE_1 'COUL' 'TURQ' ;
  390. 'TRAC' O1 'CACH' 'QUAL' (CARE_1 ET X ET Y ET Z) ;
  391. *
  392. 'FINPROC' CARE_1 LIS COUI ;
  393.  

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