* FRCTRACE PROCEDUR FD218221 20/12/17 21:15:22 10820 * * -------------------------------------------------------- * Procedure FRCTRACE * Imprimer les surface de capacité et/ou les enveloppes * des efforts statiques + sismiques pour les elements frame * (TIMO et POUT) * * Developpers: * Alberto FRAU * DEN/DANS/DM2S/SEMT/EMSI * Nicolas ILE * DEN/DANS/DM2S/SEMT/EMSI * Giulia DI STEFANO * * * TAB2 = FRCTRACE TAB1; * * * INPUT: * * En entrée on utilise une table TAB1. Un indice de la table TAB1 * indique si la definition de la surface limite doit etre faite pour * la couche externe,interne ou intermediaire: * TAB1.'TYPE_COUCHE' MOT pour indiquer le type de * couche * 'POTEAU' pouteau * 'POUTRE' poutre * TAB1.'ENROBAGE' enrobage en m [FLOTTANT] * TAB1.'S_CADRE' espacement des cadres en * m [FLOTTANT] * TAB1.'LONGEUR_Y' longuer ly [FLOTTANT] * TAB1.'LONGEUR_Z' longeur lz [FLOTTANT] * TAB1.'FCK' resistance caracteristique * beton [FLOTTANT] * TAB1.'FSK' resistance caracteristique * acier [FLOTTANT] * TAB1.'PHI_LON' LISTREEL des barres d'acier en mm * TAB1.'PHI_Y' LISTREEL de la position y en m de * chaque barre par rapport au * baricentre de la section * TAB1.'PHI_Z' LISTREEL de la position z en m de * chaque barre par rapport au * baricentre de la section * TAB1.'ASWL_Y' aire de l'armature transversale * direction y * TAB1.'ASWL_Z' aire de l'armature transversale * direction z * TAB1.'GAMMA_C' coef gamma_c [FLOTTANT] * TAB1.'ALPA_C' coef alpha_c [FLOTTANT] * TAB1.'GAMMA_S' coef gamma_s [FLOTTANT] * TAB1.'EPSI_BET' deformation ultime beton [FLOTTANT] * TAB1.'EPSI_ACI' deformation ultime acier [FLOTTANT] * TAB1.'YOUNG_ACIER' Module Young acier [FLOTTANT] * TAB1.'EFFORT_SEISME' effort seisme - matrice * caracteristique (optionelle) * [MCHML] * TAB1.'EFFORT_STATIQUE' effort statique (optionelle) * [MCHML] * * TAB1.'NX' nombre de subdivisions dans le domaine N * TAB1.'NY' nombre de subdivisions dans la * direction polaire * TAB1.'BY' dimensions section direction Y * TAB1.'BZ' dimensions section direction Z * TAB1.'FCK' resistance caracteristique beton * TAB1.'FSK' resistance caracteristique acier * TAB1.'YOUNG_ACIER' Module Young acier * TAB1.'PHI_LON' Liste des barres longitudinales * TAB1.'PHI_Y' Liste position y * des barres longitudinales * TAB1.'PHI_Z' Liste position z * des barres longitudinales * TAB1.'ASWL' Section des aciers transversales * TAB1.'GAMMA_C' coefficient gamma_c * TAB1.'ALPA_C' coefficient alpha * TAB1.'GAMMA_S' coefficient gamma_s * TAB1.'EFFORT_STATIQUE' effort statique (optionelle) * TAB1.'EFFORT_SEISME' matrice caracteristique * seisme (optionelle) * * OUTPUT: * * * TT1: table d'output * TT1.'LIMITE' Surface limite * TT1.'ELLIPSOIDE' Enveloppe ellipsoide * (si present dans la * TAB1 les MCHML des efforts) * TT1.'RECTANGLE' Enveloppe rectangulaire * (si present dans la * TAB1 les MCHML des efforts) * * * * -------------------------------------------------------- * 'SI' ('EXIST' TAB1 'TYPE_COUCHE'); TPY1 = TAB1.'TYPE_COUCHE'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; * * * ------- Cas Poteau --------------------------- 'SI' (('EGA' TPY1 'POTEAU')); * controle 'SI' ('EXIST' TAB1 'NX'); NX1 = TAB1.'NX'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'NY'); NY1 = TAB1.'NY'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'FCK'); FC1 = TAB1.'FCK'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'FSK'); FS1 = TAB1.'FSK'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'GAMMA_C'); GAMC = TAB1.'GAMMA_C'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'ALPA_C'); ALP1 = TAB1.'ALPA_C'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'GAMMA_S'); GAMS = TAB1.'GAMMA_S'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'GAMMA_S'); GAMS = TAB1.'GAMMA_S'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'PHI_LON'); PHI1 = TAB1.'PHI_LON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'PHI_Y'); PHIY1 = TAB1.'PHI_Y'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'PHI_Z'); PHIZ1 = TAB1.'PHI_Z'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'ASWL_Y'); ASWLY1 = TAB1.'ASWL_Y'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'ASWL_Z'); ASWLZ1 = TAB1.'ASWL_Z'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'BY'); BY1 = TAB1.'BY'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'BZ'); BZ1 = TAB1.'BZ'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'ENROBAGE'); ENR1 = TAB1.'ENROBAGE'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'S_CADRE'); SS1 = TAB1.'S_CADRE'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'LONGEUR_Y'); LLY1 = TAB1.'LONGEUR_Y'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'LONGEUR_Z'); LLZ1 = TAB1.'LONGEUR_Z'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'YOUNG_ACIER'); E_YACI1 = TAB1.'YOUNG_ACIER'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'EPSI_BET'); EPS_BET1 = TAB1.'EPSI_BET'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'EPSI_ACI'); EPS_ACI1 = TAB1.'EPSI_ACI'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; * * * Normalisation CC1 = 'ENTI'(FC1/100000); * CC1 = 0; 'SI' (CC1 '>' 1); FC1 = FC1/1000; FS1 = FS1/1000; E_YACI1 = E_YACI1/1000; 'FINSI'; * * Calcul resistance Fcd et Fsd FCD = ((FC1)*(ALP1))/(GAMC); FSD = ((FS1))/(GAMS); * * Armature total longitudinale ASTT1 = 0.0; I = 1; 'REPE' IND1 (NN1); I = I + 1; 'FIN' IND1; * * calculs des parametres wsy wsz wwy wwz lz ly et xi ZZ_Y1 = BY1 - ((2.0)*(ENR1)); ZZ_Z1 = BZ1 - ((2.0)*(ENR1)); WSY1 = ((ASTT1)*(FSD))/(((BY1)*(BZ1))*(FCD)); WSZ1 = ((ASTT1)*(FSD))/(((BY1)*(BZ1))*(FCD)); WWY1 = ((ASWLY1)*(FSD))/(((BZ1)*(SS1))*(FCD)); WWZ1 = ((ASWLZ1)*(FSD))/(((BY1)*(SS1))*(FCD)); LY1 = (LLZ1)/(BY1); LZ1 = (LLY1)/(BZ1); XIY1 = (ZZ_Y1)/(BY1); XIZ1 = (ZZ_Z1)/(BZ1); * * test court ou long TEST_Y = (LY1 < (WSY1/WWY1)); TEST_Z = (LZ1 < (WSZ1/WWZ1)); * 'SI' (TEST_Y 'ET' TEST_Z); * ------------- Poteau Court --------------------------------- * ((FCD)*((BZ1)*(BY1))) NN_LC1 = ((-1.0)*(((WSY1)*(1.0)*((FCD)*((BZ1)*(BY1)))) + ((FCD)*((BZ1)*(BY1))))); NN_LT1 = ((1.0)*(((WSY1)*(1.0)*((FCD)*((BZ1)*(BY1)))))); NN_LC1 = NN_LC1 - ((NN_LC1)*(1.E-4)); NN_LT1 = NN_LT1 - ((NN_LT1)*(1.E-4)); * nombre des pas pour les efforts N PAS1 = ((NN_LT1 - NN_LC1)/(NX1)); * * liste efforts N * * boucle sur les efforts N I = 1; TAB_N1 = 'TABLE'; TAB_VY1 = 'TABLE'; TAB_VZ1 = 'TABLE'; * liste des angles phi (coordonée polaire) 'REPE' IND1 (NN1); * position N EF_NN1 = (TAB_N1 . I); * valeurs de demarage EF_VY1 = ((ABS(EF_NN1))*(1.E-3)); EF_VZ1 = ((ABS(EF_NN1))*(1.E-3)); * * remplissage table TB1 = 'TABLE'; TB1.'NN' = EF_NN1; TB1.'VY' = EF_VY1; TB1.'VZ' = 0.0; TB1.'MT' = 0.0; TB1.'MY' = 0.0; TB1.'MZ' = 0.0; TB1.'BY' = BY1; TB1.'BZ' = BZ1; TB1.'FCD' = FCD; TB1.'FSD' = FSD; TB1.'WSY' = WSY1; TB1.'WSZ' = WSZ1; TB1.'WWY' = WWY1; TB1.'WWZ' = WWZ1; TB1.'LY' = LY1; TB1.'LZ' = LZ1; TB1.'XIY' = XIY1; TB1.'XIZ' = XIZ1; * * calcul de g pou y * TB1.'VY' = 0.0; TB1.'VZ' = EF_VZ1; * calcul de g pou z * * deduction des efforts Vylim et Vzlim pour N donné EF_VY2 = ((EF_VY1)/((1.0 - G_VY1)**(0.5))); EF_VZ2 = ((EF_VZ1)/((1.0 - G_VZ1)**(0.5))); * test TB1.'VY' = EF_VY2; TB1.'VZ' = 0.0; TB1.'VY' = 0.0; TB1.'VZ' = EF_VZ2; * 'SI' (((ABS(G_VY2)) > TOL1) 'ET' ((ABS(G_VZ2)) > TOL1)); 'MESS' 'Error ....'; 'FINSI'; * * list des effort Vy et Vz pour N donné LL_VY1 = EF_VY2*(COS(LL_PHI)); LL_VZ1 = EF_VZ2*(SIN(LL_PHI)); TAB_VY1. I = LL_VY1; TAB_VZ1. I = LL_VZ1; * I = I + 1; 'FIN' IND1; * * initializzation maillage I = 1; * boucle sur les points selon N 'REPE' IND1 (NN1 - 1); J = 1; * bouche sur les points theta 'REPE' IND2 (NN2 - 1); * 4 points par elements ZZ1 = (TAB_N1 . I); * ZZ2 = (TAB_N1 . I); * ZZ3 = (TAB_N1 . (I + 1)); * ZZ4 = (TAB_N1 . (I + 1)); * * points PP1 = XX1 YY1 ZZ1; PP2 = XX2 YY2 ZZ2; PP3 = XX3 YY3 ZZ3; PP4 = XX4 YY4 ZZ4; * element L1 = D 1 PP1 PP2; L2 = D 1 PP2 PP3; L3 = D 1 PP3 PP4; L4 = D 1 PP4 PP1; * * maillage * J = J + 1; 'FIN' IND2; I = I + 1; 'FIN' IND1; 'SINON'; 'SI' (TEST_Y 'OU' TEST_Z); * * ------------- Poteau Mixte --------------------------------- * * cas mixte non implementé MESS 'PoT Mixte...'; * * * 'SINON'; * * ------------- Poteau long --------------------------------- * * effort N de compression et de traction NN_LC1 = ((-1.0)*(((WSY1)*(1.0)*((FCD)*((BZ1)*(BY1)))) + ((FCD)*((BZ1)*(BY1))))); NN_LT1 = ((1.0)*(((WSY1)*(1.0)*((FCD)*((BZ1)*(BY1)))))); NN_LC1 = NN_LC1 - ((NN_LC1)*(1.E-4)); NN_LT1 = NN_LT1 - ((NN_LT1)*(1.E-4)); * * pas pour la liste des N PAS1 = ((NN_LT1 - NN_LC1)/(NX1)); * * subdivision du domaine N * * boucle pour chaque force N I = 1; TAB_N1 = 'TABLE'; TAB_MY1 = 'TABLE'; TAB_MZ1 = 'TABLE'; * 'REPE' IND1 (NN1); * initialissation de l'effort N EF_NN1 = (TAB_N1 . I); * initialissation des moments y et z EF_MY1A = ((ABS(EF_NN1))*(1.E-3)); EF_MY1B = ((ABS(EF_NN1))*(2.E-3)); EF_MZ1A = ((ABS(EF_NN1))*(1.E-3)); EF_MZ1B = ((ABS(EF_NN1))*(2.E-3)); * * preparation de la table pour G_ULTIFR TB1 = TABLE; TB1.'NN' = EF_NN1; TB1.'VY' = 0.0; TB1.'VZ' = 0.0; TB1.'MT' = 0.0; TB1.'MY' = EF_MY1A; TB1.'MZ' = 0.0; TB1.'BY' = BY1; TB1.'BZ' = BZ1; TB1.'FCD' = FCD; TB1.'FSD' = FSD; TB1.'PHI_LON' = PHI1; TB1.'PHI_Y' = PHIY1; TB1.'PHI_Z' = PHIZ1; TB1.'EPSI_BET' = EPS_BET1; TB1.'EPSI_ACI' = EPS_ACI1; TB1.'YOUNG_ACIER' = E_YACI1; * premiere calcul de g (My point 1) TB1.'MY' = EF_MY1B; * premiere calcul de g (My point 2) * calcul de Mylim pour N donné RE_MY2P = (((EF_MY1A)**(1.5)) - ((EF_MY1B)**(1.5))/ (G_MY2 - G_MY1))**((1.0)/(1.5)); EF_MY2P = ((G_MY1 + (((EF_MY1A)/(RE_MY2P))**(1.5)))** ((1.0)/(1.5)))*(RE_MY2P); * * premiere calcul de g (Mz point 1) TB1.'MY' = 0.0; TB1.'MZ' = EF_MZ1A; * * premiere calcul de g (Mz point 2) TB1.'MZ' = EF_MZ1B; * calcul de Mzlim pour N donné RE_MZ2P = (((EF_MZ1A)**(1.5)) - ((EF_MZ1B)**(1.5))/ (G_MZ2 - G_MZ1))**((1.0)/(1.5)); EF_MZ2P = ((G_MZ1 + (((EF_MZ1A)/(RE_MZ2P))**(1.5)))** ((1.0)/(1.5)))*(RE_MZ2P); * * premiere calcul de g (My point 1) - negatif EF_MY1A = ((ABS(EF_NN1))*(-1.E-3)); EF_MY1B = ((ABS(EF_NN1))*(-2.E-3)); EF_MZ1A = ((ABS(EF_NN1))*(-1.E-3)); EF_MZ1B = ((ABS(EF_NN1))*(-2.E-3)); TB1.'MY' = EF_MY1A; TB1.'MZ' = 0.0; * premiere calcul de g (My point 2) - negatif TB1.'MY' = EF_MY1B; * calcul de Mylim pour N donné - negatif RE_MY2N = (((ABS(EF_MY1A))**(1.5)) - ((ABS(EF_MY1B))**(1.5))/ (G_MY2 - G_MY1))**((1.0)/(1.5)); RE_MY2N = ((RE_MY2N)*(-1.0)); EF_MY2N = ((G_MY1 + (((EF_MY1A)/(RE_MY2N))**(1.5)))** ((1.0)/(1.5)))*(RE_MY2N); * * premiere calcul de g (Mz point 1) - negatif TB1.'MY' = 0.0; TB1.'MZ' = EF_MZ1A; * * premiere calcul de g (Mz point 2) - negatif TB1.'MZ' = EF_MZ1B; * calcul de Mzlim pour N donné - negatif RE_MZ2N = (((ABS(EF_MZ1A))**(1.5)) - ((ABS(EF_MZ1B))**(1.5))/ (G_MZ2 - G_MZ1))**((1.0)/(1.5)); RE_MZ2N = ((RE_MZ2N)*(-1.0)); EF_MZ2N = ((G_MZ1 + (((EF_MZ1A)/(RE_MZ2N))**(1.5)))** ((1.0)/(1.5)))*(RE_MZ2N); * * test TB1.'MY' = EF_MY2P; TB1.'MZ' = 0.0; TB1.'MY' = EF_MY2N; TB1.'MZ' = 0.0; TB1.'MY' = 0.0; TB1.'MZ' = EF_MZ2P; TB1.'MY' = 0.0; TB1.'MZ' = EF_MZ2N; * 'SI' (((ABS(G_MY2P)) > TOL1) 'ET' ((ABS(G_MY2N)) > TOL1) 'ET' ((ABS(G_MZ2P)) > TOL1) 'ET' ((ABS(G_MZ2N)) > TOL1)); 'MESS' 'Error ....'; 'FINSI'; * * semplissage des listes selon l'angle polaire JJ1 = 1; 'SI' ((VPHI1 >EG 0.0) 'ET' (VPHI1 < 90.)); 'SINON'; 'SI' ((VPHI1 >EG 90.) 'ET' (VPHI1 < 180.)); 'SINON'; 'SI' ((VPHI1 >EG 180.) 'ET' (VPHI1 < 270.)); LL_MY1 = LL_MY1 'ET' LL_MZ1 = LL_MZ1 'ET' 'SINON'; LL_MZ1 = LL_MZ1 'ET' 'FINSI'; 'FINSI'; 'FINSI'; JJ1 = JJ1 + 1; 'FIN' IND2; TAB_MY1. I = LL_MY1; TAB_MZ1. I = LL_MZ1; * I = I + 1; 'FIN' IND1; * * * contruction du maillage de la surface de capacité - * element par element I = 1; 'REPE' IND1 (NN1 - 1); J = 1; 'REPE' IND2 (NN2 - 1); ZZ1 = (TAB_N1 . I); * ZZ2 = (TAB_N1 . I); * ZZ3 = (TAB_N1 . (I + 1)); * ZZ4 = (TAB_N1 . (I + 1)); * PP1 = XX1 YY1 ZZ1; PP2 = XX2 YY2 ZZ2; PP3 = XX3 YY3 ZZ3; PP4 = XX4 YY4 ZZ4; L1 = D 1 PP1 PP2; L2 = D 1 PP2 PP3; L3 = D 1 PP3 PP4; L4 = D 1 PP4 PP1; * * J = J + 1; 'FIN' IND2; I = I + 1; 'FIN' IND1; 'FINSI'; 'FINSI'; 'FINSI'; * * * ------- Cas Poutre --------------------------- 'SI' (('EGA' TPY1 'POUTRE')); * controle 'SI' ('EXIST' TAB1 'NX'); NX1 = TAB1.'NX'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'NY'); NY1 = TAB1.'NY'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'FCK'); FC1 = TAB1.'FCK'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'FSK'); FS1 = TAB1.'FSK'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'GAMMA_C'); GAMC = TAB1.'GAMMA_C'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'ALPA_C'); ALP1 = TAB1.'ALPA_C'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'GAMMA_S'); GAMS = TAB1.'GAMMA_S'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'GAMMA_S'); GAMS = TAB1.'GAMMA_S'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'PHI_LON'); PHI1 = TAB1.'PHI_LON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'PHI_Y'); PHIY1 = TAB1.'PHI_Y'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'PHI_Z'); PHIZ1 = TAB1.'PHI_Z'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'ASWL_Z'); ASWLZ1 = TAB1.'ASWL_Z'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'BY'); BY1 = TAB1.'BY'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'BZ'); BZ1 = TAB1.'BZ'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'ENROBAGE'); ENR1 = TAB1.'ENROBAGE'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'S_CADRE'); SS1 = TAB1.'S_CADRE'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'LONGEUR_Y'); LLY1 = TAB1.'LONGEUR_Y'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'YOUNG_ACIER'); E_YACI1 = TAB1.'YOUNG_ACIER'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'EPSI_BET'); EPS_BET1 = TAB1.'EPSI_BET'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'EPSI_ACI'); EPS_ACI1 = TAB1.'EPSI_ACI'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; * * * Normalisation CC1 = 'ENTI'(FC1/100000); * CC1 = 0; 'SI' (CC1 '>' 1); FC1 = FC1/1000; FS1 = FS1/1000; E_YACI1 = E_YACI1/1000; 'FINSI'; * * Calcul resistance Fcd et Fsd FCD = ((FC1)*(ALP1))/(GAMC); FSD = ((FS1))/(GAMS); * * Armature total longitudinale ASTT1 = 0.0; I = 1; 'REPE' IND1 (NN1); I = I + 1; 'FIN' IND1; * * calculs des parametres wsy wsz wwy wwz lz ly et xi ZZ_Z1 = BZ1 - ((2.0)*(ENR1)); WSZ1 = ((ASTT1)*(FSD))/(((BY1)*(BZ1))*(FCD)); WWZ1 = ((ASWLZ1)*(FSD))/(((BY1)*(SS1))*(FCD)); LZ1 = (LLY1)/(BZ1); XIZ1 = (ZZ_Z1)/(BZ1); * * test court ou long TEST_Z = (LZ1 < (WSZ1/WWZ1)); * 'SI' (TEST_Z); * ------------- Poutre Courte --------------------------------- * ((FCD)*((BZ1)*(BY1))) NN_LC1 = ((-1.0)*(((WSZ1)*(1.0)*((FCD)*((BZ1)*(BY1)))) + ((FCD)*((BZ1)*(BY1))))); NN_LT1 = ((1.0)*(((WSZ1)*(1.0)*((FCD)*((BZ1)*(BY1)))))); NN_LC1 = NN_LC1 - ((NN_LC1)*(1.E-4)); NN_LT1 = NN_LT1 - ((NN_LT1)*(1.E-4)); * nombre des pas pour les efforts N PAS1 = ((NN_LT1 - NN_LC1)/(NX1)); * * * liste efforts N I = 1; TAB_N1 = 'TABLE'; TAB_VZ1 = 'TABLE'; * liste des angles phi (coordonée polaire) 'REPE' IND1 (NN1); * position N * valeurs de demarage EF_NN1 = (TAB_N1 . I); EF_VZ1 = ((ABS(EF_NN1))*(1.E-3)); * TB1 = 'TABLE'; TB1.'NN' = EF_NN1; TB1.'VY' = 0.0; TB1.'VZ' = EF_VZ1; TB1.'MT' = 0.0; TB1.'MY' = 0.0; TB1.'MZ' = 0.0; TB1.'BY' = BY1; TB1.'BZ' = BZ1; TB1.'FCD' = FCD; TB1.'FSD' = FSD; TB1.'WSZ' = WSZ1; TB1.'WWZ' = WWZ1; TB1.'LZ' = LZ1; TB1.'XIZ' = XIZ1; * * calcul de g pou z * * deduction de l'effort Vzlim pour N donné EF_VZ2 = ((EF_VZ1)/((1.0 - G_VZ1)**(0.5))); * test TB1.'VY' = 0.0; TB1.'VZ' = EF_VZ2; * 'SI' (((ABS(G_VZ2)) > TOL1)); 'MESS' 'Error ....'; 'FINSI'; * * list Vz pour N donné TAB_VZ1. I = LL_VZ1; * I = I + 1; 'FIN' IND1; * * initializzation maillage I = 1; * boucle sur les points selon N 'REPE' IND1 (NN1 - 1); * * cordonée des points positifs et negatifs XX1 = 0.0; ZZ1 = (TAB_N1 . I); * XX2 = 0.0; ZZ2 = (TAB_N1 . (I + 1)); * XX3 = 0.0; ZZ3 = (TAB_N1 . I); * XX4 = 0.0; ZZ4 = (TAB_N1 . (I + 1)); * * points PP1 = XX1 YY1 ZZ1; PP2 = XX2 YY2 ZZ2; PP3 = XX3 YY3 ZZ3; PP4 = XX4 YY4 ZZ4; * element L1 = D 1 PP1 PP2; L2 = D 1 PP3 PP4; * MAI1 = MAI1 'ET' L1 'ET' L2; * I = I + 1; 'FIN' IND1; 'SINON'; * * * ------------- Poutre Longe --------------------------------- * * effort N de compression et de traction NN_LC1 = ((-1.0)*(((WSZ1)*(1.0)*((FCD)*((BZ1)*(BY1)))) + ((FCD)*((BZ1)*(BY1))))); NN_LT1 = ((1.0)*(((WSZ1)*(1.0)*((FCD)*((BZ1)*(BY1)))))); NN_LC1 = NN_LC1 - ((NN_LC1)*(1.E-4)); NN_LT1 = NN_LT1 - ((NN_LT1)*(1.E-4)); * * pas pour la liste des N PAS1 = ((NN_LT1 - NN_LC1)/(NX1)); * * subdivision du domaine N * * boucle pour chaque force N I = 1; TAB_N1 = 'TABLE'; TAB_MY1 = 'TABLE'; * 'REPE' IND1 (NN1); * initialissation de l'effort N EF_NN1 = (TAB_N1 . I); * initialissation du moment y EF_MY1A = ((ABS(EF_NN1))*(1.E-3)); EF_MY1B = ((ABS(EF_NN1))*(2.E-3)); * TB1 = TABLE; TB1.'NN' = EF_NN1; TB1.'VY' = 0.0; TB1.'VZ' = 0.0; TB1.'MT' = 0.0; TB1.'MY' = EF_MY1A; TB1.'MZ' = 0.0; TB1.'BY' = BY1; TB1.'BZ' = BZ1; TB1.'FCD' = FCD; TB1.'FSD' = FSD; TB1.'PHI_LON' = PHI1; TB1.'PHI_Y' = PHIY1; TB1.'PHI_Z' = PHIZ1; TB1.'EPSI_BET' = EPS_BET1; TB1.'EPSI_ACI' = EPS_ACI1; TB1.'YOUNG_ACIER' = E_YACI1; * premiere calcul de g (My point 1) TB1.'MY' = EF_MY1B; * premiere calcul de g (My point 2) * calcul de Mylim pour N donné RE_MY2P = (((EF_MY1A)**(1.5)) - ((EF_MY1B)**(1.5))/ (G_MY2 - G_MY1))**((1.0)/(1.5)); EF_MY2P = ((G_MY1 + (((EF_MY1A)/(RE_MY2P))**(1.5)))** ((1.0)/(1.5)))*(RE_MY2P); * * * premiere calcul de g (My point 1) - negatif EF_MY1A = ((ABS(EF_NN1))*(-1.E-5)); EF_MY1B = ((ABS(EF_NN1))*(-2.E-5)); EF_MZ1A = ((ABS(EF_NN1))*(-1.E-5)); EF_MZ1B = ((ABS(EF_NN1))*(-2.E-5)); TB1.'MY' = EF_MY1A; TB1.'MZ' = 0.0; * premiere calcul de g (My point 2) - negatif TB1.'MY' = EF_MY1B; * calcul de Mylim pour N donné - negatif RE_MY2N = (((ABS(EF_MY1A))**(1.5)) - ((ABS(EF_MY1B))**(1.5))/ (G_MY2 - G_MY1))**((1.0)/(1.5)); RE_MY2N = ((RE_MY2N)*(-1.0)); EF_MY2N = ((G_MY1 + (((EF_MY1A)/(RE_MY2N))**(1.5)))** ((1.0)/(1.5)))*(RE_MY2N); * test TB1.'MY' = EF_MY2P; TB1.'MZ' = 0.0; TB1.'MY' = EF_MY2N; TB1.'MZ' = 0.0; * 'SI' (((ABS(G_MY2P)) > TOL1) 'ET' ((ABS(G_MY2N)) > TOL1)); 'MESS' 'Error ....'; 'FINSI'; * * I = I + 1; 'FIN' IND1; * * * contruction maillage I = 1; 'REPE' IND1 (NN1 - 1); * YY1 = 0.0; ZZ1 = (TAB_N1 . I); * YY2 = 0.0; ZZ2 = (TAB_N1 . (I + 1)); * YY3 = 0.0; ZZ3 = (TAB_N1 . (I)); * YY4 = 0.0; ZZ4 = (TAB_N1 . (I + 1)); * PP1 = XX1 YY1 ZZ1; PP2 = XX2 YY2 ZZ2; PP3 = XX3 YY3 ZZ3; PP4 = XX4 YY4 ZZ4; L1 = D 1 PP1 PP2; L2 = D 1 PP3 PP4; * MAI1 = MAI1 'ET' L1 'ET' L2; * I = I + 1; 'FIN' IND1; 'FINSI'; 'FINSI'; * * TT1 = 'TABLE'; TT1.'LIMITE' = MAI1; * * tracer l'enveloppe (optionelle) * * Control 'SI' ('EXIST' TAB1 'EFFORT_SEISME'); CHL1 = TAB1.'EFFORT_SEISME'; 'MESS' 'Input Error ...'; 'FINSI'; 'FINSI'; 'SI' ('EXIST' TAB1 'EFFORT_STATIQUE'); CHL2 = TAB1.'EFFORT_STATIQUE'; 'MESS' 'Input Error ...'; 'FINSI'; 'FINSI'; * * * extraire les contraintes (statiques) * * extraire les contraintes (sismiques) * plus covariances * * scaling SI (CC1 > 1); NN0 = NN0/1000; VY0 = VY0/1000; VZ0 = VZ0/1000; MT0 = MT0/1000; MY0 = MY0/1000; MZ0 = MZ0/1000; * NNNN1 = ((NNNN1)/((1000)**(2.0))); NNVY1 = ((NNVY1)/((1000)**(2.0))); NNVZ1 = ((NNVZ1)/((1000)**(2.0))); NNMT1 = ((NNMT1)/((1000)**(2.0))); NNMY1 = ((NNMY1)/((1000)**(2.0))); NNMZ1 = ((NNMZ1)/((1000)**(2.0))); VYVY1 = ((VYVY1)/((1000)**(2.0))); VYVZ1 = ((VYVZ1)/((1000)**(2.0))); VYMT1 = ((VYMT1)/((1000)**(2.0))); VYMY1 = ((VYMY1)/((1000)**(2.0))); VYMZ1 = ((VYMZ1)/((1000)**(2.0))); VZVZ1 = ((VZVZ1)/((1000)**(2.0))); VZMT1 = ((VZMT1)/((1000)**(2.0))); VZMY1 = ((VZMY1)/((1000)**(2.0))); VZMZ1 = ((VZMZ1)/((1000)**(2.0))); MTMT1 = ((MTMT1)/((1000)**(2.0))); MTMY1 = ((MTMY1)/((1000)**(2.0))); MTMZ1 = ((MTMZ1)/((1000)**(2.0))); MYMY1 = ((MYMY1)/((1000)**(2.0))); MYMZ1 = ((MYMZ1)/((1000)**(2.0))); MZMZ1 = ((MZMZ1)/((1000)**(2.0))); FINSI; * calcul des valeurs et vecteurs propres MAI1 = 0. 0. 0.; * 'SI' (('EGA' TPY1 'POTEAU')); * choix des efforts selon les cas 'SI' (TEST_Y 'ET' TEST_Z); N11N11E = VYVY1; N11N22E = VYVZ1; N11N12E = NNVY1; N22N22E = VZVZ1; N22N12E = NNVZ1; N12N12E = NNNN1; N110E = VY0; N220E = VZ0; N120E = NN0; 'SINON'; 'SI' (TEST_Y 'OU' TEST_Z); 'MESS' 'Pot_Mixte'; 'SINON'; N11N11E = MYMY1; N11N22E = MYMZ1; N11N12E = NNMY1; N22N22E = MZMZ1; N22N12E = NNMZ1; N12N12E = NNNN1; N110E = MY0; N220E = MZ0; N120E = NN0; 'FINSI'; 'FINSI'; 'SINON'; 'SI' (('EGA' TPY1 'POUTRE')); 'SI' (TEST_Z); N11N11E = VZVZ1; N11N22E = NNVZ1; N22N22E = NNNN1; N110E = VZ0; N220E = NN0; 'SINON'; N11N11E = MYMY1; N11N22E = NNMY1; N22N22E = NNNN1; N110E = MY0; N220E = NN0; 'FINSI'; 'FINSI'; 'FINSI'; * *------------ Cas Poteau ----------------------------- * * 'SI' (('EGA' TPY1 'POTEAU')); * calcul des valeurs propres ('PROG' N11N11E N11N22E N11N12E N11N22E N22N22E N22N12E N11N12E N22N12E N12N12E)); * NORMATXE = (((N11N11E)**(2.0)) + ((N11N22E)**(2.0)) + ((N11N12E)**(2.0)) + ((N11N22E)**(2.0)) + ((N22N22E)**(2.0)) + ((N22N12E)**(2.0)) + ((N11N12E)**(2.0)) + ((N22N12E)**(2.0)) + ((N12N12E)**(2.0))) **(0.5); * cas de la norme null 'SI' (NORMATXE 'EGA' 0.0); NORMATXE = 1.0; 'FINSI'; * Matrice M egal à l'identité * XIDE1 'IMPR' 'MULT'; * * post traintement pour determiner les valuers propres et * les vecteurs propres 'SI' ('EXIST' (EIGE.MODES) 1); LAM1E = ((EIGE.MODES. 1 .FREQUENCE)*((2.0)*(PI)))**(2.0); NORVEC1E = **(0.5); VECT1E = (EIGE.MODES. 1 .DEFORMEE_MODALE)/(NORVEC1E); 'SINON'; LAM1E = 0.0; NORVEC1E = 0.0; 'FINSI'; 'SI' ('EXIST' (EIGE.MODES) 2); LAM2E = ((EIGE.MODES. 2 .FREQUENCE)*((2.0)*(PI)))**(2.0); NORVEC2E = **(0.5); VECT2E = (EIGE.MODES. 2 .DEFORMEE_MODALE)/(NORVEC2E); 'SINON'; LAM2E = 0.0; NORVEC2E = 0.0; 'FINSI'; 'SI' ('EXIST' (EIGE.MODES) 3); LAM3E = ((EIGE.MODES. 3 .FREQUENCE)*((2.0)*(PI)))**(2.0); NORVEC3E = **(0.5); VECT3E = (EIGE.MODES. 3 .DEFORMEE_MODALE)/(NORVEC3E); 'SINON'; LAM3E = 0.0; NORVEC3E = 0.0; 'FINSI'; * * scaling LAM1E = ((NORMATXE)*(LAM1E)); LAM2E = ((NORMATXE)*(LAM2E)); LAM3E = ((NORMATXE)*(LAM3E)); * * Autovaleurs LL1E = (LAM1E)**(0.5); LL2E = (LAM2E)**(0.5); LL3E = (LAM3E)**(0.5); * * Autovecteur * * definition du maillage pour l'enveloppe ND1 = 8; ND2 = 8; II1 = 1; JJ1 = 2; * * boucle sur les points (on va definir la surface sur 8 quadrantes) * cordonée polaire fhi1 (plan xy) entre 0 pi/2 * cordonée polaire fhi2 (azimuth) entre 0 pi/2 'REPE' IND1 (ND1*ND2); * * quadrant 1 fhi1 = [0 pi/2] fhi2 = [0 pi/2] X1_1EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y1_1EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z1_1EL = ((LL3E)*(SIN(VAL_FHI2))); X2_1EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y2_1EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z2_1EL = ((LL3E)*(SIN(VAL_FHI2))); X3_1EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y3_1EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z3_1EL = ((LL3E)*(SIN(VAL_FHI2))); X4_1EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y4_1EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z4_1EL = ((LL3E)*(SIN(VAL_FHI2))); X1_1E = ((X1_1EL)*(VECT1EX)) + ((Y1_1EL)*(VECT2EX)) + ((Z1_1EL)*(VECT3EX)); Y1_1E = ((X1_1EL)*(VECT1EY)) + ((Y1_1EL)*(VECT2EY)) + ((Z1_1EL)*(VECT3EY)); Z1_1E = ((X1_1EL)*(VECT1EZ)) + ((Y1_1EL)*(VECT2EZ)) + ((Z1_1EL)*(VECT3EZ)); X2_1E = ((X2_1EL)*(VECT1EX)) + ((Y2_1EL)*(VECT2EX)) + ((Z2_1EL)*(VECT3EX)); Y2_1E = ((X2_1EL)*(VECT1EY)) + ((Y2_1EL)*(VECT2EY)) + ((Z2_1EL)*(VECT3EY)); Z2_1E = ((X2_1EL)*(VECT1EZ)) + ((Y2_1EL)*(VECT2EZ)) + ((Z2_1EL)*(VECT3EZ)); X3_1E = ((X3_1EL)*(VECT1EX)) + ((Y3_1EL)*(VECT2EX)) + ((Z3_1EL)*(VECT3EX)); Y3_1E = ((X3_1EL)*(VECT1EY)) + ((Y3_1EL)*(VECT2EY)) + ((Z3_1EL)*(VECT3EY)); Z3_1E = ((X3_1EL)*(VECT1EZ)) + ((Y3_1EL)*(VECT2EZ)) + ((Z3_1EL)*(VECT3EZ)); X4_1E = ((X4_1EL)*(VECT1EX)) + ((Y4_1EL)*(VECT2EX)) + ((Z4_1EL)*(VECT3EX)); Y4_1E = ((X4_1EL)*(VECT1EY)) + ((Y4_1EL)*(VECT2EY)) + ((Z4_1EL)*(VECT3EY)); Z4_1E = ((X4_1EL)*(VECT1EZ)) + ((Y4_1EL)*(VECT2EZ)) + ((Z4_1EL)*(VECT3EZ)); * * quadrant 2 fhi1 = [pi/2 pi] fhi2 = [0 pi/2] X1_2EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y1_2EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z1_2EL = ((LL3E)*(SIN(VAL_FHI2))); X2_2EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y2_2EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z2_2EL = ((LL3E)*(SIN(VAL_FHI2))); X3_2EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y3_2EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z3_2EL = ((LL3E)*(SIN(VAL_FHI2))); X4_2EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y4_2EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z4_2EL = ((LL3E)*(SIN(VAL_FHI2))); X1_2E = ((X1_2EL)*(VECT1EX)) + ((Y1_2EL)*(VECT2EX)) + ((Z1_2EL)*(VECT3EX)); Y1_2E = ((X1_2EL)*(VECT1EY)) + ((Y1_2EL)*(VECT2EY)) + ((Z1_2EL)*(VECT3EY)); Z1_2E = ((X1_2EL)*(VECT1EZ)) + ((Y1_2EL)*(VECT2EZ)) + ((Z1_2EL)*(VECT3EZ)); X2_2E = ((X2_2EL)*(VECT1EX)) + ((Y2_2EL)*(VECT2EX)) + ((Z2_2EL)*(VECT3EX)); Y2_2E = ((X2_2EL)*(VECT1EY)) + ((Y2_2EL)*(VECT2EY)) + ((Z2_2EL)*(VECT3EY)); Z2_2E = ((X2_2EL)*(VECT1EZ)) + ((Y2_2EL)*(VECT2EZ)) + ((Z2_2EL)*(VECT3EZ)); X3_2E = ((X3_2EL)*(VECT1EX)) + ((Y3_2EL)*(VECT2EX)) + ((Z3_2EL)*(VECT3EX)); Y3_2E = ((X3_2EL)*(VECT1EY)) + ((Y3_2EL)*(VECT2EY)) + ((Z3_2EL)*(VECT3EY)); Z3_2E = ((X3_2EL)*(VECT1EZ)) + ((Y3_2EL)*(VECT2EZ)) + ((Z3_2EL)*(VECT3EZ)); X4_2E = ((X4_2EL)*(VECT1EX)) + ((Y4_2EL)*(VECT2EX)) + ((Z4_2EL)*(VECT3EX)); Y4_2E = ((X4_2EL)*(VECT1EY)) + ((Y4_2EL)*(VECT2EY)) + ((Z4_2EL)*(VECT3EY)); Z4_2E = ((X4_2EL)*(VECT1EZ)) + ((Y4_2EL)*(VECT2EZ)) + ((Z4_2EL)*(VECT3EZ)); * * quadrant 3 fhi1 = [pi 3pi/2] fhi2 = [0 pi/2] X1_3EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y1_3EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z1_3EL = ((LL3E)*(SIN(VAL_FHI2))); X2_3EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y2_3EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z2_3EL = ((LL3E)*(SIN(VAL_FHI2))); X3_3EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y3_3EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z3_3EL = ((LL3E)*(SIN(VAL_FHI2))); X4_3EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y4_3EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z4_3EL = ((LL3E)*(SIN(VAL_FHI2))); X1_3E = ((X1_3EL)*(VECT1EX)) + ((Y1_3EL)*(VECT2EX)) + ((Z1_3EL)*(VECT3EX)); Y1_3E = ((X1_3EL)*(VECT1EY)) + ((Y1_3EL)*(VECT2EY)) + ((Z1_3EL)*(VECT3EY)); Z1_3E = ((X1_3EL)*(VECT1EZ)) + ((Y1_3EL)*(VECT2EZ)) + ((Z1_3EL)*(VECT3EZ)); X2_3E = ((X2_3EL)*(VECT1EX)) + ((Y2_3EL)*(VECT2EX)) + ((Z2_3EL)*(VECT3EX)); Y2_3E = ((X2_3EL)*(VECT1EY)) + ((Y2_3EL)*(VECT2EY)) + ((Z2_3EL)*(VECT3EY)); Z2_3E = ((X2_3EL)*(VECT1EZ)) + ((Y2_3EL)*(VECT2EZ)) + ((Z2_3EL)*(VECT3EZ)); X3_3E = ((X3_3EL)*(VECT1EX)) + ((Y3_3EL)*(VECT2EX)) + ((Z3_3EL)*(VECT3EX)); Y3_3E = ((X3_3EL)*(VECT1EY)) + ((Y3_3EL)*(VECT2EY)) + ((Z3_3EL)*(VECT3EY)); Z3_3E = ((X3_3EL)*(VECT1EZ)) + ((Y3_3EL)*(VECT2EZ)) + ((Z3_3EL)*(VECT3EZ)); X4_3E = ((X4_3EL)*(VECT1EX)) + ((Y4_3EL)*(VECT2EX)) + ((Z4_3EL)*(VECT3EX)); Y4_3E = ((X4_3EL)*(VECT1EY)) + ((Y4_3EL)*(VECT2EY)) + ((Z4_3EL)*(VECT3EY)); Z4_3E = ((X4_3EL)*(VECT1EZ)) + ((Y4_3EL)*(VECT2EZ)) + ((Z4_3EL)*(VECT3EZ)); * * quadrant 4 fhi1 = [3pi/2 2pi] fhi2 = [0 pi/2] X1_4EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y1_4EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z1_4EL = ((LL3E)*(SIN(VAL_FHI2))); X2_4EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y2_4EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z2_4EL = ((LL3E)*(SIN(VAL_FHI2))); X3_4EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y3_4EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z3_4EL = ((LL3E)*(SIN(VAL_FHI2))); X4_4EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y4_4EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z4_4EL = ((LL3E)*(SIN(VAL_FHI2))); X1_4E = ((X1_4EL)*(VECT1EX)) + ((Y1_4EL)*(VECT2EX)) + ((Z1_4EL)*(VECT3EX)); Y1_4E = ((X1_4EL)*(VECT1EY)) + ((Y1_4EL)*(VECT2EY)) + ((Z1_4EL)*(VECT3EY)); Z1_4E = ((X1_4EL)*(VECT1EZ)) + ((Y1_4EL)*(VECT2EZ)) + ((Z1_4EL)*(VECT3EZ)); X2_4E = ((X2_4EL)*(VECT1EX)) + ((Y2_4EL)*(VECT2EX)) + ((Z2_4EL)*(VECT3EX)); Y2_4E = ((X2_4EL)*(VECT1EY)) + ((Y2_4EL)*(VECT2EY)) + ((Z2_4EL)*(VECT3EY)); Z2_4E = ((X2_4EL)*(VECT1EZ)) + ((Y2_4EL)*(VECT2EZ)) + ((Z2_4EL)*(VECT3EZ)); X3_4E = ((X3_4EL)*(VECT1EX)) + ((Y3_4EL)*(VECT2EX)) + ((Z3_4EL)*(VECT3EX)); Y3_4E = ((X3_4EL)*(VECT1EY)) + ((Y3_4EL)*(VECT2EY)) + ((Z3_4EL)*(VECT3EY)); Z3_4E = ((X3_4EL)*(VECT1EZ)) + ((Y3_4EL)*(VECT2EZ)) + ((Z3_4EL)*(VECT3EZ)); X4_4E = ((X4_4EL)*(VECT1EX)) + ((Y4_4EL)*(VECT2EX)) + ((Z4_4EL)*(VECT3EX)); Y4_4E = ((X4_4EL)*(VECT1EY)) + ((Y4_4EL)*(VECT2EY)) + ((Z4_4EL)*(VECT3EY)); Z4_4E = ((X4_4EL)*(VECT1EZ)) + ((Y4_4EL)*(VECT2EZ)) + ((Z4_4EL)*(VECT3EZ)); * * quadrant 5 fhi1 = [0 pi/2] fhi2 = [-pi/2 0] X1_5EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y1_5EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z1_5EL = ((LL3E)*(SIN(VAL_FHI2))); X2_5EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y2_5EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z2_5EL = ((LL3E)*(SIN(VAL_FHI2))); X3_5EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y3_5EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z3_5EL = ((LL3E)*(SIN(VAL_FHI2))); X4_5EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y4_5EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z4_5EL = ((LL3E)*(SIN(VAL_FHI2))); X1_5E = ((X1_5EL)*(VECT1EX)) + ((Y1_5EL)*(VECT2EX)) + ((Z1_5EL)*(VECT3EX)); Y1_5E = ((X1_5EL)*(VECT1EY)) + ((Y1_5EL)*(VECT2EY)) + ((Z1_5EL)*(VECT3EY)); Z1_5E = ((X1_5EL)*(VECT1EZ)) + ((Y1_5EL)*(VECT2EZ)) + ((Z1_5EL)*(VECT3EZ)); X2_5E = ((X2_5EL)*(VECT1EX)) + ((Y2_5EL)*(VECT2EX)) + ((Z2_5EL)*(VECT3EX)); Y2_5E = ((X2_5EL)*(VECT1EY)) + ((Y2_5EL)*(VECT2EY)) + ((Z2_5EL)*(VECT3EY)); Z2_5E = ((X2_5EL)*(VECT1EZ)) + ((Y2_5EL)*(VECT2EZ)) + ((Z2_5EL)*(VECT3EZ)); X3_5E = ((X3_5EL)*(VECT1EX)) + ((Y3_5EL)*(VECT2EX)) + ((Z3_5EL)*(VECT3EX)); Y3_5E = ((X3_5EL)*(VECT1EY)) + ((Y3_5EL)*(VECT2EY)) + ((Z3_5EL)*(VECT3EY)); Z3_5E = ((X3_5EL)*(VECT1EZ)) + ((Y3_5EL)*(VECT2EZ)) + ((Z3_5EL)*(VECT3EZ)); X4_5E = ((X4_5EL)*(VECT1EX)) + ((Y4_5EL)*(VECT2EX)) + ((Z4_5EL)*(VECT3EX)); Y4_5E = ((X4_5EL)*(VECT1EY)) + ((Y4_5EL)*(VECT2EY)) + ((Z4_5EL)*(VECT3EY)); Z4_5E = ((X4_5EL)*(VECT1EZ)) + ((Y4_5EL)*(VECT2EZ)) + ((Z4_5EL)*(VECT3EZ)); * * quadrant 6 fhi1 = [pi/2 pi] fhi2 = [-pi/2 0] X1_6EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y1_6EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z1_6EL = ((LL3E)*(SIN(VAL_FHI2))); X2_6EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y2_6EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z2_6EL = ((LL3E)*(SIN(VAL_FHI2))); X3_6EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y3_6EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z3_6EL = ((LL3E)*(SIN(VAL_FHI2))); X4_6EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y4_6EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z4_6EL = ((LL3E)*(SIN(VAL_FHI2))); X1_6E = ((X1_6EL)*(VECT1EX)) + ((Y1_6EL)*(VECT2EX)) + ((Z1_6EL)*(VECT3EX)); Y1_6E = ((X1_6EL)*(VECT1EY)) + ((Y1_6EL)*(VECT2EY)) + ((Z1_6EL)*(VECT3EY)); Z1_6E = ((X1_6EL)*(VECT1EZ)) + ((Y1_6EL)*(VECT2EZ)) + ((Z1_6EL)*(VECT3EZ)); X2_6E = ((X2_6EL)*(VECT1EX)) + ((Y2_6EL)*(VECT2EX)) + ((Z2_6EL)*(VECT3EX)); Y2_6E = ((X2_6EL)*(VECT1EY)) + ((Y2_6EL)*(VECT2EY)) + ((Z2_6EL)*(VECT3EY)); Z2_6E = ((X2_6EL)*(VECT1EZ)) + ((Y2_6EL)*(VECT2EZ)) + ((Z2_6EL)*(VECT3EZ)); X3_6E = ((X3_6EL)*(VECT1EX)) + ((Y3_6EL)*(VECT2EX)) + ((Z3_6EL)*(VECT3EX)); Y3_6E = ((X3_6EL)*(VECT1EY)) + ((Y3_6EL)*(VECT2EY)) + ((Z3_6EL)*(VECT3EY)); Z3_6E = ((X3_6EL)*(VECT1EZ)) + ((Y3_6EL)*(VECT2EZ)) + ((Z3_6EL)*(VECT3EZ)); X4_6E = ((X4_6EL)*(VECT1EX)) + ((Y4_6EL)*(VECT2EX)) + ((Z4_6EL)*(VECT3EX)); Y4_6E = ((X4_6EL)*(VECT1EY)) + ((Y4_6EL)*(VECT2EY)) + ((Z4_6EL)*(VECT3EY)); Z4_6E = ((X4_6EL)*(VECT1EZ)) + ((Y4_6EL)*(VECT2EZ)) + ((Z4_6EL)*(VECT3EZ)); * * quadrant 7 fhi1 = [pi 3pi/2] fhi2 = [-pi/2 0] X1_7EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y1_7EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z1_7EL = ((LL3E)*(SIN(VAL_FHI2))); X2_7EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y2_7EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z2_7EL = ((LL3E)*(SIN(VAL_FHI2))); X3_7EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y3_7EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z3_7EL = ((LL3E)*(SIN(VAL_FHI2))); X4_7EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y4_7EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z4_7EL = ((LL3E)*(SIN(VAL_FHI2))); X1_7E = ((X1_7EL)*(VECT1EX)) + ((Y1_7EL)*(VECT2EX)) + ((Z1_7EL)*(VECT3EX)); Y1_7E = ((X1_7EL)*(VECT1EY)) + ((Y1_7EL)*(VECT2EY)) + ((Z1_7EL)*(VECT3EY)); Z1_7E = ((X1_7EL)*(VECT1EZ)) + ((Y1_7EL)*(VECT2EZ)) + ((Z1_7EL)*(VECT3EZ)); X2_7E = ((X2_7EL)*(VECT1EX)) + ((Y2_7EL)*(VECT2EX)) + ((Z2_7EL)*(VECT3EX)); Y2_7E = ((X2_7EL)*(VECT1EY)) + ((Y2_7EL)*(VECT2EY)) + ((Z2_7EL)*(VECT3EY)); Z2_7E = ((X2_7EL)*(VECT1EZ)) + ((Y2_7EL)*(VECT2EZ)) + ((Z2_7EL)*(VECT3EZ)); X3_7E = ((X3_7EL)*(VECT1EX)) + ((Y3_7EL)*(VECT2EX)) + ((Z3_7EL)*(VECT3EX)); Y3_7E = ((X3_7EL)*(VECT1EY)) + ((Y3_7EL)*(VECT2EY)) + ((Z3_7EL)*(VECT3EY)); Z3_7E = ((X3_7EL)*(VECT1EZ)) + ((Y3_7EL)*(VECT2EZ)) + ((Z3_7EL)*(VECT3EZ)); X4_7E = ((X4_7EL)*(VECT1EX)) + ((Y4_7EL)*(VECT2EX)) + ((Z4_7EL)*(VECT3EX)); Y4_7E = ((X4_7EL)*(VECT1EY)) + ((Y4_7EL)*(VECT2EY)) + ((Z4_7EL)*(VECT3EY)); Z4_7E = ((X4_7EL)*(VECT1EZ)) + ((Y4_7EL)*(VECT2EZ)) + ((Z4_7EL)*(VECT3EZ)); * * quadrant 8 fhi1 = [3pi/2 2pi] fhi2 = [-pi/2 0] X1_8EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y1_8EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z1_8EL = ((LL3E)*(SIN(VAL_FHI2))); X2_8EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y2_8EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z2_8EL = ((LL3E)*(SIN(VAL_FHI2))); X3_8EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y3_8EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z3_8EL = ((LL3E)*(SIN(VAL_FHI2))); X4_8EL = (((LL1E)*(COS(VAL_FHI1)))*(COS(VAL_FHI2))); Y4_8EL = (((LL2E)*(SIN(VAL_FHI1)))*(COS(VAL_FHI2))); Z4_8EL = ((LL3E)*(SIN(VAL_FHI2))); X1_8E = ((X1_8EL)*(VECT1EX)) + ((Y1_8EL)*(VECT2EX)) + ((Z1_8EL)*(VECT3EX)); Y1_8E = ((X1_8EL)*(VECT1EY)) + ((Y1_8EL)*(VECT2EY)) + ((Z1_8EL)*(VECT3EY)); Z1_8E = ((X1_8EL)*(VECT1EZ)) + ((Y1_8EL)*(VECT2EZ)) + ((Z1_8EL)*(VECT3EZ)); X2_8E = ((X2_8EL)*(VECT1EX)) + ((Y2_8EL)*(VECT2EX)) + ((Z2_8EL)*(VECT3EX)); Y2_8E = ((X2_8EL)*(VECT1EY)) + ((Y2_8EL)*(VECT2EY)) + ((Z2_8EL)*(VECT3EY)); Z2_8E = ((X2_8EL)*(VECT1EZ)) + ((Y2_8EL)*(VECT2EZ)) + ((Z2_8EL)*(VECT3EZ)); X3_8E = ((X3_8EL)*(VECT1EX)) + ((Y3_8EL)*(VECT2EX)) + ((Z3_8EL)*(VECT3EX)); Y3_8E = ((X3_8EL)*(VECT1EY)) + ((Y3_8EL)*(VECT2EY)) + ((Z3_8EL)*(VECT3EY)); Z3_8E = ((X3_8EL)*(VECT1EZ)) + ((Y3_8EL)*(VECT2EZ)) + ((Z3_8EL)*(VECT3EZ)); X4_8E = ((X4_8EL)*(VECT1EX)) + ((Y4_8EL)*(VECT2EX)) + ((Z4_8EL)*(VECT3EX)); Y4_8E = ((X4_8EL)*(VECT1EY)) + ((Y4_8EL)*(VECT2EY)) + ((Z4_8EL)*(VECT3EY)); Z4_8E = ((X4_8EL)*(VECT1EZ)) + ((Y4_8EL)*(VECT2EZ)) + ((Z4_8EL)*(VECT3EZ)); * * * definition points P1_1E = (X1_1E + N110E) (Y1_1E + N220E) (Z1_1E + N120E); P2_1E = (X2_1E + N110E) (Y2_1E + N220E) (Z2_1E + N120E); P3_1E = (X3_1E + N110E) (Y3_1E + N220E) (Z3_1E + N120E); P4_1E = (X4_1E + N110E) (Y4_1E + N220E) (Z4_1E + N120E); * P1_2E = (X1_2E + N110E) (Y1_2E + N220E) (Z1_2E + N120E); P2_2E = (X2_2E + N110E) (Y2_2E + N220E) (Z2_2E + N120E); P3_2E = (X3_2E + N110E) (Y3_2E + N220E) (Z3_2E + N120E); P4_2E = (X4_2E + N110E) (Y4_2E + N220E) (Z4_2E + N120E); * P1_3E = (X1_3E + N110E) (Y1_3E + N220E) (Z1_3E + N120E); P2_3E = (X2_3E + N110E) (Y2_3E + N220E) (Z2_3E + N120E); P3_3E = (X3_3E + N110E) (Y3_3E + N220E) (Z3_3E + N120E); P4_3E = (X4_3E + N110E) (Y4_3E + N220E) (Z4_3E + N120E); * P1_4E = (X1_4E + N110E) (Y1_4E + N220E) (Z1_4E + N120E); P2_4E = (X2_4E + N110E) (Y2_4E + N220E) (Z2_4E + N120E); P3_4E = (X3_4E + N110E) (Y3_4E + N220E) (Z3_4E + N120E); P4_4E = (X4_4E + N110E) (Y4_4E + N220E) (Z4_4E + N120E); * P1_5E = (X1_5E + N110E) (Y1_5E + N220E) (Z1_5E + N120E); P2_5E = (X2_5E + N110E) (Y2_5E + N220E) (Z2_5E + N120E); P3_5E = (X3_5E + N110E) (Y3_5E + N220E) (Z3_5E + N120E); P4_5E = (X4_5E + N110E) (Y4_5E + N220E) (Z4_5E + N120E); * P1_6E = (X1_6E + N110E) (Y1_6E + N220E) (Z1_6E + N120E); P2_6E = (X2_6E + N110E) (Y2_6E + N220E) (Z2_6E + N120E); P3_6E = (X3_6E + N110E) (Y3_6E + N220E) (Z3_6E + N120E); P4_6E = (X4_6E + N110E) (Y4_6E + N220E) (Z4_6E + N120E); * P1_7E = (X1_7E + N110E) (Y1_7E + N220E) (Z1_7E + N120E); P2_7E = (X2_7E + N110E) (Y2_7E + N220E) (Z2_7E + N120E); P3_7E = (X3_7E + N110E) (Y3_7E + N220E) (Z3_7E + N120E); P4_7E = (X4_7E + N110E) (Y4_7E + N220E) (Z4_7E + N120E); * P1_8E = (X1_8E + N110E) (Y1_8E + N220E) (Z1_8E + N120E); P2_8E = (X2_8E + N110E) (Y2_8E + N220E) (Z2_8E + N120E); P3_8E = (X3_8E + N110E) (Y3_8E + N220E) (Z3_8E + N120E); P4_8E = (X4_8E + N110E) (Y4_8E + N220E) (Z4_8E + N120E);