* @FRENET PROCEDUR KK2000 00/07/25 21:19:12 3910 *------------------------------------------------- ****** PROCEDURE @FRENET ****** *------------------------------------------------- * * * CETTE PROCEDURE A ETE MISE GRACIEUSEMENT * A DISPOSOTION DE LA COMMUNAUTE CASTEM2000 * PAR M. LIBEYRE ( CEA/DSM/DRFC ) * * TEL : ( 33 1 ) 42 25 46 03 * *------------------------------------------------- *PROCEDURE @FRENET : CALCUL DU REPERE DE FRENET * LE LONG D'UNE LIGNE *------------------------------------------------- LOG1 = EXISTE MOT1; SI (DIMGEO > 2); IP = 1 ; REPETER BOUC1 (NEL - 1) ; IP = IP + 1 ; * mess 'ip =' ip ; LII = EIP1 ET EIP2 ; SI (IP < NEL); INCR = IP; REPETER BOUC2 ; INCR = INCR + 1 ; * MESS ' INCR = ' INCR; QUITTER BOUC2 ; FINSI ; SI (INCR EGA NEL) ; * MESS 'PERPENDICULAIRE A L AXE X'; QUITTER BOUC2 ; SINON ; * MESS 'PERPENDICULAIRE A L AXE Y'; QUITTER BOUC2 ; FINSI ; FINSI ; FIN BOUC2 ; V4 = V42 ; SINON ; * MESS ' DERNIER VECTEUR '; V4 = BPI; FINSI; FINSI; BPI = V4 * ( 1. / NV4 ) ; SI (EGA IP 2) ; CHB = CHBI ; CHN = CHNI ; CHT = CHTI ; SINON ; CHB = CHB ET CHBI ; CHN = CHN ET CHNI ; CHT = CHT ET CHTI ; FINSI ; FIN BOUC1 ; * MESS 'ELEMENT N0 1' ; RAP12 = (DS1+DS2)/2; RAP23 = (DS2+DS3)/2; RAP34 = (DS3+DS4)/2; PR2 = (R3-R2)/RAP23; PR3 = (R4-R3)/RAP34; PT2 = (T3-T2)/RAP23; PT3 = (T4-T3)/RAP34; RAP = (DS1+(2*DS2)+DS3)/(DS2+(2*DS3)+DS4); PR1 = PR2+((PR2-PR3)*RAP); R1 = R2-(PR1*RAP12); ALPHA1 = -1. * (DS1/R1)* (180. / PI); SI (T2 > 1.E98); BETA1 = 0. ; FINSI ; SI (T3 > 1.E98) ; SI (T2 > 1.E98); BETA1 = 0. ; SINON ; TT1 = (1./T2) (1. + RAP) ; T1 = 1./TT1 ; BETA1 = (DS1/T1)*180/PI; FINSI ; FINSI ; SI ((T2 < 1.E98) ET (T3 < 1.E98)) ; PT1 = PT2+((PT2-PT3)*RAP); T1 = T2-(PT1*RAP12); BETA1 = (DS1/T1)*180./PI ; FINSI ; VN2 = NXI2 NYI2 NZI2 ; VT2 = TXI2 TYI2 TZI2 ; VB2 = BXI2 BYI2 BZI2 ; CHT = CHT ET CHTI ; CHN = CHN ET CHNI ; CHB = CHB ET CHBI ; * MESS 'ELEMENT N0 NEL' ; RAP12 = (DS1+DS2)/2; RAP23 = (DS2+DS3)/2; RAP34 = (DS3+DS4)/2; PR2 = (R3-R2)/RAP23; PR3 = (R4-R3)/RAP34; PT2 = (T3-T2)/RAP23; PT3 = (T4-T3)/RAP34; RAP = (DS1+(2*DS2)+DS3)/(DS2+(2*DS3)+DS4); PR1 = PR2+((PR2-PR3)*RAP); R1 = R2-(PR1*RAP12); ALPHA1 = (DS1/R1)*180./PI; SI (T2 > 1.E98); BETA1 = 0. ; FINSI ; SI (T3 > 1.E98) ; SI (T2 > 1.E98); BETA1 = 0. ; SINON ; TT1 = (1./T2) (1. + RAP) ; T1 = 1./TT1 ; BETA1 = -1.*(DS1/T1)*180/PI; FINSI ; FINSI ; SI ((T2 < 1.E98) ET (T3 < 1.E98)) ; PT1 = PT2+((PT2-PT3)*RAP); T1 = T2-(PT1*RAP12); BETA1 = -1.*(DS1/T1)*180/PI ; FINSI ; VN2 = NXI2 NYI2 NZI2 ; VT2 = TXI2 TYI2 TZI2 ; VB2 = BXI2 BYI2 BZI2 ; VB = VB2 ; CHT = CHT ET CHTI ; CHN = CHN ET CHNI ; CHB = CHB ET CHBI ; DL = (((XMAX - XMIN)**2) + ((YMAX -YMIN)**2) + ((ZMAX -ZMIN)**2))**0.5 ; AMP = DL/10. ; SI (LOG1 EGA VRAI); TITRE 'REPERE DE FRENET DE LA LIGNE' ; FINSI; SINON ; O = 0. 0.; IP = 1; REPETER BOUC2 (NEL - 1); IP =IP+1; * MESS ' IP = ' IP; SI (EGA IP 2) ; CHN = CHNI ; CHT = CHTI ; SINON ; CHN = CHN ET CHNI ; CHT = CHT ET CHTI ; FINSI; FIN BOUC2; * MESS 'ELEMENT N0 1' ; RAP12 = (DS1+DS2)/2; RAP23 = (DS2+DS3)/2; RAP34 = (DS3+DS4)/2; PR2 = (R3-R2)/RAP23; PR3 = (R4-R3)/RAP34; RAP = (DS1+(2*DS2)+DS3)/(DS2+(2*DS3)+DS4); PR1 = PR2+((PR2-PR3)*RAP); R1 = R2-(PR1*RAP12); ALPHA1 = -1. * (DS1/R1)* (180. / PI); VN2 = NXI2 NYI2 ; VT2 = TXI2 TYI2 ; VB2 = BXI2 BYI2 ; VB = VB2 ; CHT = CHT ET CHTI ; CHN = CHN ET CHNI ; * MESS 'ELEMENT N0 NEL' ; RAP12 = (DS1+DS2)/2; RAP23 = (DS2+DS3)/2; RAP34 = (DS3+DS4)/2; PR2 = (R3-R2)/RAP23; PR3 = (R4-R3)/RAP34; RAP = (DS1+(2*DS2)+DS3)/(DS2+(2*DS3)+DS4); PR1 = PR2+((PR2-PR3)*RAP); R1 = R2-(PR1*RAP12); ALPHA1 = (DS1/R1)*180./PI; VN2 = NXI2 NYI2 ; VT2 = TXI2 TYI2 ; CHT = CHT ET CHTI ; CHN = CHN ET CHNI ; DL = (((XMAX - XMIN)**2) + ((YMAX -YMIN)**2))**0.5 ; AMP = DL/10. ; SI (LOG1 EGA VRAI); TITRE 'REPERE DE FRENET DE LA LIGNE' ; FINSI; FINSI ; FINPROC CHT CHN CHB ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales