* INITOU PROCEDUR LJ1 14/11/26 21:15:04 8301 **** iniouv ************** PLAN = TAB1.PLA; LZH = TAB1.LH; LZB = TAB1.LB; LXG = TAB1.LG; LXD = TAB1.LD; GEOM = TAB1.GEO; PPPP = TAB1.POI; * * plan de post-traitement zx ** * * ** si ('EGA' plan 'ZX'); * la ligne verticale du repère IBOUBE = 1; I = 1; REPETER BOUBE NBE; PBE = NOEUD IBOUBE; EX = ABS (X - POINX); EY = ABS (Y - POINZ); log1 = (EX '<' 1.E-9) ET (EY '<' 1.E-9); log2 = (Z '<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; TAB1.LIGH = TABH; * la ligne horizontale du repère IBOUBE = 1; I = 1; REPETER BOUBE NBE; PBE = NOEUD IBOUBE; 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; TAB1.LIGV = TABV; * la taille d'élément horizontale et verticale * plan fins; * plan de post-traitement xy si ('EGA' plan 'XY'); * la ligne verticale du repère IBOUBE = 1; I = 1; REPETER BOUBE NBE; PBE = NOEUD IBOUBE; EX = ABS (X - POINX); EZ = ABS (Z - POINZ); log1 = (EX '<' 1.E-9) ET (EZ '<' 1.E-9); log2 = (Y '<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; TAB1.LIGH = TABH; * la ligne horizontale du repère IBOUBE = 1; I = 1; REPETER BOUBE NBE; PBE = NOEUD IBOUBE; 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; TAB1.LIGV = TABV; * la taille d'élément horizontale et verticale * plan fins; **** sautdep ************** GEOM = TAB1.GEO; PLAN = TAB1.PLA; PPPP = TAB1.POI; **************** HORI = TAB1.HOR; IPAS = TAB1.PAS; **************** * DEPTOT = TAB1.'DEPLACEMENTS'.IPAS; ** * * ** * 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; I = 1; IBOUBE = 1; REPETER BOUBE NBE; PBE = NOEUD IBOUBE; EZ = ABS (Z - Z1); EY = ABS (Y - POINY); SI ((EZ '<' 1.E-9) ET (EY '<' 1.E-9)); 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 horizontales NH1 = 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; I = 1; IBOUBE = 1; REPETER BOUBE NBE; PBE = NOEUD IBOUBE; EZ = ABS (Z - POINZ); EY = ABS (Y - Y1); log1 = (EZ '<' 1E-9)et (EY '<' 1.e-9) ; SI (log1); 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 horizontales 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; repeter bou1 nh1; hhhh = tab1 . sdh . 1 . i; vvvv = tab1 . sdh . 3 . i; j = 1; k = 1; l = 1; repeter bou2 nn; si (h1 > critouv); lis1 = inser lis1 k h2; lis3 = inser lis3 k x1; lis4 = inser lis4 k z1; k = k + 1; fins; si (r1 > critouv); 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; * l'ouverture commune si log11; i = 1; j = 1;k = 1; si log1; 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 commune si log22; i = 1;k = 1; j = 1;l = 1; si log1; a = 1; sinon; lis1 = inser lis1 l i; l = l + 1; fins; si log2; ih = i; 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 commune si log33; i = 1;k = 1; j = 1;l = 1; si log1; a = 1; sinon; lis1 = inser lis1 l i; l = l + 1; fins; si log2; iv = i; 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 ** * ** i = 1;k = 1; repeter bou1 nnot; j = 1; 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 correspondante idx = 1; olig = table; xx = table;zz = table;oo = table; icl = 2; i = 1; repeter bouscl ncl; o21 = o2 - o1; log1 = '<' o21 0.; si log1; lis1 = inser lis1 i icl; i = i + 1; fins; icl = icl + 1; fin bouscl; o21 = o2 - o1; log2 = '>' o21 0.; si log2; lis1 = inser lis1 i (ncl + 2); fins; si logg; ** lpk list index de pics i = 2;j = 1; i21 = i2 - i1; log1 = 'NEG' i21 1; si log1; lpk = inser lpk j (i2 - 1); j = j + 1; fins; i = i + 1; fin bou1; ** xx zz coordonnee des pics oo ouverture xx.idx = table;zz.idx = table;oo.idx = table; i = 1; i = i + 1; fin bou1; sinon; message 'le critere de l ouverture est tres grande'; fins; ** idx = idx + 1; fin bouslg; *** eliminer des bruits de pics par un critere critpf xc = table; zc = table; oc = table; i = 1; xc.i = table; zc.i = table; oc.i = table; j = 1; k = 1; 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 ***** k = 1; j = 1; * * 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