Télécharger initou.procedur

Retour à la liste

Numérotation des lignes :

  1. * INITOU PROCEDUR LJ1 14/11/26 21:15:04 8301
  2. DEBPROC INITOU TAB1*TABLE;
  3.  
  4. **** iniouv **************
  5.  
  6. PLAN = TAB1.PLA;
  7. LZH = TAB1.LH;
  8. LZB = TAB1.LB;
  9. LXG = TAB1.LG;
  10. LXD = TAB1.LD;
  11. GEOM = TAB1.GEO;
  12. PPPP = TAB1.POI;
  13. poinx poiny poinz = coor pppp;
  14. BEP = CHAN 'POI1' GEOM;
  15. NBE = NBNO BEP;
  16. *
  17. * plan de post-traitement zx
  18. **
  19. *
  20. *
  21. **
  22. si ('EGA' plan 'ZX');
  23.  
  24. * la ligne verticale du repère
  25. IBOUBE = 1;
  26. I = 1;
  27. TABH = PROG;
  28. REPETER BOUBE NBE;
  29. PBE = NOEUD IBOUBE;
  30. X Y Z= COOR PBE;
  31. EX = ABS (X - POINX);
  32. EY = ABS (Y - POINZ);
  33. log1 = (EX '<' 1.E-9) ET (EY '<' 1.E-9);
  34. log2 = (Z '&lt;EG' LZH) ET (Z '>EG' LZB);
  35. SI (log1 et log2);
  36. TABH = INSER TABH I Y;
  37. I = I + 1;
  38. FINS;
  39. IBOUBE = IBOUBE + 1;
  40. FIN BOUBE;
  41.  
  42. TABH = ORDONNER TABH;
  43.  
  44. NH = DIME TABH;
  45. TAB1.LIGH = TABH;
  46.  
  47. * la ligne horizontale du repère
  48.  
  49. IBOUBE = 1;
  50. I = 1;
  51. TABV = PROG;
  52. REPETER BOUBE NBE;
  53. PBE = NOEUD IBOUBE;
  54. X Y Z= COOR PBE;
  55. EZ = ABS (Z - POINZ);
  56. EY = ABS (Y - POINY);
  57. log1 = (EY '<' 1.E-9) ET (EZ '<' 1.E-9);
  58. log2 = (X '<' LXD) ET (X '>' LXG);
  59. SI (log1 et log2);
  60. * mess 'ordre du point:';list pbe;
  61. TABV = INSER TABV I X;
  62. I = I + 1;
  63. FINS;
  64. IBOUBE = IBOUBE + 1;
  65. FIN BOUBE;
  66. TABV = ORDONNER TABV;
  67. NV = DIME TABV;
  68. TAB1.LIGV = TABV;
  69.  
  70. * la taille d'élément horizontale et verticale
  71.  
  72. TAB1.TELZ = (extr tabh 2) - (extr tabh 1);
  73. TAB1.TELX = (extr tabv 2) - (extr tabv 1);
  74.  
  75. * plan
  76.  
  77. fins;
  78.  
  79. * plan de post-traitement xy
  80.  
  81. si ('EGA' plan 'XY');
  82.  
  83. * la ligne verticale du repère
  84. IBOUBE = 1;
  85. I = 1;
  86. TABH = PROG;
  87. REPETER BOUBE NBE;
  88. PBE = NOEUD IBOUBE;
  89. X Y Z= COOR PBE;
  90. EX = ABS (X - POINX);
  91. EZ = ABS (Z - POINZ);
  92. log1 = (EX '<' 1.E-9) ET (EZ '<' 1.E-9);
  93. log2 = (Y '&lt;EG' LZH) ET (Y '>EG' LZB);
  94. SI (log1 et log2);
  95. TABH = INSER TABH I Y;
  96. I = I + 1;
  97. FINS;
  98. IBOUBE = IBOUBE + 1;
  99. FIN BOUBE;
  100.  
  101. TABH = ORDONNER TABH;
  102.  
  103. NH = DIME TABH;
  104. TAB1.LIGH = TABH;
  105.  
  106. * la ligne horizontale du repère
  107.  
  108. IBOUBE = 1;
  109. I = 1;
  110. TABV = PROG;
  111. REPETER BOUBE NBE;
  112. PBE = NOEUD IBOUBE;
  113. X Y Z= COOR PBE;
  114. EZ = ABS (Z - POINZ);
  115. EY = ABS (Y - POINY);
  116. log1 = (EY '<' 1.E-9) ET (EZ '<' 1.E-9);
  117. log2 = (X '<' LXD) ET (X '>' LXG);
  118. SI (log1 et log2);
  119. * mess 'ordre du point:';list pbe;
  120. TABV = INSER TABV I X;
  121. I = I + 1;
  122. FINS;
  123. IBOUBE = IBOUBE + 1;
  124. FIN BOUBE;
  125. TABV = ORDONNER TABV;
  126. NV = DIME TABV;
  127. TAB1.LIGV = TABV;
  128.  
  129. * la taille d'élément horizontale et verticale
  130.  
  131. TAB1.TELZ = (extr tabh 2) - (extr tabh 1);
  132. TAB1.TELX = (extr tabv 2) - (extr tabv 1);
  133.  
  134. * plan
  135.  
  136. fins;
  137.  
  138. **** sautdep **************
  139.  
  140. GEOM = TAB1.GEO;
  141. PLAN = TAB1.PLA;
  142. PPPP = TAB1.POI;
  143. poinx poiny poinz = coor pppp;
  144. ****************
  145. HORI = TAB1.HOR;
  146. IPAS = TAB1.PAS;
  147. ****************
  148. *
  149. BEP = CHAN 'POI1' GEOM;
  150. NBE = NBEL BEP;
  151. DEPTOT = TAB1.'DEPLACEMENTS'.IPAS;
  152. DEPBE = REDU DEPTOT GEOM;
  153. NH = dime tab1.ligh;
  154. NV = dime tab1.ligv;
  155. **
  156. *
  157. *
  158. **
  159. * plan de post-traitement zx
  160. **
  161. *
  162. **
  163. si ('EGA' plan 'ZX');
  164. **
  165. * calculer le dépalcement ou pas
  166. **
  167. *
  168. * toutes les déplacements sur les lignes horizontales
  169. *
  170. **
  171. *
  172. **
  173. si hori;
  174. **
  175. *
  176. IBOUH = 1;
  177. TABDH = TABLE;
  178. TABDH.1 = TABLE;
  179. TABDH.2 = TABLE;
  180. TABDH.3 = TABLE;
  181. TABCH = TABLE;
  182. TABCH.1 = TABLE;
  183. TABCH.2 = TABLE;
  184. TABCH.3 = TABLE;
  185. REPETER BOUH NH;
  186. Z1 = EXTR TAB1.LIGH IBOUH;
  187. I = 1;
  188. IBOUBE = 1;
  189. LISDX = PROG;LISDY = PROG;LISDZ = PROG;
  190. LISCX = PROG;LISCY = PROG;LISCZ = PROG;
  191. REPETER BOUBE NBE;
  192. PBE = NOEUD IBOUBE;
  193. X Y Z = COOR PBE;
  194. EZ = ABS (Z - Z1);
  195. EY = ABS (Y - POINY);
  196. SI ((EZ '<' 1.E-9) ET (EY '<' 1.E-9));
  197. LISDX = INSER LISDX I (EXTR DEPBE 'UX' PBE);
  198. LISDY = INSER LISDY I (EXTR DEPBE 'UY' PBE);
  199. LISDZ = INSER LISDZ I (EXTR DEPBE 'UZ' PBE);
  200. LISCX = INSER LISCX I X;
  201. LISCY = INSER LISCY I Y;
  202. LISCZ = INSER LISCZ I Z;
  203. I = I + 1;
  204. FINS;
  205. IBOUBE = IBOUBE + 1;
  206. FIN BOUBE;
  207. TABDH . 1 . IBOUH = LISDX;
  208. TABDH . 2 . IBOUH = LISDY;
  209. TABDH . 3 . IBOUH = LISDZ;
  210. TABCH . 1 . IBOUH = LISCX;
  211. TABCH . 2 . IBOUH = LISCY;
  212. TABCH . 3 . IBOUH = LISCZ;
  213. IBOUH = IBOUH + 1;
  214. FIN BOUH;
  215. * tous les sauts de déplacements sur les lignes horizontales
  216. NH1 = NH - 1;
  217. J = 1;
  218. TABSDH = TABLE;
  219. TABSDH . 1 = TABLE;
  220. TABSDH . 2 = TABLE;
  221. TABSDH . 3 = TABLE;
  222. TABSCH = TABLE;
  223. TABSCH . 1 = TABLE;
  224. TABSCH . 2 = TABLE;
  225. TABSCH . 3 = TABLE;
  226. REPETER BOUDIM 3;
  227. I = 2;
  228. REPETER BOUSDH NH1;
  229. SDH1 = (TABDH . J . I) - (TABDH . J . (I - 1));
  230. TABSDH . J . (I - 1) = ABS SDH1;
  231. TABSCH . J . (I - 1) = TABCH . J . I;
  232. I = I + 1;
  233. FIN BOUSDH;
  234. J = J + 1;
  235. FIN BOUDIM;
  236. TAB1.SDH = TABSDH;
  237. TAB1.SCH = TABSCH;
  238. *
  239. *
  240. * hori or verti
  241. *
  242. fins;
  243. *
  244. **
  245. * plan
  246. *
  247. fins;
  248. **
  249. *
  250. *********
  251. *
  252. **
  253. * plan de post-traitement xy
  254. **
  255. *
  256. si ('EGA' plan 'XY');
  257. *
  258. * toutes les déplacements sur les lignes horizontales
  259. *
  260. **
  261. *
  262. **
  263. si hori;
  264. **
  265. *
  266. IBOUH = 1;
  267. TABDH = TABLE;
  268. TABDH.1 = TABLE;
  269. TABDH.2 = TABLE;
  270. TABDH.3 = TABLE;
  271. TABCH = TABLE;
  272. TABCH.1 = TABLE;
  273. TABCH.2 = TABLE;
  274. TABCH.3 = TABLE;
  275. REPETER BOUH NH;
  276. Y1 = EXTR TAB1.LIGH IBOUH;
  277. I = 1;
  278. IBOUBE = 1;
  279. LISDX = PROG;LISDY = PROG;LISDZ = PROG;
  280. LISCX = PROG;LISCY = PROG;LISCZ = PROG;ll =0;
  281. REPETER BOUBE NBE;
  282. PBE = NOEUD IBOUBE;
  283. X Y Z = COOR PBE;
  284. EZ = ABS (Z - POINZ);
  285. EY = ABS (Y - Y1);
  286. log1 = (EZ '<' 1E-9)et (EY '<' 1.e-9) ;
  287. SI (log1);
  288. LISDX = INSER LISDX I (EXTR DEPBE 'UX' PBE);
  289. LISDY = INSER LISDY I (EXTR DEPBE 'UY' PBE);
  290. LISDZ = INSER LISDZ I (EXTR DEPBE 'UZ' PBE);
  291. LISCX = INSER LISCX I X;
  292. LISCY = INSER LISCY I Y;
  293. LISCZ = INSER LISCZ I Z;
  294. I = I + 1;
  295. FINS;
  296. IBOUBE = IBOUBE + 1;
  297. FIN BOUBE;
  298. TABDH . 1 . IBOUH = LISDX;
  299. TABDH . 2 . IBOUH = LISDY;
  300. TABDH . 3 . IBOUH = LISDZ;
  301. TABCH . 1 . IBOUH = LISCX;
  302. TABCH . 2 . IBOUH = LISCY;
  303. TABCH . 3 . IBOUH = LISCZ;
  304. IBOUH = IBOUH + 1;
  305. FIN BOUH;
  306.  
  307. * tous les sauts de déplacements sur les lignes horizontales
  308. NH1 = (dime tabdh.1) - 1;
  309. J = 1;
  310. TABSDH = TABLE;
  311. TABSDH . 1 = TABLE;
  312. TABSDH . 2 = TABLE;
  313. TABSDH . 3 = TABLE;
  314. TABSCH = TABLE;
  315. TABSCH . 1 = TABLE;
  316. TABSCH . 2 = TABLE;
  317. TABSCH . 3 = TABLE;
  318. REPETER BOUDIM 3;
  319. I = 2;
  320. REPETER BOUSDH NH1;
  321. SDH1 = (TABDH . J . I) - (TABDH . J . (I - 1));
  322. TABSDH . J . (I - 1) = ABS SDH1;
  323. TABSCH . J . (I - 1) = TABCH . J . I;
  324. I = I + 1;
  325. FIN BOUSDH;
  326. J = J + 1;
  327. FIN BOUDIM;
  328. TAB1.SDH = TABLE;
  329. TAB1.SDH.1 = TABSDH.1;
  330. TAB1.SDH.2 = TABSDH.3;
  331. TAB1.SDH.3 = TABSDH.2;
  332. TAB1.SCH = TABLE;
  333. TAB1.SCH.1 = TABSCH.1;
  334. TAB1.SCH.2 = TABSCH.3;
  335. TAB1.SCH.3 = TABSCH.2;
  336. *
  337. *
  338. * hori or verti
  339. *
  340. fins;
  341. *
  342. **
  343. *
  344. **
  345. * plan
  346. *
  347. fins;
  348.  
  349.  
  350. **** ouvsdp **************
  351. *
  352. critouv = TAB1.CRITO;
  353. *
  354. * les ouvertures horizontales et verticales et les coordonnées
  355. * correspondants
  356. *
  357. i = 1;
  358. tabsdhcr = table;
  359. tabschcr = table;
  360. tabsdhcr . 1 = table;
  361. tabsdhcr . 2 = table;
  362. tabschcr . 1 = table;
  363. tabschcr . 2 = table;
  364. tabschcr . 3 = table;
  365. tabschcr . 4 = table;
  366. nh1 = dime tab1 . sdh . 1;
  367. nn = dime tab1 . sdh . 1 . 1;
  368. repeter bou1 nh1;
  369. hhhh = tab1 . sdh . 1 . i;
  370. vvvv = tab1 . sdh . 3 . i;
  371. j = 1;
  372. k = 1;
  373. l = 1;
  374. lis1 = prog;lis2 = prog;
  375. lis3 = prog;lis4 = prog;
  376. lis5 = prog;lis6 = prog;
  377. repeter bou2 nn;
  378. h1 = extr hhhh j;
  379. r1 = extr vvvv j;
  380. si (h1 > critouv);
  381. h2 = extr (tab1 . sdh . 1 . i) j;
  382. x1 = extr (tab1 . sch . 1 . i) j;
  383. z1 = extr (tab1 . sch . 3 . i) j;
  384. lis1 = inser lis1 k h2;
  385. lis3 = inser lis3 k x1;
  386. lis4 = inser lis4 k z1;
  387. k = k + 1;
  388. fins;
  389. si (r1 > critouv);
  390. v2 = extr (tab1 . sdh . 3 . i) j;
  391. x1 = extr (tab1 . sch . 1 . i) j;
  392. z1 = extr (tab1 . sch . 3 . i) j;
  393. lis2 = inser lis2 l v2;
  394. lis5 = inser lis5 l x1;
  395. lis6 = inser lis6 l z1;
  396. l = l + 1;
  397. fins;
  398. j = j + 1;
  399. fin bou2;
  400. tabsdhcr . 1 . i = lis1;
  401. tabsdhcr . 2 . i = lis2;
  402. tabschcr . 1 . i = lis3;
  403. tabschcr . 2 . i = lis4;
  404. tabschcr . 3 . i = lis5;
  405. tabschcr . 4 . i = lis6;
  406. i = i + 1;
  407. fin bou1;
  408. tabb = table;
  409. tabb.ouv = tabsdhcr;
  410. tabb.cou = tabschcr;
  411. **
  412. *
  413. **
  414. * calculer les ouvertures totales sur chaque ligne dans la
  415. * grille
  416. **
  417. *
  418. **
  419. ii = 1;jj = 1;kk = 1;ll = 1;pp = 1;
  420. tabouvt = table;tabouvh = table;tabouvv = table;
  421. tabcout = table;tabcouh = table;tabcouv = table;
  422. tabcout . 1 = table;tabcout . 2 = table;
  423. tabcouh . 1 = table;tabcouh . 2 = table;
  424. tabcouv . 1 = table;tabcouv . 2 = table;
  425. tabouftt = table; tabcottx = table; tabcottz = table;
  426. tabot = table;tabct = table;
  427. tabct.1 = table;tabct.2 = table;
  428. repeter bou1 nh1;
  429. log11 = ('>' (dime tabb . ouv . 1 . ii) 0) et
  430. ('>' (dime tabb . ouv . 2 . ii) 0) ;
  431. log22 = ('>' (dime tabb . ouv . 1 . ii) 0) ;
  432. log33 = ('>' (dime tabb . ouv . 2 . ii) 0) ;
  433. * l'ouverture commune
  434. si log11;
  435. i = 1;
  436. lisot = prog;lisxt = prog;liszt = prog;
  437. lisix = prog; lisjz = prog;
  438. repeter bou2 (dime tabb . ouv . 1 . ii);
  439. j = 1;k = 1;
  440.  
  441. repeter bou3 (dime tabb . ouv . 2 . ii);
  442. log1 = '&lt;EG' (abs ((extr tabb . cou . 1 . ii i)
  443. - (extr tabb . cou . 3 . ii j))) 1.E-9;
  444.  
  445. si log1;
  446. ouvt = (((extr tabb . ouv . 1 . ii i)**2) +
  447. ((extr tabb . ouv . 2 . ii j)**2))**(1./2.);
  448. lisxt = inser lisxt k (extr tabb . cou . 1 . ii i);
  449. liszt = inser liszt k (extr tabb . cou . 2 . ii i);
  450. lisot = inser lisot k ouvt;
  451.  
  452. lisix = inser lisix k i;
  453. lisjz = inser lisjz k j;
  454. k = k + 1;
  455. fins;
  456.  
  457. j = j + 1;
  458. fin bou3;
  459.  
  460. i = i + 1;
  461. fin bou2;
  462.  
  463. tabcout . 1 . jj = lisxt;tabcout . 2 . jj = liszt;
  464. tabouvt . jj = lisot;
  465. jj = jj + 1;
  466. fins;
  467.  
  468.  
  469. *l'ouverture horizontale non commune
  470. si log22;
  471. i = 1;k = 1;
  472. lisxh = prog;liszh = prog;lisoh = prog;
  473. repeter bou4 (dime tabb . ouv . 1 . ii);
  474. j = 1;l = 1;
  475. lis1 = prog;
  476. repeter bou5 (dime lisix);
  477. log1 = 'EGA' (abs((extr lisix j) - i)) 0;
  478.  
  479. si log1;
  480. a = 1;
  481. sinon;
  482. lis1 = inser lis1 l i;
  483. l = l + 1;
  484. fins;
  485. log2 = 'EGA' (abs((dime lis1) - (dime lisix))) 0;
  486.  
  487. si log2;
  488. ih = i;
  489. lisxh = inser lisxh k (extr tabb . cou . 1 . ii ih);
  490. liszh = inser liszh k (extr tabb . cou . 2 . ii ih);
  491. lisoh = inser lisoh k (extr tabb . ouv . 1 . ii ih);
  492.  
  493. k = k + 1;
  494. fins;
  495.  
  496. j = j + 1;
  497. fin bou5;
  498.  
  499. i = i + 1;
  500. fin bou4;
  501.  
  502. tabcouh.1 . kk = lisxh;tabcouh.2 . kk = liszh;
  503. tabouvh.kk = lisoh;
  504. kk = kk + 1;
  505.  
  506. fins;
  507.  
  508. *l'ouvertur verticale non commune
  509. si log33;
  510. i = 1;k = 1;
  511. lisxv = prog;liszv = prog;lisov = prog;
  512. repeter bou4 (dime tabb . ouv . 2 . ii);
  513. j = 1;l = 1;
  514. lis1 = prog;
  515. repeter bou5 (dime lisjz);
  516. log1 = 'EGA' (abs((extr lisjz j) - i)) 0;
  517. si log1;
  518. a = 1;
  519. sinon;
  520. lis1 = inser lis1 l i;
  521. l = l + 1;
  522. fins;
  523. log2 = 'EGA' (abs((dime lis1) - (dime lisjz))) 0;
  524. si log2;
  525. iv = i;
  526. lisxv = inser lisxv k (extr tabb . cou . 3 . ii iv);
  527. liszv = inser liszv k (extr tabb . cou . 4 . ii iv);
  528. lisov = inser lisov k (extr tabb . ouv . 2 . ii iv);
  529.  
  530. k = k + 1;
  531. fins;
  532.  
  533. j = j + 1;
  534. fin bou5;
  535.  
  536. i = i + 1;
  537. fin bou4;
  538.  
  539. tabcouv.1 . ll = lisxv;tabcouv.2 . ll = liszv;
  540. tabouvv.ll = lisov;
  541. ll = ll + 1;
  542.  
  543. fins;
  544.  
  545. si log11;
  546. tabot.pp = tabouvt.pp et tabouvh.pp et tabouvv.pp;
  547. tabct.1 . pp = tabcout.1 . pp et tabcouh.1 . pp et
  548. tabcouv.1 . pp;
  549. tabct.1 . pp tabot.pp= ordonner 'CROISSANT'
  550. tabct.1 . pp tabot.pp;
  551. tabct.2 . pp = tabcout.2 . pp et tabcouh.2 . pp et
  552. tabcouv.2 . pp;
  553. pp = pp + 1;
  554. fins;
  555.  
  556. ii = ii + 1;
  557. fin bou1;
  558.  
  559. tab1.ouft = tabot;
  560. tab1.cotx = tabct.1;
  561. tab1.cotz = tabct.2;
  562. **
  563. *
  564. **
  565. * les ouvertures totales sur la structure
  566. **
  567. *
  568. **
  569. lisoo = prog;lisxx = prog;liszz = prog;
  570. i = 1;k = 1;
  571. nnot = dime tab1.ouft;
  572. repeter bou1 nnot;
  573. j = 1;
  574. repeter bou2 (dime tab1.ouft.i);
  575.  
  576. lisoo = inser lisoo k (extr tabot.i j);
  577. lisxx = inser lisxx k (extr tabct.1 . i j);
  578. liszz = inser liszz k (extr tabct.2 . i j);
  579.  
  580. k = k + 1;
  581. j = j + 1;
  582. fin bou2;
  583.  
  584. i = i + 1;
  585. fin bou1;
  586. *
  587. tab1.ouftt = lisoo;
  588. tab1.cottx = lisxx;
  589. tab1.cottz = liszz;
  590.  
  591. **** posfis **************
  592. *
  593. critpf = TAB1.CRITP;
  594. *
  595. TABOU = TAB1.OUFT;
  596. TABXX = TAB1.COTX;
  597. TABZZ = TAB1.COTZ;
  598. **
  599. ** reperer indice des pics et coordonnee des pics
  600. *et ouverture correspondante
  601. idx = 1;
  602. olig = table;
  603. xx = table;zz = table;oo = table;
  604. repeter bouslg (dime tabou);
  605. icl = 2;
  606. i = 1;
  607. ncl = (dime tabou.idx) - 1;
  608. lis1 = prog;
  609. repeter bouscl ncl;
  610. o1 = extr tabou.idx (icl - 1);
  611. o2 = extr tabou.idx icl;
  612. o21 = o2 - o1;
  613. log1 = '<' o21 0.;
  614. si log1;
  615. lis1 = inser lis1 i icl;
  616. i = i + 1;
  617. fins;
  618. icl = icl + 1;
  619. fin bouscl;
  620. o1 = extr tabou.idx (ncl - 1);
  621. o2 = extr tabou.idx ncl;
  622. o21 = o2 - o1;
  623. log2 = '>' o21 0.;
  624. si log2;
  625. lis1 = inser lis1 i (ncl + 2);
  626. fins;
  627. logg = '>' (dime lis1) 1;
  628. si logg;
  629. ** lpk list index de pics
  630. lpk = prog;
  631. i = 2;j = 1;
  632. repeter bou1 ((dime lis1) - 1);
  633. i1 = extr lis1 (i - 1);
  634. i2 = extr lis1 i;
  635. i21 = i2 - i1;
  636. log1 = 'NEG' i21 1;
  637. si log1;
  638. lpk = inser lpk j (i2 - 1);
  639. j = j + 1;
  640. fins;
  641. i = i + 1;
  642. fin bou1;
  643. lpk = inser lpk 1 ((extr lis1 1) - 1);
  644.  
  645. ** xx zz coordonnee des pics oo ouverture
  646. xx.idx = table;zz.idx = table;oo.idx = table;
  647. i = 1;
  648. repeter bou1 (dime lpk);
  649. xx.idx.i = extr tabxx.idx (enti (extr lpk i));
  650. zz.idx.i = extr tabzz.idx (enti (extr lpk i));
  651. oo.idx.i = extr tabou.idx (enti (extr lpk i));
  652. i = i + 1;
  653. fin bou1;
  654. sinon;
  655. message 'le critere de l ouverture est tres grande';
  656. fins;
  657. **
  658. olig.idx = evol manu 'X' tabxx.idx 'O' tabou.idx;
  659. idx = idx + 1;
  660. fin bouslg;
  661.  
  662. *** eliminer des bruits de pics par un critere critpf
  663. xc = table;
  664. zc = table;
  665. oc = table;
  666. i = 1;
  667. repeter bou1 (dime xx);
  668. xc.i = table;
  669. zc.i = table;
  670. oc.i = table;
  671. j = 1; k = 1;
  672. repeter bou2 (dime xx.i);
  673. log1 = '>' (oo . i . j) critpf;
  674. si log1;
  675. xc . i . k = xx . i . j;
  676. zc . i . k = zz . i . j;
  677. oc . i . k = oo . i . j;
  678. k = k + 1;
  679. fins;
  680.  
  681. j = j + 1;
  682. fin bou2;
  683.  
  684. i = i + 1;
  685. fin bou1;
  686. *****
  687. tab1.pfx = xc;
  688. tab1.pfz = zc;
  689. tab1.pfo = oc;
  690. *****
  691. * la position de fissure sur la structure
  692. *****
  693. i = 1;lisx = prog; lisz = prog; liso = prog;
  694. k = 1;
  695. repeter bou1 (dime tab1.pfx);
  696. j = 1;
  697. *
  698. si ((dime tab1.pfx.i) '>' 0);
  699. *
  700. repeter bou2 (dime tab1.pfx.i);
  701. lisx = inser lisx k (tab1.pfx. i . j);
  702. lisz = inser lisz k (tab1.pfz. i . j);
  703. liso = inser liso k (tab1.pfo. i . j);
  704. j = j + 1;
  705. fin bou2;
  706. *
  707. k = k + 1;
  708. fins;
  709. *
  710. i = i + 1;
  711. fin bou1;
  712.  
  713. tab1.lpfx = lisx;
  714. tab1.lpfz = lisz;
  715. tab1.lpfo = liso;
  716.  
  717. FINPROC;
  718.  

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