* COLLER1 PROCEDUR MB234859 20/02/20 21:15:00 10527 * ************************************************************************ * * C O L L E R 1 * ------------- * * FONCTION: * --------- * * DEFINIR DES JONCTIONS POUTRE-COQUE EN 3D, DE FACON A PERMETTRE * AUX COQUES DE RESISTER A DES MOMENTS DE TORSION. * * C'est aussi un moyen de g{n{rer les valeurs de rotation normale * sur un ensemble de noeuds appartenant @ des {l{ments coques. * * PHRASE D'APPEL: * --------------- * * POUTCOQ = COLLER1 SURF4 POUT2 (ANG) ; * * OPERANDES: * ---------- * * SURF4 "MAILLAGE" ZONE EN PLAQUES OU COQUES. * POUT2 "MAILLAGE" ZONE EN POUTRES (ou simplement l'ensemble * des points de la surface sur lesquels on * veut connaitre la rotation normale). * ANG 'FLOTTANT' Angle mini (en degr{s) d'une poutre avec le * plan des coques qu'elle touche. En de\@ de * cette valeur d'angle, on n'effectue aucune * op{ration particuli}re de liaison. * (5 par d{faut) * * RESULTATS: * ---------- * * POUTCOQ "RIGIDITE" Matrice d{finissant les rotations normales * aux coques. * A adjoindre @ la Matrice de Rigidit{. * * MODE DE FONCTIONNEMENT: * ----------------------- * * L'OPERATION EFFECTUEE REVIENT A DEFINIR UN 6IEME D.D.L. (ROTATION) * AUX POINTS DES COQUES LIES A DES POUTRES, PAR DES RELATIONS AVEC * LES DEPLACEMENTS DES NOEUDS VOISINS (COTE COQUES). * * VARIABLES: * ---------- * * * AUTEUR, DATE DE CREATION: * ------------------------- * * PASCAL MANIGOT 06 SEPTEMBRE 1989 * P.M. 09/02/90: "AXE" enlev{. PSCAL --> COORD * P.M. 19/03/90: utilisation de "RELA ... DIRECTION" * P.M. 10/04/90: ajout d'un test d'utilit{ de la relation @ cr{er. * ************************************************************************ * * * INIT = VRAI ; * P0 = 'NOEUD' 1 ; P0P0 = 'MANUEL' 'SEG2' P0 P0 ; POUT2BIS = POUT2 'ET' P0P0 ; POUT2BIS = 'ELEMENTS' POUT2BIS 'SEG2' ; YA_POUTR = ('NBELEM' POUT2BIS) > 1 ; * on va tester l'utilit{ de la relation si on a re\u un v{ritable * maillage de poutres, et non pas un nuage de points. SI YA_POUTR ; SI ('NON' ('EXISTE' ANG)) ; ANG = 5. ; FINSI; FINSI; * POUT1 = 'CHANGER' POUT2 'POI1' ; SOUDURE = 'ELEMENTS' POUT1 'APPUYES' 'LARGEMENT_SUR' SURF4 ; 'OUBLIER' POUT1 ; NBPT1 = 'NBNOEUDS' SOUDURE ; * * * BOUCLE SUR TOUS LES POINTS DE L'INTERSECTION: * --------------------------------------------- NBPT2 = 0 ; IP = 0 ; REPETER REP1 NBPT1 ; IP = IP + 1 ; PT1 = 'POINT' SOUDURE IP ; * VOISIN4 = 'ELEMENT' SURF4 'APPUYE' 'LARGEMENT SUR' PT1 ; VOISIN1 = 'CHANGER' VOISIN4 'POI1' ; VOISIN1 = 'DIFFERENCE' VOISIN1 ('MANUEL' 'POI1' PT1) ; PT2 = 'POINT' VOISIN1 'PROCHE' PT1 ; V12 = PT2 'MOINS' PT1 ; D2 = 'NORME' V12 ; V12 = V12 / D2 ; VOISIN1 = 'DIFFERENCE' VOISIN1 ('MANUEL' 'POI1' PT2) ; * * * RECHERCHE DU 3IEME POINT POUR APPROXIMER LE REPERE LOCAL: * --------------------------------------------------------- PT3 = 'POINT' VOISIN1 'PROCHE' PT1 ; V13 = PT3 'MOINS' PT1 ; D3 = 'NORME' V13 ; V13 = V13 / D3 ; COS23 = 'ABS' ('PSCALAIRE' V12 V13) ; * NBPROCHE = 'NBNOEUDS' VOISIN1 ; SI (NBPROCHE > 1) ; VOISIN1 = 'DIFFERENCE' VOISIN1 ('MANUEL' 'POI1' PT3) ; NBPROCHE = NBPROCHE - 1 ; I = 0 ; REPETER REP22 NBPROCHE ; I = I + 1 ; * PT4 = 'POINT' VOISIN1 I ; V14 = PT4 'MOINS' PT1 ; D4 = 'NORME' V14 ; V14 = V14 / D4 ; COS24 = 'ABS' ('PSCALAIRE' V12 V14) ; SI (COS24 < COS23) ; PT3 = PT4 ; V13 = V14 ; D3 = D4 ; COS23 = COS24 ; FINSI; * FIN REP22 ; FINSI; * * * CREATION DE LA MATRICE ELEMENTAIRE DE LA ROTATION "RZ": * ------------------------------------------------------- N1 = 'PVECTORIEL' V12 V13 ; NN1 = 'NORME' N1 ; N1 = N1 / NN1 ; * SI YA_POUTR ; POUT2A = 'ELEMENT' POUT2 'APPUYE' 'LARGEMENT_SUR' PT1 ; POUT2A = 'ELEMENT' POUT2A 1 ; N1BIS = ('POINT' POUT2A 2) 'MOINS' ('POINT' POUT2A 1) ; N1BIS = N1BIS / ('NORME' N1BIS) ; COS1 = 'ABS' ('PSCALAIRE' N1 N1BIS) ; SI (COS1 < ('SIN' ANG)) ; NBPT2 = NBPT2 + 1 ; 'ITERER' REP1 ; FINSI; FINSI; * DD0 = 2.D0 * D2 * D3 ; N2 = 'PVECTORIEL' V13 N1 ; N3 = 'PVECTORIEL' N1 V12 ; V2 = D2*N2 ; V3 = D3*N3 ; V23 = V3 'MOINS' V2 ; D1 = 'NORME' V23; V23 = V23 / D1; * ** MAT1 = 'RELA' DD0 'ROTA' 'DIRECTION' N1 PT1 ** + D2 'DEPL' 'DIRECTION' N2 PT3 ** - D2 'DEPL' 'DIRECTION' N2 PT1 ** - D3 'DEPL' 'DIRECTION' N3 PT2 ** + D3 'DEPL' 'DIRECTION' N3 PT1 ; + D2 'DEPL' 'DIRECTION' N2 PT3 - D3 'DEPL' 'DIRECTION' N3 PT2 * SI INIT ; POUTCOQ = MAT1 ; INIT = FAUX ; SINON; POUTCOQ = POUTCOQ 'ET' MAT1 ; FINSI; * SI (IP 'MULTIPLE' 100) ; 'MENAGE' ; FINSI; * FIN REP1 ; * SI YA_POUTR ; 'MESSAGE' NBPT1 'noeuds de jonction entre coques et poutres.' ; SI (NBPT2 > 0) ; 'MESSAGE' NBPT2 'noeuds ne n{cessitant pas de liaison en rotation.' ; FINSI; FINSI; * 'OUBLIER' SOUDURE ; 'MENAGE' ; * 'FINPROC' POUTCOQ ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales