Télécharger soudage.procedur

Retour à la liste

Numérotation des lignes :

  1. * SOUDAGE PROCEDUR PASCAL 20/10/09 21:15:11 10750
  2. DEBP SOUDAGE TAB1*'TABLE' ;
  3.  
  4. *--------------- Lecture des arguments d'entree globaux ---------------*
  5. *
  6. si (non (exis tab1 'VITESSE_DE_SOUDAGE')) ;
  7. erre '***** ERREUR : VITESSE_DE_SOUDAGE non definie.' ;
  8. quit soudage ;
  9. fins ;
  10. si (non (exis tab1 'PUISSANCE_DE_SOUDAGE')) ;
  11. erre '***** ERREUR : PUISSANCE_DE_SOUDAGE non definie.' ;
  12. quit soudage ;
  13. fins ;
  14.  
  15. * Diametre, vitesse et debit de fil :
  16. si (exis tab1 'DIAMETRE_DE_FIL') ;
  17. dfil1 = tab1.diametre_de_fil ;
  18. vfil1 = tab1.vitesse_de_fil ;
  19. debi1 = pi * dfil1 * dfil1 * 0.25 * vfil1 ;
  20. tab1.debit_de_fil = debi1 ;
  21. fins ;
  22. si (non (exis tab1 'DEBIT_DE_FIL')) ;
  23. erre '***** ERREUR : DEBIT_DE_FIL non defini.' ;
  24. quit soudage ;
  25. fins ;
  26.  
  27. * Vitesse de deplacement :
  28. si (non (exis tab1 'VITESSE_DE_DEPLACEMENT')) ;
  29. tab1.vitesse_de_deplacement = tab1.vitesse_de_soudage ;
  30. fins ;
  31.  
  32. * Point de depart :
  33. Si (non (exis tab1 'POINT_DE_DEPART')) ;
  34. P1 = 0 0 0 ;
  35. tab1.point_de_depart = P1 ;
  36. fins ;
  37.  
  38. * Temps de coupure :
  39. si (non (exis tab1 'TEMPS_DE_COUPURE')) ;
  40. tab1.temps_de_coupure = 0.1 ;
  41. fins ;
  42.  
  43. *-------------------------- Initialisations ---------------------------*
  44.  
  45. * Test dimension 3 :
  46. si ((vale dime) neg 3) ;
  47. erreur '***** SOUDAGE : fonctionne uniquement en dimension 3' ;
  48. quit soudage ;
  49. fins ;
  50.  
  51. * Indicateur 1er appel a soudage :
  52. si (exis tab1 'TRAJECTOIRE') ;
  53. idebut1 = faux ;
  54. sino ;
  55. idebut1 = vrai ;
  56. fins ;
  57.  
  58. * Indicateur changement de couche :
  59. si (non (exis tab1 'DEPLA_COUCHE')) ;
  60. tab1.depla_couche = faux ;
  61. fins ;
  62.  
  63. * icas1 = 1 / 2 / 3 pour POINT / PASSE / DEPLA
  64. * Si 0 in fine : erreur.
  65. icas1 = 0 ;
  66.  
  67. *------------------------- Lecture des options ------------------------*
  68.  
  69. argu MOT1*'MOT' ;
  70.  
  71. *----------------------------------------------------------------------*
  72. * Option POINT *
  73. *----------------------------------------------------------------------*
  74.  
  75. si (ega mot1 'POINT') ;
  76. icas1 = 1 ;
  77.  
  78. * Initialisation enregistrement donnees POINT :
  79. si (exis tab1 points) ;
  80. npt1 = dime tab1.points ;
  81. sino ;
  82. npt1 = 0 ;
  83. tab1.points = table ;
  84. fins ;
  85. npt1 = npt1 + 1 ;
  86. tab1.points.npt1 = table ;
  87. *
  88. * Lecture des arguments de l'option :
  89. argu FLOT1*'FLOTTANT' ;
  90.  
  91. * Trajectoire POINT :
  92. si idebut1 ;
  93. P1 = tab1.point_de_depart ;
  94. tab1.trajectoire = manu poi1 P1 ;
  95. fins ;
  96.  
  97. * Lecture Arguments PUIS, DEBI option POINT :
  98. imot2 = faux ; imot3 = faux ;
  99. repe b1 2 ;
  100. argu MOT2/'MOT' ;
  101. si (non (exis mot2)) ; quit B1 ; fins ;
  102. si (ega mot2 'PUIS') ;
  103. imot2 = vrai ;
  104. argu qtot1*'FLOTTANT' ;
  105. fins ;
  106. si (ega mot2 'DEBI') ;
  107. imot3 = vrai ;
  108. argu debi1*'FLOTTANT' ;
  109. fins ;
  110. fin b1 ;
  111. si (non imot2) ;
  112. qtot1 = tab1.puissance_de_soudage ;
  113. fins ;
  114. si (non imot3) ;
  115. debi1 = tab1.debit_de_fil ;
  116. fins ;
  117. *list qtot1 ;
  118. *list debi1 ;
  119. *list idebut1 ;
  120. *
  121. * Ajout ou pas du temps de coupure option POINT :
  122. idtcp1 = faux ;
  123. si ((non idebut1)) ;
  124. evqtot0 = tab1.evolution_puissance ;
  125. lqtot0 = extr evqtot0 ordo ;
  126. qtot0 = extr lqtot0 (dime lqtot0) ;
  127. idtcp1 = (abs(qtot0-qtot1)) > (abs(1.e-4*qtot1)) ;
  128.  
  129. evdebi0 = tab1.evolution_debit ;
  130. ldebi0 = extr evdebi0 ordo ;
  131. debi0 = extr ldebi0 (dime ldebi0) ;
  132. idtcp1 = idtcp1 ou ((abs(debi0-debi1)) > (abs(1.e-4*debi1))) ;
  133. fins ;
  134. si idtcp1 ;
  135. dtcp1 = tab1.temps_de_coupure ;
  136. flot1 = flot1 + dtcp1 ;
  137. fins ;
  138.  
  139. * Evolution puissance option POINT :
  140. si idebut1 ;
  141. ltps1 = prog 0. flot1 ;
  142. lqtot1 = prog qtot1 qtot1 ;
  143. lti1 = ltps1 ;
  144. sino ;
  145. evqtot0 = tab1.evolution_puissance ;
  146. ltps0 = extr evqtot0 absc ;
  147. lqtot0 = extr evqtot0 ordo ;
  148. tps0 = extr ltps0 (dime ltps0) ;
  149. qtot0 = extr lqtot0 (dime lqtot0) ;
  150. * Si la puissance indiquee est differente de celle existante :
  151. si ((abs(qtot0-qtot1)) > (abs(1.e-4*qtot1))) ;
  152. * Ajout temps de coupure au temps de realisation du POINT :
  153. ltps1 = prog (tps0 + dtcp1) (tps0 + flot1) ;
  154. lqtot1 = prog qtot1 qtot1 ;
  155. sino ;
  156. ltps1 = prog (tps0 + flot1) ;
  157. lqtot1 = prog qtot1 ;
  158. fins ;
  159. lti1 = prog tps0 flot1 ;
  160. ltps1 = ltps0 et ltps1 ;
  161. lqtot1 = lqtot0 et lqtot1 ;
  162. fins ;
  163. evqtot1 = evol roug manu temp ltps1 qtot lqtot1 ;
  164. tab1.evolution_puissance = evqtot1 ;
  165.  
  166. * Evolution debit POINT :
  167. si idebut1 ;
  168. ltps1 = prog 0. flot1 ;
  169. ldebi1 = prog debi1 debi1 ;
  170. sino ;
  171. evdebi0 = tab1.evolution_debit ;
  172. ltps0 = extr evdebi0 absc ;
  173. ldebi0 = extr evdebi0 ordo ;
  174. tps0 = extr ltps0 (dime ltps0) ;
  175. debi0 = extr ldebi0 (dime ldebi0) ;
  176. * Si la puissance indiquee est differente de celle existante :
  177. si ((abs(debi0-debi1)) > (abs(1.e-4*debi1))) ;
  178. * Ajout temps de coupure au temps de realisation du POINT :
  179. ltps1 = prog (tps0 + dtcp1) (tps0 + flot1) ;
  180. ldebi1 = prog debi1 debi1 ;
  181. lqi1 = prog 1. 1. ;
  182. sino ;
  183. ltps1 = prog (tps0 + flot1) ;
  184. ldebi1 = prog debi1 ;
  185. lqi1 = prog 1. ;
  186. fins ;
  187. ltps1 = ltps0 et ltps1 ;
  188. ldebi1 = ldebi0 et ldebi1 ;
  189. fins ;
  190. evdebi1 = evol roug manu temp ltps1 debi ldebi1 ;
  191. tab1.evolution_debit = evdebi1 ;
  192.  
  193. * Evolution deplacement POINT :
  194. si idebut1 ;
  195. ltps1 = prog 0. flot1 ;
  196. ldep1 = prog 0. 0. ;
  197. sino ;
  198. evdep0 = tab1.evolution_deplacement ;
  199. ltps0 = extr evdep0 absc ;
  200. ldep0 = extr evdep0 ordo ;
  201. tps0 = extr ltps0 (dime ltps0) ;
  202. dep0 = extr ldep0 (dime ldep0) ;
  203. ltps1 = prog (tps0 + flot1) ;
  204. ldep1 = prog dep0 ;
  205. ltps1 = ltps0 et ltps1 ;
  206. ldep1 = ldep0 et ldep1 ;
  207. fins ;
  208. evdep1 = evol vert manu temp ltps1 ldep1 ;
  209. tab1.evolution_deplacement = evdep1 ;
  210.  
  211. * Enregistrement donnees POINT
  212. tab1.points.npt1.point = P1 ;
  213. tab1.points.npt1.instants = lti1 ;
  214. tab1.points.npt1.puissance = qtot1 ;
  215. tab1.points.npt1.debit = debi1 ;
  216.  
  217. quit soudage ;
  218. * Fin option POINT :
  219. fins ;
  220.  
  221. *----------------------------------------------------------------------*
  222. * Option PASSE *
  223. *----------------------------------------------------------------------*
  224. si (ega mot1 'PASSE') ;
  225. icas1 = 2 ;
  226.  
  227. * Lecture des arguments de l'option :
  228. argu MOT2*'MOT' ;
  229.  
  230. * Triatement particulier option CERC ordre arguments :
  231. si (ega mot2 'CERC') ;
  232. argu N1/ENTIER ;
  233. fins ;
  234.  
  235. * Lecture arguments RELA/ABSO, VITE, PUIS, DEBI
  236. imot3 = faux ; imot4 = faux ; imot5 = faux ; imot6 = faux ;
  237. irela1 = vrai ;
  238. repe b1 4 ;
  239. argu mot3/'MOT' ;
  240. si (non (exis mot3)) ; quit b1; fins ;
  241. si (ega mot3 'ABSO') ;
  242. imot3 = vrai ;
  243. irela1 = faux ;
  244. fins ;
  245. si (ega mot3 'VITE') ;
  246. imot4 = vrai ;
  247. argu vdep1*'FLOTTANT' ;
  248. fins ;
  249. si (ega mot3 'PUIS') ;
  250. imot5 = vrai ;
  251. argu qtot1*'FLOTTANT' ;
  252. fins ;
  253. si (ega mot3 'DEBI') ;
  254. imot6 = vrai ;
  255. argu debi1*'FLOTTANT' ;
  256. fins ;
  257. fin b1 ;
  258.  
  259. * Si changement de COUCHE demande :
  260. si (tab1.depla_couche) ;
  261. tab1.depla_couche = faux ;
  262. * Epaisseur de la couche :
  263. si imot4 ;
  264. Vpf1 = vdep1 ;
  265. sino ;
  266. Vpf1 = tab1.vitesse_de_soudage ;
  267. fins ;
  268. si imot6 ;
  269. Dpf1 = debi1 ;
  270. sino ;
  271. Dpf1 = tab1.debit_de_fil ;
  272. fins ;
  273. Lpf1 = tab1.largeur_de_passe ;
  274. epf1 = Dpf1 / Vpf1 / Lpf1 ;
  275. * Pause :
  276. si (exis tab1 'DEPLA_PAUSE') ;
  277. tpf1 = tab1.depla_pause ;
  278. vdep2 = epf1 / tpf1 ;
  279. oubl tab1 depla_pause ;
  280. sino ;
  281. vdep2 = tab1.vitesse_de_deplacement ;
  282. fins ;
  283. soudage tab1 depla droi (0 0 epf1) vite vdep2 ;
  284. fins ;
  285.  
  286. * Vitesse & Increment de temps PASSE :
  287. si (non imot4) ;
  288. vdep1 = tab1.vitesse_de_soudage ;
  289. fins ;
  290.  
  291. * Puissance PASSE :
  292. si (non imot5) ;
  293. qtot1 = tab1.puissance_de_soudage ;
  294. fins ;
  295.  
  296. * Debit PASSE :
  297. si (non imot6) ;
  298. debi1 = tab1.debit_de_fil ;
  299. fins ;
  300. *list vdep1 ;
  301. *list qtot1 ;
  302. *list debi1 ;
  303.  
  304. * Ajout ou pas du temps de coupure option PASSE :
  305. idtcp1 = faux ;
  306. si ((non idebut1)) ;
  307. evqtot0 = tab1.evolution_puissance ;
  308. lqtot0 = extr evqtot0 ordo ;
  309. evdebi0 = tab1.evolution_debit ;
  310. ldebi0 = extr evdebi0 ordo ;
  311. qtot0 = extr lqtot0 (dime lqtot0) ;
  312. idtcp1 = (abs(qtot0-qtot1)) > (abs(1.e-4*qtot1)) ;
  313. debi0 = extr ldebi0 (dime ldebi0) ;
  314. idtcp1 = idtcp1 ou ((abs(debi0-debi1)) > (abs(1.e-4*debi1))) ;
  315. fins ;
  316. *list idtcp1 ;
  317. si idtcp1 ;
  318. dtcp1 = tab1.temps_de_coupure ;
  319. fins ;
  320.  
  321. * Initialisation enregistrement donnees PASSE :
  322. si (exis tab1 passes) ;
  323. nps1 = dime tab1.passes ;
  324. sino ;
  325. nps1 = 0 ;
  326. tab1.passes = table ;
  327. fins ;
  328. nps1 = nps1 + 1 ;
  329. tab1.passes.nps1 = table ;
  330.  
  331. * icas2 = indicateur sous-option realisee :
  332. icas2 = 0 ;
  333.  
  334. *----------------------------- PASSE DROI -----------------------------*
  335. * Sous-option DROI :
  336. si (ega mot2 'DROI') ;
  337. icas2 = 1 ;
  338.  
  339. * Lecture du point :
  340. argu P1*'POINT' ;
  341.  
  342. * Trajectoire PASSE DROI :
  343. si idebut1 ;
  344. P0 = tab1.point_de_depart ;
  345. * Deplacements relatifs :
  346. si irela1 ;
  347. P1 = P0 plus P1 ;
  348. fins ;
  349. mail1 = P0 droi 1 P1 ;
  350. mail1 = mail1 coul roug ;
  351. ll1 = mesu mail1 ;
  352. maili1 = mail1 ;
  353. sino ;
  354. mail0 = tab1.trajectoire ;
  355. nbpts0 = nbno mail0 ;
  356. P0 = mail0 poin nbpts0 ;
  357. * Deplacements relatifs :
  358. si irela1 ;
  359. P1 = P0 plus P1 ;
  360. fins ;
  361. mail1 = P0 droi 1 P1 ;
  362. mail1 = mail1 coul roug ;
  363. ll1 = mesu mail1 ;
  364. maili1 = mail1 ;
  365. si (nbpts0 > 1) ;
  366. mail1 = mail0 et mail1 ;
  367. fins ;
  368. fins ;
  369. tab1.trajectoire = mail1 ;
  370.  
  371. * Increment de temps :
  372. dt1 = ll1 / vdep1 ;
  373. si idtcp1 ;
  374. dt1 = dt1 + dtcp1 ;
  375. fins ;
  376.  
  377. * Evolution puissance PASSE DROI :
  378. si idebut1 ;
  379. ltps1 = prog 0. dt1 ;
  380. lqtot1 = prog qtot1 qtot1 ;
  381. lti1 = ltps1 ;
  382. sino ;
  383. ltps0 = extr evqtot0 absc ;
  384. tps0 = extr ltps0 (dime ltps0) ;
  385. * Si la puissance indiquee est differente de celle existante :
  386. si idtcp1 ;
  387. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  388. lqtot1 = prog qtot1 qtot1 ;
  389. sino ;
  390. ltps1 = prog (tps0 + dt1) ;
  391. lqtot1 = prog qtot1 ;
  392. fins ;
  393. lti1 = prog tps0 dt1 ;
  394. ltps1 = ltps0 et ltps1 ;
  395. lqtot1 = lqtot0 et lqtot1 ;
  396. fins ;
  397. evqtot1 = evol roug manu temp ltps1 qtot lqtot1 ;
  398. tab1.evolution_puissance = evqtot1 ;
  399.  
  400. * Evolution debit PASSE DROI :
  401. si idebut1 ;
  402. ltps1 = prog 0. dt1 ;
  403. ldebi1 = prog debi1 debi1 ;
  404. sino ;
  405. ltps0 = extr evdebi0 absc ;
  406. tps0 = extr ltps0 (dime ltps0) ;
  407. * Si la puissance indiquee est differente de celle existante :
  408. si idtcp1 ;
  409. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  410. ldebi1 = prog debi1 debi1 ;
  411. sino ;
  412. ltps1 = prog (tps0 + dt1) ;
  413. ldebi1 = prog debi1 ;
  414. fins ;
  415. ltps1 = ltps0 et ltps1 ;
  416. ldebi1 = ldebi0 et ldebi1 ;
  417. fins ;
  418. evdebi1 = evol roug manu temp ltps1 debi ldebi1 ;
  419. tab1.evolution_debit = evdebi1 ;
  420.  
  421. * Evolution deplacement PASSE DROI :
  422. si idebut1 ;
  423. ltps1 = prog 0. dt1 ;
  424. ldep1 = prog 0. ll1 ;
  425. sino ;
  426. evdep0 = tab1.evolution_deplacement ;
  427. ltps0 = extr evdep0 absc ;
  428. ldep0 = extr evdep0 ordo ;
  429. tps0 = extr ltps0 (dime ltps0) ;
  430. dep0 = extr ldep0 (dime ldep0) ;
  431. si idtcp1 ;
  432. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  433. ldep1 = prog dep0 (dep0 + ll1) ;
  434. sino ;
  435. ltps1 = prog (tps0 + dt1) ;
  436. ldep1 = prog (dep0 + ll1) ;
  437. fins ;
  438. ltps1 = ltps0 et ltps1 ;
  439. ldep1 = ldep0 et ldep1 ;
  440. fins ;
  441. evdep1 = evol vert manu temp ltps1 ldep1 ;
  442. tab1.evolution_deplacement = evdep1 ;
  443.  
  444. * Enregistrement donnees PASSE DROI
  445. tab1.passes.nps1.maillage = maili1 ;
  446. tab1.passes.nps1.geometrie = mot 'DROI' ;
  447. tab1.passes.nps1.instants = lti1 ;
  448. tab1.passes.nps1.vitesse = vdep1 ;
  449. tab1.passes.nps1.puissance = qtot1 ;
  450. tab1.passes.nps1.debit = debi1 ;
  451.  
  452. si (exis tab1 'LARGEUR_DE_PASSE') ;
  453. tab1.passes.nps1.largeur = tab1.largeur_de_passe ;
  454. fins ;
  455.  
  456. quit soudage ;
  457. * Fin option PASSE DROI :
  458. fins ;
  459.  
  460. *----------------------------- PASSE CERC -----------------------------*
  461. * Sous-option CERC :
  462. si (ega mot2 'CERC') ;
  463. icas2 = 2 ;
  464.  
  465. * P1 est le centre du cercle, P2, l'extremite de la trajectoire
  466. argu P2*'POINT' P1*'POINT' ;
  467.  
  468. * Trajectoire PASSE CERC :
  469. si idebut1 ;
  470. P0 = tab1.point_de_depart ;
  471. * Deplacements relatifs :
  472. si irela1 ;
  473. P1 = P0 plus P1 ;
  474. P2 = P0 plus P2 ;
  475. fins ;
  476. si (non (exis N1)) ;
  477. V1 = P0 moin P1 ;
  478. V2 = P2 moin P1 ;
  479. V1 = V1 / (norm V1) ;
  480. V2 = V2 / (norm V2) ;
  481. N1 = (acos (psca V1 V2)) / 5. ;
  482. N1 = maxi (lect (enti N1) 1) ;
  483. fins ;
  484. mail1 = CERC N1 P0 P1 P2 ;
  485. mail1 = mail1 coul roug ;
  486. maili1 = mail1 ;
  487. ll1 = mesu mail1 ;
  488. sino ;
  489. mail0 = tab1.trajectoire ;
  490. nbpts0 = nbno mail0 ;
  491. P0 = mail0 poin nbpts0 ;
  492. * Deplacements relatifs :
  493. si irela1 ;
  494. P1 = P0 plus P1 ;
  495. P2 = P0 plus P2 ;
  496. fins ;
  497. si (non (exis N1)) ;
  498. V1 = P0 moin P1 ;
  499. V2 = P2 moin P1 ;
  500. V1 = V1 / (norm V1) ;
  501. V2 = V2 / (norm V2) ;
  502. N1 = (acos (psca V1 V2)) / 5. ;
  503. N1 = maxi (lect (enti N1) 1) ;
  504. fins ;
  505. mail1 = CERC N1 P0 P1 P2 ;
  506. mail1 = mail1 coul roug ;
  507. maili1 = mail1 ;
  508. ll1 = mesu mail1 ;
  509. si (nbpts0 > 1) ;
  510. mail1 = mail0 et mail1 ;
  511. fins ;
  512. fins ;
  513. tab1.trajectoire = mail1 ;
  514.  
  515. * Increment de temps :
  516. dt1 = ll1 / vdep1 ;
  517. si idtcp1 ;
  518. dt1 = dt1 + dtcp1 ;
  519. fins ;
  520.  
  521. * Evolution puissance PASSE CERC :
  522. si idebut1 ;
  523. ltps1 = prog 0. dt1 ;
  524. lqtot1 = prog qtot1 qtot1 ;
  525. lti1 = ltps1 ;
  526. sino ;
  527. ltps0 = extr evqtot0 absc ;
  528. tps0 = extr ltps0 (dime ltps0) ;
  529. * Si la puissance indiquee est differente de celle existante :
  530. si idtcp1 ;
  531. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  532. lqtot1 = prog qtot1 qtot1 ;
  533. sino ;
  534. ltps1 = prog (tps0 + dt1) ;
  535. lqtot1 = prog qtot1 ;
  536. fins ;
  537. lti1 = prog tps0 dt1 ;
  538. ltps1 = ltps0 et ltps1 ;
  539. lqtot1 = lqtot0 et lqtot1 ;
  540. fins ;
  541. evqtot1 = evol roug manu temp ltps1 qtot lqtot1 ;
  542. tab1.evolution_puissance = evqtot1 ;
  543.  
  544. * Evolution debit PASSE CERC :
  545. si idebut1 ;
  546. ltps1 = prog 0. dt1 ;
  547. ldebi1 = prog debi1 debi1 ;
  548. sino ;
  549. ltps0 = extr evdebi0 absc ;
  550. tps0 = extr ltps0 (dime ltps0) ;
  551. * Si la puissance indiquee est differente de celle existante :
  552. si idtcp1 ;
  553. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  554. ldebi1 = prog debi1 debi1 ;
  555. sino ;
  556. ltps1 = prog (tps0 + dt1) ;
  557. ldebi1 = prog debi1 ;
  558. fins ;
  559. ltps1 = ltps0 et ltps1 ;
  560. ldebi1 = ldebi0 et ldebi1 ;
  561. fins ;
  562. evdebi1 = evol roug manu temp ltps1 debi ldebi1 ;
  563. tab1.evolution_debit = evdebi1 ;
  564.  
  565. * Evolution deplacement PASSE CERC :
  566. si idebut1 ;
  567. ltps1 = prog 0. dt1 ;
  568. ldep1 = prog 0. ll1 ;
  569. sino ;
  570. evdep0 = tab1.evolution_deplacement ;
  571. ltps0 = extr evdep0 absc ;
  572. ldep0 = extr evdep0 ordo ;
  573. tps0 = extr ltps0 (dime ltps0) ;
  574. dep0 = extr ldep0 (dime ldep0) ;
  575. si idtcp1 ;
  576. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  577. ldep1 = prog dep0 (dep0 + ll1) ;
  578. sino ;
  579. ltps1 = prog (tps0 + dt1) ;
  580. ldep1 = prog (dep0 + ll1) ;
  581. fins ;
  582. ltps1 = ltps0 et ltps1 ;
  583. ldep1 = ldep0 et ldep1 ;
  584. fins ;
  585. evdep1 = evol vert manu temp ltps1 ldep1 ;
  586. tab1.evolution_deplacement = evdep1 ;
  587.  
  588. * Enregistrement donnees PASSE CERC
  589. tab1.passes.nps1.maillage = maili1 ;
  590. tab1.passes.nps1.geometrie = mot 'CERC' ;
  591. tab1.passes.nps1.centre = P1 ;
  592. tab1.passes.nps1.instants = lti1 ;
  593. tab1.passes.nps1.vitesse = vdep1 ;
  594. tab1.passes.nps1.puissance = qtot1 ;
  595. tab1.passes.nps1.debit = debi1 ;
  596.  
  597. si (exis tab1 'LARGEUR_DE_PASSE') ;
  598. tab1.passes.nps1.largeur = tab1.largeur_de_passe ;
  599. fins ;
  600.  
  601. quit soudage ;
  602. * Fin option PASSE CERC :
  603. fins ;
  604.  
  605. *----------------------------- PASSE MAIL -----------------------------*
  606. * Sous-option MAIL :
  607. si (ega mot2 'MAIL') ;
  608. icas2 = 3 ;
  609.  
  610. argu mail1*'MAILLAGE' ;
  611. eltyp1 = mail1 elem type ;
  612. imax1 = 0 ;
  613. si (exis eltyp1 'SEG2') ; imax1 = imax1 + 1 ; fins ;
  614. si (exis eltyp1 'SEG3') ; imax1 = imax1 + 1 ; fins ;
  615. si ((dime eltyp1) > imax1) ;
  616. erre '***** ERREUR : le maillage doit etre compose de SEG2 ou de SEG3.' ;
  617. fins ;
  618. ll1 = mesu mail1 ;
  619. maili1 = mail1 ;
  620.  
  621. * Trajectoire PASSE MAIL :
  622. si idebut1 ;
  623. P1 = mail1 poin 1 ;
  624. tab1.point_de_depart = P1 ;
  625. sino ;
  626. mail0 = tab1.trajectoire ;
  627. nbpts0 = nbno mail0 ;
  628. P0 = mail0 poin nbpts0 ;
  629. P1 = mail1 poin 1 ;
  630. si (P1 neg P0) ;
  631. erre '***** ERREUR : MAILLAGE incompatible.' ;
  632. quit soudage ;
  633. fins ;
  634. si (nbpts0 > 1) ;
  635. mail1 = mail1 coul roug ;
  636. mail1 = mail0 et mail1 ;
  637. fins ;
  638. fins ;
  639. tab1.trajectoire = mail1 ;
  640.  
  641. * Increment de temps :
  642. dt1 = ll1 / vdep1 ;
  643. si idtcp1 ;
  644. dt1 = dt1 + dtcp1 ;
  645. fins ;
  646.  
  647. * Evolution puissance PASSE MAIL :
  648. si idebut1 ;
  649. ltps1 = prog 0. dt1 ;
  650. lqtot1 = prog qtot1 qtot1 ;
  651. lti1 = ltps1 ;
  652. sino ;
  653. ltps0 = extr evqtot0 absc ;
  654. tps0 = extr ltps0 (dime ltps0) ;
  655. * Si la puissance indiquee est differente de celle existante :
  656. si idtcp1 ;
  657. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  658. lqtot1 = prog qtot1 qtot1 ;
  659. sino ;
  660. ltps1 = prog (tps0 + dt1) ;
  661. lqtot1 = prog qtot1 ;
  662. fins ;
  663. lti1 = prog tps0 dt1 ;
  664. ltps1 = ltps0 et ltps1 ;
  665. lqtot1 = lqtot0 et lqtot1 ;
  666. fins ;
  667. evqtot1 = evol roug manu temp ltps1 qtot lqtot1 ;
  668. tab1.evolution_puissance = evqtot1 ;
  669.  
  670. * Evolution debit PASSE MAIL :
  671. si idebut1 ;
  672. ltps1 = prog 0. dt1 ;
  673. ldebi1 = prog debi1 debi1 ;
  674. sino ;
  675. ltps0 = extr evdebi0 absc ;
  676. tps0 = extr ltps0 (dime ltps0) ;
  677. * Si la puissance indiquee est differente de celle existante :
  678. si idtcp1 ;
  679. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  680. ldebi1 = prog debi1 debi1 ;
  681. sino ;
  682. ltps1 = prog (tps0 + dt1) ;
  683. ldebi1 = prog debi1 ;
  684. fins ;
  685. ltps1 = ltps0 et ltps1 ;
  686. ldebi1 = ldebi0 et ldebi1 ;
  687. fins ;
  688. evdebi1 = evol roug manu temp ltps1 debi ldebi1 ;
  689. tab1.evolution_debit = evdebi1 ;
  690.  
  691. * Evolution deplacement PASSE MAIL :
  692. si idebut1 ;
  693. ltps1 = prog 0. dt1 ;
  694. ldep1 = prog 0. ll1 ;
  695. sino ;
  696. evdep0 = tab1.evolution_deplacement ;
  697. ltps0 = extr evdep0 absc ;
  698. ldep0 = extr evdep0 ordo ;
  699. tps0 = extr ltps0 (dime ltps0) ;
  700. dep0 = extr ldep0 (dime ldep0) ;
  701. si idtcp1 ;
  702. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  703. ldep1 = prog dep0 (dep0 + ll1) ;
  704. sino ;
  705. ltps1 = prog (tps0 + dt1) ;
  706. ldep1 = prog (dep0 + ll1) ;
  707. fins ;
  708. ltps1 = ltps0 et ltps1 ;
  709. ldep1 = ldep0 et ldep1 ;
  710. fins ;
  711. evdep1 = evol vert manu temp ltps1 ldep1 ;
  712. tab1.evolution_deplacement = evdep1 ;
  713.  
  714. * Enregistrement donnees PASSE MAIL
  715. tab1.passes.nps1.maillage = maili1 ;
  716. tab1.passes.nps1.geometrie = mot 'MAIL' ;
  717. tab1.passes.nps1.instants = lti1 ;
  718. tab1.passes.nps1.vitesse = vdep1 ;
  719. tab1.passes.nps1.puissance = qtot1 ;
  720. tab1.passes.nps1.debit = debi1 ;
  721.  
  722. si (exis tab1 'LARGEUR_DE_PASSE') ;
  723. tab1.passes.nps1.largeur = tab1.largeur_de_passe ;
  724. fins ;
  725.  
  726. quit soudage ;
  727. * Fin option PASSE MAIL :
  728. fins ;
  729.  
  730. * Si mot2 ne correspond a aucune option connue, icas2 = 0 : erreur
  731. si (icas2 ega 0) ;
  732. erre '***** ERREUR : MOT option non reconnu.' ;
  733. quit soudage ;
  734. fins ;
  735.  
  736. * Fin option PASSE :
  737. fins ;
  738.  
  739. *----------------------------------------------------------------------*
  740. * Option DEPLA *
  741. *----------------------------------------------------------------------*
  742.  
  743. si (ega mot1 'DEPLA') ;
  744. icas1 = 3 ;
  745. *
  746. * Lecture des arguments de l'option :
  747. argu MOT2*'MOT' ;
  748.  
  749. * icas2 = indicateur sous-option realisee :
  750. icas2 = 0 ;
  751.  
  752. *----------------------------- DEPLA DROI -----------------------------*
  753. si (ega mot2 'DROI') ;
  754. icas2 = 1 ;
  755.  
  756. argu P1*'POINT' ;
  757.  
  758. * Deplacement relatif / absolu :
  759. imot3 = faux ; imot4 = faux ;
  760. irela1 = vrai ;
  761. repe b1 2 ;
  762. argu mot3/'MOT' ;
  763. si (non (exis mot3)) ; quit b1 ; fins ;
  764. si (ega mot3 'ABSO') ;
  765. imot3 = vrai ;
  766. irela1 = faux ;
  767. fins ;
  768. si (ega mot3 'VITE') ;
  769. imot4 = vrai ;
  770. argu vdep1*'FLOTTANT' ;
  771. fins ;
  772. fin b1 ;
  773.  
  774. * Trajectoire DEPLA DROI :
  775. si idebut1 ;
  776. P0 = tab1.point_de_depart ;
  777. * Deplacements relatifs :
  778. si irela1 ;
  779. P1 = P0 plus P1 ;
  780. fins ;
  781. mail1 = P0 droi 1 P1 ;
  782. mail1 = mail1 coul vert ;
  783. ll1 = mesu mail1 ;
  784. sino ;
  785. mail0 = tab1.trajectoire ;
  786. nbpts0 = nbno mail0 ;
  787. P0 = mail0 poin nbpts0 ;
  788. * Deplacements relatifs :
  789. si irela1 ;
  790. P1 = P0 plus P1 ;
  791. fins ;
  792. mail1 = P0 droi 1 P1 ;
  793. mail1 = mail1 coul vert ;
  794. ll1 = mesu mail1 ;
  795. si (nbpts0 > 1) ;
  796. mail1 = mail0 et mail1 ;
  797. fins ;
  798. fins ;
  799. tab1.trajectoire = mail1 ;
  800.  
  801. * Increment de temps DEPLA DROI :
  802. si (non imot4) ;
  803. vdep1 = tab1.vitesse_de_deplacement ;
  804. fins ;
  805. dt1 = ll1 / vdep1 ;
  806.  
  807. * Evolution puissance DEPLA DROI :
  808. qtot1 = 0. ;
  809. icoup1 = faux ;
  810. si idebut1 ;
  811. ltps1 = prog 0. dt1 ;
  812. lqtot1 = prog qtot1 qtot1 ;
  813. lqi1 = prog 1. 1. ;
  814. sino ;
  815. evqtot0 = tab1.evolution_puissance ;
  816. ltps0 = extr evqtot0 absc ;
  817. lqtot0 = extr evqtot0 ordo ;
  818. tps0 = extr ltps0 (dime ltps0) ;
  819. qtot0 = extr lqtot0 (dime lqtot0) ;
  820. * Si la puissance indiquee est differente de celle existante :
  821. si ((abs(qtot0-qtot1)) > (abs(1.e-4*qtot1))) ;
  822. icoup1 = vrai ;
  823. dtcp1 = tab1.temps_de_coupure ;
  824. * La duree de realisation du point de soudure doit etre sup. au temps de coupure :
  825. * si (dtcp1 >EG dt1) ;
  826. * erre '***** ERREUR : le temps de soudage est inferieur au temps de coupure.' ;
  827. * quit soudage ;
  828. * fins ;
  829. dt1 = dt1 + dtcp1 ;
  830. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  831. lqtot1 = prog qtot1 qtot1 ;
  832. lqi1 = prog 1. 1. ;
  833. sino ;
  834. ltps1 = prog (tps0 + dt1) ;
  835. lqtot1 = prog qtot1 ;
  836. lqi1 = prog 1. ;
  837. fins ;
  838. ltps1 = ltps0 et ltps1 ;
  839. lqtot1 = lqtot0 et lqtot1 ;
  840. fins ;
  841. evqtot1 = evol roug manu temp ltps1 qtot lqtot1 ;
  842. tab1.evolution_puissance = evqtot1 ;
  843.  
  844. * Evolution debit DEPLA DROI :
  845. debi1 = 0. ;
  846. ldebi1 = debi1 * lqi1 ;
  847. si (non idebut1) ;
  848. ldebi1 = (extr tab1.evolution_debit ordo) et ldebi1 ;
  849. fins ;
  850. evdebi1 = evol roug manu temp ltps1 debi ldebi1 ;
  851. tab1.evolution_debit = evdebi1 ;
  852.  
  853. * Evolution deplacement DEPLA DROI :
  854. si idebut1 ;
  855. ltps1 = prog 0. dt1 ;
  856. ldep1 = prog 0. ll1 ;
  857. sino ;
  858. evdep0 = tab1.evolution_deplacement ;
  859. ltps0 = extr evdep0 absc ;
  860. ldep0 = extr evdep0 ordo ;
  861. tps0 = extr ltps0 (dime ltps0) ;
  862. dep0 = extr ldep0 (dime ldep0) ;
  863. si icoup1 ;
  864. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  865. ldep1 = prog dep0 (dep0 + ll1) ;
  866. sino ;
  867. ltps1 = prog (tps0 + dt1) ;
  868. ldep1 = prog (dep0 + ll1) ;
  869. fins ;
  870. ltps1 = ltps0 et ltps1 ;
  871. ldep1 = ldep0 et ldep1 ;
  872. fins ;
  873. evdep1 = evol vert manu temp ltps1 ldep1 ;
  874. tab1.evolution_deplacement = evdep1 ;
  875.  
  876. quit soudage ;
  877. * Fin option DEPLA DROI :
  878. fins ;
  879.  
  880. *----------------------------- DEPLA CERC -----------------------------*
  881. si (ega mot2 'CERC') ;
  882. icas2 = 2 ;
  883.  
  884. * P1 est le centre du cercle, P2, l'extremite de la trajectoire
  885. argu P2*'POINT' P1*'POINT' N1/'ENTIER';
  886.  
  887. * Deplacement relatif / absolu :
  888. imot3 = faux ; imot4 = faux ;
  889. irela1 = vrai ;
  890. repe b1 2 ;
  891. argu mot3/'MOT' ;
  892. si (non (exis mot3)) ; quit b1 ; fins ;
  893. si (ega mot3 'ABSO') ;
  894. imot3 = vrai ;
  895. irela1 = faux ;
  896. fins ;
  897. si (ega mot3 'VITE') ;
  898. imot4 = vrai ;
  899. argu vdep1*'FLOTTANT' ;
  900. fins ;
  901. fin b1 ;
  902.  
  903. * Trajectoire DEPLA CERC :
  904. si idebut1 ;
  905. P0 = tab1.point_de_depart ;
  906. * Deplacements relatifs :
  907. si irela1 ;
  908. P1 = P0 plus P1 ;
  909. P2 = P0 plus P2 ;
  910. fins ;
  911. * Par defaut, N1 calcule pour avoir angle de 5 deg.
  912. si (non (exis N1)) ;
  913. V1 = P0 moin P1 ;
  914. V2 = P2 moin P1 ;
  915. V1 = V1 / (norm V1) ;
  916. V2 = V2 / (norm V2) ;
  917. N1 = (acos (psca V1 V2)) / 5. ;
  918. N1 = maxi (lect (enti N1) 1) ;
  919. fins ;
  920. mail1 = CERC N1 P0 P1 P2 ;
  921. mail1 = mail1 coul vert ;
  922. ll1 = mesu mail1 ;
  923. sino ;
  924. mail0 = tab1.trajectoire ;
  925. nbpts0 = nbno mail0 ;
  926. P0 = mail0 poin nbpts0 ;
  927. * Deplacements relatifs :
  928. si irela1 ;
  929. P1 = P0 plus P1 ;
  930. P2 = P0 plus P2 ;
  931. fins ;
  932. si (non (exis N1)) ;
  933. V1 = P0 moin P1 ;
  934. V2 = P2 moin P1 ;
  935. V1 = V1 / (norm V1) ;
  936. V2 = V2 / (norm V2) ;
  937. N1 = (acos (psca V1 V2)) / 5. ;
  938. N1 = maxi (lect (enti N1) 1) ;
  939. fins ;
  940. mail1 = CERC N1 P0 P1 P2 ;
  941. mail1 = mail1 coul vert ;
  942. ll1 = mesu mail1 ;
  943. si (nbpts0 > 1) ;
  944. mail1 = mail0 et mail1 ;
  945. fins ;
  946. fins ;
  947. tab1.trajectoire = mail1 ;
  948.  
  949. * Increment de temps DEPLA CERC :
  950. si (non imot4) ;
  951. vdep1 = tab1.vitesse_de_deplacement ;
  952. fins ;
  953. dt1 = ll1 / vdep1 ;
  954.  
  955. * Evolution puissance DEPLA CERC :
  956. qtot1 = 0. ;
  957. icoup1 = faux ;
  958. si idebut1 ;
  959. ltps1 = prog 0. dt1 ;
  960. lqtot1 = prog qtot1 qtot1 ;
  961. lqi1 = prog 1. 1. ;
  962. sino ;
  963. evqtot0 = tab1.evolution_puissance ;
  964. ltps0 = extr evqtot0 absc ;
  965. lqtot0 = extr evqtot0 ordo ;
  966. tps0 = extr ltps0 (dime ltps0) ;
  967. qtot0 = extr lqtot0 (dime lqtot0) ;
  968. * Si la puissance indiquee est differente de celle existante :
  969. si ((abs(qtot0-qtot1)) > (abs(1.e-4*qtot1))) ;
  970. icoup1 = vrai ;
  971. dtcp1 = tab1.temps_de_coupure ;
  972. * La duree de realisation du point de soudure doit etre sup. au temps de coupure :
  973. * si (dtcp1 >EG dt1) ;
  974. * erre '***** ERREUR : le temps de soudage est inferieur au temps de coupure.' ;
  975. * quit soudage ;
  976. * fins ;
  977. dt1 = dt1 + dtcp1 ;
  978. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  979. lqtot1 = prog qtot1 qtot1 ;
  980. lqi1 = prog 1. 1. ;
  981. sino ;
  982. ltps1 = prog (tps0 + dt1) ;
  983. lqtot1 = prog qtot1 ;
  984. lqi1 = prog 1. ;
  985. fins ;
  986. ltps1 = ltps0 et ltps1 ;
  987. lqtot1 = lqtot0 et lqtot1 ;
  988. fins ;
  989. evqtot1 = evol roug manu temp ltps1 qtot lqtot1 ;
  990. tab1.evolution_puissance = evqtot1 ;
  991.  
  992. * Evolution debit DEPLA CERC :
  993. debi1 = 0. ;
  994. ldebi1 = debi1 * lqi1 ;
  995. si (non idebut1) ;
  996. ldebi1 = (extr tab1.evolution_debit ordo) et ldebi1 ;
  997. fins ;
  998. evdebi1 = evol roug manu temp ltps1 debi ldebi1 ;
  999. tab1.evolution_debit = evdebi1 ;
  1000.  
  1001. * Evolution deplacement DEPLA CERC :
  1002. si idebut1 ;
  1003. ltps1 = prog 0. dt1 ;
  1004. ldep1 = prog 0. ll1 ;
  1005. sino ;
  1006. evdep0 = tab1.evolution_deplacement ;
  1007. ltps0 = extr evdep0 absc ;
  1008. ldep0 = extr evdep0 ordo ;
  1009. tps0 = extr ltps0 (dime ltps0) ;
  1010. dep0 = extr ldep0 (dime ldep0) ;
  1011. si icoup1 ;
  1012. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  1013. ldep1 = prog dep0 (dep0 + ll1) ;
  1014. sino ;
  1015. ltps1 = prog (tps0 + dt1) ;
  1016. ldep1 = prog (dep0 + ll1) ;
  1017. fins ;
  1018. ltps1 = ltps0 et ltps1 ;
  1019. ldep1 = ldep0 et ldep1 ;
  1020. fins ;
  1021. evdep1 = evol vert manu temp ltps1 ldep1 ;
  1022. tab1.evolution_deplacement = evdep1 ;
  1023.  
  1024. quit soudage ;
  1025. * Fin option DEPLA CERC :
  1026. fins ;
  1027.  
  1028. *----------------------------- DEPLA MAIL -----------------------------*
  1029. * Sous-option MAIL :
  1030. si (ega mot2 'MAIL') ;
  1031. icas2 = 3 ;
  1032.  
  1033. argu mail1*'MAILLAGE' ;
  1034. eltyp1 = mail1 elem type ;
  1035. imax1 = 0 ;
  1036. si (exis eltyp1 'SEG2') ; imax1 = imax1 + 1 ; fins ;
  1037. si (exis eltyp1 'SEG3') ; imax1 = imax1 + 1 ; fins ;
  1038. si ((dime eltyp1) > imax1) ;
  1039. erre '***** ERREUR : le maillage doit etre compose de SEG2 ou de SEG3.' ;
  1040. fins ;
  1041. ll1 = mesu mail1 ;
  1042.  
  1043. * Trajectoire DEPLA MAIL :
  1044. si idebut1 ;
  1045. P1 = mail1 poin 1 ;
  1046. tab1.point_de_depart = P1 ;
  1047. sino ;
  1048. mail0 = tab1.trajectoire ;
  1049. nbpts0 = nbno mail0 ;
  1050. P0 = mail0 poin nbpts0 ;
  1051. P1 = mail1 poin 1 ;
  1052. si (P1 neg P0) ;
  1053. erre '***** ERREUR : MAILLAGE incompatible.' ;
  1054. quit soudage ;
  1055. fins ;
  1056. si (nbpts0 > 1) ;
  1057. mail1 = mail1 coul vert ;
  1058. mail1 = mail0 et mail1 ;
  1059. fins ;
  1060. fins ;
  1061. tab1.trajectoire = mail1 ;
  1062.  
  1063. * Increment de temps DEPLA MAIL :
  1064. argu mot4/'MOT' ;
  1065. si (exis mot4) ;
  1066. si (ega mot4 'VITE') ;
  1067. argu vdep1*'FLOTTANT' ;
  1068. sino ;
  1069. erre '***** ERREUR : on attend le mot-cle VITE.' ;
  1070. quit soudage ;
  1071. fins ;
  1072. sino ;
  1073. vdep1 = tab1.vitesse_de_deplacement ;
  1074. fins ;
  1075. dt1 = ll1 / vdep1 ;
  1076.  
  1077. * Evolution puissance DEPLA MAIL :
  1078. qtot1 = 0. ;
  1079. icoup1 = faux ;
  1080. si idebut1 ;
  1081. ltps1 = prog 0. dt1 ;
  1082. lqtot1 = prog qtot1 qtot1 ;
  1083. lqi1 = prog 1. 1. ;
  1084. sino ;
  1085. evqtot0 = tab1.evolution_puissance ;
  1086. ltps0 = extr evqtot0 absc ;
  1087. lqtot0 = extr evqtot0 ordo ;
  1088. tps0 = extr ltps0 (dime ltps0) ;
  1089. qtot0 = extr lqtot0 (dime lqtot0) ;
  1090. * Si la puissance indiquee est differente de celle existante :
  1091. si ((abs(qtot0-qtot1)) > (abs(1.e-4*qtot1))) ;
  1092. icoup1 = vrai ;
  1093. dtcp1 = tab1.temps_de_coupure ;
  1094. * La duree de realisation du point de soudure doit etre sup. au temps de coupure :
  1095. * si (dtcp1 >EG dt1) ;
  1096. * erre '***** ERREUR : le temps de soudage est inferieur au temps de coupure.' ;
  1097. * quit soudage ;
  1098. * fins ;
  1099. dt1 = dt1 + dtcp1 ;
  1100. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  1101. lqtot1 = prog qtot1 qtot1 ;
  1102. lqi1 = prog 1. 1. ;
  1103. sino ;
  1104. ltps1 = prog (tps0 + dt1) ;
  1105. lqtot1 = prog qtot1 ;
  1106. lqi1 = prog 1. ;
  1107. fins ;
  1108. ltps1 = ltps0 et ltps1 ;
  1109. lqtot1 = lqtot0 et lqtot1 ;
  1110. fins ;
  1111. evqtot1 = evol roug manu temp ltps1 qtot lqtot1 ;
  1112. tab1.evolution_puissance = evqtot1 ;
  1113.  
  1114. * Evolution debit DEPLA MAIL :
  1115. debi1 = 0. ;
  1116. ldebi1 = debi1 * lqi1 ;
  1117. si (non idebut1) ;
  1118. ldebi1 = (extr tab1.evolution_debit ordo) et ldebi1 ;
  1119. fins ;
  1120. evdebi1 = evol roug manu temp ltps1 debi ldebi1 ;
  1121. tab1.evolution_debit = evdebi1 ;
  1122.  
  1123. * Evolution deplacement DEPLA MAIL :
  1124. si idebut1 ;
  1125. ltps1 = prog 0. dt1 ;
  1126. ldep1 = prog 0. ll1 ;
  1127. sino ;
  1128. evdep0 = tab1.evolution_deplacement ;
  1129. ltps0 = extr evdep0 absc ;
  1130. ldep0 = extr evdep0 ordo ;
  1131. tps0 = extr ltps0 (dime ltps0) ;
  1132. dep0 = extr ldep0 (dime ldep0) ;
  1133. si icoup1 ;
  1134. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  1135. ldep1 = prog dep0 (dep0 + ll1) ;
  1136. sino ;
  1137. ltps1 = prog (tps0 + dt1) ;
  1138. ldep1 = prog (dep0 + ll1) ;
  1139. fins ;
  1140. ltps1 = ltps0 et ltps1 ;
  1141. ldep1 = ldep0 et ldep1 ;
  1142. fins ;
  1143. evdep1 = evol vert manu temp ltps1 ldep1 ;
  1144. tab1.evolution_deplacement = evdep1 ;
  1145.  
  1146. quit soudage ;
  1147. * Fin option DEPLA MAIL :
  1148. fins ;
  1149.  
  1150. *---------------------------- DEPLA COUCHE ----------------------------*
  1151. * Sous-option MAIL :
  1152. si (ega mot2 'COUCHE') ;
  1153. icas2 = 4 ;
  1154. tab1.depla_couche = vrai ;
  1155.  
  1156. * Option PAUSE :
  1157. argu mot3/'MOT' ;
  1158. si (exis mot3) ;
  1159. si (ega mot3 'PAUSE') ;
  1160. argu flot1*'FLOTTANT' ;
  1161. tab1.depla_pause = flot1 ;
  1162. fins ;
  1163. fins ;
  1164.  
  1165. * Fin option DEPLA COUCHE :
  1166. fins ;
  1167.  
  1168. si (icas2 ega 0) ;
  1169. erre '***** ERREUR : MOT option non reconnu.' ;
  1170. quit soudage ;
  1171. fins ;
  1172.  
  1173. * Fin option DEPLA :
  1174. fins ;
  1175.  
  1176. *----------------------------------------------------------------------*
  1177. * FIN *
  1178. *----------------------------------------------------------------------*
  1179.  
  1180. * MOT1 n'est pas un des mots-cles des options de la procedure :
  1181. si (icas1 ega 0) ;
  1182. erre '***** ERREUR : MOT-cle option SOUDAGE non reconnu.' ;
  1183. quit soudage ;
  1184. fins ;
  1185.  
  1186. FINP ;
  1187.  
  1188.  
  1189.  
  1190.  

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