Télécharger frenet_1.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : frenet_1.dgibi
  2. ****************************************************
  3. ****************************************************
  4. * *
  5. * VERIFICATION DE L'OPERATEUR FRENET *
  6. * - *
  7. * LIGNE DROITE, CERCLE, ELLIPSE, CYCLOIDE, SPIRALE *
  8. * HELICE *
  9. * *
  10. ****************************************************
  11.  
  12. **********************************************************************
  13. * VERIFICATION EN DIMENSION 2
  14. **********************************************************************
  15.  
  16. OPTI 'DIME' 2 'ELEM' 'SEG2' ;
  17. * METTRE BTRAC = VRAI POUR TRACER LES RESULTATS
  18. BTRAC = FAUX ;
  19. * LISTMOTS POUR LES COMPOSANTES
  20. TXY = MOTS 'TX' 'TY' ;
  21. NXY = MOTS 'NX' 'NY' ;
  22.  
  23. * 1 - LIGNE DROITE
  24. * ****************
  25.  
  26. D1 = DROI 10 (0. 0.) (10. 0.) ;
  27. CHPO1 = MANU 'CHPO' D1 2 'TX' 1. 'TY' 0. 'NATURE' 'DIFFUS' ;
  28. CHPOREF = CHPO1 ;
  29.  
  30. * 2 - CERCLE COMPLET (FERME)
  31. * **************************
  32.  
  33. D2 = CERC 10 'ROTA' 360. (5. 0.) (0. 0.) ;
  34. ELIM D2 1.E-10 ;
  35. X Y = COOR D2 ;
  36. CHPO1 = (NOMC 'TX' (0.-Y)) ET (NOMC 'TY' X) ;
  37. NCHPO1 = (PSCA CHPO1 CHPO1 TXY TXY)**0.5 ;
  38. CHPO1 = CHAN 'ATTRIBUT' (CHPO1 / NCHPO1) 'NATURE' 'DIFFUS' ;
  39. CHPOREF = CHPOREF ET CHPO1 ;
  40. DEPL D2 'MOIN' (0. 8.) ;
  41. DTOT = D1 ET D2 ;
  42.  
  43. * 3 - DEMI-CERCLE
  44. * ***************
  45.  
  46. D3 = CERC 10 'ROTA' 180. (5. 0.) (0. 0.) ;
  47. X Y = COOR D3 ;
  48. CHPO1 = (NOMC 'TX' (0.-Y)) ET (NOMC 'TY' X) ;
  49. NCHPO1 = (PSCA CHPO1 CHPO1 TXY TXY)**0.5 ;
  50. CHPO1 = CHAN 'ATTRIBUT' (CHPO1 / NCHPO1) 'NATURE' 'DIFFUS' ;
  51. CHPOREF = CHPOREF ET CHPO1 ;
  52. DEPL D3 'MOIN' (0. 8.) ;
  53. DEPL D3 'PLUS' (15. 0.) ;
  54. DVER = DTOT ET (D3 ELEM (LECT 2 PAS 1 ((NBEL D3) - 1))) ;
  55. DTOT = DTOT ET D3 ;
  56.  
  57. * 4 - ELLIPSE
  58. * ***********
  59.  
  60. T = PROG 0. PAS (2.*PI/40) (2.*PI) ;
  61. B = 5. ;
  62. A = 1.5 * B ;
  63. X = A * (COS (180./PI*T)) ;
  64. Y = B * (SIN (180./PI*T)) ;
  65. LIG1 = QUEL (VALE 'ELEM') X Y ;
  66. ELIM LIG1 1.E-10 ;
  67. GEO1 = POIN (ENLE X (DIME X)) (ENLE Y (DIME Y)) ;
  68. ELIM LIG1 GEO1 1.E-10 ;
  69. TCHPO = MANU 'CHPO' GEO1 1 'T' (ENLE T (DIME T)) 'NATURE' 'DIFFUS' ;
  70. CHPO1 = (NOMC 'TX' (-1. * A * (SIN (180./PI*TCHPO))))
  71. + (NOMC 'TY' (B * (COS (180./PI*TCHPO)))) ;
  72. NCHPO1 = (PSCA CHPO1 CHPO1 TXY TXY)**0.5 ;
  73. CHPO1 = CHAN 'ATTRIBUT' (CHPO1 / NCHPO1) 'NATURE' 'DIFFUS' ;
  74. CHPOREF = CHPOREF ET CHPO1 ;
  75. DEPL LIG1 'MOIN' (15. 0.) ;
  76. DVER = DVER ET LIG1 ;
  77. DTOT = DTOT ET LIG1 ;
  78.  
  79. * 5 - CYCLOIDE
  80. * ************
  81.  
  82. NDIS = 100 ;
  83. T = PROG (2.*PI/NDIS) PAS (2.*PI/NDIS) ((2.*PI*(NDIS - 1))/NDIS) ;
  84. X = T - (SIN (180./PI*T)) ;
  85. Y = 1. - (COS (180./PI*T)) ;
  86. CYC1 = QUEL (VALE 'ELEM') X Y ;
  87. GEO1 = POIN X Y ;
  88. ELIM CYC1 GEO1 1.E-10 ;
  89. TCHPO = MANU 'CHPO' GEO1 1 'T' T 'NATURE' 'DIFFUS' ;
  90. CHPO1 = (NOMC 'TX' (1. - (COS (180./PI*TCHPO))))
  91. + (NOMC 'TY' (SIN (180./PI*TCHPO))) ;
  92. NCHPO1 = (PSCA CHPO1 CHPO1 TXY TXY)**0.5 ;
  93. CHPO1 = CHAN 'ATTRIBUT' (-1. * CHPO1 / NCHPO1) 'NATURE' 'DIFFUS' ;
  94. CHPOREF = CHPOREF ET CHPO1 ;
  95. DEPL CYC1 'PLUS' (0. 5.) ;
  96. CYC1 = INVE CYC1 ;
  97. DVER = DVER ET (CYC1 ELEM (LECT 2 PAS 1 ((NBEL CYC1) - 1))) ;
  98. DTOT = DTOT ET CYC1 ;
  99.  
  100. * 6 - SPIRALE LOGARITHMIQUE
  101. * *************************
  102.  
  103. T = PROG 0. PAS (4.*PI/NDIS) (4.*PI) ;
  104. B = 1.1 ;
  105. X = (B**T)*(COS (180./PI*T)) ;
  106. Y = (B**T)*(SIN (180./PI*T)) ;
  107. SPI1 = QUEL (VALE 'ELEM') X Y ;
  108. GEO1 = POIN X Y ;
  109. ELIM SPI1 GEO1 1.E-10 ;
  110. TCHPO = MANU 'CHPO' GEO1 1 'T' T 'NATURE' 'DIFFUS' ;
  111. M1 = MOTS 'T' ;
  112. COST = COS (180./PI*TCHPO) ;
  113. SINT = SIN (180./PI*TCHPO) ;
  114. BPT = B**TCHPO ;
  115. CHPO1 = (NOMC 'TX' (BPT * ((COST*(LOG B)) - SINT) M1 M1 M1))
  116. + (NOMC 'TY' (BPT * ((SINT*(LOG B)) + COST) M1 M1 M1)) ;
  117. NCHPO1 = (PSCA CHPO1 CHPO1 TXY TXY)**0.5 ;
  118. CHPO1 = CHAN 'ATTRIBUT' (CHPO1 / NCHPO1) 'NATURE' 'DIFFUS' ;
  119. CHPOREF = CHPOREF ET CHPO1 ;
  120. DEPL SPI1 'PLUS' (15. 5.) ;
  121. DVER = DVER ET (SPI1 ELEM (LECT 2 PAS 1 ((NBEL SPI1) - 1))) ;
  122. DTOT = DTOT ET SPI1 ;
  123.  
  124. * APPEL A FRENET
  125. * **************
  126. FREN1 = FREN DTOT ;
  127. FREN1 = REDU FREN1 DVER ;
  128.  
  129. * VERIFICATION
  130. * ************
  131.  
  132. * DETERMINATION DE LA NORMALE ANALYTIQUE
  133. CHPO1 = PVEC CHPOREF TXY NXY ;
  134. CHPOREF = REDU (CHPOREF ET CHPO1) DVER ;
  135. * CALCUL DES ERREURS
  136. DIF1 = FREN1 - CHPOREF ;
  137. NORT = (PSCA DIF1 DIF1 TXY TXY)**0.5 ;
  138. NORN = (PSCA DIF1 DIF1 NXY NXY)**0.5 ;
  139. SI BTRAC ;
  140. T1 = VECT FREN1 TXY 'BLEU' ;
  141. N1 = VECT FREN1 NXY 'VERT' ;
  142. TRAC (T1 ET N1) DVER ;
  143. TRAC NORT DVER ;
  144. TRAC NORT DVER ;
  145. EVO1 = EVOL 'CHPO' NORT CYC1 ;
  146. DESS EVO1 ;
  147. EVO2 = EVOL 'CHPO' NORT SPI1 ;
  148. DESS EVO2 ;
  149. FINSI ;
  150. * VERIFICATION DES ERREURS
  151. PRE1 = 1.E-2 ;
  152. SI ((MAXI NORT) > PRE1) ;
  153. MESS 'ERREUR SUR LE VECTEUR TANGENT 2D' ;
  154. ERRE 5 ;
  155. FINSI ;
  156. SI ((MAXI NORN) > PRE1) ;
  157. MESS 'ERREUR SUR LE VECTEUR NORMAL 2D' ;
  158. ERRE 5 ;
  159. FINSI ;
  160.  
  161.  
  162. **********************************************************************
  163. * VERIFICATION EN DIMENSION 3
  164. **********************************************************************
  165.  
  166. OPTI 'DIME' 3 ;
  167. * LISTMOTS POUR LES COMPOSANTES
  168. TXYZ = MOTS 'TX' 'TY' 'TZ' ;
  169. NXYZ = MOTS 'NX' 'NY' 'NZ' ;
  170. BXYZ = MOTS 'BX' 'BY' 'BZ' ;
  171.  
  172. * ON COMPLETE LES REPERES ANALYTIQUES 2D
  173. * **************************************
  174.  
  175. MCOMP = (MOTS 'TZ' 'NZ') ET BXYZ ;
  176. CHPO1 = MANU 'CHPO' DTOT MCOMP (PROG 0. 0. 0. 0. 1.)'NATURE' 'DIFFUS' ;
  177. CHPOREF = CHPOREF ET CHPO1 ;
  178. CHPO1 = EXCO CHPOREF (TXYZ ET BXYZ) ;
  179. CHPO2 = PVEC CHPO1 CHPO1 BXYZ TXYZ NXYZ ;
  180. CHPO2 = CHAN 'ATTRIBUT' CHPO2 'NATURE' 'DIFFUS' ;
  181. CHPOREF = EXCO (CHPO1 ET CHPO2) (TXYZ ET NXYZ) ;
  182.  
  183. * 7 - HELICE
  184. * **********
  185.  
  186. A B = 5. 1. ;
  187. NSEG = 120 * ((ENTI (EXTR (VALE 'ELEM') 4)) - 1) ;
  188. T = PROG 0. PAS (6.*PI/NSEG) (6.*PI) ;
  189. X = A * (COS (180.*T/PI)) ;
  190. Y = A * (SIN (180.*T/PI)) ;
  191. Z = B * T ;
  192. HEL1 = QUEL (VALE 'ELEM') X Y Z ;
  193. GEO1 = POIN X Y Z ;
  194. ELIM HEL1 GEO1 1.E-10 ;
  195. TCHPO = MANU 'CHPO' GEO1 1 'T' T 'NATURE' 'DIFFUS' ;
  196. DENOM = ((A**2) + (B**2))**0.5 ;
  197. CHPO1 = (NOMC 'TX' ((0. - A)/DENOM * (SIN (180.*TCHPO/PI)))) ET
  198. (NOMC 'TY' (A/DENOM * (COS (180.*TCHPO/PI)))) ET
  199. (MANU 'CHPO' HEL1 1 'TZ' (B/DENOM) 'NATURE' 'DIFFUS') ;
  200. CHPO2 = (NOMC 'NX' (0. - (COS (180.*TCHPO/PI)))) ET
  201. (NOMC 'NY' (0. - (SIN (180.*TCHPO/PI)))) ET
  202. (MANU 'CHPO' HEL1 1 'NZ' 0. 'NATURE' 'DIFFUS') ;
  203. CHPOREF = CHPOREF ET CHPO1 ET CHPO2 ;
  204. DEPL HEL1 'MOIN' (10. 0. 0.) ;
  205. DEPL HEL1 'PLUS' (0. 10. 0.) ;
  206. DVER = DVER ET (HEL1 ELEM (LECT 2 PAS 1 ((NBEL HEL1) - 1))) ; ;
  207. DTOT = DTOT ET HEL1 ;
  208.  
  209. * APPEL A FRENET
  210. * **************
  211. FREN2 = FREN DTOT ;
  212. FREN2 = REDU FREN2 DVER ;
  213.  
  214. * VERIFICATION
  215. * ************
  216.  
  217. * DETERMINATION DE LA BINORMALE ANALYTIQUE
  218. CHPO1 = PVEC CHPOREF CHPOREF TXYZ NXYZ BXYZ ;
  219. CHPO1 = CHAN 'ATTRIBUT' CHPO1 'NATURE' 'DIFFUS' ;
  220. CHPOREF = REDU (CHPOREF ET CHPO1) DVER ;
  221. * CALCUL DES ERREURS
  222. DIF2 = FREN2 - CHPOREF ;
  223. NORT = (PSCA DIF2 DIF2 TXYZ TXYZ)**0.5 ;
  224. NORN = (PSCA DIF2 DIF2 NXYZ NXYZ)**0.5 ;
  225. NORB = (PSCA DIF2 DIF2 BXYZ BXYZ)**0.5 ;
  226. SI BTRAC ;
  227. T1 = VECT FREN2 TXYZ 'BLEU' ;
  228. N1 = VECT FREN2 NXYZ 'VERT' ;
  229. B1 = VECT FREN2 BXYZ 'ROUG' ;
  230. TRAC (T1 ET N1 ET B1) DVER ;
  231. TRAC NORT DVER ;
  232. TRAC NORN DVER ;
  233. TRAC NORB DVER ;
  234. TRAC NORT DVER ;
  235. TRAC NORN DVER ;
  236. TRAC NORB DVER ;
  237. EVO1 = EVOL 'CHPO' NORT CYC1 ;
  238. DESS EVO1 ;
  239. EVO2 = EVOL 'CHPO' NORT SPI1 ;
  240. DESS EVO2 ;
  241. EVO3 = EVOL 'CHPO' NORT HEL1 ;
  242. DESS EVO3 ;
  243. FINSI ;
  244. * VERIFICATION DES ERREURS
  245. SI ((MAXI (REDU NORT DVER)) > PRE1) ;
  246. MESS 'ERREUR SUR LE VECTEUR TANGENT 3D' ;
  247. ERRE 5 ;
  248. FINSI ;
  249. SI ((MAXI (REDU NORN DVER)) > PRE1) ;
  250. MESS 'ERREUR SUR LE VECTEUR NORMAL 3D' ;
  251. ERRE 5 ;
  252. FINSI ;
  253. SI ((MAXI (REDU NORB DVER)) > PRE1) ;
  254. MESS 'ERREUR SUR LA BINORMALE 3D' ;
  255. ERRE 5 ;
  256. FINSI ;
  257.  
  258. FIN ;
  259.  
  260.  
  261.  

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