1 : * POUT2MAS PROCEDUR PASCAL 14/01/23 21:15:03 7910 2 : ************************************************************************* 3 : * 4 : * 5 : * Génère un maillage volumique à partir d'un modèle de poutre 6 : * (section, tuyau, poutre) 7 : * 8 : ************************************************************************** 9 : DEBPROC POUT2MAS MOD1*MMODEL MAT1*MCHAML MOTCLE/MOT TAB1/TABLE; 10 : * 11 : OPTI ELEM CUB8; 12 : * 13 : MESH3D = MOT 'MESH3D'; 14 : DEP3DJ = MOT 'DEP3DJ'; 15 : DEF3DJ = MOT 'DEF3DJ'; 16 : DEFANI = MOT 'DEFANI'; 17 : BLPOUT3D = MOT 'BLPOUT3D'; 18 : * 19 : ZONMOD = extr MOD1 ZONE; 20 : * 21 : SI (NON (EXISTE MOTCLE)); 22 : MOTCLE = MOT 'MASSIF'; 23 : FINSI; 24 : * 25 : * Option par défaut 26 : * 27 : NCIRCP = 8; 28 : NCIRCT = 8; 29 : NEPAIT = 1; 30 : NY = 1; 31 : NZ = 1; 32 : FLAGPOUT = 'CIRCULAIRE'; 33 : AMPDEF = 1.; 34 : FLAGDEFO = FAUX; 35 : FLAGVAIS = FAUX; 36 : FLAGVONS = FAUX; 37 : FLAGRELA = FAUX; 38 : FLAGMATS = FAUX; 39 : * 40 : SI (EXISTE TAB1); 41 : * 42 : SI (EXISTE TAB1 'AMPLITUDE_DEFORMEES'); 43 : AMPDEF = TAB1.'AMPLITUDE_DEFORMEES'; 44 : FINSI; 45 : * 46 : SI (EXISTE TAB1 'TUYAU'); 47 : SI (EXISTE (TAB1.'TUYAU') 'NCIRC'); 48 : NCIRCT = (TAB1.'TUYAU').'NCIRC'; 49 : SINON; 50 : NCIRCT = 8; 51 : FINSI; 52 : * 53 : SI (EXISTE (TAB1.'TUYAU') 'EPAI'); 54 : NEPAIT = (TAB1.'TUYAU').'EPAI'; 55 : SINON; 56 : NEPAIT = 1; 57 : FINSI; 58 : * 59 : FINSI; 60 : * 61 : SI (EXISTE TAB1 'POUTRE'); 62 : SI (EXISTE (TAB1.'POUTRE') 'NCIRC'); 63 : NCIRCP = (TAB1.'POUTRE').'NCIRC'; 64 : SINON; 65 : NCIRCP = 8; 66 : FINSI; 67 : SI (EXISTE (TAB1.'POUTRE') 'NY'); 68 : NY = (TAB1.'POUTRE').'NY'; 69 : SINON; 70 : NY = 1; 71 : FINSI; 72 : SI (EXISTE (TAB1.'POUTRE') 'NZ'); 73 : NZ = (TAB1.'POUTRE').'NZ'; 74 : SINON; 75 : NZ = 1; 76 : FINSI; 77 : SI (EXISTE (TAB1.'POUTRE') 'RECTANGULAIRE'); 78 : FLAGPOUT = 'RECTANGULAIRE'; 79 : SINON; 80 : FLAGPOUT = 'CIRCULAIRE'; 81 : FINSI; 82 : FINSI; 83 : * 84 : SI (EXISTE TAB1 'DEPLACEMENTS'); 85 : FLAGDEFO = VRAI; 86 : TAB1. 'DEFORMEES'= TABLE; 87 : TAB1. 'DEPLACEMENTS_3D'= TABLE; 88 : NDEFO = DIME (TAB1.'DEPLACEMENTS'); 89 : DEP3D= TABLE; 90 : SINON; 91 : FLAGDEFO = FAUX; 92 : NDEFO = 0; 93 : FINSI; 94 : * 95 : * Si on veut creer les relations pour les sections au droit des noeuds 96 : * 97 : SI (EXISTE TAB1 'RELATION_3D'); 98 : SI (EGA (TAB1.'RELATION_3D') VRAI); 99 : FLAGRELA = VRAI; 100 : BLPOUTJ = MOT 'BLPOUTJ'; 101 : BLPOUT3D = MOT 'BLPOUT3D'; 102 : SINON; 103 : FLAGRELA = FAUX; 104 : FINSI; 105 : SINON; 106 : FLAGRELA = FAUX; 107 : FINSI; 108 : * 109 : * si on fournit MATS 110 : * 111 : SI (EXISTE TAB1 'MATS'); 112 : FLAGMATS = VRAI; 113 : MAT3D= MOT 'MAT3D'; 114 : SINON; 115 : FLAGMATS = FAUX; 116 : NMATS = 0; 117 : FINSI; 118 : * 119 : * si on fournit VAIS 120 : * 121 : SI (EXISTE TAB1 'VAIS'); 122 : FLAGVAIS = VRAI; 123 : TAB1. 'VAIS_3D'= TABLE; 124 : NVAIS = DIME (TAB1.'VAIS'); 125 : VAI3D= TABLE; 126 : SINON; 127 : FLAGVAIS = FAUX; 128 : NVAIS = 0; 129 : FINSI; 130 : * 131 : * si on fournit VONS 132 : * 133 : SI (EXISTE TAB1 'VONS'); 134 : FLAGVONS = VRAI; 135 : TAB1. 'VONS_3D'= TABLE; 136 : NVONS = DIME (TAB1.'VONS'); 137 : VON3D= TABLE; 138 : SINON; 139 : FLAGVONS = FAUX; 140 : NVONS = 0; 141 : FINSI; 142 : * 143 : FINSI; 144 : 145 : * 146 : * Fin de la lecture de la table d'entrée 147 : * 148 : * Génération du maillage 149 : * 150 : NBZONE = ENTIER ((DIME ZONMOD)/2.); 151 : * 152 : * On boucle sur les zones 153 : * 154 : REPETER LAB1 NBZONE; 155 : * 156 : I1= &LAB1; 157 : MESHPOUI = ZONMOD.(2*I1); 158 : MODPOUI = ZONMOD.((2*I1) - 1); 159 : MATPOUI = REDU MAT1 MODPOUI; 160 : * 161 : NB2= NBEL (ELEM MESHPOUI 'SEG2'); 162 : * 163 : SI (NB2 > 0); 164 : * 165 : * On boucle sur les éléments 166 : * 167 : REPETER LAB2 NB2; 168 : I2 = &LAB2; 169 : MESHPOUJ = MESHPOUI ELEM SEG2 I2; 170 : PODEPOJ = (MESHPOUJ POIN 'INITIAL'); 171 : POFIPOJ = (MESHPOUJ POIN 'FINAL'); 172 : VEC0POJ = 0.5*(PODEPOJ PLUS POFIPOJ); 173 : VECXPOJ = POFIPOJ MOINS PODEPOJ; 174 : VECXPOJ = VECXPOJ/(NORME VECXPOJ); 175 : VECYPOJ = EXTR MATPOUI VECT 1 I2 1; 176 : VECYPOJ = VECYPOJ/(NORME VECYPOJ); 177 : VECYPOJ = VECYPOJ MOINS ((VECYPOJ PSCAL VECXPOJ)*VECXPOJ); 178 : SI ((NORM VECYPOJ) < 1.D-10); 179 : SI (VECXPOJ SCAL (1. 0. 0.) > 1.D-10); 180 : VECYPOJ = VECXPOJ PVEC (1. 0. 0.); 181 : SINON; 182 : VECYPOJ = VECXPOJ PVEC (0. 1. 0.); 183 : FINSI; 184 : FINSI; 185 : VECZPOJ = VECXPOJ PVEC VECYPOJ ; 186 : * 187 : * 188 : * Cas du modèle à fibre 189 : * 190 : SI (EXISTE MATPOUI 'MODS'); 191 : * 192 : MODSEC = (EXTR MATPOUI MODS 1 I2 1); 193 : ZONSEC = EXTR MODSEC ZONE; 194 : * 195 : SINON; 196 : * 197 : * Cas des tuyaux 198 : * 199 : SI ((EXISTE MATPOUI 'EPAI') ET (EXISTE MATPOUI 'RAYO') ); 200 : * 201 : EPATUY = (MAXI (EXCO MATPOUI 'EPAI')); 202 : RAYTUY = (MAXI (EXCO MATPOUI 'RAYO')); 203 : * 204 : P1S = (RAYTUY - (0.5 * EPATUY)) 0. 0.; 205 : P2S = (RAYTUY + (0.5 * EPATUY)) 0. 0.; 206 : * 207 : P12S = DROI NEPAIT P1S P2S; 208 : MESHSEC = P12S ROTA NCIRCT 360. (0. 0. 0.) (0. 0. 1.); 209 : * 210 : ZONSEC = TABLE; 211 : ZONSEC.1 = MESHSEC; 212 : ZONSEC.2 = MESHSEC; 213 : * 214 : * 215 : * Fin cas des tuyaux 216 : * 217 : SINON; 218 : * 219 : * Cas des poutres 220 : * 221 : SI ((EXISTE MATPOUI 'INRY') ET (EXISTE MATPOUI 'INRZ') ); 222 : * 223 : INRY = (MAXI (EXCO MATPOUI 'INRY')); 224 : INRZ = (MAXI (EXCO MATPOUI 'INRZ')); 225 : * 226 : * 227 : SI (EGA FLAGPOUT 'CIRCULAIRE'); 228 : * 229 : RAYO = ((2.D0*(INRY + INRZ))/PI)**0.25; 230 : P1S = RAYO 0. 0.; 231 : P2S = 0. RAYO 0.; 232 : P3S = ((-1.)*RAYO) 0. 0.; 233 : P4S = 0. ((-1.)*RAYO) 0.; 234 : * 235 : NDISCR = ENTIER (NCIRCP/4); 236 : * 237 : CERB = (CERC NDISCR P1S (0. 0. 0.) P2S) ET 238 : (CERC NDISCR P2S (0. 0. 0.) P3S) ET 239 : (CERC NDISCR P3S (0. 0. 0.) P4S) ET 240 : (CERC NDISCR P4S (0. 0. 0.) P1S); 241 : MESHSEC = SURF CERB 'PLANE'; 242 : ZONSEC = TABLE; 243 : ZONSEC.1 = MESHSEC; 244 : ZONSEC.2 = MESHSEC; 245 : * 246 : SINON; 247 : LX = (144.*(INRZ**3)/INRY)**(1./8.); 248 : LY = (144.*(INRY**3)/INRZ)**(1./8.); 249 : P1S = (0.5*LX) ((-0.5)*LY) 0.; 250 : P2S = ((-0.5)*LX) ((-0.5)*LY) 0.; 251 : MESHSEC = (DROI NY P1S P2S) TRAN NZ (0. LY 0.); 252 : ZONSEC = TABLE; 253 : ZONSEC.1 = MESHSEC; 254 : ZONSEC.2 = MESHSEC; 255 : * 256 : FINSI; 257 : * 258 : FINSI; 259 : * Fin test poutre 260 : FINSI; 261 : * Fin test tuyau 262 : FINSI; 263 : * Fin test fibre 264 : * 265 : * 266 : REPETER LAB20 (ENTIER (0.5*(DIME ZONSEC))); 267 : I20 = &lab20; 268 : * 269 : MESHSECJ = ZONSEC.(2*I20); 270 : MODSECJ = ZONSEC.(2*I20 - 1); 271 : * 272 : MESHSECF = DEDU MESHSECJ 273 : ((0. 0. 0.) et (0. 0. 1.) 274 : et (1. 0. 0.) et (0. 1. 0.)) 275 : (VEC0POJ et (VEC0POJ plus VECXPOJ) 276 : et (VEC0POJ plus VECYPOJ) et (VEC0POJ plus VECZPOJ)); 277 : * 278 : * Génération du volume 279 : * 280 : SI (EGA MOTCLE 'GAUSS'); 281 : VOL3DJ = MESHSECF; 282 : SINON; 283 : MeshSECF=MESHSECF PLUS ((-0.5)*(POFIPOJ MOINS PODEPOJ)); 284 : MeshSECG=MESHSECF PLUS (POFIPOJ MOINS PODEPOJ); 285 : ELTYPE = ELEM MESHSECF TYPE; 286 : Ntype = DIME ELTYPE; 287 : REPETER LAB3 Ntype; 288 : EleType = (EXTR ELTYPE &LAB3); 289 : MESHB = ELEM MeshSECF EleType; 290 : MESHC = ELEM MeshSECG EleType; 291 : SI (EGA EleType SEG2); 292 : * Cas des SEGS 293 : MESHVol = MESHB TRAN 1 (POFIPOJ MOINS PODEPOJ); 294 : SINON; 295 : * Cas des TRIS et QUAS 296 : SI ((EGA EleType TRI3) OU (EGA EleType QUA4)); 297 : MESHVol = MESHB VOLU MESHC 1; 298 : SINON; 299 : * Cas des POJS 300 : NBMESH = NBEL MESHB; 301 : REPETER LAB4 NBMESH; 302 : SI (&LAB4 EGA 1); 303 : MESHVol = DROI 1 (POIN MESHB &LAB4) 304 : (POIN MESHC &LAB4); 305 : SINON; 306 : MESHVola = DROI 1 (POIN MESHB &LAB4) 307 : (POIN MESHC &LAB4); 308 : MESHVol = MESHVol ET MESHVola; 309 : FINSI; 310 : FIN LAB4; 311 : * 312 : FINSI; 313 : FINSI; 314 : * 315 : ELIM 0.00001 (MESHVol et MESHC); 316 : * 317 : SI (EGA (TYPE VOL3DJ) MOT); 318 : VOL3DJ = MESHVol; 319 : SINON; 320 : VOL3DJ = VOL3DJ et MESHVol; 321 : FINSI; 322 : * 323 : FIN LAB3; 324 : FINSI; 325 : * 326 : SI ( EGA (TYPE VOL3DJJ) MOT); 327 : VOL3DJJ = VOL3DJ; 328 : VOL3DJ = MOT 'VOL3DJ'; 329 : SINON; 330 : VOL3DJJ = VOL3DJJ ET VOL3DJ; 331 : VOL3DJ = MOT 'VOL3DJ'; 332 : FINSI; 333 : * 334 : * Transfert des MATS sur le 3D 335 : * 336 : SI FLAGMATS; 337 : * 338 : MATJ = EXTR (REDU ((TAB1.'MATS')) MESHPOUJ) 339 : 1 1 1 'MATS'; 340 : MATJ0 = (CHAN CHPO (REDU MATJ MODSECJ) MODSECJ); 341 : MATJ0 = 'CHAN' 'ATTRIBUT' MATJ0 'NATURE' 'DISCRET'; 342 : * 343 : SI (EGA MOTCLE 'GAUSS'); 344 : MATJ = DEDU MATJ0 TRAN MESHSECJ MESHSECF; 345 : SINON; 346 : mess 'Option disponible seulement pour GAUSS'; 347 : FINSI; 348 : * 349 : * 350 : SI ((EGA (TYPE MAT3D) MOT)); 351 : MAT3D = MATJ ; 352 : MATJ = MOT 'VAIJ'; 353 : SINON; 354 : MAT3D = MAT3D ET MATJ; 355 : MATJ = MOT 'MATJ'; 356 : FINSI; 357 : FINSI; 358 : * 359 : * Fin pour MATS 360 : * Transfert des VAIS sur le 3D 361 : * 362 : SI FLAGVAIS; 363 : * 364 : REPETER LAB6 NDEFO; 365 : i6 = (INDEX (TAB1.'VAIS')).&LAB6; 366 : * 367 : VAIJ = EXTR (REDU ((TAB1.'VAIS'). i6) MESHPOUJ) 368 : 1 1 1 'VAIS'; 369 : VAIJ0 = 370 : (CHAN CHPO (REDU VAIJ MODSECJ) MODSECJ); 371 : VAIJ0 = 'CHAN' 'ATTRIBUT' VAIJ0 'NATURE' 'DISCRET'; 372 : * 373 : SI (EGA MOTCLE 'GAUSS'); 374 : VAIJ = DEDU VAIJ0 TRAN MESHSECJ MESHSECF; 375 : SINON; 376 : mess 'Option disponible seulement pour GAUSS'; 377 : FINSI; 378 : * 379 : * 380 : SI (NON (EXISTE VAI3D i6)); 381 : VAI3D . i6= VAIJ ; 382 : VAIJ = MOT 'VAIJ'; 383 : SINON; 384 : VAI3D. i6 =(VAI3D. i6) ET VAIJ; 385 : VAIJ = MOT 'VAIJ'; 386 : FINSI; 387 : * 388 : FIN LAB6; 389 : * 390 : FINSI; 391 : * 392 : * Fin pour VAIS 393 : * 394 : * 395 : * Transfert des VONS sur le 3D 396 : * 397 : SI FLAGVONS; 398 : * 399 : REPETER LAB6 NVONS; 400 : i6 = (INDEX (TAB1.'VONS')).&LAB6; 401 : * 402 : VONJ = EXTR (REDU ((TAB1.'VONS'). i6) MESHPOUJ) 403 : 1 1 1 VONS; 404 : VONJ0 = 'CHAN' 'CHPO' (REDU VONJ MODSECJ) MODSECJ; 405 : VONJ0 = EXCO VONJ0 (mots SMXX SMXY SMXZ) 406 : (mots SMXX SMXY SMXZ); 407 : VONJ0 = 'CHAN' 'ATTRIBUT' VONJ0 'NATURE' 'DISCRET'; 408 : * 409 : SI (EGA MOTCLE 'GAUSS'); 410 : VONJ = DEDU VONJ0 TRAN MESHSECJ MESHSECF; 411 : SINON; 412 : mess 'Option disponible seulement pour GAUSS'; 413 : FINSI; 414 : * 415 : * 416 : SI (NON (EXISTE VON3D i6)); 417 : VON3D . i6= VONJ ; 418 : VONJ = MOT 'VONJ'; 419 : SINON; 420 : VON3D. i6 =(VON3D. i6) ET VONJ; 421 : VONJ = MOT 'VONJ'; 422 : FINSI; 423 : * 424 : FIN LAB6; 425 : * 426 : FINSI; 427 : * 428 : * Fin du VONS 429 : * 430 : * 431 : * Ecriture des RELA pour les poutres 432 : * 433 : SI FLAGRELA; 434 : BLPOUTJ = (RELA CORI DEPL ROTA PODEPOJ MeshSECF) ET 435 : (RELA CORI DEPL ROTA POFIPOJ MeshSECG); 436 : SI ((EGA (TYPE BLPOUT3D) MOT)); 437 : BLPOUT3D = BLPOUTJ ; 438 : BLPOUTJ = MOT 'BLPOUTJ'; 439 : SINON; 440 : BLPOUT3D = BLPOUT3D ET BLPOUTJ ; 441 : BLPOUTJ = MOT 'BLPOUTJ'; 442 : FINSI; 443 : FINSI; 444 : * 445 : * 446 : * Fin RELA pour les poutres 447 : * 448 : FIN LAB20; 449 : * 450 : * Calcul des deformees sur le 3D 451 : * 452 : SI FLAGDEFO; 453 : * 454 : REPETER LAB5 NDEFO; 455 : i5 = (INDEX (TAB1.'DEPLACEMENTS')). &LAB5; 456 : * 457 : DEPJ = REDU ((TAB1.'DEPLACEMENTS'). i5) MESHPOUJ; 458 : DEPXINI = (EXTR DEPJ PODEPOJ UX); 459 : DEPYINI = (EXTR DEPJ PODEPOJ UY); 460 : DEPZINI = (EXTR DEPJ PODEPOJ UZ); 461 : DEPXFIN = (EXTR DEPJ POFIPOJ UX); 462 : DEPYFIN = (EXTR DEPJ POFIPOJ UY); 463 : DEPZFIN = (EXTR DEPJ POFIPOJ UZ); 464 : ROTXINI = (EXTR DEPJ PODEPOJ RX); 465 : ROTYINI = (EXTR DEPJ PODEPOJ RY); 466 : ROTZINI = (EXTR DEPJ PODEPOJ RZ); 467 : ROTXFIN = (EXTR DEPJ POFIPOJ RX); 468 : ROTYFIN = (EXTR DEPJ POFIPOJ RY); 469 : ROTZFIN = (EXTR DEPJ POFIPOJ RZ); 470 : * 471 : COOUX = EXCO (COOR VOL3DJJ 1) SCAL ; 472 : COOUX0 = MANU CHPO VOL3DJJ 1 SCAL 473 : ( (0.5*((COOR PODEPOJ 1) + (COOR POFIPOJ 1)))) 474 : NATURE DISCRET; 475 : COOUY = EXCO (COOR VOL3DJJ 2) SCAL ; 476 : COOUY0 = MANU CHPO VOL3DJJ 1 SCAL 477 : ( (0.5*((COOR PODEPOJ 2) + (COOR POFIPOJ 2)))) 478 : NATURE DISCRET; 479 : COOUZ = EXCO (COOR VOL3DJJ 3) SCAL ; 480 : COOUZ0 = MANU CHPO VOL3DJJ 1 SCAL 481 : ( (0.5*((COOR PODEPOJ 3) + (COOR POFIPOJ 3)))) 482 : NATURE DISCRET; 483 : * 484 : DEPJ0 = MANU CHPO VOL3DJJ 3 485 : UX (0.5*(DEPXINI + DEPXFIN)) 486 : UY (0.5*(DEPYINI + DEPYFIN)) 487 : UZ (0.5*(DEPZINI + DEPZFIN)) 488 : NATURE DISCRET; 489 : * 490 : DEPJ = DEPJ0 ET 491 : (EXCO ( ((0.5*(ROTYINI + ROTYFIN))*(COOUZ - COOUZ0)) 492 : - ((0.5*(ROTZINI + ROTZFIN))*(COOUY - COOUY0)) ) SCAL UX 493 : NATURE DISCRET); 494 : DEPJ = (DEPJ) ET 495 : (EXCO ( ((0.5*(ROTZINI + ROTZFIN))*(COOUX-COOUX0)) 496 : - ((0.5*(ROTXINI + ROTXFIN))*(COOUZ - COOUZ0)) ) SCAL UY 497 : NATURE DISCRET) ; 498 : DEPJ = (DEPJ) ET 499 : (EXCO ( ((0.5*(ROTXINI + ROTXFIN))*(COOUY-COOUY0)) 500 : - ((0.5*(ROTYINI + ROTYFIN))*(COOUX - COOUX0)) ) SCAL UZ 501 : NATURE DISCRET) ; 502 : * 503 : * 504 : SI (NON (EXISTE DEP3D i5)); 505 : DEP3D . i5= DEPJ ; 506 : DEPJ = MOT 'DEPJ'; 507 : SINON; 508 : DEP3D. i5 =(DEP3D. i5) ET DEPJ; 509 : DEPJ = MOT 'DEPJ'; 510 : FINSI; 511 : * 512 : FIN LAB5; 513 : * 514 : FINSI; 515 : * 516 : * Fin calcul des deformees sur le modele 3D 517 : * 518 : SI ( EGA (TYPE MESH3D) MOT); 519 : MESH3D = VOL3DJJ; 520 : VOL3DJJ = MOT 'VOL3DJJ'; 521 : SINON; 522 : MESH3D = MESH3D ET VOL3DJJ; 523 : VOL3DJJ = MOT 'VOL3DJJ'; 524 : FINSI; 525 : * 526 : * Fin boucle sur les éléments 527 : * 528 : FIN LAB2; 529 : * 530 : FINSI; 531 : * 532 : * 533 : * Fin boucle sur les sous zones 534 : * 535 : FIN LAB1; 536 : * 537 : * On stocke les résultats sur le maillage 3D 538 : * 539 : SI FLAGDEFO; 540 : REPETER LAB6 NDEFO; 541 : i6 = &lab6; 542 : (TAB1.'DEPLACEMENTS_3D'). i6 = DEP3D.i6; 543 : (TAB1.'DEFORMEES'). i6 = DEFO MESH3D (DEP3D.i6) AMPDEF; 544 : FIN LAB6; 545 : FINSI; 546 : SI FLAGVAIS; 547 : REPETER LAB6 NVAIS; 548 : i6 = &lab6; 549 : (TAB1.'VAIS_3D'). i6 = VAI3D.i6; 550 : FIN LAB6; 551 : FINSI; 552 : SI FLAGVONS; 553 : REPETER LAB6 NVONS; 554 : i6 = &lab6; 555 : (TAB1.'VONS_3D'). i6 = VON3D.i6; 556 : FIN LAB6; 557 : FINSI; 558 : SI FLAGMATS; 559 : TAB1.'MATS_3D' = MAT3D; 560 : FINSI; 561 : SI FLAGRELA; 562 : TAB1.'RELATION_3D' = BLPOUT3D; 563 : FINSI; 564 : * 565 : 'FINPROC' MESH3D; 566 : * 567 : 568 : 569 : 570 : 571 :
© Cast3M 2003 - All rights reserved.
Disclaimer