1 : * COLLER1 PROCEDUR NOBODY 92/01/01 00:00:00 001 2 : 'DEBPROC' COLLER1 SURF4*MAILLAGE POUT2*MAILLAGE ANG/FLOTTANT ; 3 : * 4 : ************************************************************************ 5 : * 6 : * C O L L E R 1 7 : * ------------- 8 : * 9 : * FONCTION: 10 : * --------- 11 : * 12 : * DEFINIR DES JONCTIONS POUTRE-COQUE EN 3D, DE FACON A PERMETTRE 13 : * AUX COQUES DE RESISTER A DES MOMENTS DE TORSION. 14 : * 15 : * C'est aussi un moyen de g{n{rer les valeurs de rotation normale 16 : * sur un ensemble de noeuds appartenant @ des {l{ments coques. 17 : * 18 : * PHRASE D'APPEL: 19 : * --------------- 20 : * 21 : * POUTCOQ = COLLER1 SURF4 POUT2 (ANG) ; 22 : * 23 : * OPERANDES: 24 : * ---------- 25 : * 26 : * SURF4 "MAILLAGE" ZONE EN PLAQUES OU COQUES. 27 : * POUT2 "MAILLAGE" ZONE EN POUTRES (ou simplement l'ensemble 28 : * des points de la surface sur lesquels on 29 : * veut connaitre la rotation normale). 30 : * ANG 'FLOTTANT' Angle mini (en degr{s) d'une poutre avec le 31 : * plan des coques qu'elle touche. En de\@ de 32 : * cette valeur d'angle, on n'effectue aucune 33 : * op{ration particuli}re de liaison. 34 : * (5› par d{faut) 35 : * 36 : * RESULTATS: 37 : * ---------- 38 : * 39 : * POUTCOQ "RIGIDITE" Matrice d{finissant les rotations normales 40 : * aux coques. 41 : * A adjoindre @ la Matrice de Rigidit{. 42 : * 43 : * MODE DE FONCTIONNEMENT: 44 : * ----------------------- 45 : * 46 : * L'OPERATION EFFECTUEE REVIENT A DEFINIR UN 6IEME D.D.L. (ROTATION) 47 : * AUX POINTS DES COQUES LIES A DES POUTRES, PAR DES RELATIONS AVEC 48 : * LES DEPLACEMENTS DES NOEUDS VOISINS (COTE COQUES). 49 : * 50 : * VARIABLES: 51 : * ---------- 52 : * 53 : UX = 'MOT' 'UX' ; 54 : UY = 'MOT' 'UY' ; 55 : UZ = 'MOT' 'UZ' ; 56 : RX = 'MOT' 'RX' ; 57 : RY = 'MOT' 'RY' ; 58 : RZ = 'MOT' 'RZ' ; 59 : * 60 : * AUTEUR, DATE DE CREATION: 61 : * ------------------------- 62 : * 63 : * PASCAL MANIGOT 06 SEPTEMBRE 1989 64 : * P.M. 09/02/90: "AXE" enlev{. PSCAL --> COORD 65 : * P.M. 19/03/90: utilisation de "RELA ... DIRECTION" 66 : * P.M. 10/04/90: ajout d'un test d'utilit{ de la relation @ cr{er. 67 : * 68 : ************************************************************************ 69 : * 70 : SI = 'MOT' 'SI' ; SINON = 'MOT' 'SINON' ; FINSI = 'MOT' 'FINSI' ; 71 : REPETER = 'MOT' 'REPETER'; QUITTER = 'MOT' 'QUITTER'; FIN = 'MOT' 'FIN'; 72 : * 73 : * 74 : INIT = VRAI ; 75 : * 76 : P0 = 'NOEUD' 1 ; 77 : P0P0 = 'MANUEL' 'SEG2' P0 P0 ; 78 : POUT2BIS = POUT2 'ET' P0P0 ; 79 : POUT2BIS = 'ELEMENTS' POUT2BIS 'SEG2' ; 80 : YA_POUTR = ('NBELEM' POUT2BIS) > 1 ; 81 : * on va tester l'utilit{ de la relation si on a re\u un v{ritable 82 : * maillage de poutres, et non pas un nuage de points. 83 : SI YA_POUTR ; 84 : SI ('NON' ('EXISTE' ANG)) ; 85 : ANG = 5. ; 86 : FINSI; 87 : FINSI; 88 : * 89 : POUT1 = 'CHANGER' POUT2 'POI1' ; 90 : SOUDURE = 'ELEMENTS' POUT1 'APPUYES' 'LARGEMENT_SUR' SURF4 ; 91 : 'OUBLIER' POUT1 ; 92 : NBPT1 = 'NBNOEUDS' SOUDURE ; 93 : * 94 : * 95 : * BOUCLE SUR TOUS LES POINTS DE L'INTERSECTION: 96 : * --------------------------------------------- 97 : NBPT2 = 0 ; 98 : IP = 0 ; 99 : REPETER REP1 NBPT1 ; 100 : IP = IP + 1 ; 101 : PT1 = 'POINT' SOUDURE IP ; 102 : * 103 : VOISIN4 = 'ELEMENT' SURF4 'APPUYE' 'LARGEMENT SUR' PT1 ; 104 : VOISIN1 = 'CHANGER' VOISIN4 'POI1' ; 105 : VOISIN1 = 'DIFFERENCE' VOISIN1 ('MANUEL' 'POI1' PT1) ; 106 : PT2 = 'POINT' VOISIN1 'PROCHE' PT1 ; 107 : V12 = PT2 'MOINS' PT1 ; 108 : D2 = 'NORME' V12 ; 109 : V12 = V12 / D2 ; 110 : VOISIN1 = 'DIFFERENCE' VOISIN1 ('MANUEL' 'POI1' PT2) ; 111 : * 112 : * 113 : * RECHERCHE DU 3IEME POINT POUR APPROXIMER LE REPERE LOCAL: 114 : * --------------------------------------------------------- 115 : PT3 = 'POINT' VOISIN1 'PROCHE' PT1 ; 116 : V13 = PT3 'MOINS' PT1 ; 117 : D3 = 'NORME' V13 ; 118 : V13 = V13 / D3 ; 119 : COS23 = 'ABS' ('PSCALAIRE' V12 V13) ; 120 : * 121 : NBPROCHE = 'NBNOEUDS' VOISIN1 ; 122 : SI (NBPROCHE > 1) ; 123 : VOISIN1 = 'DIFFERENCE' VOISIN1 ('MANUEL' 'POI1' PT3) ; 124 : NBPROCHE = NBPROCHE - 1 ; 125 : I = 0 ; 126 : REPETER REP22 NBPROCHE ; 127 : I = I + 1 ; 128 : * 129 : PT4 = 'POINT' VOISIN1 I ; 130 : V14 = PT4 'MOINS' PT1 ; 131 : D4 = 'NORME' V14 ; 132 : V14 = V14 / D4 ; 133 : COS24 = 'ABS' ('PSCALAIRE' V12 V14) ; 134 : SI (COS24 < COS23) ; 135 : PT3 = PT4 ; 136 : V13 = V14 ; 137 : D3 = D4 ; 138 : COS23 = COS24 ; 139 : FINSI; 140 : * 141 : FIN REP22 ; 142 : FINSI; 143 : * 144 : * 145 : * CREATION DE LA MATRICE ELEMENTAIRE DE LA ROTATION "RZ": 146 : * ------------------------------------------------------- 147 : N1 = 'PVECTORIEL' V12 V13 ; 148 : NN1 = 'NORME' N1 ; 149 : N1 = N1 / NN1 ; 150 : * 151 : SI YA_POUTR ; 152 : POUT2A = 'ELEMENT' POUT2 'APPUYE' 'LARGEMENT_SUR' PT1 ; 153 : POUT2A = 'ELEMENT' POUT2A 1 ; 154 : N1BIS = ('POINT' POUT2A 2) 'MOINS' ('POINT' POUT2A 1) ; 155 : N1BIS = N1BIS / ('NORME' N1BIS) ; 156 : COS1 = 'ABS' ('PSCALAIRE' N1 N1BIS) ; 157 : SI (COS1 < ('SIN' ANG)) ; 158 : NBPT2 = NBPT2 + 1 ; 159 : 'ITERER' REP1 ; 160 : FINSI; 161 : FINSI; 162 : * 163 : DD0 = 2.D0 * D2 * D3 ; 164 : N2 = 'PVECTORIEL' V13 N1 ; 165 : N3 = 'PVECTORIEL' N1 V12 ; 166 : * 167 : MAT1 = 'RELA' DD0 'ROTA' 'DIRECTION' N1 PT1 168 : + D2 'DEPL' 'DIRECTION' N2 PT3 169 : - D2 'DEPL' 'DIRECTION' N2 PT1 170 : - D3 'DEPL' 'DIRECTION' N3 PT2 171 : + D3 'DEPL' 'DIRECTION' N3 PT1 ; 172 : * 173 : SI INIT ; 174 : POUTCOQ = MAT1 ; 175 : INIT = FAUX ; 176 : SINON; 177 : POUTCOQ = POUTCOQ 'ET' MAT1 ; 178 : FINSI; 179 : * 180 : SI (IP 'MULTIPLE' 100) ; 181 : 'MENAGE' ; 182 : FINSI; 183 : * 184 : FIN REP1 ; 185 : * 186 : SI YA_POUTR ; 187 : 'MESSAGE' NBPT1 'noeuds de jonction entre coques et poutres.' ; 188 : SI (NBPT2 > 0) ; 189 : 'MESSAGE' 190 : NBPT2 'noeuds ne n{cessitant pas de liaison en rotation.' ; 191 : FINSI; 192 : FINSI; 193 : * 194 : 'OUBLIER' SOUDURE ; 195 : 'MENAGE' ; 196 : * 197 : 'FINPROC' POUTCOQ ;
© Cast3M 2003 - All rights reserved.
Disclaimer