Download coller1.procedur

Back to the list

   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