Numérotation des lignes :

* INITOU    PROCEDUR  LJ1       14/11/26    21:15:04     8301           DEBPROC INITOU TAB1*TABLE; **** iniouv ************** PLAN = TAB1.PLA;LZH  = TAB1.LH;LZB  = TAB1.LB;LXG  = TAB1.LG;LXD  = TAB1.LD;GEOM = TAB1.GEO;PPPP = TAB1.POI;poinx poiny poinz = coor pppp;BEP = CHAN 'POI1' GEOM;NBE = NBNO BEP;** plan de post-traitement zx******si ('EGA' plan 'ZX'); * la ligne verticale du repèreIBOUBE = 1;I = 1;TABH = PROG;REPETER BOUBE NBE; PBE = NOEUD IBOUBE; X Y Z= COOR PBE; EX = ABS (X - POINX); EY = ABS (Y - POINZ); log1 = (EX '<' 1.E-9) ET (EY '<' 1.E-9); log2 = (Z '&lt;EG' LZH) ET (Z '>EG' LZB); SI (log1 et log2);  TABH = INSER TABH I Y;  I = I + 1; FINS; IBOUBE = IBOUBE + 1;FIN BOUBE; TABH = ORDONNER TABH; NH = DIME TABH;TAB1.LIGH = TABH; * la ligne horizontale du repère IBOUBE = 1;I = 1;TABV = PROG;REPETER BOUBE NBE; PBE = NOEUD IBOUBE; X Y Z= COOR PBE; EZ = ABS (Z - POINZ); EY = ABS (Y - POINY); log1 = (EY '<' 1.E-9) ET (EZ '<' 1.E-9); log2 = (X '<' LXD) ET (X '>' LXG); SI (log1 et log2);*  mess 'ordre du point:';list pbe;  TABV = INSER TABV I X;  I = I + 1; FINS; IBOUBE = IBOUBE + 1;FIN BOUBE;TABV = ORDONNER TABV;NV = DIME TABV;TAB1.LIGV = TABV; * la taille d'élément horizontale et verticale TAB1.TELZ = (extr tabh 2) - (extr tabh 1);TAB1.TELX = (extr tabv 2) - (extr tabv 1); * plan fins; * plan de post-traitement xy si ('EGA' plan 'XY'); * la ligne verticale du repèreIBOUBE = 1;I = 1;TABH = PROG;REPETER BOUBE NBE; PBE = NOEUD IBOUBE; X Y Z= COOR PBE; EX = ABS (X - POINX); EZ = ABS (Z - POINZ); log1 = (EX '<' 1.E-9) ET (EZ '<' 1.E-9); log2 = (Y '&lt;EG' LZH) ET (Y '>EG' LZB); SI (log1 et log2);  TABH = INSER TABH I Y;  I = I + 1; FINS; IBOUBE = IBOUBE + 1;FIN BOUBE; TABH = ORDONNER TABH; NH = DIME TABH;TAB1.LIGH = TABH; * la ligne horizontale du repère IBOUBE = 1;I = 1;TABV = PROG;REPETER BOUBE NBE; PBE = NOEUD IBOUBE; X Y Z= COOR PBE; EZ = ABS (Z - POINZ); EY = ABS (Y - POINY); log1 = (EY '<' 1.E-9) ET (EZ '<' 1.E-9); log2 = (X '<' LXD) ET (X '>' LXG); SI (log1 et log2);*  mess 'ordre du point:';list pbe;  TABV = INSER TABV I X;  I = I + 1; FINS; IBOUBE = IBOUBE + 1;FIN BOUBE;TABV = ORDONNER TABV;NV = DIME TABV;TAB1.LIGV = TABV; * la taille d'élément horizontale et verticale TAB1.TELZ = (extr tabh 2) - (extr tabh 1);TAB1.TELX = (extr tabv 2) - (extr tabv 1); * plan fins; **** sautdep ************** GEOM = TAB1.GEO;PLAN = TAB1.PLA;PPPP = TAB1.POI;poinx poiny poinz = coor pppp;****************HORI = TAB1.HOR;IPAS = TAB1.PAS;*****************BEP = CHAN 'POI1' GEOM;NBE = NBEL BEP;DEPTOT = TAB1.'DEPLACEMENTS'.IPAS;DEPBE = REDU DEPTOT GEOM;NH = dime tab1.ligh;NV = dime tab1.ligv;******* plan de post-traitement zx*****si ('EGA' plan 'ZX');*** calculer le dépalcement ou pas**** toutes les déplacements sur les lignes horizontales******si hori;***IBOUH = 1;TABDH = TABLE;TABDH.1 = TABLE;TABDH.2 = TABLE;TABDH.3 = TABLE;TABCH = TABLE;TABCH.1 = TABLE;TABCH.2 = TABLE;TABCH.3 = TABLE;REPETER BOUH NH; Z1 = EXTR TAB1.LIGH IBOUH; I = 1; IBOUBE = 1; LISDX = PROG;LISDY = PROG;LISDZ = PROG; LISCX = PROG;LISCY = PROG;LISCZ = PROG; REPETER BOUBE NBE;  PBE = NOEUD IBOUBE;  X Y Z = COOR PBE;  EZ = ABS (Z - Z1);  EY = ABS (Y - POINY);  SI ((EZ '<' 1.E-9) ET (EY '<' 1.E-9));   LISDX = INSER LISDX I (EXTR DEPBE 'UX' PBE);   LISDY = INSER LISDY I (EXTR DEPBE 'UY' PBE);   LISDZ = INSER LISDZ I (EXTR DEPBE 'UZ' PBE);   LISCX = INSER LISCX I X;   LISCY = INSER LISCY I Y;   LISCZ = INSER LISCZ I Z;   I = I + 1;  FINS;  IBOUBE = IBOUBE + 1; FIN BOUBE;  TABDH . 1 . IBOUH = LISDX; TABDH . 2 . IBOUH = LISDY; TABDH . 3 . IBOUH = LISDZ; TABCH . 1 . IBOUH = LISCX; TABCH . 2 . IBOUH = LISCY; TABCH . 3 . IBOUH = LISCZ; IBOUH = IBOUH + 1;FIN BOUH;* tous les sauts de déplacements sur les lignes horizontalesNH1 = NH - 1;J = 1;TABSDH = TABLE;TABSDH . 1 = TABLE;TABSDH . 2 = TABLE;TABSDH . 3 = TABLE;TABSCH = TABLE;TABSCH . 1 = TABLE;TABSCH . 2 = TABLE;TABSCH . 3 = TABLE;REPETER BOUDIM 3;I = 2;REPETER BOUSDH NH1;SDH1 = (TABDH . J . I) - (TABDH . J . (I - 1));TABSDH . J . (I - 1) = ABS SDH1;TABSCH . J . (I - 1) = TABCH . J . I;I = I + 1;FIN BOUSDH;J = J + 1;FIN BOUDIM;TAB1.SDH = TABSDH;TAB1.SCH = TABSCH;*** hori or verti*fins;**** plan*fins;**************** plan de post-traitement xy***si ('EGA' plan 'XY');** toutes les déplacements sur les lignes horizontales******si hori;***IBOUH = 1;TABDH = TABLE;TABDH.1 = TABLE;TABDH.2 = TABLE;TABDH.3 = TABLE;TABCH = TABLE;TABCH.1 = TABLE;TABCH.2 = TABLE;TABCH.3 = TABLE;REPETER BOUH NH; Y1 = EXTR TAB1.LIGH IBOUH; I = 1; IBOUBE = 1; LISDX = PROG;LISDY = PROG;LISDZ = PROG; LISCX = PROG;LISCY = PROG;LISCZ = PROG;ll =0; REPETER BOUBE NBE;  PBE = NOEUD IBOUBE;  X Y Z = COOR PBE;  EZ = ABS (Z - POINZ);  EY = ABS (Y - Y1);  log1 = (EZ '<' 1E-9)et (EY '<' 1.e-9)  ;  SI (log1);    LISDX = INSER LISDX I (EXTR DEPBE 'UX' PBE);   LISDY = INSER LISDY I (EXTR DEPBE 'UY' PBE);   LISDZ = INSER LISDZ I (EXTR DEPBE 'UZ' PBE);   LISCX = INSER LISCX I X;   LISCY = INSER LISCY I Y;   LISCZ = INSER LISCZ I Z;   I = I + 1;  FINS;  IBOUBE = IBOUBE + 1; FIN BOUBE;  TABDH . 1 . IBOUH = LISDX; TABDH . 2 . IBOUH = LISDY; TABDH . 3 . IBOUH = LISDZ; TABCH . 1 . IBOUH = LISCX; TABCH . 2 . IBOUH = LISCY; TABCH . 3 . IBOUH = LISCZ; IBOUH = IBOUH + 1;FIN BOUH; * tous les sauts de déplacements sur les lignes horizontalesNH1 = (dime tabdh.1) - 1;J = 1;TABSDH = TABLE;TABSDH . 1 = TABLE;TABSDH . 2 = TABLE;TABSDH . 3 = TABLE;TABSCH = TABLE;TABSCH . 1 = TABLE;TABSCH . 2 = TABLE;TABSCH . 3 = TABLE;REPETER BOUDIM 3;I = 2;REPETER BOUSDH NH1;SDH1 = (TABDH . J . I) - (TABDH . J . (I - 1));TABSDH . J . (I - 1) = ABS SDH1;TABSCH . J . (I - 1) = TABCH . J . I;I = I + 1;FIN BOUSDH;J = J + 1;FIN BOUDIM;TAB1.SDH = TABLE;TAB1.SDH.1 = TABSDH.1;TAB1.SDH.2 = TABSDH.3;TAB1.SDH.3 = TABSDH.2;TAB1.SCH = TABLE;TAB1.SCH.1 = TABSCH.1;TAB1.SCH.2 = TABSCH.3;TAB1.SCH.3 = TABSCH.2;*** hori or verti*fins;******* plan*fins;  **** ouvsdp ***************critouv = TAB1.CRITO;** les ouvertures horizontales et verticales et les coordonnées* correspondants*i = 1;tabsdhcr = table;tabschcr = table;tabsdhcr . 1 = table;tabsdhcr . 2 = table;tabschcr . 1 = table;tabschcr . 2 = table;tabschcr . 3 = table;tabschcr . 4 = table;nh1 = dime tab1 . sdh . 1;nn = dime tab1 . sdh . 1 . 1;repeter bou1 nh1;hhhh = tab1 . sdh . 1 . i;vvvv = tab1 . sdh . 3 . i;j = 1;k = 1;l = 1;lis1 = prog;lis2 = prog;lis3 = prog;lis4 = prog;lis5 = prog;lis6 = prog;repeter bou2 nn;h1 = extr hhhh j;r1 = extr vvvv j;si (h1 > critouv);h2 = extr (tab1 . sdh . 1 . i) j;x1 = extr (tab1 . sch . 1 . i) j;z1 = extr (tab1 . sch . 3 . i) j;lis1 = inser lis1 k h2;lis3 = inser lis3 k x1;lis4 = inser lis4 k z1;k = k + 1; fins;si (r1 > critouv);v2 = extr (tab1 . sdh . 3 . i) j;x1 = extr (tab1 . sch . 1 . i) j;z1 = extr (tab1 . sch . 3 . i) j;lis2 = inser lis2 l v2;lis5 = inser lis5 l x1;lis6 = inser lis6 l z1;l = l + 1; fins;j = j + 1;fin bou2;tabsdhcr . 1 . i = lis1;tabsdhcr . 2 . i = lis2;tabschcr . 1 . i = lis3;tabschcr . 2 . i = lis4;tabschcr . 3 . i = lis5;tabschcr . 4 . i = lis6;i = i + 1;fin bou1;tabb = table;tabb.ouv = tabsdhcr;tabb.cou = tabschcr;****** calculer les ouvertures totales sur chaque ligne dans la * grille*****ii = 1;jj = 1;kk = 1;ll = 1;pp = 1;tabouvt = table;tabouvh = table;tabouvv = table;tabcout = table;tabcouh = table;tabcouv = table;tabcout . 1 = table;tabcout . 2 = table;tabcouh . 1 = table;tabcouh . 2 = table;tabcouv . 1 = table;tabcouv . 2 = table;tabouftt = table; tabcottx = table; tabcottz = table;tabot = table;tabct = table;tabct.1 = table;tabct.2 = table;repeter bou1 nh1;log11 = ('>' (dime tabb . ouv . 1 . ii) 0) et('>' (dime tabb . ouv . 2 . ii) 0) ;log22 = ('>' (dime tabb . ouv . 1 . ii) 0) ;log33 = ('>' (dime tabb . ouv . 2 . ii) 0) ;* l'ouverture communesi log11;i = 1;lisot = prog;lisxt = prog;liszt = prog;lisix = prog; lisjz = prog;repeter bou2 (dime tabb . ouv . 1 . ii);j = 1;k = 1; repeter bou3 (dime tabb . ouv . 2 . ii);log1 = '&lt;EG' (abs ((extr tabb . cou . 1 . ii i) - (extr tabb . cou . 3 . ii j))) 1.E-9; si log1;ouvt = (((extr tabb . ouv . 1 . ii i)**2) + ((extr tabb . ouv . 2 . ii j)**2))**(1./2.);lisxt = inser lisxt k (extr tabb . cou . 1 . ii i);liszt = inser liszt k (extr tabb . cou . 2 . ii i);lisot = inser lisot k ouvt; lisix = inser lisix k i;lisjz = inser lisjz k j;k = k + 1;fins; j = j + 1;fin bou3; i = i + 1;fin bou2; tabcout . 1 . jj = lisxt;tabcout . 2 . jj = liszt;tabouvt . jj = lisot;jj = jj + 1;fins;  *l'ouverture horizontale non communesi log22;i = 1;k = 1;lisxh = prog;liszh = prog;lisoh = prog;repeter bou4 (dime tabb . ouv . 1 . ii);j = 1;l = 1;lis1 = prog;repeter bou5 (dime lisix);log1 = 'EGA' (abs((extr lisix j) - i)) 0; si log1;a = 1;sinon;lis1 = inser lis1 l i;l = l + 1;fins;log2 = 'EGA' (abs((dime lis1) - (dime lisix))) 0; si log2;ih = i;lisxh = inser lisxh k (extr tabb . cou . 1 . ii ih);liszh = inser liszh k (extr tabb . cou . 2 . ii ih);lisoh = inser lisoh k (extr tabb . ouv . 1 . ii ih); k = k + 1;fins; j = j + 1;fin bou5; i = i + 1;fin bou4; tabcouh.1 . kk = lisxh;tabcouh.2 . kk = liszh;tabouvh.kk = lisoh; kk = kk + 1; fins; *l'ouvertur verticale non communesi log33;i = 1;k = 1;lisxv = prog;liszv = prog;lisov = prog;repeter bou4 (dime tabb . ouv . 2 . ii);j = 1;l = 1;lis1 = prog;repeter bou5 (dime lisjz);log1 = 'EGA' (abs((extr lisjz j) - i)) 0;si log1;a = 1;sinon;lis1 = inser lis1 l i;l = l + 1;fins;log2 = 'EGA' (abs((dime lis1) - (dime lisjz))) 0;si log2;iv = i;lisxv = inser lisxv k (extr tabb . cou . 3 . ii iv);liszv = inser liszv k (extr tabb . cou . 4 . ii iv);lisov = inser lisov k (extr tabb . ouv . 2 . ii iv); k = k + 1;fins; j = j + 1;fin bou5; i = i + 1;fin bou4; tabcouv.1 . ll = lisxv;tabcouv.2 . ll = liszv;tabouvv.ll = lisov;ll = ll + 1; fins; si log11;tabot.pp = tabouvt.pp et tabouvh.pp et tabouvv.pp;tabct.1 . pp = tabcout.1 . pp et tabcouh.1 . pp et tabcouv.1 . pp; tabct.1 . pp tabot.pp= ordonner 'CROISSANT' tabct.1 . pp tabot.pp; tabct.2 . pp = tabcout.2 . pp et tabcouh.2 . pp et tabcouv.2 . pp;pp = pp + 1; fins; ii = ii + 1;fin bou1; tab1.ouft = tabot; tab1.cotx = tabct.1;tab1.cotz = tabct.2;****** les ouvertures totales sur la structure*****lisoo = prog;lisxx = prog;liszz = prog;i = 1;k = 1;nnot = dime tab1.ouft;repeter bou1 nnot;j = 1;repeter bou2 (dime tab1.ouft.i); lisoo = inser lisoo k (extr tabot.i j);lisxx = inser lisxx k (extr tabct.1 . i j);liszz = inser liszz k (extr tabct.2 . i j); k = k + 1;j = j + 1;fin bou2; i = i + 1;fin bou1;*tab1.ouftt = lisoo;tab1.cottx = lisxx;tab1.cottz = liszz; **** posfis ***************critpf = TAB1.CRITP;*TABOU = TAB1.OUFT;TABXX = TAB1.COTX;TABZZ = TAB1.COTZ;**** reperer indice des pics et coordonnee des pics *et ouverture correspondanteidx = 1;olig = table;xx = table;zz = table;oo = table;repeter bouslg (dime tabou);icl = 2;i = 1;ncl = (dime tabou.idx) - 1;lis1 = prog;repeter bouscl ncl;o1 = extr tabou.idx (icl - 1);o2 = extr tabou.idx icl;o21 = o2 - o1;log1 = '<' o21 0.;si log1;lis1 = inser lis1 i icl;i = i + 1; fins;icl = icl + 1;fin bouscl;o1 = extr tabou.idx (ncl - 1);o2 = extr tabou.idx ncl;o21 = o2 - o1;log2 = '>' o21 0.;si log2;lis1 = inser lis1 i (ncl + 2);fins;logg = '>' (dime lis1) 1;si logg;** lpk list index de picslpk = prog;i = 2;j = 1;repeter bou1 ((dime lis1) - 1);i1 = extr lis1 (i - 1);i2 = extr lis1 i;i21 = i2 - i1;log1 = 'NEG' i21 1;si log1;lpk = inser lpk j (i2 - 1);j = j + 1;fins;i = i + 1;fin bou1;lpk = inser lpk 1 ((extr lis1 1) - 1); ** xx zz coordonnee des pics oo ouverturexx.idx = table;zz.idx = table;oo.idx = table;i = 1;repeter bou1 (dime lpk);xx.idx.i = extr tabxx.idx (enti (extr lpk i));zz.idx.i = extr tabzz.idx (enti (extr lpk i));oo.idx.i = extr tabou.idx (enti (extr lpk i));i = i + 1;fin bou1;sinon;message 'le critere de l ouverture est tres grande';fins;**olig.idx = evol manu 'X' tabxx.idx 'O' tabou.idx;idx = idx + 1;fin bouslg; *** eliminer des bruits de pics par un critere critpfxc = table;zc = table;oc = table;i = 1;repeter bou1 (dime xx);xc.i = table;zc.i = table;oc.i = table;j = 1; k = 1;repeter bou2 (dime xx.i);log1 = '>' (oo . i . j) critpf;si log1;xc . i . k = xx . i . j;zc . i . k = zz . i . j;oc . i . k = oo . i . j;k = k + 1;fins; j = j + 1;fin bou2; i = i + 1;fin bou1;*****tab1.pfx = xc;tab1.pfz = zc;tab1.pfo = oc;****** la position de fissure sur la structure*****i = 1;lisx = prog; lisz = prog; liso = prog;k = 1;repeter bou1 (dime tab1.pfx);j = 1;*si ((dime tab1.pfx.i) '>' 0);*repeter bou2 (dime tab1.pfx.i);lisx = inser lisx k (tab1.pfx. i . j);lisz = inser lisz k (tab1.pfz. i . j);liso = inser liso k (tab1.pfo. i . j);j = j + 1;fin bou2;*k = k + 1;fins;*i = i + 1;fin bou1; tab1.lpfx = lisx;tab1.lpfz = lisz;tab1.lpfo = liso; FINPROC;

© Cast3M 2003 - Tous droits réservés.
Mentions légales