Télécharger operquaf.dgibi

Retour à la liste

Numérotation des lignes :

  1. ************************************************************************
  2. * NOM : OPERQUAF
  3. * DESCRIPTION : Tester le fonctionnement de certains operateurs de
  4. * maillage avec les QUAFs suite aux modifications pour
  5. * gerer correctement les faces TRI7/QUA9.
  6. * Operateurs testes :
  7. * ENVELOPPE
  8. * CHANGER 'LIGN'
  9. * CHANGER 'FACE'
  10. * CHANGER 'QUAD'
  11. * MESURE
  12. * CONTOUR
  13. * VERSENS
  14. * VERM
  15. * Pour le test des traces compares entre les QUAF et les
  16. * autres elements, voir tracquaf.dgibi
  17. * Inspire de orieelem.dgibi
  18. *
  19. *
  20. *
  21. * LANGAGE : GIBIANE-CAST3M
  22. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  23. * mél : stephane.gounand@cea.fr
  24. **********************************************************************
  25. * VERSION : v1, 05/07/2016, version initiale
  26. * HISTORIQUE : v1, 05/07/2016, création
  27. * HISTORIQUE :
  28. * HISTORIQUE :
  29. ************************************************************************
  30. *
  31. *
  32. interact= FAUX ;
  33. 'OPTION' 'DIME' 3 'ELEM' CUB8 ;
  34. 'SI' ('NON' interact) ;
  35. 'OPTION' 'TRAC' 'PS' ;
  36. 'SINON' ;
  37. 'OPTION' 'TRAC' 'X' ;
  38. 'FINSI' ;
  39. *
  40. * verifie que deux maillages sont identiques au sens de DIFF
  41. * cad en etant tolerant
  42. *
  43. 'DEBPROC' egamail2 ;
  44. 'ARGUMENT' el1*'MAILLAGE' ;
  45. 'ARGUMENT' el2*'MAILLAGE' ;
  46. * Operateur ou directive ? Si directive, on signale les erreurs
  47. * Sinon on renvoie la valeur du test.
  48. 'ARGUMENT' loper/'LOGIQUE' ;
  49. 'SI' ('NON' ('EXISTE' loper)) ;
  50. loper=vrai ;
  51. 'FINSI' ;
  52. lok = vrai ;
  53. err = '>' ('NBEL' ('DIFF' el1 el2)) 0 ;
  54. lok = lok 'ET' ('NON' err) ;
  55. 'SI' err ;
  56. 'SI' ('NON' loper) ;
  57. 'ERREUR' 'maillages differents en entree' ;
  58. 'SINON' ;
  59. 'RESPRO' lok ;
  60. 'FINSI' ;
  61. 'FINSI' ;
  62. 'FINPROC' ;
  63.  
  64.  
  65. * verifie que deux maillages sont parfaitement identiques :
  66. * elements et noeuds decrits dans le meme ordre
  67. * utilise egael
  68. 'DEBPROC' egamail ;
  69. 'ARGUMENT' el1*'MAILLAGE' ;
  70. 'ARGUMENT' el2*'MAILLAGE' ;
  71. * Operateur ou directive ? Si directive, on signale les erreurs
  72. * Sinon on renvoie la valeur du test.
  73. 'ARGUMENT' loper/'LOGIQUE' ;
  74. 'SI' ('NON' ('EXISTE' loper)) ;
  75. loper=vrai ;
  76. 'FINSI' ;
  77. lok = vrai ;
  78. nbl1 = 'NBEL' el1 ;
  79. nbl2 = 'NBEL' el2 ;
  80. err = ('NEG' nbl1 nbl2) ;
  81. lok = lok 'ET' ('NON' err) ;
  82. 'SI' err ;
  83. 'SI' ('NON' loper) ;
  84. 'ERREUR' 'NB element different pour les entrees' ;
  85. 'SINON' ;
  86. 'RESPRO' lok ;
  87. 'QUITTER' EGAMAIL ;
  88. 'FINSI' ;
  89. 'FINSI' ;
  90. 'SI' ('EGA' nbl1 0) ;
  91. 'SI' loper ;
  92. 'RESPRO' lok ;
  93. 'QUITTER' EGAMAIL ;
  94. 'FINSI' ;
  95. 'FINSI' ;
  96. tel1 = 'ELEM' el1 'TYPE' ;
  97. tel2 = 'ELEM' el2 'TYPE' ;
  98. err = 'NON' ('ET' ('EXISTE' tel1 tel2 'ET')
  99. ('EXISTE' tel2 tel1 'ET')) ;
  100. lok = lok 'ET' ('NON' err) ;
  101. 'SI' err ;
  102. 'SI' ('NON' loper) ;
  103. 'ERREUR' 'Type element different pour les entrees' ;
  104. 'SINON' ;
  105. 'RESPRO' lok ;
  106. 'QUITTER' EGAMAIL ;
  107. 'FINSI' ;
  108. 'FINSI' ;
  109. 'REPETER' itel ('DIME' tel1) ;
  110. ty = 'EXTRAIRE' tel1 &itel ;
  111. sel1 = 'ELEM' el1 ty ;
  112. sel2 = 'ELEM' el2 ty ;
  113. nbl1 = 'NBEL' sel1 ;
  114. nbl2 = 'NBEL' sel2 ;
  115. err = ('NEG' nbl1 nbl2) ;
  116. lok = lok 'ET' ('NON' err) ;
  117. 'SI' err ;
  118. 'SI' ('NON' loper) ;
  119. cherr = 'CHAINE' 'NB element ' ty
  120. ' different pour les entrees' ;
  121. 'ERREUR' cherr ;
  122. 'SINON' ;
  123. 'RESPRO' lok ;
  124. 'QUITTER' EGAMAIL ;
  125. 'FINSI' ;
  126. 'FINSI' ;
  127. 'REPETER' iel nbl1 ;
  128. esel1 = 'ELEM' sel1 &iel ;
  129. esel2 = 'ELEM' sel2 &iel ;
  130. lok = lok 'ET' (egael esel1 esel2) ;
  131. 'SI' ('ET' ('NON' lok) ('NON' loper)) ;
  132. 'ERREUR' 'Pas les memes numeros de noeuds pour les entrees' ;
  133. 'FINSI' ;
  134. 'FIN' iel ;
  135. 'FIN' itel ;
  136. 'SI' loper ;
  137. 'RESPRO' lok ;
  138. 'FINSI' ;
  139. 'FINPROC' ;
  140.  
  141. * verifie que deux elements sont parfaitement identiques :
  142. * noeuds decrits dans le meme ordre
  143. 'DEBPROC' egael ;
  144. 'ARGUMENT' el1*'MAILLAGE' ;
  145. 'ARGUMENT' el2*'MAILLAGE' ;
  146. * Operateur ou directive ? Si directive, on signale les erreurs
  147. * Sinon on renvoie la valeur du test.
  148. 'ARGUMENT' loper/'LOGIQUE' ;
  149. 'SI' ('NON' ('EXISTE' loper)) ;
  150. loper=vrai ;
  151. 'FINSI' ;
  152. lok = vrai ;
  153. * 1 seul
  154. nbl1 = 'NBEL' el1 ;
  155. nbl2 = 'NBEL' el2 ;
  156. err = 'OU' ('NEG' nbl1 1) ('NEG' nbl2 1) ;
  157. lok = lok 'ET' ('NON' err) ;
  158. 'SI' ('ET' err ('NON' loper)) ;
  159. 'ERREUR' 'Un seul element pour les entrees' ;
  160. 'FINSI' ;
  161. * type
  162. tel1 = 'EXTRAIRE' ('ELEM' el1 'TYPE') 1 ;
  163. tel2 = 'EXTRAIRE' ('ELEM' el2 'TYPE') 1 ;
  164. err = 'NEG' tel1 tel2 ;
  165. lok = lok 'ET' ('NON' err) ;
  166. 'SI' ('ET' err ('NON' loper)) ;
  167. 'ERREUR' 'Type differents' ;
  168. 'FINSI' ;
  169. nno1 = 'NBNO' el1 ;
  170. nno2 = 'NBNO' el2 ;
  171. err = 'NEG' nno1 nno2 ;
  172. lok = lok 'ET' ('NON' err) ;
  173. 'SI' ('ET' err ('NON' loper)) ;
  174. 'ERREUR' 'Pas le meme nbno pour les entrees' ;
  175. 'FINSI' ;
  176. * Boucle
  177. * Ici, on suppose que le CHAN POI1 conserve l'ordre des noeuds de
  178. * chaque element. A un moment, on a pense qu'une syntaxe type :
  179. * p1 = POIN el1 &ino 'ELEM' 'TRI3' 1 ;
  180. * serait plus claire.
  181. *
  182. pel1 = 'CHANGER' 'POI1' el1 ;
  183. pel2 = 'CHANGER' 'POI1' el2 ;
  184. 'REPETER' ino nno1 ;
  185. p1 = 'POIN' pel1 &ino ;
  186. p2 = 'POIN' pel2 &ino ;
  187. err = 'NEG' p1 p2 ;
  188. lok = lok 'ET' ('NON' err) ;
  189. 'SI' ('ET' err ('NON' loper)) ;
  190. 'ERREUR' 'Pas les memes numeros de noeuds pour les entrees' ;
  191. 'FINSI' ;
  192. 'FIN' ino ;
  193. 'SI' loper ;
  194. 'RESPRO' lok ;
  195. 'FINSI' ;
  196. 'FINPROC' ;
  197.  
  198. 'DEBPROC' vchlig ;
  199. 'ARGUMENT' el1*'MAILLAGE' ;
  200. 'ARGUMENT' el2*'MAILLAGE' ;
  201. nomel1 = 'EXTRAIRE' ('ELEM' el1 'TYPE') 1 ;
  202. nomel2 = 'EXTRAIRE' ('ELEM' el2 'TYPE') 1 ;
  203. 'MESSAGE' 'CHAN LIGN ' nomel1 ' ' nomel2 ;
  204. l1 = 'CHANGER' 'LIGN' el1 ;
  205. l2 = 'CHANGER' 'LIGN' el2 ;
  206. EGAMAIL l1 l2 faux ;
  207. *
  208. 'FINPROC' ;
  209.  
  210. 'DEBPROC' vcont ;
  211. 'ARGUMENT' el1*'MAILLAGE' ;
  212. 'ARGUMENT' el2*'MAILLAGE' ;
  213. nomel1 = 'EXTRAIRE' ('ELEM' el1 'TYPE') 1 ;
  214. nomel2 = 'EXTRAIRE' ('ELEM' el2 'TYPE') 1 ;
  215. 'MESSAGE' 'CONT ' nomel1 ' ' nomel2 ;
  216. l1 = 'CONTOUR' el1 ;
  217. l2 = 'CONTOUR' el2 ;
  218. EGAMAIL l1 l2 faux ;
  219. *
  220. 'FINPROC' ;
  221.  
  222. 'DEBPROC' vchqua ;
  223. 'ARGUMENT' el1*'MAILLAGE' ;
  224. 'ARGUMENT' el2*'MAILLAGE' ;
  225. nomel1 = 'EXTRAIRE' ('ELEM' el1 'TYPE') 1 ;
  226. nomel2 = 'EXTRAIRE' ('ELEM' el2 'TYPE') 1 ;
  227. 'MESSAGE' ' ' nomel1 ' =? CHANGER QUAD ' nomel2 ;
  228. el2q = 'CHANGER' 'QUAD' el2 ;
  229. EGAMAIL el1 el2q faux ;
  230. *
  231. 'FINPROC' ;
  232.  
  233. 'DEBPROC' vchsur ;
  234. 'ARGUMENT' el1*'MAILLAGE' ;
  235. *'ARGUMENT' el2*'MAILLAGE' ;
  236. nomel1 = 'EXTRAIRE' ('ELEM' el1 'TYPE') 1 ;
  237. 'MESSAGE' 'CHAN SURF ' nomel1 ;
  238. ltyp = 'MOTS' 'TRI7' 'QUA9' ;
  239. fel1 = 'CHANGER' 'SURF' el1 ;
  240. tfel1 = 'ELEM' fel1 'TYPE' ;
  241. err = 'NON' ('EXISTE' ltyp tfel1 'ET') ;
  242. 'SI' err ;
  243. 'LISTE' tfel1 ;
  244. 'ERREUR' 'Type element incorrect' ;
  245. 'FINSI' ;
  246. 'SI' ('EGA' ('NBEL' el1) 1) ;
  247. 'MESSAGE' ' CHAN SURF =? ENVE ' nomel1 ;
  248. evel1 = 'ENVELOPPE' el1 ;
  249. EGAMAIL fel1 evel1 faux ;
  250. 'FINSI' ;
  251. 'MESSAGE' ' CHANLIGN(CHANSURF) ' nomel1 ' =? CHANLIGN' ;
  252. clel1 = 'CHANGER' 'LIGNE' el1 ;
  253. clfl1 = 'CHANGER' 'LIGNE' fel1 ;
  254. EGAMAIL2 clel1 clfl1 faux ;
  255. *
  256. 'FINPROC' ;
  257.  
  258. 'DEBPROC' venve ;
  259. 'ARGUMENT' el1*'MAILLAGE' ;
  260. 'ARGUMENT' el2*'MAILLAGE' ;
  261. 'ARGUMENT' el3*'MAILLAGE' ;
  262. nomel1 = 'EXTRAIRE' ('ELEM' el1 'TYPE') 1 ;
  263. nomel2 = 'EXTRAIRE' ('ELEM' el2 'TYPE') 1 ;
  264. nomel3 = 'EXTRAIRE' ('ELEM' el3 'TYPE') 1 ;
  265. 'MESSAGE' 'ENVE ' nomel1 ' ' nomel2 ' ' nomel3 ;
  266. e1 = 'ENVELOPPE' el1 ;
  267. e2 = 'ENVELOPPE' el2 ;
  268. * 'OPTI' impi 1 ;
  269. e3 = 'ENVELOPPE' el3 ;
  270. * 'OPTI' impi 0 ;
  271. e1q = 'CHANGER' 'QUAF' e1 ;
  272. e2q = 'CHANGER' 'QUAF' e2 ;
  273. 'ELIMINATION' (e1q 'ET' e2q 'ET' e3) 1.D-6 ;
  274. 'MESSAGE' 'ENVE ' nomel1 ' ' nomel3 ;
  275. * On est tolerant ici car l'ordre des elements depend des numeros de noeuds
  276. EGAMAIL2 e1q e3 faux ;
  277. 'MESSAGE' 'ENVE ' nomel2 ' ' nomel3 ;
  278. EGAMAIL2 e2q e3 faux ;
  279. * Le nouveau enveloppe ! On recalcule l'ancien car les numéros de noeuds
  280. * peuvent avoir changé à cause de ELIM ce qui change la clé de hachage
  281. * et l'ordre des faces
  282. * e1 = 'ENVELOPPE' el1 'OLD' ;
  283. * e2 = 'ENVELOPPE' el2 'OLD' ;
  284. * e1v = 'ENVELOPPE' el1 ;
  285. * e2v = 'ENVELOPPE' el2 ;
  286. * 'MESSAGE' 'ENVE ' nomel1 ' ANCIEN-NOUVEAU' ;
  287. * EGAMAIL e1v e1 faux ;
  288. * 'MESSAGE' 'ENVE ' nomel2 ' ANCIEN-NOUVEAU' ;
  289. * EGAMAIL e2v e2 faux ;
  290. *
  291. 'FINPROC' ;
  292.  
  293. 'DEBPROC' vvers ;
  294. 'ARGUMENT' el1*'MAILLAGE' ;
  295. 'ARGUMENT' el2*'MAILLAGE' ;
  296. nomel1 = 'EXTRAIRE' ('ELEM' el1 'TYPE') 1 ;
  297. nomel2 = 'EXTRAIRE' ('ELEM' el2 'TYPE') 1 ;
  298. 'MESSAGE' 'VERS ' nomel1 ' ' nomel2 ;
  299. l1 = 'VERSENS' el1 ;
  300. l2 = 'VERSENS' el2 ;
  301. l1q = 'CHANGER' 'QUAF' l1 ;
  302. 'ELIMINATION' ('ET' l1q l2) 1.D-6 ;
  303. EGAMAIL l1q l2 faux ;
  304. *
  305. 'FINPROC' ;
  306.  
  307. 'DEBPROC' vverm ;
  308. 'ARGUMENT' el1*'MAILLAGE' ;
  309. 'ARGUMENT' el2*'MAILLAGE' ;
  310. nomel1 = 'EXTRAIRE' ('ELEM' el1 'TYPE') 1 ;
  311. nomel2 = 'EXTRAIRE' ('ELEM' el2 'TYPE') 1 ;
  312. 'MESSAGE' 'VERM ' nomel1 ' ' nomel2 ;
  313. 'VERM' el1 ;
  314. 'VERM' el2 ;
  315. *
  316. 'FINPROC' ;
  317.  
  318.  
  319. 'DEBPROC' vmesu ;
  320. 'ARGUMENT' el1*'MAILLAGE' ;
  321. 'ARGUMENT' el2*'MAILLAGE' ;
  322. 'ARGUMENT' el3*'MAILLAGE' ;
  323. nomel1 = 'EXTRAIRE' ('ELEM' el1 'TYPE') 1 ;
  324. nomel2 = 'EXTRAIRE' ('ELEM' el2 'TYPE') 1 ;
  325. nomel3 = 'EXTRAIRE' ('ELEM' el3 'TYPE') 1 ;
  326. 'MESSAGE' 'MESU ' nomel1 ' ' nomel2 ' ' nomel3 ;
  327. * 'OPTI' impi 1 ;
  328. v1 = 'MESURE' el1 ;
  329. v2 = 'MESURE' el2 ;
  330. v3 = 'MESURE' el3 ;
  331. * 'OPTI' impi 0 ;
  332. lq2='MOTS' 'TRI6' 'QUA8' ;
  333. lq3='MOTS' 'CU20' 'PY13' 'PR15' 'TE10' ;
  334. lq23 = lq2 'ET' lq3 ;
  335. 'SI' ('NON' ('EXISTE' lq23 nomel2)) ;
  336. cherr = 'CHAINE' 'element ' nomel1 ' pas prevu' ;
  337. 'ERREUR' cherr ;
  338. 'FINSI' ;
  339. 'SI' ('EXISTE' lq2 nomel2) ;
  340. cel1 = 'CONTOUR' el1 ; cel2 = 'CONTOUR' el2 ;
  341. cel3 = 'CONTOUR' el3 ;
  342. v4 = 'MESURE' cel1 'SURF' ; v5 = 'MESURE' cel2 'SURF' ;
  343. v6 = 'MESURE' cel3 'SURF' ;
  344. 'FINSI' ;
  345. 'SI' ('EXISTE' lq3 nomel2) ;
  346. cel1 = 'ENVELOPPE' el1 ; cel2 = 'ENVELOPPE' el2 ;
  347. cel3 = 'ENVELOPPE' el3 ;
  348. v4 = 'MESURE' cel1 'VOLU' ; v5 = 'MESURE' cel2 'VOLU' ;
  349. v6 = 'MESURE' cel3 'VOLU' ;
  350. 'FINSI' ;
  351. lv = 'PROG' v1 v2 v3 v4 v5 v6 ;
  352. 'MESSAGE' 'Mesures :' ; 'LISTE' lv ;
  353. milv = 'MINIMUM' lv ; malv = 'MAXIMUM' lv ;
  354. 'MESSAGE' 'min=' milv ' max=' malv ' max-min=' ('-' malv milv) ;
  355. 'SI' ('NEG' milv malv 1.d-12) ;
  356. 'ERREUR' 'Les volumes devraient etre egaux' ;
  357. 'FINSI' ;
  358. *Tester egalement enveloppe 'ET' 'MESURE' VOLUME '+' un QUAF
  359. * non regulier ???
  360. *
  361. 'FINPROC' ;
  362. *
  363. 'OPTI' debu 1 ;
  364. *
  365. 'REPETER' idim 3 ;
  366. dim = &idim ;
  367. 'SI' ('EGA' dim 1) ;
  368. 'OPTI' 'DIME' 1 'ELEM' 'SEG2' ;
  369. *
  370. p1 = 'POIN' 0. ; p2 = 'POIN' 1. ;
  371. * p3 = 'POIN' 0.5 ;
  372. se2 = 'MANU' 'SEG2' p1 p2 ;
  373. se3 = 'CHANGER' se2 'QUAD' ;
  374. * On construit un inverse à la main...
  375. * Cela sert surtout pour les QUAFs 3D où on veut vérifier que l'on ne
  376. * s'est pas trompé sur les noeuds faces et centre dans la programmation
  377. * de inver4.eso
  378. se2i = 'MANU' 'SEG2' p2 p1 ;
  379. se3i = 'CHANGER' se2i 'QUAD' ;
  380. 'FINSI' ;
  381. 'SI' ('EGA' dim 2) ;
  382. 'OPTI' 'DIME' 2 'ELEM' 'TRI3' ;
  383. p1 = 0. 0. ; p2 = 1. 0. ; p3 = 1. 1. ; p4 = 0. 1. ;
  384. tr3 = 'MANU' 'TRI3' p1 p2 p3 ;
  385. tr6 = 'CHANGER' tr3 'QUAD' ;
  386. tr7 = 'CHANGER' tr6 'QUAF' ;
  387. *
  388. qu4 = 'MANU' 'QUA4' p1 p2 p3 p4 ;
  389. qu8 = 'CHANGER' qu4 'QUAD' ;
  390. qu9 = 'CHANGER' qu8 'QUAF' ;
  391. *
  392. * Les inverses
  393. *
  394. tr3i = 'MANU' 'TRI3' p1 p3 p2 ;
  395. tr6i = 'CHANGER' tr3i 'QUAD' ;
  396. tr7i = 'CHANGER' tr6i 'QUAF' ;
  397. qu4i = 'MANU' 'QUA4' p1 p4 p3 p2 ;
  398. qu8i = 'CHANGER' qu4i 'QUAD' ;
  399. qu9i = 'CHANGER' qu8i 'QUAF' ;
  400. * Test de CHANGER LIGNE
  401. VCHLIG tr6 tr7 ; VCHLIG qu8 qu9 ;
  402. VCHLIG tr6i tr7i ; VCHLIG qu8i qu9i ;
  403. * Test de ENVE
  404. VENVE tr3 tr6 tr7 ; VENVE qu4 qu8 qu9 ;
  405. * Test de CONT
  406. VCONT tr6 tr7 ; VCONT qu8 qu9 ;
  407. VCONT tr6i tr7i ; VCONT qu8i qu9i ;
  408. * Test de VERSENS
  409. VVERS tr6 tr7 ; VVERS qu8 qu9 ;
  410. VVERS tr6i tr7i ; VVERS qu8i qu9i ;
  411. * Test de VERM
  412. VVERM tr6 tr7 ; VVERM qu8 qu9 ;
  413. VVERM tr6i tr7i ; VVERM qu8i qu9i ;
  414. * Test de MESU on melange exprès les inverses pour le signe...
  415. VMESU tr3i tr6 tr7 ; VMESU qu4i qu8 qu9 ;
  416. VMESU tr3 tr6i tr7i ; VMESU qu4 qu8i qu9i ;
  417. * Test de CHAN QUAD
  418. VCHQUA tr6 tr7 ; VCHQUA qu8 qu9 ;
  419. VCHQUA tr6i tr7i ; VCHQUA qu8i qu9i ;
  420. * Test de CHAN SURF
  421. VCHSUR tr7 ; VCHSUR qu9 ;
  422. VCHSUR tr7i ; VCHSUR qu9i ;
  423. 'FINSI' ;
  424. 'SI' ('EGA' dim 3) ;
  425. 'OPTI' 'DIME' 3 'ELEM' 'TET4' ;
  426. p1 = 0. 0. 0. ; p2 = 1. 0. 0. ; p3 = 1. 1. 0. ; p4 = 0. 1. 0. ;
  427. p5 = 0. 0. 1. ; p6 = 1. 0. 1. ; p7 = 1. 1. 1. ; p8 = 0. 1. 1. ;
  428. te4 = 'MANU' 'TET4' p1 p2 p3 p5 ;
  429. te10 = 'CHANGER' te4 'QUAD' ;
  430. te15 = 'CHANGER' te10 'QUAF' ;
  431. py5 = 'MANU' 'PYR5' p1 p2 p3 p4 p5 ;
  432. py13 = 'CHANGER' py5 'QUAD' ;
  433. py19 = 'CHANGER' py13 'QUAF' ;
  434. pr6 = 'MANU' 'PRI6' p1 p2 p3 p5 p6 p7 ;
  435. pr15 = 'CHANGER' pr6 'QUAD' ;
  436. pr21 = 'CHANGER' pr15 'QUAF' ;
  437. cu8 = 'MANU' 'CUB8' p1 p2 p3 p4 p5 p6 p7 p8 ;
  438. cu20 = 'CHANGER' cu8 'QUAD' ;
  439. cu27 = 'CHANGER' cu20 'QUAF' ;
  440. *
  441. * Les inverses
  442. *
  443. te4i = 'MANU' 'TET4' p1 p3 p2 p5 ;
  444. te10i = 'CHANGER' te4i 'QUAD' ;
  445. te15i = 'CHANGER' te10i 'QUAF' ;
  446. py5i = 'MANU' 'PYR5' p1 p4 p3 p2 p5 ;
  447. py13i = 'CHANGER' py5i 'QUAD' ;
  448. py19i = 'CHANGER' py13i 'QUAF' ;
  449. pr6i = 'MANU' 'PRI6' p1 p3 p2 p5 p7 p6 ;
  450. pr15i = 'CHANGER' pr6i 'QUAD' ;
  451. pr21i = 'CHANGER' pr15i 'QUAF' ;
  452. cu8i = 'MANU' 'CUB8' p1 p4 p3 p2 p5 p8 p7 p6 ;
  453. cu20i = 'CHANGER' cu8i 'QUAD' ;
  454. cu27i = 'CHANGER' cu20i 'QUAF' ;
  455. * Test de CHANGER LIGNE
  456. VCHLIG te10 te15 ; VCHLIG py13 py19 ; VCHLIG pr15 pr21 ;
  457. VCHLIG cu20 cu27 ;
  458. VCHLIG te10i te15i ; VCHLIG py13i py19i ; VCHLIG pr15i pr21i ;
  459. VCHLIG cu20i cu27i ;
  460. * Test de ENVE
  461. VENVE te4 te10 te15 ; VENVE py5 py13 py19 ; VENVE pr6 pr15 pr21 ;
  462. VENVE cu8 cu20 cu27 ;
  463. VENVE te4i te10i te15i ; VENVE py5i py13i py19i ;
  464. VENVE pr6i pr15i pr21i ;
  465. VENVE cu8i cu20i cu27i ;
  466. * Test de VERSENS
  467. VVERS te10 te15 ; VVERS py13 py19 ; VVERS pr15 pr21 ;
  468. VVERS cu20 cu27 ;
  469. VVERS te10i te15i ; VVERS py13i py19i ; VVERS pr15i pr21i ;
  470. VVERS cu20i cu27i ;
  471. * Test de VERM
  472. VVERM te10 te15 ; VVERM py13 py19 ; VVERM pr15 pr21 ;
  473. VVERM cu20 cu27 ;
  474. VVERM te10i te15i ; VVERM py13i py19i ; VVERM pr15i pr21i ;
  475. VVERM cu20i cu27i ;
  476. * Test de MESU on melange exprès les inverses le signe doit etre positif...
  477. VMESU te4i te10 te15 ; VMESU py5i py13 py19 ; VMESU pr6i pr15 pr21 ;
  478. VMESU cu8i cu20 cu27 ;
  479. VMESU te4 te10i te15i ; VMESU py5 py13i py19i ;
  480. VMESU pr6 pr15i pr21i ;
  481. VMESU cu8 cu20i cu27i ;
  482. * Test de CHAN QUAD
  483. VCHQUA te10 te15 ; VCHQUA py13 py19 ; VCHQUA pr15 pr21 ;
  484. VCHQUA cu20 cu27 ;
  485. VCHQUA te10i te15i ; VCHQUA py13i py19i ; VCHQUA pr15i pr21i ;
  486. VCHQUA cu20i cu27i ;
  487. * Test de CHAN SURF
  488. VCHSUR te15 ; VCHSUR py19 ; VCHSUR pr21 ;
  489. VCHSUR cu27 ;
  490. VCHSUR te15i ; VCHSUR py19i ; VCHSUR pr21i ;
  491. VCHSUR cu27i ;
  492.  
  493. * Test orientation decoupage tetra en cube
  494. * Ce test provoquait une erreur incorrecte
  495. * ***** ERREUR 318 ***** dans l'operateur ORIE
  496. * Deux elements adjacents ont des orientations opposees
  497. * avant les modifs de la fiche 8985.
  498. c1 = 'CHANGER' 'TET4' te15 ;
  499. c2 = 'CHANGER' 'QUAF' c1 ;
  500. c3 = 'CHANGER' 'CUB8' c2 ;
  501. tt = 'ORIENTER' c3 ;
  502. ttq = 'CHANGER' 'QUAD' tt ;
  503. ttqf = 'CHANGER' 'QUAF' ttq ;
  504. VCHLIG ttq ttqf
  505. VENVE tt ttq ttqf ;
  506. VVERS ttq ttqf ;
  507. VVERM ttq ttqf ;
  508. VMESU ('INVERSE' tt) ttq ttqf ;
  509. VCHQUA ttq ttqf ;
  510. VCHSUR ttqf ;
  511. 'FINSI' ;
  512.  
  513.  
  514. 'FIN' idim ;
  515.  
  516.  
  517. 'SI' interact ;
  518. 'OPTION' 'DONN' 5 'ECHO' 1 ;
  519. 'FINSI' ;
  520. *
  521. * End of dgibi file OPERQUAF
  522. *
  523. 'FIN' ;
  524.  
  525.  
  526.  
  527.  

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