Télécharger deda.dgibi

Retour à la liste

Numérotation des lignes :

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

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