Télécharger @frenet.procedur

Retour à la liste

Numérotation des lignes :

  1. * @FRENET PROCEDUR KK2000 00/07/25 21:19:12 3910
  2. *-------------------------------------------------
  3. ****** PROCEDURE @FRENET ******
  4. *-------------------------------------------------
  5. *
  6. *
  7. * CETTE PROCEDURE A ETE MISE GRACIEUSEMENT
  8. * A DISPOSOTION DE LA COMMUNAUTE CASTEM2000
  9. * PAR M. LIBEYRE ( CEA/DSM/DRFC )
  10. *
  11. * TEL : ( 33 1 ) 42 25 46 03
  12. *
  13. *-------------------------------------------------
  14. *PROCEDURE @FRENET : CALCUL DU REPERE DE FRENET
  15. * LE LONG D'UNE LIGNE
  16. *-------------------------------------------------
  17. DEBPROC @FRENET GEO*MAILLAGE MOT1/MOT OEIL1/POINT;
  18. LOG1 = EXISTE MOT1;
  19. GEO1 = CHAN SEG2 GEO ;
  20. DIMGEO = VALEUR DIME ;
  21. SI (DIMGEO > 2);
  22. NEL = NBEL GEO1 ;
  23. NP = NBNO GEO1 ;
  24. IP = 1 ;
  25. REPETER BOUC1 (NEL - 1) ;
  26. IP = IP + 1 ;
  27. * mess 'ip =' ip ;
  28. EIP1 = GEO1 ELEM (IP - 1 ) ;
  29. PI1 = EIP1 POIN INITIAL ;
  30. EIP2 = GEO1 ELEM IP ;
  31. PIP = EIP2 POIN INITIAL ;
  32. PI2 = EIP2 POIN FINAL ;
  33. LII = EIP1 ET EIP2 ;
  34. V1 = MOIN PI1 PIP ;
  35. V2 = MOIN PIP PI2 ;
  36. V4 = V1 PVEC V2 ;
  37. SI ((NORM V4) < ((NORM V1) * 1.E-5));
  38. SI (IP < NEL);
  39. INCR = IP;
  40. REPETER BOUC2 ;
  41. INCR = INCR + 1 ;
  42. * MESS ' INCR = ' INCR;
  43. ELE1 = GEO1 ELEM INCR ;
  44. PT2 = ELE1 POIN FINAL ;
  45. V22 = MOIN PIP PT2 ;
  46. V42 = V1 PVEC V22 ;
  47. SI ((NORM V42) > ((NORM V1) * 1.E-5)) ;
  48. QUITTER BOUC2 ;
  49. FINSI ;
  50. SI (INCR EGA NEL) ;
  51. V42 = V1 PVEC (1. 0. 0.) ;
  52. SI ((NORM V42) > ((NORM V1) * 1.E-5)) ;
  53. * MESS 'PERPENDICULAIRE A L AXE X';
  54. QUITTER BOUC2 ;
  55. SINON ;
  56. V42 = V1 PVEC (0. -1. 0.) ;
  57. * MESS 'PERPENDICULAIRE A L AXE Y';
  58. QUITTER BOUC2 ;
  59. FINSI ;
  60. FINSI ;
  61. FIN BOUC2 ;
  62. V4 = V42 ;
  63. SINON ;
  64. * MESS ' DERNIER VECTEUR ';
  65. V4 = BPI;
  66. FINSI;
  67. FINSI;
  68. NV4 = NORM V4 ;
  69. BPI = V4 * ( 1. / NV4 ) ;
  70. CHBI = MANU CHPO PIP 3 'BX' (COOR 1 BPI)
  71. 'BY' (COOR 2 BPI)
  72. 'BZ' (COOR 3 BPI) NATURE DISCRET;
  73. V4 = BPI PVEC V1 ;
  74. V5 = BPI PVEC V2 ;
  75. V6 = V4 PLUS V5 ;
  76. NPI = -1. * (V6/(NORM V6)) ;
  77. CHNI = MANU CHPO PIP 3 'NX' (COOR 1 NPI)
  78. 'NY' (COOR 2 NPI)
  79. 'NZ' (COOR 3 NPI) NATURE DISCRET ;
  80. TPI = NPI PVEC BPI ;
  81. CHTI = MANU CHPO PIP 3 'TX' (COOR 1 TPI)
  82. 'TY' (COOR 2 TPI)
  83. 'TZ' (COOR 3 TPI) NATURE DISCRET;
  84. SI (EGA IP 2) ;
  85. CHB = CHBI ;
  86. CHN = CHNI ;
  87. CHT = CHTI ;
  88. SINON ;
  89. CHB = CHB ET CHBI ;
  90. CHN = CHN ET CHNI ;
  91. CHT = CHT ET CHTI ;
  92. FINSI ;
  93. FIN BOUC1 ;
  94. * MESS 'ELEMENT N0 1' ;
  95. EI1 = GEO1 ELEM 1 ;
  96. PI1 = EI1 POIN INITIAL ;
  97. P2 = EI1 POIN FINAL ;
  98. EL2 = GEO1 ELEM 2 ;
  99. EL3 = GEO1 ELEM 3 ;
  100. EL4 = GEO1 ELEM 4 ;
  101. CHT2 = REDU CHT EL2 ;
  102. CHT3 = REDU CHT EL3 ;
  103. CHT4 = REDU CHT EL4 ;
  104. CHN2 = REDU CHN EL2 ;
  105. CHN3 = REDU CHN EL3 ;
  106. CHN4 = REDU CHN EL4 ;
  107. CHB2 = REDU CHB EL2 ;
  108. CHB3 = REDU CHB EL3 ;
  109. CHB4 = REDU CHB EL4 ;
  110. DS2 R2 T2 ALPHA2 BETA2 = @COUTOR1 EL2 CHT2 CHN2 CHB2 ;
  111. DS3 R3 T3 ALPHA3 BETA3 = @COUTOR1 EL3 CHT3 CHN3 CHB3 ;
  112. DS4 R4 T4 ALPHA4 BETA4 = @COUTOR1 EL4 CHT4 CHN4 CHB4 ;
  113. DS1 = NORM (MOIN PI1 P2) ;
  114. RAP12 = (DS1+DS2)/2;
  115. RAP23 = (DS2+DS3)/2;
  116. RAP34 = (DS3+DS4)/2;
  117. PR2 = (R3-R2)/RAP23;
  118. PR3 = (R4-R3)/RAP34;
  119. PT2 = (T3-T2)/RAP23;
  120. PT3 = (T4-T3)/RAP34;
  121. RAP = (DS1+(2*DS2)+DS3)/(DS2+(2*DS3)+DS4);
  122. PR1 = PR2+((PR2-PR3)*RAP);
  123. R1 = R2-(PR1*RAP12);
  124. ALPHA1 = -1. * (DS1/R1)* (180. / PI);
  125. SI (T2 > 1.E98);
  126. BETA1 = 0. ;
  127. FINSI ;
  128. SI (T3 > 1.E98) ;
  129. SI (T2 > 1.E98);
  130. BETA1 = 0. ;
  131. SINON ;
  132. TT1 = (1./T2) (1. + RAP) ;
  133. T1 = 1./TT1 ;
  134. BETA1 = (DS1/T1)*180/PI;
  135. FINSI ;
  136. FINSI ;
  137. SI ((T2 < 1.E98) ET (T3 < 1.E98)) ;
  138. PT1 = PT2+((PT2-PT3)*RAP);
  139. T1 = T2-(PT1*RAP12);
  140. BETA1 = (DS1/T1)*180./PI ;
  141. FINSI ;
  142. NXI2 = EXTR CHN NX P2 ;
  143. NYI2 = EXTR CHN NY P2 ;
  144. NZI2 = EXTR CHN NZ P2 ;
  145. VN2 = NXI2 NYI2 NZI2 ;
  146. TXI2 = EXTR CHT TX P2 ;
  147. TYI2 = EXTR CHT TY P2 ;
  148. TZI2 = EXTR CHT TZ P2 ;
  149. VT2 = TXI2 TYI2 TZI2 ;
  150. BXI2 = EXTR CHB BX P2 ;
  151. BYI2 = EXTR CHB BY P2 ;
  152. BZI2 = EXTR CHB BZ P2 ;
  153. VB2 = BXI2 BYI2 BZI2 ;
  154. VN = (VN2 * (COS BETA1)) PLUS (VB2 * (SIN BETA1)) ;
  155. VB1 = (VN2 * (-1.*(SIN BETA1))) PLUS (VB2 * (COS BETA1)) ;
  156. VT1 = (VT2 * (COS ALPHA1)) PLUS (VN * (SIN ALPHA1)) ;
  157. VN1 = (VT2 * (-1.*(SIN ALPHA1))) PLUS (VN * (COS ALPHA1)) ;
  158. CHTI = MANU CHPO PI1 3 'TX' (COOR 1 VT1)
  159. 'TY' (COOR 2 VT1)
  160. 'TZ' (COOR 3 VT1) NATURE DISCRET;
  161. CHT = CHT ET CHTI ;
  162. CHNI = MANU CHPO PI1 3 'NX' (COOR 1 VN1)
  163. 'NY' (COOR 2 VN1)
  164. 'NZ' (COOR 3 VN1) NATURE DISCRET;
  165. CHN = CHN ET CHNI ;
  166. CHBI = MANU CHPO PI1 3 'BX' (COOR 1 VB1)
  167. 'BY' (COOR 2 VB1)
  168. 'BZ' (COOR 3 VB1) NATURE DISCRET;
  169. CHB = CHB ET CHBI ;
  170. * MESS 'ELEMENT N0 NEL' ;
  171. EI1 = GEO1 ELEM NEL ;
  172. PI1 = EI1 POIN FINAL ;
  173. P2 = EI1 POIN INITIAL ;
  174. EL2 = GEO1 ELEM (NEL-1) ;
  175. EL3 = GEO1 ELEM (NEL-2) ;
  176. EL4 = GEO1 ELEM (NEL-3) ;
  177. CHT2 = REDU CHT EL2 ;
  178. CHT3 = REDU CHT EL3 ;
  179. CHT4 = REDU CHT EL4 ;
  180. CHN2 = REDU CHN EL2 ;
  181. CHN3 = REDU CHN EL3 ;
  182. CHN4 = REDU CHN EL4 ;
  183. CHB2 = REDU CHB EL2 ;
  184. CHB3 = REDU CHB EL3 ;
  185. CHB4 = REDU CHB EL4 ;
  186. DS2 R2 T2 ALPHA2 BETA2 = @COUTOR1 EL2 CHT2 CHN2 CHB2 ;
  187. DS3 R3 T3 ALPHA3 BETA3 = @COUTOR1 EL3 CHT3 CHN3 CHB3 ;
  188. DS4 R4 T4 ALPHA4 BETA4 = @COUTOR1 EL4 CHT4 CHN4 CHB4 ;
  189. DS1 = NORM (MOIN PI1 P2) ;
  190. RAP12 = (DS1+DS2)/2;
  191. RAP23 = (DS2+DS3)/2;
  192. RAP34 = (DS3+DS4)/2;
  193. PR2 = (R3-R2)/RAP23;
  194. PR3 = (R4-R3)/RAP34;
  195. PT2 = (T3-T2)/RAP23;
  196. PT3 = (T4-T3)/RAP34;
  197. RAP = (DS1+(2*DS2)+DS3)/(DS2+(2*DS3)+DS4);
  198. PR1 = PR2+((PR2-PR3)*RAP);
  199. R1 = R2-(PR1*RAP12);
  200. ALPHA1 = (DS1/R1)*180./PI;
  201. SI (T2 > 1.E98);
  202. BETA1 = 0. ;
  203. FINSI ;
  204. SI (T3 > 1.E98) ;
  205. SI (T2 > 1.E98);
  206. BETA1 = 0. ;
  207. SINON ;
  208. TT1 = (1./T2) (1. + RAP) ;
  209. T1 = 1./TT1 ;
  210. BETA1 = -1.*(DS1/T1)*180/PI;
  211. FINSI ;
  212. FINSI ;
  213. SI ((T2 < 1.E98) ET (T3 < 1.E98)) ;
  214. PT1 = PT2+((PT2-PT3)*RAP);
  215. T1 = T2-(PT1*RAP12);
  216. BETA1 = -1.*(DS1/T1)*180/PI ;
  217. FINSI ;
  218. NXI2 = EXTR CHN NX P2 ;
  219. NYI2 = EXTR CHN NY P2 ;
  220. NZI2 = EXTR CHN NZ P2 ;
  221. VN2 = NXI2 NYI2 NZI2 ;
  222. TXI2 = EXTR CHT TX P2 ;
  223. TYI2 = EXTR CHT TY P2 ;
  224. TZI2 = EXTR CHT TZ P2 ;
  225. VT2 = TXI2 TYI2 TZI2 ;
  226. BXI2 = EXTR CHB BX P2 ;
  227. BYI2 = EXTR CHB BY P2 ;
  228. BZI2 = EXTR CHB BZ P2 ;
  229. VB2 = BXI2 BYI2 BZI2 ;
  230. VT1 = ((VT2 * (COS ALPHA1)) PLUS (VN2 * (SIN ALPHA1))) ;
  231. VN = (VT2 * (-1. * (SIN ALPHA1))) PLUS (VN2 * (COS ALPHA1)) ;
  232. VB = VB2 ;
  233. VN1 = (VN * (COS BETA1)) PLUS (VB * (SIN BETA1)) ;
  234. VB1 = (VN * (-1. * (SIN BETA1))) PLUS (VB * (COS BETA1)) ;
  235. CHTI = MANU CHPO PI1 3 'TX' (COOR 1 VT1)
  236. 'TY' (COOR 2 VT1)
  237. 'TZ' (COOR 3 VT1) NATURE DISCRET ;
  238. CHT = CHT ET CHTI ;
  239. CHNI = MANU CHPO PI1 3 'NX' (COOR 1 VN1)
  240. 'NY' (COOR 2 VN1)
  241. 'NZ' (COOR 3 VN1) NATURE DISCRET;
  242. CHN = CHN ET CHNI ;
  243. CHBI = MANU CHPO PI1 3 'BX' (COOR 1 VB1)
  244. 'BY' (COOR 2 VB1)
  245. 'BZ' (COOR 3 VB1) NATURE DISCRET;
  246. CHB = CHB ET CHBI ;
  247. COX COY COZ = COOR GEO ;
  248. XMAX = MAXI COX ;
  249. YMAX = MAXI COY ;
  250. ZMAX = MAXI COZ ;
  251. XMIN = MINI COX ;
  252. YMIN = MINI COY ;
  253. ZMIN = MINI COZ ;
  254. DL = (((XMAX - XMIN)**2) + ((YMAX -YMIN)**2) +
  255. ((ZMAX -ZMIN)**2))**0.5 ;
  256. AMP = DL/10. ;
  257. VT = VECT CHT AMP TX TY TZ ROUGE ;
  258. VN = VECT CHN AMP NX NY NZ VERT ;
  259. VB = VECT CHB AMP BX BY BZ JAUNE ;
  260. SI (LOG1 EGA VRAI);
  261. TITRE 'REPERE DE FRENET DE LA LIGNE' ;
  262. TRAC OEIL1 QUAL (VT ET VN ET VB) GEO1 ;
  263. FINSI;
  264. SINON ;
  265. NEL = NBEL GEO1;
  266. NP = NBNO GEO1;
  267. O = 0. 0.;
  268. IP = 1;
  269. REPETER BOUC2 (NEL - 1);
  270. IP =IP+1;
  271. * MESS ' IP = ' IP;
  272. EIP1 = GEO1 ELEM (IP-1);
  273. PI1 = EIP1 POIN INITIAL ;
  274. EIP2 = GEO1 ELEM IP ;
  275. PIP = EIP2 POIN INITIAL ;
  276. PI2 = EIP2 POIN FINAL ;
  277. V1 = MOIN PIP PI1;
  278. V2 = MOIN PI2 PIP;
  279. V3 = V1 TOUR 90. O;
  280. V4 = V2 TOUR 90. O;
  281. V5 = V3 PLUS V4;
  282. NPI = V5 / (NORM V5);
  283. TPI = NPI TOUR (-1*90.) O;
  284. CHNI = MANU CHPO PIP 2 'NX' (COOR 1 NPI)
  285. 'NY' (COOR 2 NPI) NATURE DISCRET;
  286. CHTI = MANU CHPO PIP 2 'TX' (COOR 1 TPI)
  287. 'TY' (COOR 2 TPI) NATURE DISCRET;
  288. SI (EGA IP 2) ;
  289. CHN = CHNI ;
  290. CHT = CHTI ;
  291. SINON ;
  292. CHN = CHN ET CHNI ;
  293. CHT = CHT ET CHTI ;
  294. FINSI;
  295. CHB = MANU CHPO GEO1 2 'BX' 0. 'BY' 0. ;
  296. FIN BOUC2;
  297.  
  298. * MESS 'ELEMENT N0 1' ;
  299. EI1 = GEO1 ELEM 1 ;
  300. PI1 = EI1 POIN INITIAL ;
  301. P2 = EI1 POIN FINAL ;
  302. EL2 = GEO1 ELEM 2 ;
  303. EL3 = GEO1 ELEM 3 ;
  304. EL4 = GEO1 ELEM 4 ;
  305. CHT2 = REDU CHT EL2 ;
  306. CHT3 = REDU CHT EL3 ;
  307. CHT4 = REDU CHT EL4 ;
  308. CHN2 = REDU CHN EL2 ;
  309. CHN3 = REDU CHN EL3 ;
  310. CHN4 = REDU CHN EL4 ;
  311. CHB2 = REDU CHB EL2 ;
  312. CHB3 = REDU CHB EL3 ;
  313. CHB4 = REDU CHB EL4 ;
  314. DS2 R2 T2 ALPHA2 BETA2 = @COUTOR1 EL2 CHT2 CHN2 CHB2 ;
  315. DS3 R3 T3 ALPHA3 BETA3 = @COUTOR1 EL3 CHT3 CHN3 CHB3 ;
  316. DS4 R4 T4 ALPHA4 BETA4 = @COUTOR1 EL4 CHT4 CHN4 CHB4 ;
  317. DS1 = NORM (MOIN PI1 P2) ;
  318. RAP12 = (DS1+DS2)/2;
  319. RAP23 = (DS2+DS3)/2;
  320. RAP34 = (DS3+DS4)/2;
  321. PR2 = (R3-R2)/RAP23;
  322. PR3 = (R4-R3)/RAP34;
  323. RAP = (DS1+(2*DS2)+DS3)/(DS2+(2*DS3)+DS4);
  324. PR1 = PR2+((PR2-PR3)*RAP);
  325. R1 = R2-(PR1*RAP12);
  326. ALPHA1 = -1. * (DS1/R1)* (180. / PI);
  327. NXI2 = EXTR CHN NX P2 ;
  328. NYI2 = EXTR CHN NY P2 ;
  329. VN2 = NXI2 NYI2 ;
  330. TXI2 = EXTR CHT TX P2 ;
  331. TYI2 = EXTR CHT TY P2 ;
  332. VT2 = TXI2 TYI2 ;
  333. BXI2 = EXTR CHB BX P2 ;
  334. BYI2 = EXTR CHB BY P2 ;
  335. VB2 = BXI2 BYI2 ;
  336. VT1 = (VT2 * (COS ALPHA1)) PLUS (VN2 * (SIN ALPHA1)) ;
  337. VN1 = (VT2 * (-1. * (SIN ALPHA1))) PLUS (VN2 * (COS ALPHA1)) ;
  338. VB = VB2 ;
  339. CHTI = MANU CHPO PI1 2 'TX' (COOR 1 VT1)
  340. 'TY' (COOR 2 VT1) NATURE DISCRET;
  341. CHT = CHT ET CHTI ;
  342. CHNI = MANU CHPO PI1 2 'NX' (COOR 1 VN1)
  343. 'NY' (COOR 2 VN1) NATURE DISCRET;
  344. CHN = CHN ET CHNI ;
  345.  
  346. * MESS 'ELEMENT N0 NEL' ;
  347. EI1 = GEO1 ELEM NEL ;
  348. PI1 = EI1 POIN FINAL ;
  349. P2 = EI1 POIN INITIAL ;
  350.  
  351. EL2 = GEO1 ELEM (NEL-1) ;
  352. EL3 = GEO1 ELEM (NEL-2) ;
  353. EL4 = GEO1 ELEM (NEL-3) ;
  354. CHT2 = REDU CHT EL2 ;
  355. CHT3 = REDU CHT EL3 ;
  356. CHT4 = REDU CHT EL4 ;
  357. CHN2 = REDU CHN EL2 ;
  358. CHN3 = REDU CHN EL3 ;
  359. CHN4 = REDU CHN EL4 ;
  360. CHB2 = REDU CHB EL2 ;
  361. CHB3 = REDU CHB EL3 ;
  362. CHB4 = REDU CHB EL4 ;
  363. DS2 R2 T2 ALPHA2 BETA2 = @COUTOR1 EL2 CHT2 CHN2 CHB2 ;
  364. DS3 R3 T3 ALPHA3 BETA3 = @COUTOR1 EL3 CHT3 CHN3 CHB3 ;
  365. DS4 R4 T4 ALPHA4 BETA4 = @COUTOR1 EL4 CHT4 CHN4 CHB4 ;
  366. DS1 = NORM (MOIN PI1 P2) ;
  367. RAP12 = (DS1+DS2)/2;
  368. RAP23 = (DS2+DS3)/2;
  369. RAP34 = (DS3+DS4)/2;
  370. PR2 = (R3-R2)/RAP23;
  371. PR3 = (R4-R3)/RAP34;
  372. RAP = (DS1+(2*DS2)+DS3)/(DS2+(2*DS3)+DS4);
  373. PR1 = PR2+((PR2-PR3)*RAP);
  374. R1 = R2-(PR1*RAP12);
  375. ALPHA1 = (DS1/R1)*180./PI;
  376. NXI2 = EXTR CHN NX P2 ;
  377. NYI2 = EXTR CHN NY P2 ;
  378. VN2 = NXI2 NYI2 ;
  379. TXI2 = EXTR CHT TX P2 ;
  380. TYI2 = EXTR CHT TY P2 ;
  381. VT2 = TXI2 TYI2 ;
  382. VT1 = ((VT2 * (COS ALPHA1)) PLUS (VN2 * (SIN ALPHA1))) ;
  383. VN1 = (VT2 * (-1. * (SIN ALPHA1))) PLUS (VN2 * (COS ALPHA1)) ;
  384. CHTI = MANU CHPO PI1 2 'TX' (COOR 1 VT1)
  385. 'TY' (COOR 2 VT1) NATURE DISCRET;
  386. CHT = CHT ET CHTI ;
  387. CHNI = MANU CHPO PI1 2 'NX' (COOR 1 VN1)
  388. 'NY' (COOR 2 VN1) NATURE DISCRET;
  389. CHN = CHN ET CHNI ;
  390.  
  391. COX COY = COOR GEO ;
  392. XMAX = MAXI COX ;
  393. YMAX = MAXI COY ;
  394. XMIN = MINI COX ;
  395. YMIN = MINI COY ;
  396. DL = (((XMAX - XMIN)**2) + ((YMAX -YMIN)**2))**0.5 ;
  397. AMP = DL/10. ;
  398. VT = VECT CHT AMP TX TY ROUGE ;
  399. VN = VECT CHN AMP NX NY VERT ;
  400. SI (LOG1 EGA VRAI);
  401. TITRE 'REPERE DE FRENET DE LA LIGNE' ;
  402. TRAC QUAL (VN ET VT) GEO1;
  403. FINSI;
  404. FINSI ;
  405. FINPROC CHT CHN CHB ;
  406.  

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