Télécharger ch_thetx.procedur

Retour à la liste

Numérotation des lignes :

  1. * CH_THETX PROCEDUR JB251061 21/06/14 21:15:01 11034
  2. * =============================================================================
  3. *PROCEDURE DE CALCUL DU CHAMP THETA/PI EN XFEM
  4. *---------------------------------------------
  5. *
  6. * DESCRIPTION : PROCEDURE ANALOGUE A CH_THETA MAIS POUR LES ELEMENTS XFEM.
  7. * DETERMINE UN CHPOINT DE NORME CONSTANTE A L'INTERIEUR D'UNE
  8. * COURONNE ENTOURANT LE FRONT DE FISSURE ET NUL A L'EXTERIEUR DE
  9. * CETTE COURONNE. LE CHPOINT THETA AINSI DEFINI REPRESENTE LA
  10. * DIRECTION DE PROPAGATION EVENTUELLE DE LA FISSURE.
  11. * =============================================================================
  12. DEBP CH_THETX SUPTAB*TABLE OBJUTI*'TABLE' BOOL*'TABLE' ;
  13.  
  14. * RECUPERATION DE CERTAINES DONNEES
  15. GDIME = VALE 'DIME' ;
  16. GMODE = VALE 'DIME' ;
  17. MOD_MEC = OBJUTI.'MOD_MEC' ;
  18. MUI = EXTR (EXTR MOD_MEC 'DEPL') (LECT 1 PAS 1 GDIME) ;
  19. M_FRONT = OBJUTI.'FRONT' ;
  20.  
  21.  
  22. * I - COMPATIBILITE DES DONNEES
  23. * -----------------------------
  24.  
  25. SI (NON (EXIS SUPTAB 'MAILLAGE')) ;
  26. MESS 'ERREUR : ON N A PAS TROUVE DANS LA' ;
  27. MESS ' TABLE L OBJET MAILLAGE' ;
  28. QUIT CH_THETX ;
  29. SINON ;
  30. MAILLAGE = SUPTAB.'MAILLAGE' ;
  31. FINSI ;
  32. SI (NON (EXIS SUPTAB 'FRONT_FISSURE')) ;
  33. MESS 'ERREUR : LE FRONT DE LA FISSURE N EST PAS DONNE' ;
  34. QUIT CH_THETX ;
  35. SINON ;
  36. PFISS = SUPTAB.'FRONT_FISSURE' ;
  37. SI (EGA (TYPE PFISS) 'POINT') ;
  38. PFISS1 = MANU 'POI1' PFISS ;
  39. SINON ;
  40. PFISS1 = CHAN 'POI1' PFISS ;
  41. FINSI ;
  42. FINSI ;
  43. SI ((NON (EXIS SUPTAB 'PSI')) OU (NON (EXIS SUPTAB 'PHI'))) ;
  44. MESS 'ERREUR : CHPOINT PSI et PHI NON FOURNIS' ;
  45. QUIT CH_THETX ;
  46. SINON ;
  47. PSI1 = SUPTAB.'PSI' ;
  48. PHI1 = SUPTAB.'PHI' ;
  49. FINSI ;
  50. SI (EXIS SUPTAB 'COUCHE') ;
  51. COUCHE = SUPTAB.'COUCHE' ;
  52. SINON ;
  53. SI (EXIS SUPTAB 'CHAMP_THETA') ;
  54. THETA = SUPTAB.'CHAMP_THETA' ;
  55. SINON ;
  56. MESS 'ERREUR : IL FAUT SOIT LE NOMBRE DE COUCHES SOIT UN CHAMP THETA' ;
  57. FINSI ;
  58. FINSI ;
  59.  
  60. * ON DETERMINE SI UNE OU DEUX LEVRES SONT MODELISEES
  61. NB_LEVRES = 2 ;
  62. * SI UNE DEMI-EPROUVETTE EST MODELISEE,
  63. * ON ESPERE QUE PHI(X)>0 OU <0 QQSOIT X
  64. MINY1 = MINI PHI1 ; MAXY1 = MAXI PHI1 ;
  65. SI ((MAXY1*MINY1) &lt;EG 0.) ;
  66. MINY1A = MINI MINY1 MAXY1 'ABS' ;
  67. MAXY1A = MAXI MINY1 MAXY1 'ABS' ;
  68. SI ((MINI MINY1 MAXY1 'ABS') < ((MAXI MINY1 MAXY1 'ABS')*1.E-3)) ;
  69. NB_LEVRES = 1 ;
  70. FINSI ;
  71. FINSI ;
  72.  
  73. * ELEMENTS POUR LESQUELS ON VEUT FAIRE LE CALCUL
  74. SI (EGA GDIME 3) ;
  75. SI (EXIS SUPTAB 'NOEUDS_AVANCES') ;
  76. NOAV = SUPTAB.'NOEUDS_AVANCES' ;
  77. SINON ;
  78. NOAV = CHAN 'POI1' M_FRONT ;
  79. FINSI ;
  80. ELAV = VIDE 'MAILLAGE' ;
  81. REPE INOEU (NBEL NOAV) ;
  82. POIN1 = (NOAV ELEM &INOEU) POIN 1 ;
  83. ELAV = ELAV ET (MAILLAGE ELEM 'CONTENANT' POIN1 'TOUS' ) ;
  84. FIN INOEU ;
  85. FINSI ;
  86.  
  87.  
  88. * II - CREATION DES CHAMPS THETA
  89. * ------------------------------
  90.  
  91. * II.1 - CAS 2D
  92. * *************
  93.  
  94. SI (EGA GDIME 2) ;
  95.  
  96. SI (EXIS SUPTAB 'COUCHE') ;
  97.  
  98. * ELEMENT CONTENANT LE FRONT DE FISSURE
  99. EFISS0 = MAILLAGE ELEM 'CONTENANT' PFISS ;
  100.  
  101. * TEST POUR VOIR SI ON EST SUR UN NOEUD, DANS UN ELEMENT OU SUR UN BORD
  102. MOD0 = MODE EFISS0 'MECANIQUE' 'ELASTIQUE' 'XQ4R' ;
  103. PSI10 = CHAN 'CHAM' MOD0 (REDU PSI1 EFISS0) 'STRESSES' ;
  104. PHI10 = CHAN 'CHAM' MOD0 (REDU PHI1 EFISS0) 'STRESSES' ;
  105. LOGPSI10 = ((MAXI PSI10) * (MINI PSI10)) < 0. ;
  106. LOGPHI10 = ((MAXI PHI10) * (MINI PHI10)) < 0. ;
  107. SI(LOGPSI10 ET LOGPHI10) ;
  108. MBOUGER = EFISS0 ;
  109. SINON ;
  110. MBOUGER = EFISS0 POIN 'PROCH' PFISS ;
  111. SI((LOGPSI10 OU LOGPHI10) ET (EGA COUCHE 0)) ;
  112. MESS 'ATTENTION : UTILISATION DE 0 COUCHE + XFEM DELICATE' ;
  113. MESS ' RESULTAT PROBABLEMENT DE MAUVAISE PRECISION' ;
  114. FINSI ;
  115. FINSI ;
  116.  
  117. * CREATION DU MAILLAGE A BOUGER : MBOUGER
  118. REPE BCOUCH COUCHE ;
  119. MBOUGER = MAILLAGE ELEM 'APPUYE' 'LARG' MBOUGER ;
  120. FIN BCOUCH ;
  121. * CREATION DU MAILLAGE OU THETA N'EST PAS NUL : MAIL
  122. MAIL = ELEM MAILLAGE 'APPU' 'LARG' MBOUGER ;
  123. * PSI ET PHI DOIVENT ETRE ENTIREMENT DEFINIS SUR MAIL
  124. MINTER = INTE (CHAN 'POI1' MAIL) (EXTR PSI1 'MAILLAGE') ;
  125. NBEL1 = NBEL (DIFF (CHAN 'POI1' MAIL) MINTER ) ;
  126. SI (NBEL1 NEG 0) ;
  127. MESS NBEL1 'POINTS DES COUCHES OU PSI ET PHI SONT INDEFINIS' ;
  128. ERRE 21 ;
  129. FINSI ;
  130.  
  131. * DETERMINATION DU CHAMP THETA :
  132. * ON DEFINIT UN MODELE THERMIQUE POUR CALCULER LES GRADIENTS
  133. MOD7 = MODE MAIL 'THERMIQUE' ;
  134. GPSI = GRAD MOD7 (NOMC 'T' PSI1 'NATU' 'DIFFUS') ;
  135. GPSI = CHAN GPSI 'TYPE' 'SCALAIRE' ;
  136. GPHI = GRAD MOD7 (NOMC 'T' SUPTAB.'PHI' 'NATU' 'DIFFUS') ;
  137. GPHI = CHAN GPHI 'TYPE' 'SCALAIRE' ;
  138. * THETA EST PERPENDICULAIRE A GRAD(PHI) ET DANS LE SENS DE GRAD(PSI)
  139. NCOMP = EXTR GPSI 'COMP' ;
  140. THETA = PVEC GPHI NCOMP MUI ;
  141. * ON UTILISE SIGN POUR S'ASSURER QUE THETA ET GRAD(PSI) SONT DANS LE MEME SENS
  142. SIGN1 = SIGN (PSCA THETA GPSI MUI NCOMP) ;
  143. THETA = SIGN1 * THETA ;
  144. * DIRECTION DE PROPAGATION DIR1 SUR LE FRONT AVANT DE CHANGER THETA EN CHPO
  145. DIR1 = PROI M_FRONT (CHAN 'NOEUD' MOD7 THETA) ;
  146. * ON CHANGE THETA EN CHPO ET ON REDUIT SON SUPPORT A MBOUGER
  147. THETA = CHAN 'CHPO' MOD7 THETA 'MOYE' ;
  148. THETA = REDU THETA MBOUGER ;
  149.  
  150. SINON ;
  151.  
  152. * ON INTERPOLE THETA SUR LE FRONT POUR DIR1
  153. DIR1 = INT_COMP MAILLAGE THETA PFISS1 ;
  154.  
  155. FINSI ;
  156.  
  157. * ON NORMALISE DIR1 ET ON CALCULE DIR2
  158. NDIR1 = (PSCA DIR1 DIR1 MUI MUI)**0.5 ;
  159. DIR1 = DIR1 / NDIR1 ;
  160. DIR2 = PVEC DIR1 MUI MUI ;
  161.  
  162. * ON NORMALISE THETA ET ON MULTIPLIE PAR 2. / NB_LEVRES
  163. NTHETA = (PSCA THETA THETA MUI MUI)**0.5 ;
  164. THETA = THETA / NTHETA * 2. / NB_LEVRES ;
  165.  
  166. * STOCKAGE
  167. TTHETA = TABL ;
  168. FINTER = MANU 'CHPO' PFISS 1 'SCAL' 1. 'NATURE' 'DISCRET' ;
  169. TTHETA.FINTER = THETA ;
  170.  
  171. FINSI ;
  172.  
  173.  
  174. * II.2 - CAS 3D
  175. * *************
  176.  
  177. SI (EGA GDIME 3) ;
  178.  
  179. * ELEMENTS CONTENANT LE FRONT DE FISSURE
  180. MAILPSI = EXTR PSI1 'MAILLAGE' ;
  181. MAILPSI = ELEM MAILLAGE 'APPUYE' 'STRICTEMENT' MAILPSI ;
  182. PSI1CHAM = CHAN 'CHAM' PSI1 MAILPSI ;
  183. PHI1CHAM = CHAN 'CHAM' PHI1 MAILPSI ;
  184. TAB_ELF = (ELEM PSI1CHAM 'EGINFE' 0.) INTE (ELEM PSI1CHAM 'EGSUPE' 0.) ;
  185. EFISS2 = (ELEM PHI1CHAM 'EGINFE' 0.) INTE (ELEM PHI1CHAM 'EGSUPE' 0.) ;
  186. EFISS0 = TAB_ELF INTE EFISS2 ;
  187. DX0 = ((MESU EFISS0 'VOLUME') / (NBEL EFISS0)) ** (1./3.) ;
  188. EPSP = 1.E-4 * DX0 ;
  189. EPSN = -1.E-4 * DX0 ;
  190. TAB_ELF = (ELEM PSI1CHAM 'EGINFE' EPSP) INTE (ELEM PSI1CHAM 'EGSUPE' EPSN) ;
  191. EFISS2 = (ELEM PHI1CHAM 'EGINFE' EPSP) INTE (ELEM PHI1CHAM 'EGSUPE' EPSN) ;
  192. EFISS0 = TAB_ELF INTE EFISS2 ;
  193.  
  194. * CREATION DU MAILLAGE A BOUGER : MBOUGER
  195. MBOUGER = EFISS0 ;
  196. SI (COUCHE > 1) ;
  197. REPE ICOUCH (COUCHE - 1) ;
  198. MBOUGER = ELEM MAILLAGE 'APPUYE' 'LARG' MBOUGER ;
  199. FIN ICOUCH ;
  200. FINSI ;
  201. * CREATION DU MAILLAGE OU THETA N'EST PAS NUL : MAIL
  202. MAIL = ELEM MAILLAGE 'APPU' 'LARG' MBOUGER ;
  203. * ON VERIFIE QUE PSI ET PHI SONT ENTIEREMENT DEFINIS SUR MAIL
  204. MINTER = (CHAN 'POI1' MAIL) INTE (EXTR PSI1 'MAILLAGE') ;
  205. NBEL1 = NBEL (DIFF (CHAN 'POI1' MAIL) MINTER ) ;
  206. SI (NBEL1 NEG 0) ;
  207. MESS NBEL1 'POINTS DES COUCHES OU PSI ET PHI SONT INDEFINIS' ;
  208. ERRE 21 ;
  209. FINSI ;
  210. * ON SE RESTREINT AU DOMAINE DE DEFINITION DE PSI ET PHI
  211. MAIL = MAIL INTE MAILPSI ;
  212.  
  213.  
  214. * ON COMMENCE PAR CREER LE CHAMP THETA GLOBAL :
  215. * *********************************************
  216.  
  217. * ON DEFINIT UN MODELE THERMIQUE POUR CALCULER LES GRADIENTS
  218. MOD7 = MODE MAIL 'THERMIQUE' ;
  219. GPSI = GRAD MOD7 (NOMC 'T' PSI1 'NATU' 'DIFFUS') ;
  220. GPSI = CHAN GPSI 'TYPE' 'SCALAIRE' ;
  221. GPHI = GRAD MOD7 (NOMC 'T' SUPTAB.'PHI' 'NATU' 'DIFFUS') ;
  222. GPHI = CHAN GPHI 'TYPE' 'SCALAIRE' ;
  223. NCOMP = EXTR GPSI 'COMP' ;
  224. * TAW = GRAD(PSI)^GRAD(PHI)
  225. TAW1 = PVEC GPSI GPHI NCOMP NCOMP NCOMP ;
  226. * THETA = GRAD(PHI)^TAW
  227. THETA = PVEC GPHI TAW1 NCOMP NCOMP MUI ;
  228. * ON CHANGE THETA EN CHPO
  229. THETA = CHAN 'CHPO' MOD7 THETA 'MOYE' ;
  230. * ON NORME THETA, EN FAISANT ATTENTION QUE LE CHAMP PEUT ETRE QUASI-NUL
  231. * PAR ENDROITS => ON UTILISE MASQ
  232. NTHETA = (PSCA THETA THETA MUI MUI)**0.5 ;
  233. MTHETA = MASQ NTHETA 'SUPERIEUR' 1.E-2 ;
  234. BTHETA = BORN NTHETA 'SCAL' 'MINIMUM' 1.E-2 ;
  235. THETA = CHAN (THETA / BTHETA * MTHETA) 'ATTRIBUT' 'NATURE' 'DIFFUS' ;
  236. OBJUTI.'V1' = THETA ;
  237. * ON REDUIT THETA A MBOUGER
  238. THETA = REDU THETA MBOUGER ;
  239. * ON FAIT DE MEME AVEC GRAD(PHI), MAIS IL N'EST A PRIORI JAMAIS NUL DONC PAS
  240. * BESOIN DE MASQ
  241. GPHI = CHAN 'CHPO' MOD7 GPHI 'MOYE' ;
  242. NGPHI = (PSCA GPHI GPHI NCOMP NCOMP)**0.5 ;
  243. GPHI = CHAN (GPHI / NGPHI) 'ATTRIBUT' 'NATURE' 'DIFFUS' ;
  244. OBJUTI.'V2' = NOMC NCOMP MUI GPHI ;
  245. GPHI = REDU GPHI MBOUGER ;
  246. * ON FAIT DE MEME AVEC TAW, LUI AUSSI PEUT ETRE QUASI-NUL
  247. TAW1 = CHAN 'CHPO' MOD7 TAW1 'MOYE' ;
  248. NTAW1 = (PSCA TAW1 TAW1 NCOMP NCOMP)**0.5 ;
  249. MTAW1 = MASQ NTAW1 'SUPERIEUR' 1.E-2 ;
  250. BTAW1 = BORN NTAW1 'SCAL' 'MINIMUM' 1.E-2 ;
  251. TAW1 = CHAN (TAW1 / BTAW1 * MTAW1) 'ATTRIBUT' 'NATURE' 'DIFFUS' ;
  252. OBJUTI.'V3' = NOMC NCOMP MUI TAW1 ;
  253. TAW1 = REDU TAW1 MBOUGER ;
  254. * ON INTERPOLE LES 3 DIRECTIONS SUR LE FRONT
  255. DIR1 = INT_COMP MBOUGER THETA PFISS1 ;
  256. DIR2 = NOMC NCOMP MUI (INT_COMP MBOUGER GPHI PFISS1) ;
  257. DIR3 = NOMC NCOMP MUI (INT_COMP MBOUGER TAW1 PFISS1) ;
  258. * ON LES NORME ET ON LES CHANGE EN DIFFUS
  259. NDIR1 = (PSCA DIR1 DIR1 MUI MUI)**0.5 ;
  260. NDIR2 = (PSCA DIR2 DIR2 MUI MUI)**0.5 ;
  261. NDIR3 = (PSCA DIR3 DIR3 MUI MUI)**0.5 ;
  262. DIR1 = CHAN (DIR1 / NDIR1) 'ATTRIBUT' 'NATURE' 'DIFFUS' ;
  263. DIR2 = CHAN (DIR2 / NDIR2) 'ATTRIBUT' 'NATURE' 'DIFFUS' ;
  264. DIR3 = CHAN (DIR3 / NDIR3) 'ATTRIBUT' 'NATURE' 'DIFFUS' ;
  265.  
  266.  
  267. * ENSUITE ON IDENTIFIE CHAQUE ELEMENT AUTOUR DU FRONT A BOUGER :
  268. * **************************************************************
  269.  
  270. NPFISS1 = NBEL PFISS1 ;
  271. TAB_ELF = TABL ;
  272. REPE IPFISS1 NPFISS1 ;
  273. PFI = PFISS1 POIN &IPFISS1 ;
  274. * EXTRACTION DES ELEMENTS CONTENANT LE POINT COURANT
  275. ELI = MBOUGER ELEM 'CONTENANT' PFI 'TOUS' ;
  276. SI (EGA &IPFISS1 1) ;
  277. TAB_ELF.(1) = ELI ;
  278. SINON ;
  279. SI ((DIME TAB_ELF) > 1) ;
  280. INTE1 = ELI INTE TAB_ELF.((DIME TAB_ELF) - 1) 'NOVERIF' ;
  281. SI (NEG (NBEL INTE1) 0) ;
  282. * S'IL Y A DES ELEMENTS EN COMMUN AVEC L'AVANT DERNIER INDICE DE LA TABLE
  283. * ALORS ON LES ENLEVE
  284. ELI = DIFF ELI INTE1 ;
  285. SI (EGA (NBEL ELI) 0) ;
  286. ITER IPFISS1 ;
  287. FINSI ;
  288. FINSI ;
  289. FINSI ;
  290. FINSI ;
  291. * ON REGARDE ENSUITE L'INTERSECTION AVEC LE DERNIER INDICE DE LA TABLE
  292. INTE2 = ELI INTE TAB_ELF.(DIME TAB_ELF) 'NOVERIF' ;
  293. SI (EGA (NBEL INTE2) 0) ;
  294. * S'IL N'Y A PAS D'ELEMENT EN COMMUN ON A TERMINE
  295. TAB_ELF.((DIME TAB_ELF) + 1) = ELI ;
  296. SINON ;
  297. * SINON IL FAUT SUPPRIMER/AJOUTER DES ELEMENTS
  298. ETEMP = DIFF TAB_ELF.(DIME TAB_ELF) INTE2 ;
  299. SI (NEG (NBEL ETEMP) 0) ;
  300. * DANS CE CAS IL Y AVAIT DES ELEMENTS EN TROP DANS LE DERNIER INDICE
  301. * => ON LES ENLEVE ET ON MET CE QUI RESTE DANS UN NOUVEL INDICE
  302. TAB_ELF.(DIME TAB_ELF) = ETEMP ;
  303. INTE2 = ELI INTE ETEMP 'NOVERIF' ;
  304. ELI = DIFF ELI INTE2 ;
  305. SI (NEG (NBEL ELI) 0) ;
  306. TAB_ELF.((DIME TAB_ELF) + 1) = ELI ;
  307. FINSI ;
  308. SINON ;
  309. * DANS CE CAS IL Y A DES ELEMENTS EN TROP DANS ELI
  310. * => ON LES ENLEVE ET ON STOCKE CE QUI RESTE DANS UN NOUVEL INDICE
  311. ETEMP = DIFF ELI INTE2 ;
  312. SI (NEG (NBEL ETEMP) 0) ;
  313. TAB_ELF.((DIME TAB_ELF) + 1) = ETEMP ;
  314. FINSI ;
  315. FINSI ;
  316. FINSI ;
  317. FIN IPFISS1 ;
  318.  
  319.  
  320. * CREATION ET REMPLISSAGE DE LA TABLE TTHETA
  321. * ******************************************
  322.  
  323. * FONCTIONS D'INTERPOLATION
  324. TINTER = TABL ;
  325. * ON BOUCLE SUR LES ELEMENTS ENTOURANT LE FRONT
  326. REPE IELF (DIME TAB_ELF) ;
  327. MBOUGI = TAB_ELF.&IELF ;
  328. MINTER = MBOUGI INTE ELAV ;
  329. SI (EGA (NBEL MINTER) 0) ;
  330. ITER IELF ;
  331. FINSI ;
  332. FINTER = MANU 'CHPO' MBOUGI 1 'SCAL' 1. ;
  333. * ON BOUCLE SUR LE NOMBRE DE COUCHES
  334. REPE ICOUCH (COUCHE - 1) ;
  335. MBOUGI = ELEM MAILLAGE 'APPUYE' 'LARG' MBOUGI ;
  336. FINTER = FINTER + (MANU 'CHPO' MBOUGI 1 'SCAL' 1.) ;
  337. FIN ICOUCH ;
  338. TINTER.(TAB_ELF.&IELF) = FINTER ;
  339. FIN IELF ;
  340. * TABLE TTHETA
  341. TTHETA = TABL ;
  342. TIND = INDE TINTER ;
  343. REPE IIND (DIME TIND) ;
  344. FINTER = TINTER.(TIND.&IIND) ;
  345. THETI = FINTER * THETA ;
  346. TTHETA.(TIND.&IIND) = THETI ;
  347. FIN IIND ;
  348. TTHETA.'GLOBAL' = THETA ;
  349.  
  350.  
  351. * NORMALISATION
  352. * *************
  353.  
  354. * PETIT FLOTTANT POUR QUE LE MOUVEMENT SOIT INFINITESIMAL
  355. EPS1 = 1.E-4 ;
  356. TIND = INDE TTHETA ;
  357. REPE ICHAM (DIME TIND) ;
  358. THETI = TTHETA.(TIND.&ICHAM) ;
  359. * ON CREE UN CHAMP THETI DONT LA NORME EST PROCHE DE LA DIMENSION DES ELEMENTS
  360. NTHETI = (PSCA THETI THETI MUI MUI)**0.5 ;
  361. THETI = THETI * DX0 / (MAXI NTHETI) ;
  362. THETA2 = INT_COMP EFISS0 THETI PFISS ;
  363. PFISS2 = PFISS PLUS (EPS1*THETA2) ;
  364. AFISS2 = PFISS2 REGL PFISS 1 ;
  365. DELTA_A = NB_LEVRES * (MESU AFISS2 'SURF') / EPS1 ;
  366. THETI = THETI * 2. / DELTA_A ;
  367. TTHETA.(TIND.&ICHAM) = THETI ;
  368. FIN ICHAM ;
  369.  
  370. * ON REMPLACE THETA PAR LE CHAMP THETA GLOBAL
  371. THETA = TTHETA.'GLOBAL' ;
  372.  
  373. FINSI ;
  374.  
  375.  
  376. * II.3 - STOCKAGE DU CHAMP THETA ET DES DIRECTIONS
  377. * ************************************************
  378.  
  379. SI (EXIS SUPTAB 'COUCHE') ;
  380. SUPTAB.'CHAMP_THETA' = THETA ;
  381. FINSI ;
  382. SUPTAB.'TAB_THETA' = TTHETA ;
  383.  
  384. OBJUTI.'DIRECTION1' = DIR1 ;
  385. OBJUTI.'DIRECTION2' = DIR2 ;
  386. SI (EGA GDIME 3) ;
  387. OBJUTI.'DIRECTION3' = DIR3 ;
  388. FINSI ;
  389.  
  390. FINP ;
  391.  

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