Télécharger soudage.procedur

Retour à la liste

Numérotation des lignes :

  1. * SOUDAGE PROCEDUR PASCAL 20/08/07 21:15:11 10686
  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. * Epaisseur de la couche :
  262. si imot4 ;
  263. Vpf1 = vdep1 ;
  264. sino ;
  265. Vpf1 = tab1.vitesse_de_soudage ;
  266. fins ;
  267. si imot6 ;
  268. Dpf1 = debi1 ;
  269. sino ;
  270. Dpf1 = tab1.debit_de_fil ;
  271. fins ;
  272. Lpf1 = tab1.largeur_de_passe ;
  273. epf1 = Dpf1 / Vpf1 / Lpf1 ;
  274. * Pause :
  275. si (exis tab1 'DEPLA_PAUSE') ;
  276. tpf1 = tab1.depla_pause ;
  277. vdep2 = epf1 / tpf1 ;
  278. oubl tab1 depla_pause ;
  279. sino ;
  280. vdep2 = tab1.vitesse_de_deplacement ;
  281. fins ;
  282. soudage tab1 depla droi (0 0 epf1) vite vdep2 ;
  283. fins ;
  284.  
  285. * Vitesse & Increment de temps PASSE :
  286. si (non imot4) ;
  287. vdep1 = tab1.vitesse_de_soudage ;
  288. fins ;
  289.  
  290. * Puissance PASSE :
  291. si (non imot5) ;
  292. qtot1 = tab1.puissance_de_soudage ;
  293. fins ;
  294.  
  295. * Debit PASSE :
  296. si (non imot6) ;
  297. debi1 = tab1.debit_de_fil ;
  298. fins ;
  299. *list vdep1 ;
  300. *list qtot1 ;
  301. *list debi1 ;
  302.  
  303. * Ajout ou pas du temps de coupure option PASSE :
  304. idtcp1 = faux ;
  305. evqtot0 = tab1.evolution_puissance ;
  306. lqtot0 = extr evqtot0 ordo ;
  307. evdebi0 = tab1.evolution_debit ;
  308. ldebi0 = extr evdebi0 ordo ;
  309. si ((non idebut1)) ;
  310. qtot0 = extr lqtot0 (dime lqtot0) ;
  311. idtcp1 = (abs(qtot0-qtot1)) > (abs(1.e-4*qtot1)) ;
  312. debi0 = extr ldebi0 (dime ldebi0) ;
  313. idtcp1 = idtcp1 ou ((abs(debi0-debi1)) > (abs(1.e-4*debi1))) ;
  314. fins ;
  315. *list idtcp1 ;
  316. si idtcp1 ;
  317. dtcp1 = tab1.temps_de_coupure ;
  318. fins ;
  319.  
  320. * Initialisation enregistrement donnees PASSE :
  321. si (exis tab1 passes) ;
  322. nps1 = dime tab1.passes ;
  323. sino ;
  324. nps1 = 0 ;
  325. tab1.passes = table ;
  326. fins ;
  327. nps1 = nps1 + 1 ;
  328. tab1.passes.nps1 = table ;
  329.  
  330. * icas2 = indicateur sous-option realisee :
  331. icas2 = 0 ;
  332.  
  333. *----------------------------- PASSE DROI -----------------------------*
  334. * Sous-option DROI :
  335. si (ega mot2 'DROI') ;
  336. icas2 = 1 ;
  337.  
  338. * Lecture du point :
  339. argu P1*'POINT' ;
  340.  
  341. * Trajectoire PASSE DROI :
  342. si idebut1 ;
  343. P0 = tab1.point_de_depart ;
  344. * Deplacements relatifs :
  345. si irela1 ;
  346. P1 = P0 plus P1 ;
  347. fins ;
  348. mail1 = P0 droi 1 P1 ;
  349. mail1 = mail1 coul roug ;
  350. ll1 = mesu mail1 ;
  351. maili1 = mail1 ;
  352. sino ;
  353. mail0 = tab1.trajectoire ;
  354. nbpts0 = nbno mail0 ;
  355. P0 = mail0 poin nbpts0 ;
  356. * Deplacements relatifs :
  357. si irela1 ;
  358. P1 = P0 plus P1 ;
  359. fins ;
  360. mail1 = P0 droi 1 P1 ;
  361. mail1 = mail1 coul roug ;
  362. ll1 = mesu mail1 ;
  363. maili1 = mail1 ;
  364. si (nbpts0 > 1) ;
  365. mail1 = mail0 et mail1 ;
  366. fins ;
  367. fins ;
  368. tab1.trajectoire = mail1 ;
  369.  
  370. * Increment de temps :
  371. dt1 = ll1 / vdep1 ;
  372. si idtcp1 ;
  373. dt1 = dt1 + dtcp1 ;
  374. fins ;
  375.  
  376. * Evolution puissance PASSE DROI :
  377. si idebut1 ;
  378. ltps1 = prog 0. dt1 ;
  379. lqtot1 = prog qtot1 qtot1 ;
  380. lti1 = ltps1 ;
  381. sino ;
  382. ltps0 = extr evqtot0 absc ;
  383. tps0 = extr ltps0 (dime ltps0) ;
  384. * Si la puissance indiquee est differente de celle existante :
  385. si idtcp1 ;
  386. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  387. lqtot1 = prog qtot1 qtot1 ;
  388. sino ;
  389. ltps1 = prog (tps0 + dt1) ;
  390. lqtot1 = prog qtot1 ;
  391. fins ;
  392. lti1 = prog tps0 dt1 ;
  393. ltps1 = ltps0 et ltps1 ;
  394. lqtot1 = lqtot0 et lqtot1 ;
  395. fins ;
  396. evqtot1 = evol roug manu temp ltps1 qtot lqtot1 ;
  397. tab1.evolution_puissance = evqtot1 ;
  398.  
  399. * Evolution debit PASSE DROI :
  400. si idebut1 ;
  401. ltps1 = prog 0. dt1 ;
  402. ldebi1 = prog debi1 debi1 ;
  403. sino ;
  404. ltps0 = extr evdebi0 absc ;
  405. tps0 = extr ltps0 (dime ltps0) ;
  406. * Si la puissance indiquee est differente de celle existante :
  407. si idtcp1 ;
  408. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  409. ldebi1 = prog debi1 debi1 ;
  410. sino ;
  411. ltps1 = prog (tps0 + dt1) ;
  412. ldebi1 = prog debi1 ;
  413. fins ;
  414. ltps1 = ltps0 et ltps1 ;
  415. ldebi1 = ldebi0 et ldebi1 ;
  416. fins ;
  417. evdebi1 = evol roug manu temp ltps1 debi ldebi1 ;
  418. tab1.evolution_debit = evdebi1 ;
  419.  
  420. * Evolution deplacement PASSE DROI :
  421. si idebut1 ;
  422. ltps1 = prog 0. dt1 ;
  423. ldep1 = prog 0. ll1 ;
  424. sino ;
  425. evdep0 = tab1.evolution_deplacement ;
  426. ltps0 = extr evdep0 absc ;
  427. ldep0 = extr evdep0 ordo ;
  428. tps0 = extr ltps0 (dime ltps0) ;
  429. dep0 = extr ldep0 (dime ldep0) ;
  430. si idtcp1 ;
  431. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  432. ldep1 = prog dep0 (dep0 + ll1) ;
  433. sino ;
  434. ltps1 = prog (tps0 + dt1) ;
  435. ldep1 = prog (dep0 + ll1) ;
  436. fins ;
  437. ltps1 = ltps0 et ltps1 ;
  438. ldep1 = ldep0 et ldep1 ;
  439. fins ;
  440. evdep1 = evol vert manu temp ltps1 ldep1 ;
  441. tab1.evolution_deplacement = evdep1 ;
  442.  
  443. * Enregistrement donnees PASSE DROI
  444. tab1.passes.nps1.maillage = maili1 ;
  445. tab1.passes.nps1.geometrie = mot 'DROI' ;
  446. tab1.passes.nps1.instants = lti1 ;
  447. tab1.passes.nps1.vitesse = vdep1 ;
  448. tab1.passes.nps1.puissance = qtot1 ;
  449. tab1.passes.nps1.debit = debi1 ;
  450.  
  451. si (exis tab1 'LARGEUR_DE_PASSE') ;
  452. tab1.passes.nps1.largeur = tab1.largeur_de_passe ;
  453. fins ;
  454.  
  455. quit soudage ;
  456. * Fin option PASSE DROI :
  457. fins ;
  458.  
  459. *----------------------------- PASSE CERC -----------------------------*
  460. * Sous-option CERC :
  461. si (ega mot2 'CERC') ;
  462. icas2 = 2 ;
  463.  
  464. * P1 est le centre du cercle, P2, l'extremite de la trajectoire
  465. argu P2*'POINT' P1*'POINT' ;
  466.  
  467. * Trajectoire PASSE CERC :
  468. si idebut1 ;
  469. P0 = tab1.point_de_depart ;
  470. * Deplacements relatifs :
  471. si irela1 ;
  472. P1 = P0 plus P1 ;
  473. P2 = P0 plus P2 ;
  474. fins ;
  475. si (non (exis N1)) ;
  476. V1 = P0 moin P1 ;
  477. V2 = P2 moin P1 ;
  478. V1 = V1 / (norm V1) ;
  479. V2 = V2 / (norm V2) ;
  480. N1 = (acos (psca V1 V2)) / 5. ;
  481. N1 = maxi (lect (enti N1) 1) ;
  482. fins ;
  483. mail1 = CERC N1 P0 P1 P2 ;
  484. mail1 = mail1 coul roug ;
  485. maili1 = mail1 ;
  486. ll1 = mesu mail1 ;
  487. sino ;
  488. mail0 = tab1.trajectoire ;
  489. nbpts0 = nbno mail0 ;
  490. P0 = mail0 poin nbpts0 ;
  491. * Deplacements relatifs :
  492. si irela1 ;
  493. P1 = P0 plus P1 ;
  494. P2 = P0 plus P2 ;
  495. fins ;
  496. si (non (exis N1)) ;
  497. V1 = P0 moin P1 ;
  498. V2 = P2 moin P1 ;
  499. V1 = V1 / (norm V1) ;
  500. V2 = V2 / (norm V2) ;
  501. N1 = (acos (psca V1 V2)) / 5. ;
  502. N1 = maxi (lect (enti N1) 1) ;
  503. fins ;
  504. mail1 = CERC N1 P0 P1 P2 ;
  505. mail1 = mail1 coul roug ;
  506. maili1 = mail1 ;
  507. ll1 = mesu mail1 ;
  508. si (nbpts0 > 1) ;
  509. mail1 = mail0 et mail1 ;
  510. fins ;
  511. fins ;
  512. tab1.trajectoire = mail1 ;
  513.  
  514. * Increment de temps :
  515. dt1 = ll1 / vdep1 ;
  516. si idtcp1 ;
  517. dt1 = dt1 + dtcp1 ;
  518. fins ;
  519.  
  520. * Evolution puissance PASSE CERC :
  521. si idebut1 ;
  522. ltps1 = prog 0. dt1 ;
  523. lqtot1 = prog qtot1 qtot1 ;
  524. lti1 = ltps1 ;
  525. sino ;
  526. ltps0 = extr evqtot0 absc ;
  527. tps0 = extr ltps0 (dime ltps0) ;
  528. * Si la puissance indiquee est differente de celle existante :
  529. si idtcp1 ;
  530. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  531. lqtot1 = prog qtot1 qtot1 ;
  532. sino ;
  533. ltps1 = prog (tps0 + dt1) ;
  534. lqtot1 = prog qtot1 ;
  535. fins ;
  536. lti1 = prog tps0 dt1 ;
  537. ltps1 = ltps0 et ltps1 ;
  538. lqtot1 = lqtot0 et lqtot1 ;
  539. fins ;
  540. evqtot1 = evol roug manu temp ltps1 qtot lqtot1 ;
  541. tab1.evolution_puissance = evqtot1 ;
  542.  
  543. * Evolution debit PASSE CERC :
  544. si idebut1 ;
  545. ltps1 = prog 0. dt1 ;
  546. ldebi1 = prog debi1 debi1 ;
  547. sino ;
  548. ltps0 = extr evdebi0 absc ;
  549. tps0 = extr ltps0 (dime ltps0) ;
  550. * Si la puissance indiquee est differente de celle existante :
  551. si idtcp1 ;
  552. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  553. ldebi1 = prog debi1 debi1 ;
  554. sino ;
  555. ltps1 = prog (tps0 + dt1) ;
  556. ldebi1 = prog debi1 ;
  557. fins ;
  558. ltps1 = ltps0 et ltps1 ;
  559. ldebi1 = ldebi0 et ldebi1 ;
  560. fins ;
  561. evdebi1 = evol roug manu temp ltps1 debi ldebi1 ;
  562. tab1.evolution_debit = evdebi1 ;
  563.  
  564. * Evolution deplacement PASSE CERC :
  565. si idebut1 ;
  566. ltps1 = prog 0. dt1 ;
  567. ldep1 = prog 0. ll1 ;
  568. sino ;
  569. evdep0 = tab1.evolution_deplacement ;
  570. ltps0 = extr evdep0 absc ;
  571. ldep0 = extr evdep0 ordo ;
  572. tps0 = extr ltps0 (dime ltps0) ;
  573. dep0 = extr ldep0 (dime ldep0) ;
  574. si idtcp1 ;
  575. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  576. ldep1 = prog dep0 (dep0 + ll1) ;
  577. sino ;
  578. ltps1 = prog (tps0 + dt1) ;
  579. ldep1 = prog (dep0 + ll1) ;
  580. fins ;
  581. ltps1 = ltps0 et ltps1 ;
  582. ldep1 = ldep0 et ldep1 ;
  583. fins ;
  584. evdep1 = evol vert manu temp ltps1 ldep1 ;
  585. tab1.evolution_deplacement = evdep1 ;
  586.  
  587. * Enregistrement donnees PASSE CERC
  588. tab1.passes.nps1.maillage = maili1 ;
  589. tab1.passes.nps1.geometrie = mot 'CERC' ;
  590. tab1.passes.nps1.centre = P1 ;
  591. tab1.passes.nps1.instants = lti1 ;
  592. tab1.passes.nps1.vitesse = vdep1 ;
  593. tab1.passes.nps1.puissance = qtot1 ;
  594. tab1.passes.nps1.debit = debi1 ;
  595.  
  596. si (exis tab1 'LARGEUR_DE_PASSE') ;
  597. tab1.passes.nps1.largeur = tab1.largeur_de_passe ;
  598. fins ;
  599.  
  600. quit soudage ;
  601. * Fin option PASSE CERC :
  602. fins ;
  603.  
  604. *----------------------------- PASSE MAIL -----------------------------*
  605. * Sous-option MAIL :
  606. si (ega mot2 'MAIL') ;
  607. icas2 = 3 ;
  608.  
  609. argu mail1*'MAILLAGE' ;
  610. eltyp1 = mail1 elem type ;
  611. imax1 = 0 ;
  612. si (exis eltyp1 'SEG2') ; imax1 = imax1 + 1 ; fins ;
  613. si (exis eltyp1 'SEG3') ; imax1 = imax1 + 1 ; fins ;
  614. si ((dime eltyp1) > imax1) ;
  615. erre '***** ERREUR : le maillage doit etre compose de SEG2 ou de SEG3.' ;
  616. fins ;
  617. ll1 = mesu mail1 ;
  618. maili1 = mail1 ;
  619.  
  620. * Trajectoire PASSE MAIL :
  621. si idebut1 ;
  622. P1 = mail1 poin 1 ;
  623. tab1.point_de_depart = P1 ;
  624. sino ;
  625. mail0 = tab1.trajectoire ;
  626. nbpts0 = nbno mail0 ;
  627. P0 = mail0 poin nbpts0 ;
  628. P1 = mail1 poin 1 ;
  629. si (P1 neg P0) ;
  630. erre '***** ERREUR : MAILLAGE incompatible.' ;
  631. quit soudage ;
  632. fins ;
  633. si (nbpts0 > 1) ;
  634. mail1 = mail1 coul roug ;
  635. mail1 = mail0 et mail1 ;
  636. fins ;
  637. fins ;
  638. tab1.trajectoire = mail1 ;
  639.  
  640. * Increment de temps :
  641. dt1 = ll1 / vdep1 ;
  642. si idtcp1 ;
  643. dt1 = dt1 + dtcp1 ;
  644. fins ;
  645.  
  646. * Evolution puissance PASSE MAIL :
  647. si idebut1 ;
  648. ltps1 = prog 0. dt1 ;
  649. lqtot1 = prog qtot1 qtot1 ;
  650. lti1 = ltps1 ;
  651. sino ;
  652. ltps0 = extr evqtot0 absc ;
  653. tps0 = extr ltps0 (dime ltps0) ;
  654. * Si la puissance indiquee est differente de celle existante :
  655. si idtcp1 ;
  656. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  657. lqtot1 = prog qtot1 qtot1 ;
  658. sino ;
  659. ltps1 = prog (tps0 + dt1) ;
  660. lqtot1 = prog qtot1 ;
  661. fins ;
  662. lti1 = prog tps0 dt1 ;
  663. ltps1 = ltps0 et ltps1 ;
  664. lqtot1 = lqtot0 et lqtot1 ;
  665. fins ;
  666. evqtot1 = evol roug manu temp ltps1 qtot lqtot1 ;
  667. tab1.evolution_puissance = evqtot1 ;
  668.  
  669. * Evolution debit PASSE MAIL :
  670. si idebut1 ;
  671. ltps1 = prog 0. dt1 ;
  672. ldebi1 = prog debi1 debi1 ;
  673. sino ;
  674. ltps0 = extr evdebi0 absc ;
  675. tps0 = extr ltps0 (dime ltps0) ;
  676. * Si la puissance indiquee est differente de celle existante :
  677. si idtcp1 ;
  678. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  679. ldebi1 = prog debi1 debi1 ;
  680. sino ;
  681. ltps1 = prog (tps0 + dt1) ;
  682. ldebi1 = prog debi1 ;
  683. fins ;
  684. ltps1 = ltps0 et ltps1 ;
  685. ldebi1 = ldebi0 et ldebi1 ;
  686. fins ;
  687. evdebi1 = evol roug manu temp ltps1 debi ldebi1 ;
  688. tab1.evolution_debit = evdebi1 ;
  689.  
  690. * Evolution deplacement PASSE MAIL :
  691. si idebut1 ;
  692. ltps1 = prog 0. dt1 ;
  693. ldep1 = prog 0. ll1 ;
  694. sino ;
  695. evdep0 = tab1.evolution_deplacement ;
  696. ltps0 = extr evdep0 absc ;
  697. ldep0 = extr evdep0 ordo ;
  698. tps0 = extr ltps0 (dime ltps0) ;
  699. dep0 = extr ldep0 (dime ldep0) ;
  700. si idtcp1 ;
  701. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  702. ldep1 = prog dep0 (dep0 + ll1) ;
  703. sino ;
  704. ltps1 = prog (tps0 + dt1) ;
  705. ldep1 = prog (dep0 + ll1) ;
  706. fins ;
  707. ltps1 = ltps0 et ltps1 ;
  708. ldep1 = ldep0 et ldep1 ;
  709. fins ;
  710. evdep1 = evol vert manu temp ltps1 ldep1 ;
  711. tab1.evolution_deplacement = evdep1 ;
  712.  
  713. * Enregistrement donnees PASSE MAIL
  714. tab1.passes.nps1.maillage = maili1 ;
  715. tab1.passes.nps1.geometrie = mot 'MAIL' ;
  716. tab1.passes.nps1.instants = lti1 ;
  717. tab1.passes.nps1.vitesse = vdep1 ;
  718. tab1.passes.nps1.puissance = qtot1 ;
  719. tab1.passes.nps1.debit = debi1 ;
  720.  
  721. si (exis tab1 'LARGEUR_DE_PASSE') ;
  722. tab1.passes.nps1.largeur = tab1.largeur_de_passe ;
  723. fins ;
  724.  
  725. quit soudage ;
  726. * Fin option PASSE MAIL :
  727. fins ;
  728.  
  729. * Si mot2 ne correspond a aucune option connue, icas2 = 0 : erreur
  730. si (icas2 ega 0) ;
  731. erre '***** ERREUR : MOT option non reconnu.' ;
  732. quit soudage ;
  733. fins ;
  734.  
  735. * Fin option PASSE :
  736. fins ;
  737.  
  738. *----------------------------------------------------------------------*
  739. * Option DEPLA *
  740. *----------------------------------------------------------------------*
  741.  
  742. si (ega mot1 'DEPLA') ;
  743. icas1 = 3 ;
  744. *
  745. * Lecture des arguments de l'option :
  746. argu MOT2*'MOT' ;
  747.  
  748. * icas2 = indicateur sous-option realisee :
  749. icas2 = 0 ;
  750.  
  751. *----------------------------- DEPLA DROI -----------------------------*
  752. si (ega mot2 'DROI') ;
  753. icas2 = 1 ;
  754.  
  755. argu P1*'POINT' ;
  756.  
  757. * Deplacement relatif / absolu :
  758. imot3 = faux ; imot4 = faux ;
  759. irela1 = vrai ;
  760. repe b1 2 ;
  761. argu mot3/'MOT' ;
  762. si (non (exis mot3)) ; quit b1 ; fins ;
  763. si (ega mot3 'ABSO') ;
  764. imot3 = vrai ;
  765. irela1 = faux ;
  766. fins ;
  767. si (ega mot3 'VITE') ;
  768. imot4 = vrai ;
  769. argu vdep1*'FLOTTANT' ;
  770. fins ;
  771. fin b1 ;
  772.  
  773. * Trajectoire DEPLA DROI :
  774. si idebut1 ;
  775. P0 = tab1.point_de_depart ;
  776. * Deplacements relatifs :
  777. si irela1 ;
  778. P1 = P0 plus P1 ;
  779. fins ;
  780. mail1 = P0 droi 1 P1 ;
  781. mail1 = mail1 coul vert ;
  782. ll1 = mesu mail1 ;
  783. sino ;
  784. mail0 = tab1.trajectoire ;
  785. nbpts0 = nbno mail0 ;
  786. P0 = mail0 poin nbpts0 ;
  787. * Deplacements relatifs :
  788. si irela1 ;
  789. P1 = P0 plus P1 ;
  790. fins ;
  791. mail1 = P0 droi 1 P1 ;
  792. mail1 = mail1 coul vert ;
  793. ll1 = mesu mail1 ;
  794. si (nbpts0 > 1) ;
  795. mail1 = mail0 et mail1 ;
  796. fins ;
  797. fins ;
  798. tab1.trajectoire = mail1 ;
  799.  
  800. * Increment de temps DEPLA DROI :
  801. si (non imot4) ;
  802. vdep1 = tab1.vitesse_de_deplacement ;
  803. fins ;
  804. dt1 = ll1 / vdep1 ;
  805.  
  806. * Evolution puissance DEPLA DROI :
  807. qtot1 = 0. ;
  808. icoup1 = faux ;
  809. si idebut1 ;
  810. ltps1 = prog 0. dt1 ;
  811. lqtot1 = prog qtot1 qtot1 ;
  812. lqi1 = prog 1. 1. ;
  813. sino ;
  814. evqtot0 = tab1.evolution_puissance ;
  815. ltps0 = extr evqtot0 absc ;
  816. lqtot0 = extr evqtot0 ordo ;
  817. tps0 = extr ltps0 (dime ltps0) ;
  818. qtot0 = extr lqtot0 (dime lqtot0) ;
  819. * Si la puissance indiquee est differente de celle existante :
  820. si ((abs(qtot0-qtot1)) > (abs(1.e-4*qtot1))) ;
  821. icoup1 = vrai ;
  822. dtcp1 = tab1.temps_de_coupure ;
  823. * La duree de realisation du point de soudure doit etre sup. au temps de coupure :
  824. * si (dtcp1 >EG dt1) ;
  825. * erre '***** ERREUR : le temps de soudage est inferieur au temps de coupure.' ;
  826. * quit soudage ;
  827. * fins ;
  828. dt1 = dt1 + dtcp1 ;
  829. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  830. lqtot1 = prog qtot1 qtot1 ;
  831. lqi1 = prog 1. 1. ;
  832. sino ;
  833. ltps1 = prog (tps0 + dt1) ;
  834. lqtot1 = prog qtot1 ;
  835. lqi1 = prog 1. ;
  836. fins ;
  837. ltps1 = ltps0 et ltps1 ;
  838. lqtot1 = lqtot0 et lqtot1 ;
  839. fins ;
  840. evqtot1 = evol roug manu temp ltps1 qtot lqtot1 ;
  841. tab1.evolution_puissance = evqtot1 ;
  842.  
  843. * Evolution debit DEPLA DROI :
  844. debi1 = 0. ;
  845. ldebi1 = debi1 * lqi1 ;
  846. si (non idebut1) ;
  847. ldebi1 = (extr tab1.evolution_debit ordo) et ldebi1 ;
  848. fins ;
  849. evdebi1 = evol roug manu temp ltps1 debi ldebi1 ;
  850. tab1.evolution_debit = evdebi1 ;
  851.  
  852. * Evolution deplacement DEPLA DROI :
  853. si idebut1 ;
  854. ltps1 = prog 0. dt1 ;
  855. ldep1 = prog 0. ll1 ;
  856. sino ;
  857. evdep0 = tab1.evolution_deplacement ;
  858. ltps0 = extr evdep0 absc ;
  859. ldep0 = extr evdep0 ordo ;
  860. tps0 = extr ltps0 (dime ltps0) ;
  861. dep0 = extr ldep0 (dime ldep0) ;
  862. si icoup1 ;
  863. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  864. ldep1 = prog dep0 (dep0 + ll1) ;
  865. sino ;
  866. ltps1 = prog (tps0 + dt1) ;
  867. ldep1 = prog (dep0 + ll1) ;
  868. fins ;
  869. ltps1 = ltps0 et ltps1 ;
  870. ldep1 = ldep0 et ldep1 ;
  871. fins ;
  872. evdep1 = evol vert manu temp ltps1 ldep1 ;
  873. tab1.evolution_deplacement = evdep1 ;
  874.  
  875. quit soudage ;
  876. * Fin option DEPLA DROI :
  877. fins ;
  878.  
  879. *----------------------------- DEPLA CERC -----------------------------*
  880. si (ega mot2 'CERC') ;
  881. icas2 = 2 ;
  882.  
  883. * P1 est le centre du cercle, P2, l'extremite de la trajectoire
  884. argu P2*'POINT' P1*'POINT' N1/'ENTIER';
  885.  
  886. * Deplacement relatif / absolu :
  887. imot3 = faux ; imot4 = faux ;
  888. irela1 = vrai ;
  889. repe b1 2 ;
  890. argu mot3/'MOT' ;
  891. si (non (exis mot3)) ; quit b1 ; fins ;
  892. si (ega mot3 'ABSO') ;
  893. imot3 = vrai ;
  894. irela1 = faux ;
  895. fins ;
  896. si (ega mot3 'VITE') ;
  897. imot4 = vrai ;
  898. argu vdep1*'FLOTTANT' ;
  899. fins ;
  900. fin b1 ;
  901.  
  902. * Trajectoire DEPLA CERC :
  903. si idebut1 ;
  904. P0 = tab1.point_de_depart ;
  905. * Deplacements relatifs :
  906. si irela1 ;
  907. P1 = P0 plus P1 ;
  908. P2 = P0 plus P2 ;
  909. fins ;
  910. * Par defaut, N1 calcule pour avoir angle de 5 deg.
  911. si (non (exis N1)) ;
  912. V1 = P0 moin P1 ;
  913. V2 = P2 moin P1 ;
  914. V1 = V1 / (norm V1) ;
  915. V2 = V2 / (norm V2) ;
  916. N1 = (acos (psca V1 V2)) / 5. ;
  917. N1 = maxi (lect (enti N1) 1) ;
  918. fins ;
  919. mail1 = CERC N1 P0 P1 P2 ;
  920. mail1 = mail1 coul vert ;
  921. ll1 = mesu mail1 ;
  922. sino ;
  923. mail0 = tab1.trajectoire ;
  924. nbpts0 = nbno mail0 ;
  925. P0 = mail0 poin nbpts0 ;
  926. * Deplacements relatifs :
  927. si irela1 ;
  928. P1 = P0 plus P1 ;
  929. P2 = P0 plus P2 ;
  930. fins ;
  931. si (non (exis N1)) ;
  932. V1 = P0 moin P1 ;
  933. V2 = P2 moin P1 ;
  934. V1 = V1 / (norm V1) ;
  935. V2 = V2 / (norm V2) ;
  936. N1 = (acos (psca V1 V2)) / 5. ;
  937. N1 = maxi (lect (enti N1) 1) ;
  938. fins ;
  939. mail1 = CERC N1 P0 P1 P2 ;
  940. mail1 = mail1 coul vert ;
  941. ll1 = mesu mail1 ;
  942. si (nbpts0 > 1) ;
  943. mail1 = mail0 et mail1 ;
  944. fins ;
  945. fins ;
  946. tab1.trajectoire = mail1 ;
  947.  
  948. * Increment de temps DEPLA CERC :
  949. si (non imot4) ;
  950. vdep1 = tab1.vitesse_de_deplacement ;
  951. fins ;
  952. dt1 = ll1 / vdep1 ;
  953.  
  954. * Evolution puissance DEPLA CERC :
  955. qtot1 = 0. ;
  956. icoup1 = faux ;
  957. si idebut1 ;
  958. ltps1 = prog 0. dt1 ;
  959. lqtot1 = prog qtot1 qtot1 ;
  960. lqi1 = prog 1. 1. ;
  961. sino ;
  962. evqtot0 = tab1.evolution_puissance ;
  963. ltps0 = extr evqtot0 absc ;
  964. lqtot0 = extr evqtot0 ordo ;
  965. tps0 = extr ltps0 (dime ltps0) ;
  966. qtot0 = extr lqtot0 (dime lqtot0) ;
  967. * Si la puissance indiquee est differente de celle existante :
  968. si ((abs(qtot0-qtot1)) > (abs(1.e-4*qtot1))) ;
  969. icoup1 = vrai ;
  970. dtcp1 = tab1.temps_de_coupure ;
  971. * La duree de realisation du point de soudure doit etre sup. au temps de coupure :
  972. * si (dtcp1 >EG dt1) ;
  973. * erre '***** ERREUR : le temps de soudage est inferieur au temps de coupure.' ;
  974. * quit soudage ;
  975. * fins ;
  976. dt1 = dt1 + dtcp1 ;
  977. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  978. lqtot1 = prog qtot1 qtot1 ;
  979. lqi1 = prog 1. 1. ;
  980. sino ;
  981. ltps1 = prog (tps0 + dt1) ;
  982. lqtot1 = prog qtot1 ;
  983. lqi1 = prog 1. ;
  984. fins ;
  985. ltps1 = ltps0 et ltps1 ;
  986. lqtot1 = lqtot0 et lqtot1 ;
  987. fins ;
  988. evqtot1 = evol roug manu temp ltps1 qtot lqtot1 ;
  989. tab1.evolution_puissance = evqtot1 ;
  990.  
  991. * Evolution debit DEPLA CERC :
  992. debi1 = 0. ;
  993. ldebi1 = debi1 * lqi1 ;
  994. si (non idebut1) ;
  995. ldebi1 = (extr tab1.evolution_debit ordo) et ldebi1 ;
  996. fins ;
  997. evdebi1 = evol roug manu temp ltps1 debi ldebi1 ;
  998. tab1.evolution_debit = evdebi1 ;
  999.  
  1000. * Evolution deplacement DEPLA CERC :
  1001. si idebut1 ;
  1002. ltps1 = prog 0. dt1 ;
  1003. ldep1 = prog 0. ll1 ;
  1004. sino ;
  1005. evdep0 = tab1.evolution_deplacement ;
  1006. ltps0 = extr evdep0 absc ;
  1007. ldep0 = extr evdep0 ordo ;
  1008. tps0 = extr ltps0 (dime ltps0) ;
  1009. dep0 = extr ldep0 (dime ldep0) ;
  1010. si icoup1 ;
  1011. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  1012. ldep1 = prog dep0 (dep0 + ll1) ;
  1013. sino ;
  1014. ltps1 = prog (tps0 + dt1) ;
  1015. ldep1 = prog (dep0 + ll1) ;
  1016. fins ;
  1017. ltps1 = ltps0 et ltps1 ;
  1018. ldep1 = ldep0 et ldep1 ;
  1019. fins ;
  1020. evdep1 = evol vert manu temp ltps1 ldep1 ;
  1021. tab1.evolution_deplacement = evdep1 ;
  1022.  
  1023. quit soudage ;
  1024. * Fin option DEPLA CERC :
  1025. fins ;
  1026.  
  1027. *----------------------------- DEPLA MAIL -----------------------------*
  1028. * Sous-option MAIL :
  1029. si (ega mot2 'MAIL') ;
  1030. icas2 = 3 ;
  1031.  
  1032. argu mail1*'MAILLAGE' ;
  1033. eltyp1 = mail1 elem type ;
  1034. imax1 = 0 ;
  1035. si (exis eltyp1 'SEG2') ; imax1 = imax1 + 1 ; fins ;
  1036. si (exis eltyp1 'SEG3') ; imax1 = imax1 + 1 ; fins ;
  1037. si ((dime eltyp1) > imax1) ;
  1038. erre '***** ERREUR : le maillage doit etre compose de SEG2 ou de SEG3.' ;
  1039. fins ;
  1040. ll1 = mesu mail1 ;
  1041.  
  1042. * Trajectoire DEPLA MAIL :
  1043. si idebut1 ;
  1044. P1 = mail1 poin 1 ;
  1045. tab1.point_de_depart = P1 ;
  1046. sino ;
  1047. mail0 = tab1.trajectoire ;
  1048. nbpts0 = nbno mail0 ;
  1049. P0 = mail0 poin nbpts0 ;
  1050. P1 = mail1 poin 1 ;
  1051. si (P1 neg P0) ;
  1052. erre '***** ERREUR : MAILLAGE incompatible.' ;
  1053. quit soudage ;
  1054. fins ;
  1055. si (nbpts0 > 1) ;
  1056. mail1 = mail1 coul vert ;
  1057. mail1 = mail0 et mail1 ;
  1058. fins ;
  1059. fins ;
  1060. tab1.trajectoire = mail1 ;
  1061.  
  1062. * Increment de temps DEPLA MAIL :
  1063. argu mot4/'MOT' ;
  1064. si (exis mot4) ;
  1065. si (ega mot4 'VITE') ;
  1066. argu vdep1*'FLOTTANT' ;
  1067. sino ;
  1068. erre '***** ERREUR : on attend le mot-cle VITE.' ;
  1069. quit soudage ;
  1070. fins ;
  1071. sino ;
  1072. vdep1 = tab1.vitesse_de_deplacement ;
  1073. fins ;
  1074. dt1 = ll1 / vdep1 ;
  1075.  
  1076. * Evolution puissance DEPLA MAIL :
  1077. qtot1 = 0. ;
  1078. icoup1 = faux ;
  1079. si idebut1 ;
  1080. ltps1 = prog 0. dt1 ;
  1081. lqtot1 = prog qtot1 qtot1 ;
  1082. lqi1 = prog 1. 1. ;
  1083. sino ;
  1084. evqtot0 = tab1.evolution_puissance ;
  1085. ltps0 = extr evqtot0 absc ;
  1086. lqtot0 = extr evqtot0 ordo ;
  1087. tps0 = extr ltps0 (dime ltps0) ;
  1088. qtot0 = extr lqtot0 (dime lqtot0) ;
  1089. * Si la puissance indiquee est differente de celle existante :
  1090. si ((abs(qtot0-qtot1)) > (abs(1.e-4*qtot1))) ;
  1091. icoup1 = vrai ;
  1092. dtcp1 = tab1.temps_de_coupure ;
  1093. * La duree de realisation du point de soudure doit etre sup. au temps de coupure :
  1094. * si (dtcp1 >EG dt1) ;
  1095. * erre '***** ERREUR : le temps de soudage est inferieur au temps de coupure.' ;
  1096. * quit soudage ;
  1097. * fins ;
  1098. dt1 = dt1 + dtcp1 ;
  1099. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  1100. lqtot1 = prog qtot1 qtot1 ;
  1101. lqi1 = prog 1. 1. ;
  1102. sino ;
  1103. ltps1 = prog (tps0 + dt1) ;
  1104. lqtot1 = prog qtot1 ;
  1105. lqi1 = prog 1. ;
  1106. fins ;
  1107. ltps1 = ltps0 et ltps1 ;
  1108. lqtot1 = lqtot0 et lqtot1 ;
  1109. fins ;
  1110. evqtot1 = evol roug manu temp ltps1 qtot lqtot1 ;
  1111. tab1.evolution_puissance = evqtot1 ;
  1112.  
  1113. * Evolution debit DEPLA MAIL :
  1114. debi1 = 0. ;
  1115. ldebi1 = debi1 * lqi1 ;
  1116. si (non idebut1) ;
  1117. ldebi1 = (extr tab1.evolution_debit ordo) et ldebi1 ;
  1118. fins ;
  1119. evdebi1 = evol roug manu temp ltps1 debi ldebi1 ;
  1120. tab1.evolution_debit = evdebi1 ;
  1121.  
  1122. * Evolution deplacement DEPLA MAIL :
  1123. si idebut1 ;
  1124. ltps1 = prog 0. dt1 ;
  1125. ldep1 = prog 0. ll1 ;
  1126. sino ;
  1127. evdep0 = tab1.evolution_deplacement ;
  1128. ltps0 = extr evdep0 absc ;
  1129. ldep0 = extr evdep0 ordo ;
  1130. tps0 = extr ltps0 (dime ltps0) ;
  1131. dep0 = extr ldep0 (dime ldep0) ;
  1132. si icoup1 ;
  1133. ltps1 = prog (tps0 + dtcp1) (tps0 + dt1) ;
  1134. ldep1 = prog dep0 (dep0 + ll1) ;
  1135. sino ;
  1136. ltps1 = prog (tps0 + dt1) ;
  1137. ldep1 = prog (dep0 + ll1) ;
  1138. fins ;
  1139. ltps1 = ltps0 et ltps1 ;
  1140. ldep1 = ldep0 et ldep1 ;
  1141. fins ;
  1142. evdep1 = evol vert manu temp ltps1 ldep1 ;
  1143. tab1.evolution_deplacement = evdep1 ;
  1144.  
  1145. quit soudage ;
  1146. * Fin option DEPLA MAIL :
  1147. fins ;
  1148.  
  1149. *---------------------------- DEPLA COUCHE ----------------------------*
  1150. * Sous-option MAIL :
  1151. si (ega mot2 'COUCHE') ;
  1152. icas2 = 4 ;
  1153. tab1.depla_couche = vrai ;
  1154.  
  1155. * Option PAUSE :
  1156. argu mot3/'MOT' ;
  1157. si (exis mot3) ;
  1158. si (ega mot3 'PAUSE') ;
  1159. argu flot1*'FLOTTANT' ;
  1160. tab1.depla_pause = flot1 ;
  1161. fins ;
  1162. fins ;
  1163.  
  1164. * Fin option DEPLA COUCHE :
  1165. fins ;
  1166.  
  1167. si (icas2 ega 0) ;
  1168. erre '***** ERREUR : MOT option non reconnu.' ;
  1169. quit soudage ;
  1170. fins ;
  1171.  
  1172. * Fin option DEPLA :
  1173. fins ;
  1174.  
  1175. *----------------------------------------------------------------------*
  1176. * FIN *
  1177. *----------------------------------------------------------------------*
  1178.  
  1179. * MOT1 n'est pas un des mots-cles des options de la procedure :
  1180. si (icas1 ega 0) ;
  1181. erre '***** ERREUR : MOT-cle option SOUDAGE non reconnu.' ;
  1182. quit soudage ;
  1183. fins ;
  1184.  
  1185. FINP ;
  1186.  
  1187.  
  1188.  

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