1 : * @CARENE PROCEDUR CHAT 96/01/03 21:15:54 1971 2 : ************************************************************************ 3 : *----------------------------------------------------------------------- 4 : * 5 : * PROCEDURE CARENE (ECRITE PAR MR MALEYRAN ) MLN/CERN JANVIER 91 6 : * 7 : * 8 : * CONTRUCTION D'UNE COQUE LISSEE PAR LA METHODE D'ENERGIE MINIMUM DE 9 : * DEFORMATION (ECRITE PAR MR MALEYRAN 10 : * 11 : *----------------------------------------------------------------------- 12 : * 13 : * ENTREE COU EST UNE TABLE TELLE QUE: 14 : * 15 : * 16 : * 17 : * COU.1 MAILLAGE DE TYPE LIGNE SEG2 REPRESENTANT LE COUPLE 18 : * INITIAL DE LA COQUE. 19 : * (COU_1 EST LE MAITRE_COUPLE DANS UN PLAN DONT LA NORMALE EST 20 : * LA DIRECTION PRINCIPALE DES LISSES 21 : * 22 : * COU.2 MAILLAGE DE TYPE LIGNE SEG2 REPRESENTANT LE COUPLE 23 : * FINAL DE LA COQUE. 24 : * (COU.2 EST LE COUPLE FINAL QUELCONQUE DANS L'ESPACE 3D) 25 : * 26 : * COU.N MAILLAGE DE TYPE LIGNE SEG2 REPRESENTANT LE COUPLE 27 : * INTERMEDIAIRE DE RANG N DE LA COQUE. 28 : * (COU.3 EST UN COUPLE INTERMEDIAIRDE DANS UN PLAN PARALLELE 29 : * A YOZ C'EST A DIRE OX = CONSTANT. OX DOIT ETRE UN MULTIPLE 30 : * DE N_COU) 31 : * (COU.1 COU.2 (COU.3) DOIVENT AVOIR LE MEME NOMBRE DE 32 : * POINTS ET ETRE PARCOURUES DANS LE MEME SENS). 33 : * 34 : * ROT_1 LISTREEL DES ROTATIONS IMPOSEES AU POINT 35 : * INITIAL DE COU.1 36 : * (LISTREEL DE DIMENSION 3 DONT LES VALEURS PEUVENT ETRE : 37 : * 0. < RX, RY, RZ <= 45. EN DEGRES (ROTATIONS IMPOSEES) 38 : * RX, RY, RZ, > 45. (ROTATIONS LIBRES)) 39 : * 40 : * ROT_2 LISTREEL DES ROTATIONS IMPOSEES AU POINT 41 : * FINAL DE COU.2 42 : * (LISTREEL DE DIMENSION 3 DONT LES VALEURS PEUVENT ETRE : 43 : * 0. < RX, RY, RZ <= 45. EN DEGRES (ROTATIONS IMPOSEES) 44 : * RX, RY, RZ, > 45. (ROTATIONS LIBRES)) 45 : * 46 : * N_COU FLOTTANT (DISTANCE ENTRE ELEMENTS DE LA COQUE) 47 : * 48 : * AXE_P ENTIER (DIRECTION DES LISSES) 49 : * 1 : SUIVANT OX 50 : * 2 : SUIVANT OY 51 : * 3 : SUIVANT OZ 52 : * 53 : *----------------------------------------------------------------------- 54 : * 55 : * SORTIE 56 : * 57 : * CARE_1 CARENE LISSEE 58 : * LIS TABLE DES LISSES 59 : * COUI table des couples 60 : * 61 : *----------------------------------------------------------------------- 62 : 'DEBP' @CARENE COU*'TABLE' 63 : ROT_1*'LISTREEL' ROT_2*'LISTREEL' N_COU*'FLOTTANT' AXE_P*'ENTIER' ; 64 : 'OPTI' 'DIME' 3 'ELEM' 'QUA4' 'MODE' 'TRIDIM' ; 65 : 'TITRE' ' LISSAGE DE CARENE (Energie de deform. mini.)' ; 66 : X = (0. 0. 0.) 'DROI' 1 ((N_COU * 5.) 0. 0.) ; 67 : Y = (0. 0. 0.) 'DROI' 1 (0. (N_COU * 5.) 0.) ; 68 : Z = (0. 0. 0.) 'DROI' 1 (0. 0. (N_COU * 5.)) ; 69 : X = X 'COUL' 'ROUG' ; 70 : Y = Y 'COUL' 'ROUG' ; 71 : Z = Z 'COUL' 'ROUG' ; 72 : O1 = 1E5 1E5 1E5 ; 73 : NCO = 'NBEL' COU.1 ; 74 : COU_1X = 'COOR' AXE_P COU.1 ; 75 : COU_2X = 'COOR' AXE_P COU.2 ; 76 : 'SI' ((MAXI COU_2X) < 0.) ; 77 : COE_1 = -1. ; 78 : 'SINON' ; 79 : COE_1 = 1. ; 80 : 'FINSI' ; 81 : COU_DX = (ABS COU_2X) - (ABS COU_1X) ; 82 : MAX_DX = 'MAXI' COU_DX ; 83 : NLI = (MAX_DX / N_COU) ; 84 : NLIE = 'ENTI' NLI ; 85 : 'SI' ((NLI - NLIE) < (N_COU / 1000.)) ; 86 : NLIE = NLIE ; 87 : 'SINON' ; 88 : NLIE = NLIE + 1 ; 89 : 'FINSI' ; 90 : I = 0 ; 91 : LIS = 'TABLE' ; 92 : BLO = 'TABLE' ; 93 : DIP = 'TABLE' ; 94 : 'REPETE' BOU_1 (NCO + 1) ; 95 : I = I + 1 ; 96 : P1X P1Y P1Z = 'COOR' (COU.1 'POIN' I) ; 97 : P2X P2Y P2Z = 'COOR' (COU.2 'POIN' I) ; 98 : * 99 : * LES LISSES SONT SUR OX 100 : * 101 : 'SI' ('EGA' AXE_P 1) ; 102 : * 103 : P12X = (ABS P2X) - (ABS P1X) ; 104 : N12 = (P12X / N_COU) ; 105 : N12E = 'ENTI' N12 ; 106 : 'SI' (N12E > 0) ; 107 : 'SI' ((N12 - N12E) < (N_COU / 1000.)) ; 108 : N12E = N12E ; 109 : MAI_1 = (P1X 0. 0.) DROI N12E (P2X 0. 0.) ; 110 : 'SINON' ; 111 : P2I = N12E * N_COU * COE_1 ; 112 : N12E = N12E + 1 ; 113 : MAI_1 = (P1X 0. 0.) DROI (N12E - 1) (P2I 0. 0.) DROI 1 (P2X 0. 0.) ; 114 : 'FINSI' ; 115 : 'SINON' ; 116 : MAI_1 = (P1X 0. 0.) DROI 1 (P2X 0. 0.) ; 117 : 'FINSI' ; 118 : NEI = 'NBEL' MAI_1 ; 119 : DEI = NLIE - NEI ; 120 : 'SI' ('EGA' DEI 0) ; 121 : 'SINON' ; 122 : INC1 = N_COU / 1000. ; 123 : * INC1 = 0. 124 : MAI_1 = MAI_1 'DROI' DEI ((P2X + INC1) 0. 0.) ; 125 : 'FINSI' ; 126 : J = 1 ; 127 : BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' 1) ; 128 : DIP.J = 'DEPI' BLO.J 0. ; 129 : J = J + 1 ; 130 : BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' 1) ; 131 : DIP.J = 'DEPI' BLO.J P1Y; 132 : J = J + 1 ; 133 : BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' 1) ; 134 : DIP.J = 'DEPI' BLO.J P1Z ; 135 : J = J + 1 ; 136 : BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' 'FINA') ; 137 : DIP.J = 'DEPI' BLO.J 0. ; 138 : J = J + 1 ; 139 : BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' 'FINA') ; 140 : DIP.J = 'DEPI' BLO.J P2Y; 141 : J = J + 1 ; 142 : BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' 'FINA') ; 143 : DIP.J = 'DEPI' BLO.J P2Z ; 144 : K = 'DIME' COU ; 145 : 'SI' (K > 2) ; 146 : CO1 = K - 2 ; 147 : L = 2 ; 148 : 'REPE' BOU_3 CO1 ; 149 : L = L + 1 ; 150 : P3X P3Y P3Z = 'COOR' (COU.L 'POIN' I) ; 151 : DENS N_COU ; 152 : LL1 = (P1X 0. 0.) DROI (P3X 0. 0.) ; 153 : NL1 = 'NBNO' LL1 ; 154 : J = J + 1 ; 155 : BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' NL1) ; 156 : DIP.J = 'DEPI' BLO.J 0. ; 157 : J = J + 1 ; 158 : BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' NL1) ; 159 : DIP.J = 'DEPI' BLO.J P3Y; 160 : J = J + 1 ; 161 : BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' NL1) ; 162 : DIP.J = 'DEPI' BLO.J P3Z ; 163 : 'FIN' BOU_3 ; 164 : 'FINSI' ; 165 : * 166 : 'FINSI'; 167 : * 168 : * LES LISSES SONT SUR OY 169 : * 170 : 'SI' ('EGA' AXE_P 2) ; 171 : * 172 : P12Y = (ABS P2Y) - (ABS P1Y) ; 173 : N12 = (P12Y / N_COU) ; 174 : N12E = 'ENTI' N12 ; 175 : 'SI' (N12E > 0) ; 176 : 'SI' ((N12 - N12E) < (N_COU / 1000.)) ; 177 : N12E = N12E ; 178 : MAI_1 = (0. P1Y 0.) DROI N12E (0. P2Y 0.) ; 179 : 'SINON' ; 180 : P2I = N12E * N_COU * COE_1 ; 181 : N12E = N12E + 1 ; 182 : MAI_1 = (0. P1Y 0.) DROI (N12E - 1) (0. P2I 0.) DROI 1 (0. P2Y 0.) ; 183 : 'FINSI' ; 184 : 'SINON' ; 185 : MAI_1 = (0. P1Y 0.) DROI 1 (0. P2Y 0.) ; 186 : 'FINSI' ; 187 : NEI = 'NBEL' MAI_1 ; 188 : DEI = NLIE - NEI ; 189 : 'SI' ('EGA' DEI 0) ; 190 : 'SINON' ; 191 : INC1 = N_COU / 1000. ; 192 : MAI_1 = MAI_1 'DROI' DEI (0. (P2Y + INC1) 0.) ; 193 : 'FINSI' ; 194 : J = 1 ; 195 : BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' 1) ; 196 : DIP.J = 'DEPI' BLO.J P1X; 197 : J = J + 1 ; 198 : BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' 1) ; 199 : DIP.J = 'DEPI' BLO.J 0. ; 200 : J = J + 1 ; 201 : BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' 1) ; 202 : DIP.J = 'DEPI' BLO.J P1Z ; 203 : J = J + 1 ; 204 : BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' 'FINA') ; 205 : DIP.J = 'DEPI' BLO.J P2X; 206 : J = J + 1 ; 207 : BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' 'FINA') ; 208 : DIP.J = 'DEPI' BLO.J 0. ; 209 : J = J + 1 ; 210 : BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' 'FINA') ; 211 : DIP.J = 'DEPI' BLO.J P2Z ; 212 : K = 'DIME' COU ; 213 : 'SI' (K > 2) ; 214 : CO1 = K - 2 ; 215 : L = 2 ; 216 : 'REPE' BOU_3 CO1 ; 217 : L = L + 1 ; 218 : P3X P3Y P3Z = 'COOR' (COU.L 'POIN' I) ; 219 : DENS N_COU ; 220 : LL1 = (0. P1Y 0.) DROI (0. P3Y 0.) ; 221 : NL1 = 'NBNO' LL1 ; 222 : J = J + 1 ; 223 : BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' NL1) ; 224 : DIP.J = 'DEPI' BLO.J P3X; 225 : J = J + 1 ; 226 : BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' NL1) ; 227 : DIP.J = 'DEPI' BLO.J 0. ; 228 : J = J + 1 ; 229 : BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' NL1) ; 230 : DIP.J = 'DEPI' BLO.J P3Z ; 231 : 'FIN' BOU_3 ; 232 : 'FINSI' ; 233 : * 234 : 'FINSI' ; 235 : * 236 : * LES LISSES SONT SUR OZ 237 : * 238 : 'SI' ('EGA' AXE_P 3) ; 239 : * 240 : P12Z = (ABS P2Z) - (ABS P1Z) ; 241 : N12 = (P12Z / N_COU) ; 242 : N12E = 'ENTI' N12 ; 243 : 'SI' (N12E > 0) ; 244 : 'SI' ((N12 - N12E) < (N_COU / 1000.)) ; 245 : N12E = N12E ; 246 : MAI_1 = (0. 0. P1Z) DROI N12E (0. 0. P2Z) ; 247 : 'SINON' ; 248 : P2I = N12E * N_COU * COE_1 ; 249 : N12E = N12E + 1 ; 250 : MAI_1 = (0. 0. P1Z) DROI (N12E - 1) (0. 0. P2I) DROI 1 (0. 0. P2Z) ; 251 : 'FINSI' ; 252 : 'SINON' ; 253 : MAI_1 = (0. 0. P1Z) DROI 1 (0. 0. P2Z) ; 254 : 'FINSI' ; 255 : NEI = 'NBEL' MAI_1 ; 256 : DEI = NLIE - NEI ; 257 : 'SI' ('EGA' DEI 0) ; 258 : 'SINON' ; 259 : INC1 = N_COU / 1000. ; 260 : MAI_1 = MAI_1 'DROI' DEI (0. 0. ( P2Z + INC1)) ; 261 : 'FINSI' ; 262 : J = 1 ; 263 : BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' 1) ; 264 : DIP.J = 'DEPI' BLO.J P1X; 265 : J = J + 1 ; 266 : BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' 1) ; 267 : DIP.J = 'DEPI' BLO.J P1Y; 268 : J = J + 1 ; 269 : BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' 1) ; 270 : DIP.J = 'DEPI' BLO.J 0. ; 271 : J = J + 1 ; 272 : BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' 'FINA') ; 273 : DIP.J = 'DEPI' BLO.J P2X; 274 : J = J + 1 ; 275 : BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' 'FINA') ; 276 : DIP.J = 'DEPI' BLO.J P2Y; 277 : J = J + 1 ; 278 : BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' 'FINA') ; 279 : DIP.J = 'DEPI' BLO.J 0. ; 280 : K = 'DIME' COU ; 281 : 'SI' (K > 2) ; 282 : CO1 = K - 2 ; 283 : L = 2 ; 284 : 'REPE' BOU_3 CO1 ; 285 : L = L + 1 ; 286 : P3X P3Y P3Z = 'COOR' (COU.L 'POIN' I) ; 287 : DENS N_COU ; 288 : LL1 = (0. 0. P1Z) DROI (0. 0. P3Z) ; 289 : NL1 = 'NBNO' LL1 ; 290 : J = J + 1 ; 291 : BLO.J = 'BLOQ' 'UX' (MAI_1 'POIN' NL1) ; 292 : DIP.J = 'DEPI' BLO.J P3X; 293 : J = J + 1 ; 294 : BLO.J = 'BLOQ' 'UY' (MAI_1 'POIN' NL1) ; 295 : DIP.J = 'DEPI' BLO.J P3Y; 296 : J = J + 1 ; 297 : BLO.J = 'BLOQ' 'UZ' (MAI_1 'POIN' NL1) ; 298 : DIP.J = 'DEPI' BLO.J 0. ; 299 : 'FIN' BOU_3 ; 300 : 'FINSI' ; 301 : * 302 : 'FINSI' ; 303 : * 304 : ROT1 = 'EXTR' ROT_1 1 ; 305 : ROT2 = 'EXTR' ROT_1 2 ; 306 : ROT3 = 'EXTR' ROT_1 3 ; 307 : COE = 3.14159 / 180. ; 308 : 'SI' (ROT1 '<EG' 45.) ; 309 : J = J + 1 ; 310 : BLO.J = 'BLOQ' 'RX' (MAI_1 'POIN' 1) ; 311 : DIP.J = 'DEPI' BLO.J (ROT1 * COE) ; 312 : 'FINSI' ; 313 : 'SI' (ROT2 '<EG' 45.) ; 314 : J = J + 1 ; 315 : BLO.J = 'BLOQ' 'RY' (MAI_1 'POIN' 1) ; 316 : DIP.J = 'DEPI' BLO.J (ROT2 * COE) ; 317 : 'FINSI' ; 318 : 'SI' (ROT3 '<EG' 45.) ; 319 : J = J + 1 ; 320 : BLO.J = 'BLOQ' 'RZ' (MAI_1 'POIN' 1) ; 321 : DIP.J = 'DEPI' BLO.J (ROT3 * COE) ; 322 : 'FINSI' ; 323 : ROT1 = 'EXTR' ROT_2 1 ; 324 : ROT2 = 'EXTR' ROT_2 2 ; 325 : ROT3 = 'EXTR' ROT_2 3 ; 326 : 'SI' (ROT1 '<EG' 45.) ; 327 : J = J + 1 ; 328 : BLO.J = 'BLOQ' 'RX' (MAI_1 'POIN' 'FINA') ; 329 : DIP.J = 'DEPI' BLO.J (ROT1 * COE) ; 330 : 'FINSI' ; 331 : 'SI' (ROT2 '<EG' 45.) ; 332 : J = J + 1 ; 333 : BLO.J = 'BLOQ' 'RY' (MAI_1 'POIN' 'FINA') ; 334 : DIP.J = 'DEPI' BLO.J (ROT2 * COE) ; 335 : 'FINSI' ; 336 : 'SI' (ROT3 '<EG' 45.) ; 337 : J = J + 1 ; 338 : BLO.J = 'BLOQ' 'RZ' (MAI_1 'POIN' 'FINA') ; 339 : DIP.J = 'DEPI' BLO.J (ROT3 * COE) ; 340 : 'FINSI' ; 341 : BLOT = @STBL BLO ; 342 : DIPT = @STBL DIP ; 343 : MS = 'TEXT' 'MECANIQUE ELASTIQUE' ; 344 : AFF1 = 'MODL' MAI_1 MS 'POUTRE' ; 345 : MAT1 = 'MATE' AFF1 'YOUN' 1. 'NU' .3 ; 346 : CAR1 = 'CARA' AFF1 'SECT' 1. 'INRY' 1. 'INRZ' 1. 'TORS' 2. ; 347 : RIG1 = 'RIGI' AFF1 (MAT1 ET CAR1); 348 : RIGT = RIG1 'ET' BLOT ; 349 : DEP1 = 'RESO' RIGT DIPT ; 350 : LIS.I = MAI_1 'PLUS' DEP1 ; 351 : 'FIN' BOU_1 ; 352 : BOR = 'TABLE' ; 353 : I = 0 ; 354 : 'REPE' BOU_2 NCO ; 355 : I = I + 1 ; 356 : BOR.I = LIS.I 'REGL' 1 LIS.(I + 1) ; 357 : 'FIN' BOU_2 ; 358 : CARE_1 = @STBL BOR ; 359 : COUI = 'TABLE' ; 360 : I = 0 ; 361 : 'REPE' BOU_10 NLIE ; 362 : I = I + 1 ; 363 : J = 1 ; 364 : 'REPE' BOU_11 NCO ; 365 : J = J + 1 ; 366 : 'SI' ('EGA' J 2) ; 367 : PCOU = (LIS.(J - 1) POIN I) DROI 1 (LIS.J POIN I) ; 368 : 'SINON' ; 369 : PCOU = PCOU 'ET' ((LIS.(J - 1) POIN I) DROI 1 (LIS.J POIN I)) ; 370 : 'FINSI' ; 371 : COUI.I = PCOU ; 372 : 'FIN' BOU_11 ; 373 : 'FIN' BOU_10 ; 374 : 'ELIM' (N_COU / 100.) CARE_1 ; 375 : CARE_1 = 'REGE' CARE_1 ; 376 : LMOT = CARE_1 'ELEM' 'TYPE' ; 377 : DLMOT = 'DIME' LMOT ; 378 : 'SI' ('EGA' DLMOT 1) ; 379 : CARE_1Q = CARE_1 'ELEM' 'QUA4' ; 380 : CARE_1 = CARE_1Q ; 381 : 'FINSI' ; 382 : 'SI' ('EGA' DLMOT 2) ; 383 : CARE_1Q = CARE_1 'ELEM' 'QUA4' ; 384 : CARE_1T = CARE_1 'ELEM' 'TRI3' ; 385 : CARE_1T = 'REGE' CARE_1T ; 386 : CARE_1T = CARE_1T 'ELEM' 'TRI3' ; 387 : CARE_1 = CARE_1Q 'ET' CARE_1T ; 388 : 'FINSI' ; 389 : CARE_1 = CARE_1 'COUL' 'TURQ' ; 390 : 'TRAC' O1 'CACH' 'QUAL' (CARE_1 ET X ET Y ET Z) ; 391 : * 392 : 'FINPROC' CARE_1 LIS COUI ; 393 :
© Cast3M 2003 - All rights reserved.
Disclaimer