1 : * @FRENET PROCEDUR KK2000 00/07/25 21:19:12 3910 2 : *------------------------------------------------- 3 : ****** PROCEDURE @FRENET ****** 4 : *------------------------------------------------- 5 : * 6 : * 7 : * CETTE PROCEDURE A ETE MISE GRACIEUSEMENT 8 : * A DISPOSOTION DE LA COMMUNAUTE CASTEM2000 9 : * PAR M. LIBEYRE ( CEA/DSM/DRFC ) 10 : * 11 : * TEL : ( 33 1 ) 42 25 46 03 12 : * 13 : *------------------------------------------------- 14 : *PROCEDURE @FRENET : CALCUL DU REPERE DE FRENET 15 : * LE LONG D'UNE LIGNE 16 : *------------------------------------------------- 17 : DEBPROC @FRENET GEO*MAILLAGE MOT1/MOT OEIL1/POINT; 18 : LOG1 = EXISTE MOT1; 19 : GEO1 = CHAN SEG2 GEO ; 20 : DIMGEO = VALEUR DIME ; 21 : SI (DIMGEO > 2); 22 : NEL = NBEL GEO1 ; 23 : NP = NBNO GEO1 ; 24 : IP = 1 ; 25 : REPETER BOUC1 (NEL - 1) ; 26 : IP = IP + 1 ; 27 : * mess 'ip =' ip ; 28 : EIP1 = GEO1 ELEM (IP - 1 ) ; 29 : PI1 = EIP1 POIN INITIAL ; 30 : EIP2 = GEO1 ELEM IP ; 31 : PIP = EIP2 POIN INITIAL ; 32 : PI2 = EIP2 POIN FINAL ; 33 : LII = EIP1 ET EIP2 ; 34 : V1 = MOIN PI1 PIP ; 35 : V2 = MOIN PIP PI2 ; 36 : V4 = V1 PVEC V2 ; 37 : SI ((NORM V4) < ((NORM V1) * 1.E-5)); 38 : SI (IP < NEL); 39 : INCR = IP; 40 : REPETER BOUC2 ; 41 : INCR = INCR + 1 ; 42 : * MESS ' INCR = ' INCR; 43 : ELE1 = GEO1 ELEM INCR ; 44 : PT2 = ELE1 POIN FINAL ; 45 : V22 = MOIN PIP PT2 ; 46 : V42 = V1 PVEC V22 ; 47 : SI ((NORM V42) > ((NORM V1) * 1.E-5)) ; 48 : QUITTER BOUC2 ; 49 : FINSI ; 50 : SI (INCR EGA NEL) ; 51 : V42 = V1 PVEC (1. 0. 0.) ; 52 : SI ((NORM V42) > ((NORM V1) * 1.E-5)) ; 53 : * MESS 'PERPENDICULAIRE A L AXE X'; 54 : QUITTER BOUC2 ; 55 : SINON ; 56 : V42 = V1 PVEC (0. -1. 0.) ; 57 : * MESS 'PERPENDICULAIRE A L AXE Y'; 58 : QUITTER BOUC2 ; 59 : FINSI ; 60 : FINSI ; 61 : FIN BOUC2 ; 62 : V4 = V42 ; 63 : SINON ; 64 : * MESS ' DERNIER VECTEUR '; 65 : V4 = BPI; 66 : FINSI; 67 : FINSI; 68 : NV4 = NORM V4 ; 69 : BPI = V4 * ( 1. / NV4 ) ; 70 : CHBI = MANU CHPO PIP 3 'BX' (COOR 1 BPI) 71 : 'BY' (COOR 2 BPI) 72 : 'BZ' (COOR 3 BPI) NATURE DISCRET; 73 : V4 = BPI PVEC V1 ; 74 : V5 = BPI PVEC V2 ; 75 : V6 = V4 PLUS V5 ; 76 : NPI = -1. * (V6/(NORM V6)) ; 77 : CHNI = MANU CHPO PIP 3 'NX' (COOR 1 NPI) 78 : 'NY' (COOR 2 NPI) 79 : 'NZ' (COOR 3 NPI) NATURE DISCRET ; 80 : TPI = NPI PVEC BPI ; 81 : CHTI = MANU CHPO PIP 3 'TX' (COOR 1 TPI) 82 : 'TY' (COOR 2 TPI) 83 : 'TZ' (COOR 3 TPI) NATURE DISCRET; 84 : SI (EGA IP 2) ; 85 : CHB = CHBI ; 86 : CHN = CHNI ; 87 : CHT = CHTI ; 88 : SINON ; 89 : CHB = CHB ET CHBI ; 90 : CHN = CHN ET CHNI ; 91 : CHT = CHT ET CHTI ; 92 : FINSI ; 93 : FIN BOUC1 ; 94 : * MESS 'ELEMENT N0 1' ; 95 : EI1 = GEO1 ELEM 1 ; 96 : PI1 = EI1 POIN INITIAL ; 97 : P2 = EI1 POIN FINAL ; 98 : EL2 = GEO1 ELEM 2 ; 99 : EL3 = GEO1 ELEM 3 ; 100 : EL4 = GEO1 ELEM 4 ; 101 : CHT2 = REDU CHT EL2 ; 102 : CHT3 = REDU CHT EL3 ; 103 : CHT4 = REDU CHT EL4 ; 104 : CHN2 = REDU CHN EL2 ; 105 : CHN3 = REDU CHN EL3 ; 106 : CHN4 = REDU CHN EL4 ; 107 : CHB2 = REDU CHB EL2 ; 108 : CHB3 = REDU CHB EL3 ; 109 : CHB4 = REDU CHB EL4 ; 110 : DS2 R2 T2 ALPHA2 BETA2 = @COUTOR1 EL2 CHT2 CHN2 CHB2 ; 111 : DS3 R3 T3 ALPHA3 BETA3 = @COUTOR1 EL3 CHT3 CHN3 CHB3 ; 112 : DS4 R4 T4 ALPHA4 BETA4 = @COUTOR1 EL4 CHT4 CHN4 CHB4 ; 113 : DS1 = NORM (MOIN PI1 P2) ; 114 : RAP12 = (DS1+DS2)/2; 115 : RAP23 = (DS2+DS3)/2; 116 : RAP34 = (DS3+DS4)/2; 117 : PR2 = (R3-R2)/RAP23; 118 : PR3 = (R4-R3)/RAP34; 119 : PT2 = (T3-T2)/RAP23; 120 : PT3 = (T4-T3)/RAP34; 121 : RAP = (DS1+(2*DS2)+DS3)/(DS2+(2*DS3)+DS4); 122 : PR1 = PR2+((PR2-PR3)*RAP); 123 : R1 = R2-(PR1*RAP12); 124 : ALPHA1 = -1. * (DS1/R1)* (180. / PI); 125 : SI (T2 > 1.E98); 126 : BETA1 = 0. ; 127 : FINSI ; 128 : SI (T3 > 1.E98) ; 129 : SI (T2 > 1.E98); 130 : BETA1 = 0. ; 131 : SINON ; 132 : TT1 = (1./T2) (1. + RAP) ; 133 : T1 = 1./TT1 ; 134 : BETA1 = (DS1/T1)*180/PI; 135 : FINSI ; 136 : FINSI ; 137 : SI ((T2 < 1.E98) ET (T3 < 1.E98)) ; 138 : PT1 = PT2+((PT2-PT3)*RAP); 139 : T1 = T2-(PT1*RAP12); 140 : BETA1 = (DS1/T1)*180./PI ; 141 : FINSI ; 142 : NXI2 = EXTR CHN NX P2 ; 143 : NYI2 = EXTR CHN NY P2 ; 144 : NZI2 = EXTR CHN NZ P2 ; 145 : VN2 = NXI2 NYI2 NZI2 ; 146 : TXI2 = EXTR CHT TX P2 ; 147 : TYI2 = EXTR CHT TY P2 ; 148 : TZI2 = EXTR CHT TZ P2 ; 149 : VT2 = TXI2 TYI2 TZI2 ; 150 : BXI2 = EXTR CHB BX P2 ; 151 : BYI2 = EXTR CHB BY P2 ; 152 : BZI2 = EXTR CHB BZ P2 ; 153 : VB2 = BXI2 BYI2 BZI2 ; 154 : VN = (VN2 * (COS BETA1)) PLUS (VB2 * (SIN BETA1)) ; 155 : VB1 = (VN2 * (-1.*(SIN BETA1))) PLUS (VB2 * (COS BETA1)) ; 156 : VT1 = (VT2 * (COS ALPHA1)) PLUS (VN * (SIN ALPHA1)) ; 157 : VN1 = (VT2 * (-1.*(SIN ALPHA1))) PLUS (VN * (COS ALPHA1)) ; 158 : CHTI = MANU CHPO PI1 3 'TX' (COOR 1 VT1) 159 : 'TY' (COOR 2 VT1) 160 : 'TZ' (COOR 3 VT1) NATURE DISCRET; 161 : CHT = CHT ET CHTI ; 162 : CHNI = MANU CHPO PI1 3 'NX' (COOR 1 VN1) 163 : 'NY' (COOR 2 VN1) 164 : 'NZ' (COOR 3 VN1) NATURE DISCRET; 165 : CHN = CHN ET CHNI ; 166 : CHBI = MANU CHPO PI1 3 'BX' (COOR 1 VB1) 167 : 'BY' (COOR 2 VB1) 168 : 'BZ' (COOR 3 VB1) NATURE DISCRET; 169 : CHB = CHB ET CHBI ; 170 : * MESS 'ELEMENT N0 NEL' ; 171 : EI1 = GEO1 ELEM NEL ; 172 : PI1 = EI1 POIN FINAL ; 173 : P2 = EI1 POIN INITIAL ; 174 : EL2 = GEO1 ELEM (NEL-1) ; 175 : EL3 = GEO1 ELEM (NEL-2) ; 176 : EL4 = GEO1 ELEM (NEL-3) ; 177 : CHT2 = REDU CHT EL2 ; 178 : CHT3 = REDU CHT EL3 ; 179 : CHT4 = REDU CHT EL4 ; 180 : CHN2 = REDU CHN EL2 ; 181 : CHN3 = REDU CHN EL3 ; 182 : CHN4 = REDU CHN EL4 ; 183 : CHB2 = REDU CHB EL2 ; 184 : CHB3 = REDU CHB EL3 ; 185 : CHB4 = REDU CHB EL4 ; 186 : DS2 R2 T2 ALPHA2 BETA2 = @COUTOR1 EL2 CHT2 CHN2 CHB2 ; 187 : DS3 R3 T3 ALPHA3 BETA3 = @COUTOR1 EL3 CHT3 CHN3 CHB3 ; 188 : DS4 R4 T4 ALPHA4 BETA4 = @COUTOR1 EL4 CHT4 CHN4 CHB4 ; 189 : DS1 = NORM (MOIN PI1 P2) ; 190 : RAP12 = (DS1+DS2)/2; 191 : RAP23 = (DS2+DS3)/2; 192 : RAP34 = (DS3+DS4)/2; 193 : PR2 = (R3-R2)/RAP23; 194 : PR3 = (R4-R3)/RAP34; 195 : PT2 = (T3-T2)/RAP23; 196 : PT3 = (T4-T3)/RAP34; 197 : RAP = (DS1+(2*DS2)+DS3)/(DS2+(2*DS3)+DS4); 198 : PR1 = PR2+((PR2-PR3)*RAP); 199 : R1 = R2-(PR1*RAP12); 200 : ALPHA1 = (DS1/R1)*180./PI; 201 : SI (T2 > 1.E98); 202 : BETA1 = 0. ; 203 : FINSI ; 204 : SI (T3 > 1.E98) ; 205 : SI (T2 > 1.E98); 206 : BETA1 = 0. ; 207 : SINON ; 208 : TT1 = (1./T2) (1. + RAP) ; 209 : T1 = 1./TT1 ; 210 : BETA1 = -1.*(DS1/T1)*180/PI; 211 : FINSI ; 212 : FINSI ; 213 : SI ((T2 < 1.E98) ET (T3 < 1.E98)) ; 214 : PT1 = PT2+((PT2-PT3)*RAP); 215 : T1 = T2-(PT1*RAP12); 216 : BETA1 = -1.*(DS1/T1)*180/PI ; 217 : FINSI ; 218 : NXI2 = EXTR CHN NX P2 ; 219 : NYI2 = EXTR CHN NY P2 ; 220 : NZI2 = EXTR CHN NZ P2 ; 221 : VN2 = NXI2 NYI2 NZI2 ; 222 : TXI2 = EXTR CHT TX P2 ; 223 : TYI2 = EXTR CHT TY P2 ; 224 : TZI2 = EXTR CHT TZ P2 ; 225 : VT2 = TXI2 TYI2 TZI2 ; 226 : BXI2 = EXTR CHB BX P2 ; 227 : BYI2 = EXTR CHB BY P2 ; 228 : BZI2 = EXTR CHB BZ P2 ; 229 : VB2 = BXI2 BYI2 BZI2 ; 230 : VT1 = ((VT2 * (COS ALPHA1)) PLUS (VN2 * (SIN ALPHA1))) ; 231 : VN = (VT2 * (-1. * (SIN ALPHA1))) PLUS (VN2 * (COS ALPHA1)) ; 232 : VB = VB2 ; 233 : VN1 = (VN * (COS BETA1)) PLUS (VB * (SIN BETA1)) ; 234 : VB1 = (VN * (-1. * (SIN BETA1))) PLUS (VB * (COS BETA1)) ; 235 : CHTI = MANU CHPO PI1 3 'TX' (COOR 1 VT1) 236 : 'TY' (COOR 2 VT1) 237 : 'TZ' (COOR 3 VT1) NATURE DISCRET ; 238 : CHT = CHT ET CHTI ; 239 : CHNI = MANU CHPO PI1 3 'NX' (COOR 1 VN1) 240 : 'NY' (COOR 2 VN1) 241 : 'NZ' (COOR 3 VN1) NATURE DISCRET; 242 : CHN = CHN ET CHNI ; 243 : CHBI = MANU CHPO PI1 3 'BX' (COOR 1 VB1) 244 : 'BY' (COOR 2 VB1) 245 : 'BZ' (COOR 3 VB1) NATURE DISCRET; 246 : CHB = CHB ET CHBI ; 247 : COX COY COZ = COOR GEO ; 248 : XMAX = MAXI COX ; 249 : YMAX = MAXI COY ; 250 : ZMAX = MAXI COZ ; 251 : XMIN = MINI COX ; 252 : YMIN = MINI COY ; 253 : ZMIN = MINI COZ ; 254 : DL = (((XMAX - XMIN)**2) + ((YMAX -YMIN)**2) + 255 : ((ZMAX -ZMIN)**2))**0.5 ; 256 : AMP = DL/10. ; 257 : VT = VECT CHT AMP TX TY TZ ROUGE ; 258 : VN = VECT CHN AMP NX NY NZ VERT ; 259 : VB = VECT CHB AMP BX BY BZ JAUNE ; 260 : SI (LOG1 EGA VRAI); 261 : TITRE 'REPERE DE FRENET DE LA LIGNE' ; 262 : TRAC OEIL1 QUAL (VT ET VN ET VB) GEO1 ; 263 : FINSI; 264 : SINON ; 265 : NEL = NBEL GEO1; 266 : NP = NBNO GEO1; 267 : O = 0. 0.; 268 : IP = 1; 269 : REPETER BOUC2 (NEL - 1); 270 : IP =IP+1; 271 : * MESS ' IP = ' IP; 272 : EIP1 = GEO1 ELEM (IP-1); 273 : PI1 = EIP1 POIN INITIAL ; 274 : EIP2 = GEO1 ELEM IP ; 275 : PIP = EIP2 POIN INITIAL ; 276 : PI2 = EIP2 POIN FINAL ; 277 : V1 = MOIN PIP PI1; 278 : V2 = MOIN PI2 PIP; 279 : V3 = V1 TOUR 90. O; 280 : V4 = V2 TOUR 90. O; 281 : V5 = V3 PLUS V4; 282 : NPI = V5 / (NORM V5); 283 : TPI = NPI TOUR (-1*90.) O; 284 : CHNI = MANU CHPO PIP 2 'NX' (COOR 1 NPI) 285 : 'NY' (COOR 2 NPI) NATURE DISCRET; 286 : CHTI = MANU CHPO PIP 2 'TX' (COOR 1 TPI) 287 : 'TY' (COOR 2 TPI) NATURE DISCRET; 288 : SI (EGA IP 2) ; 289 : CHN = CHNI ; 290 : CHT = CHTI ; 291 : SINON ; 292 : CHN = CHN ET CHNI ; 293 : CHT = CHT ET CHTI ; 294 : FINSI; 295 : CHB = MANU CHPO GEO1 2 'BX' 0. 'BY' 0. ; 296 : FIN BOUC2; 297 : 298 : * MESS 'ELEMENT N0 1' ; 299 : EI1 = GEO1 ELEM 1 ; 300 : PI1 = EI1 POIN INITIAL ; 301 : P2 = EI1 POIN FINAL ; 302 : EL2 = GEO1 ELEM 2 ; 303 : EL3 = GEO1 ELEM 3 ; 304 : EL4 = GEO1 ELEM 4 ; 305 : CHT2 = REDU CHT EL2 ; 306 : CHT3 = REDU CHT EL3 ; 307 : CHT4 = REDU CHT EL4 ; 308 : CHN2 = REDU CHN EL2 ; 309 : CHN3 = REDU CHN EL3 ; 310 : CHN4 = REDU CHN EL4 ; 311 : CHB2 = REDU CHB EL2 ; 312 : CHB3 = REDU CHB EL3 ; 313 : CHB4 = REDU CHB EL4 ; 314 : DS2 R2 T2 ALPHA2 BETA2 = @COUTOR1 EL2 CHT2 CHN2 CHB2 ; 315 : DS3 R3 T3 ALPHA3 BETA3 = @COUTOR1 EL3 CHT3 CHN3 CHB3 ; 316 : DS4 R4 T4 ALPHA4 BETA4 = @COUTOR1 EL4 CHT4 CHN4 CHB4 ; 317 : DS1 = NORM (MOIN PI1 P2) ; 318 : RAP12 = (DS1+DS2)/2; 319 : RAP23 = (DS2+DS3)/2; 320 : RAP34 = (DS3+DS4)/2; 321 : PR2 = (R3-R2)/RAP23; 322 : PR3 = (R4-R3)/RAP34; 323 : RAP = (DS1+(2*DS2)+DS3)/(DS2+(2*DS3)+DS4); 324 : PR1 = PR2+((PR2-PR3)*RAP); 325 : R1 = R2-(PR1*RAP12); 326 : ALPHA1 = -1. * (DS1/R1)* (180. / PI); 327 : NXI2 = EXTR CHN NX P2 ; 328 : NYI2 = EXTR CHN NY P2 ; 329 : VN2 = NXI2 NYI2 ; 330 : TXI2 = EXTR CHT TX P2 ; 331 : TYI2 = EXTR CHT TY P2 ; 332 : VT2 = TXI2 TYI2 ; 333 : BXI2 = EXTR CHB BX P2 ; 334 : BYI2 = EXTR CHB BY P2 ; 335 : VB2 = BXI2 BYI2 ; 336 : VT1 = (VT2 * (COS ALPHA1)) PLUS (VN2 * (SIN ALPHA1)) ; 337 : VN1 = (VT2 * (-1. * (SIN ALPHA1))) PLUS (VN2 * (COS ALPHA1)) ; 338 : VB = VB2 ; 339 : CHTI = MANU CHPO PI1 2 'TX' (COOR 1 VT1) 340 : 'TY' (COOR 2 VT1) NATURE DISCRET; 341 : CHT = CHT ET CHTI ; 342 : CHNI = MANU CHPO PI1 2 'NX' (COOR 1 VN1) 343 : 'NY' (COOR 2 VN1) NATURE DISCRET; 344 : CHN = CHN ET CHNI ; 345 : 346 : * MESS 'ELEMENT N0 NEL' ; 347 : EI1 = GEO1 ELEM NEL ; 348 : PI1 = EI1 POIN FINAL ; 349 : P2 = EI1 POIN INITIAL ; 350 : 351 : EL2 = GEO1 ELEM (NEL-1) ; 352 : EL3 = GEO1 ELEM (NEL-2) ; 353 : EL4 = GEO1 ELEM (NEL-3) ; 354 : CHT2 = REDU CHT EL2 ; 355 : CHT3 = REDU CHT EL3 ; 356 : CHT4 = REDU CHT EL4 ; 357 : CHN2 = REDU CHN EL2 ; 358 : CHN3 = REDU CHN EL3 ; 359 : CHN4 = REDU CHN EL4 ; 360 : CHB2 = REDU CHB EL2 ; 361 : CHB3 = REDU CHB EL3 ; 362 : CHB4 = REDU CHB EL4 ; 363 : DS2 R2 T2 ALPHA2 BETA2 = @COUTOR1 EL2 CHT2 CHN2 CHB2 ; 364 : DS3 R3 T3 ALPHA3 BETA3 = @COUTOR1 EL3 CHT3 CHN3 CHB3 ; 365 : DS4 R4 T4 ALPHA4 BETA4 = @COUTOR1 EL4 CHT4 CHN4 CHB4 ; 366 : DS1 = NORM (MOIN PI1 P2) ; 367 : RAP12 = (DS1+DS2)/2; 368 : RAP23 = (DS2+DS3)/2; 369 : RAP34 = (DS3+DS4)/2; 370 : PR2 = (R3-R2)/RAP23; 371 : PR3 = (R4-R3)/RAP34; 372 : RAP = (DS1+(2*DS2)+DS3)/(DS2+(2*DS3)+DS4); 373 : PR1 = PR2+((PR2-PR3)*RAP); 374 : R1 = R2-(PR1*RAP12); 375 : ALPHA1 = (DS1/R1)*180./PI; 376 : NXI2 = EXTR CHN NX P2 ; 377 : NYI2 = EXTR CHN NY P2 ; 378 : VN2 = NXI2 NYI2 ; 379 : TXI2 = EXTR CHT TX P2 ; 380 : TYI2 = EXTR CHT TY P2 ; 381 : VT2 = TXI2 TYI2 ; 382 : VT1 = ((VT2 * (COS ALPHA1)) PLUS (VN2 * (SIN ALPHA1))) ; 383 : VN1 = (VT2 * (-1. * (SIN ALPHA1))) PLUS (VN2 * (COS ALPHA1)) ; 384 : CHTI = MANU CHPO PI1 2 'TX' (COOR 1 VT1) 385 : 'TY' (COOR 2 VT1) NATURE DISCRET; 386 : CHT = CHT ET CHTI ; 387 : CHNI = MANU CHPO PI1 2 'NX' (COOR 1 VN1) 388 : 'NY' (COOR 2 VN1) NATURE DISCRET; 389 : CHN = CHN ET CHNI ; 390 : 391 : COX COY = COOR GEO ; 392 : XMAX = MAXI COX ; 393 : YMAX = MAXI COY ; 394 : XMIN = MINI COX ; 395 : YMIN = MINI COY ; 396 : DL = (((XMAX - XMIN)**2) + ((YMAX -YMIN)**2))**0.5 ; 397 : AMP = DL/10. ; 398 : VT = VECT CHT AMP TX TY ROUGE ; 399 : VN = VECT CHN AMP NX NY VERT ; 400 : SI (LOG1 EGA VRAI); 401 : TITRE 'REPERE DE FRENET DE LA LIGNE' ; 402 : TRAC QUAL (VN ET VT) GEO1; 403 : FINSI; 404 : FINSI ; 405 : FINPROC CHT CHN CHB ; 406 : 407 :
© Cast3M 2003 - All rights reserved.
Disclaimer