Télécharger deda.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : deda.dgibi
  2. *
  3. 'OPTI' 'ECHO' 0 ;
  4. ************************************************************************
  5. ************************************************************************
  6.  
  7.  
  8.  
  9. ************************************************************************
  10. * Cas test pour l'operateur DEDAns *
  11. * On test le resultat de l'operateur DEDA sur des points sur des *
  12. * points situes a l'exterieur et a l'interieur d'un contour (2D) et *
  13. * d'une enveloppe (3D) *
  14. * Le maillage utilise est non convexe et non connexe (2 parties) *
  15. * On teste avec des points : *
  16. * - franchement loin du bord *
  17. * - tres pres du bord *
  18. * - colineaire/coplanaire a un element du bord *
  19. * - situes sur le bord (face, arete, sommet) *
  20. * - appartenant au bord (noeud du bord) *
  21. ************************************************************************
  22.  
  23.  
  24. ** Indicateur pour le trace
  25. itrac = FAUX ;
  26.  
  27. ** Distance pour placer des points "tres pres" du bord
  28. * si l'on reduit cette distance, il convient d'adapter le critere de
  29. * l'operateur DEDA en le choisissant plus eleve que la valeur par
  30. * defaut
  31. epsi = 1.E-5 ;
  32.  
  33.  
  34.  
  35. ************************************************************************
  36. * EN DIMENSION 2 *
  37. ************************************************************************
  38.  
  39. 'OPTI' 'DIME' 2 'ELEM' 'SEG2' ;
  40.  
  41. 'MESS' ;
  42. 'MESS' '*************************' ;
  43. 'MESS' ' DIMENSION 2' ;
  44. 'MESS' '*************************' ;
  45. 'MESS' ;
  46.  
  47. ** Maillage du contour oriente convenablement : les trous internes
  48. * tournent dans le sens oppose du cadre exterieur
  49. p0 = 0. 0. ;
  50. p1 = 8. 0. ;
  51. p2 = 8. 8. ;
  52. p3 = 4. 4. ;
  53. p4 = 0. 8. ;
  54. ne1 = 10 ;
  55. cadre = p0 'DROI' ne1 p1 'DROI' ne1 p2 'DROI' ne1 p3 'DROI' ne1 p4
  56. 'DROI' ne1 p0 ;
  57. *
  58. p5 = 2. 2. ;
  59. p6 = 3. 2. ;
  60. cerc1 = 'LIGN' 20 p5 p6 -360. 'ROTA' ;
  61. 'ELIM' 1.E-9 cerc1 ;
  62. *
  63. cont1 = cadre 'ET' cerc1 ;
  64.  
  65.  
  66. ** Table de points a l'exterieur et a l'interieur
  67. tpe = 'TABL' 'ESCLAVE' ;
  68. tpe . 1 = -1. -1. ;
  69. tpe . 2 = 4. 6. ;
  70. tpe . 3 = 2.5 2.7 ;
  71. tpe . 4 = 1.5 1.5 ;
  72. tpe . 5 = p3 'PLUS' (0. epsi) ;
  73. tpe . 6 = (-1. * epsi) 4. ;
  74. tpe . 7 = 15. 15. ;
  75. tpe . 8 = 0. 10. ;
  76. tpe . 9 = 10. 0. ;
  77. mpe = ('ET' tpe) 'COUL' 'ROUG' ;
  78. tpi = 'TABL' 'ESCLAVE' ;
  79. tpi . 1 = 4. 3. ;
  80. tpi . 2 = 6. 2. ;
  81. tpi . 3 = 2. epsi ;
  82. tpi . 4 = (8. - epsi) 4. ;
  83. tpi . 5 = 5. 0. ;
  84. tpi . 6 = 1. 7. ;
  85. tpi . 7 = 4. 4. ;
  86. tpi . 8 = 8. 0. ;
  87. tpi . 9 = p0 ;
  88. tpi . 10 = p2 ;
  89. mpi = ('ET' tpi) 'COUL' 'VERT' ;
  90. *
  91. 'SI' itrac ;
  92. 'TRAC' (cont1 'ET' mpe 'ET' mpi)
  93. 'TITR' 'Point ext. (rouge) et points int. (vert)' ;
  94. 'FINSI' ;
  95.  
  96.  
  97. ** Test si les points sont bien a l'exterieur du contour
  98. 'MESS' '***** Resultat de DEDA pour les points a l exterieur' ;
  99. 'REPE' b1 (('DIME' tpe) - 2) ;
  100. pe1 = tpe . &b1 ;
  101. log1 = 'DEDA' pe1 cont1 ;
  102. 'LIST' log1 ;
  103. 'SI' log1 ;
  104. 'MESS' '***** ECHEC du cas test !' ;
  105. 'MESS' 'Le ' &b1 'ieme point exterieur est detecte a l interieur' ;
  106. 'LIST' pe1 ;
  107. 'ERREUR' 5 ;
  108. 'FINSI' ;
  109. 'FIN' b1 ;
  110.  
  111.  
  112. ** Test si les points sont bien a l'interieur du contour
  113. 'MESS' ;
  114. 'MESS' '***** Resultat de DEDA pour les points a l interieur' ;
  115. 'REPE' b1 (('DIME' tpi) - 2) ;
  116. pi1 = tpi . &b1 ;
  117. log1 = 'DEDA' pi1 cont1 ;
  118. 'LIST' log1 ;
  119. 'SI' ('NON' log1) ;
  120. 'MESS' '***** ECHEC du cas test !' ;
  121. 'MESS' 'Le ' &b1 'ieme point interieur est detecte a l exterieur' ;
  122. 'LIST' pi1 ;
  123. 'ERREUR' 5 ;
  124. 'FINSI' ;
  125. 'FIN' b1 ;
  126.  
  127.  
  128. 'MESS' ;
  129. 'MESS' ;
  130.  
  131.  
  132.  
  133. ************************************************************************
  134. * EN DIMENSION 3 *
  135. ************************************************************************
  136.  
  137. 'OPTI' 'DIME' 3 'ELEM' 'TRI3' ;
  138.  
  139. 'MESS' ;
  140. 'MESS' '*************************' ;
  141. 'MESS' ' DIMENSION 3' ;
  142. 'MESS' '*************************' ;
  143. 'MESS' ;
  144.  
  145. ** Maillage de l'enveloppe par revolution du contour precedent
  146. p7 = 0. 10. 0. ;
  147. p8 = 1. 10. 0. ;
  148. ne2 = 10 ;
  149. sur1 = 'SURF' cont1 'PLAN' ;
  150. sur1 = 'ORIE' sur1 'POIN' (0. 0. -1.) ;
  151. env1 = cont1 'ROTA' ne2 90. p7 p8 ;
  152. cont2 = env1 'COTE' 3 ;
  153. sur2 = 'SURF' cont2 'PLAN' ;
  154. sur2 = 'ORIE' sur2 'POIN' (0. 1. 0.) ;
  155. env1 = env1 'ET' sur1 'ET' sur2 ;
  156.  
  157.  
  158. ** Table de points a l'exterieur et a l'interieur
  159. tpe = 'TABL' 'ESCLAVE' ;
  160. tpe . 1 = 1. 1. 1. ;
  161. tpe . 2 = -1. 10. -2. ;
  162. tpe . 3 = (2. 2. 0.) 'TOUR' 40. p7 p8 ;
  163. tpe . 4 = 4. 2. epsi ;
  164. tpe . 5 = 3. (10. + epsi) -6. ;
  165. tpe . 6 = (env1 'POIN' 'PROC' (p3 'TOUR' 65. p7 p8)) 'PLUS'
  166. (0. 0. epsi) ;
  167. tpe . 7 = 2. 8. 0. ;
  168. tpe . 8 = 0. 10. 0. ;
  169. tpe . 9 = 2. 2. 0. ;
  170. mpe = ('ET' tpe) 'COUL' 'ROUG' ;
  171. tpi = 'TABL' 'ESCLAVE' ;
  172. tpi . 1 = 4. 3. -1. ;
  173. tpi . 2 = 7. 8. -5. ;
  174. tpi . 3 = 2. (10. - epsi) -5. ;
  175. tpi . 4 = (env1 'POIN' 'PROC' (p3 'TOUR' 80. p7 p8)) 'MOIN'
  176. (0. 0. epsi) ;
  177. tpi . 5 = 3. 4. 0. ;
  178. tpi . 6 = 8. 10. -8. ;
  179. tpi . 7 = 0. 0. 0. ;
  180. tpi . 8 = (env1 'POIN' 'PROC' (p6 'TOUR' 30. p7 p8)) 'PLUS'
  181. (0. 0. 0.) ;
  182. tpi . 9 = env1 'POIN' 'PROC' (p3 'TOUR' 45. p7 p8) ;
  183. tpi . 10 = p6 ;
  184. mpi = ('ET' tpi) 'COUL' 'VERT' ;
  185.  
  186. 'SI' itrac ;
  187. are1 = 'ARET' env1 ;
  188. 'TRAC' (are1 'ET' mpe 'ET' mpi)
  189. 'TITR' 'Point ext. (rouge) et points int. (vert)' ;
  190. 'FINSI' ;
  191.  
  192.  
  193. ** Test si les points sont bien a l'exterieur du contour
  194. 'MESS' '***** Resultat de DEDA pour les points a l exterieur' ;
  195. 'REPE' b1 (('DIME' tpe) - 2) ;
  196. pe1 = tpe . &b1 ;
  197. log1 = 'DEDA' pe1 env1 ;
  198. 'LIST' log1 ;
  199. 'SI' log1 ;
  200. 'MESS' '***** ECHEC du cas test !' ;
  201. 'MESS' 'Le ' &b1 'ieme point exterieur est detecte a l interieur' ;
  202. 'LIST' pe1 ;
  203. 'ERREUR' 5 ;
  204. 'FINSI' ;
  205. 'FIN' b1 ;
  206.  
  207.  
  208. ** Test si les points sont bien a l'interieur du contour
  209. 'MESS' ;
  210. 'MESS' '***** Resultat de DEDA pour les points a l interieur' ;
  211. 'REPE' b1 (('DIME' tpi) - 2) ;
  212. pi1 = tpi . &b1 ;
  213. log1 = 'DEDA' pi1 env1 ;
  214. 'LIST' log1 ;
  215. 'SI' ('NON' log1) ;
  216. 'MESS' '***** ECHEC du cas test !' ;
  217. 'MESS' 'Le ' &b1 'ieme point interieur est detecte a l exterieur' ;
  218. 'LIST' pi1 ;
  219. 'ERREUR' 5 ;
  220. 'FINSI' ;
  221. 'FIN' b1 ;
  222.  
  223.  
  224.  
  225. ** Fin normale du cas test
  226. 'MESS' ;
  227. 'MESS' ;
  228. 'MESS' ;
  229. 'MESS' '***** SUCCES du cas test !' ;
  230. 'FIN' ;
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  

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