Увага! Всі конференції починаючи з 2014 року публікуються на новому сайті: conferences.neasmo.org.ua
Наукові конференції
 

АВТОМАТИЗОВАНЕ ПРОЕКТУВАННЯ КЕРУЮЧОЇ ПРОГРАМИ ПРИ ГРАВIРУВАННI НА ВЕРСТАТАХ З ЧПК

Автор: 
Лілія Федисів, Роман Прокопів (Дрогобич)

Технічний прогрес сьогодні тісно пов’язаний з широким впровадженням у виробництво засобів обчислювальної техніки. На машинобудівних заводах повсюди використовуються обладнання ЧПК. На їх основі створюються виробничі системи та дільниці, що керуються від ЕОМ. Життя вимагає переходу від автономно працюючих верстатів з ЧПК до роботизованих технологічних комплексів (РТК), гнучких виробничих систем (ГВС) та гнучких автоматизованих виробництв, працюючих за принципом «безлюдної технології».

Пропонуємо Вашій увазі варіант використання мови програмування BASIC для автоматизованого проектування керуючої програми при гравіруванні на верстатах з ЧПК.

Фрагменти програми для організації меню

444 cls:screen 0:color 3,0

i = 60:j = 50: l = 30: k = 676: m = 50: ok = 0

dim a$(i), nl(l), c$(k), b$(j), ol$(m), d(i, j)

m$(1) = " 1. розмiри поля таблицi"

m$(2) = " 2. розмiри лiтер"

m$(3) = " 3. iнтервали мiж лiтерами,словами та фразами"

m$(4) = " 4. введення тексту з датою в один рядок"

m$(6) = " 6. розрахунок розмiрiв рядкiв з врахуванням масштабу "

m$(8) = " 8. компоновка"

m$(9) = " 9. вивiд у файл 'tabl.iso'"

m$(10) = "10. вихiд"

5 cls : color 3, 0

locate 5, 25: print "виберiть пункт меню: "

for m = 1 to 10

locate (7 + m), 11: print m$(m)

next

color 2, 0: print : input "введiть вибiр "; k

on k goto 10, 15, 30, 40, 60, 70, 50, 80, 90, 344

rem розмiри рамки

10 cls: color 12, 0: locate 12, 16

input "введiть довжину 'х' i ширину 'у' поля рамки "; xr, yr

'print xr, yr: stop

color 5, 0: goto 5

rem розмiри лiтер

15 cls : color 9, 0

locate 10, 20: input "введiть ширину лiтер <11.4>"; l

if l = 0 then hl = 11.4 else hl = l

locate 11, 20: input "введiть висоту лiтер <21.0>"; l

if l = 0 then hh = 21 else hh = l

locate 12, 20: input "введiть ширину 'широких' лiтер <18.6>"; l

if l = 0 then hm = 18.6 else hm = l

' print hl, hh, hm: stop

goto 5

фрагмент програми для формування текстового файла з керуючою програмою для верстату з ЧПК.

rem ? using "####.##";yd(1),yd(2),yd(3),yd(4),kd:stop

333 cls : locate 12, 12: color 9, 0

print "розрахунки завершено, виводити у файл 'тabl.iso' ?"

line input ; p$

if p$ = "" or p$ = " " then 5 else goto 5

90 rem вивiд у файл 'tabl.iso'

cls : locate 10, 12: color 2, 0

print "формується програма для верстату лт260-мф3"

file$ = "tabl.iso"

fil$ = "alf.dat"

fl$ = "pidpr.iso"

dop$ = "filtr.dat"

open file$ for append as 1

open fl$ for append as 3

open dop$ for append as #5

close #5

c = 1

фрагмент програми для формування тексту керуючої програми при гравiруваннi на верстатах з чпк

rem вивiд тексту ********************************************

cls : n = 20: locate 10, 1: c = 1

for i = 1 to g

if i = nrd and ok = 1 then 131

print #1, "(";

print #1, a$(i);

print #1, ")"':stop

gosub 200

print #1, "g0g54g90g60x0s1800m3"

gosub 200

print #1, "g0y";

print #1, using "#####"; y(i)

gosub 200

print #1, "g0g43d01z200"

gosub 200

print #1, "g0g90x";

if x(i) < -9999 then print #1, using "######"; x(i): goto 109

print #1, using "#####"; x(i)

109 n(i) = len(a$(i)) 'кiлькiсть символiв у рядку ************

print i, a$(i), tab(50); n(i)

for j = 1 to n(i)

b$(j) = mid$(a$(i), j, 1)

108 open fil$ for input as 2

for k = 1 to 677

if eof(2) then 116

line input #2, c$(k)':?:?left$(c$(k),1),b$(j)

if left$(c$(k), 1) = "n" then 120

if left$(c$(k), 1) = b$(j) then 110 else 120

110 gosub 200

print #1, "x";

if b$(j - 1) = " " then 600

if b$(j - 1) = "@" then 601

if asc(b$(j)) > 47 and asc(b$(j)) < 58 then 111

if b$(j) = "i" then 111

if b$(j) = "x" then 111

if b$(j) = "v" then 111

if b$(j) = "-" then 111

rem ? ol$(m),b$(j)

if b$(j) = ol$(m) then 116

next m

587 close #4 '? 587

open dop$ for append as 5

print #5, b$(j): c = c + 1

close #5

653 print #3, c$

900 k = k + 1

line input #2, c$(k)

print #3, c$(k)

if right$(c$(k), 3) = "m17" then 116 else 900

120 next k

116 close #2

130 next j

gosub 200

print #1, "g21"

gosub 200

print #1, "m9"

gosub 200

print #1, "g0g90g49z0m5"

gosub 200

print #1, "l99"

gosub 200

print #1, "m0"

131 next i

if ok = 0 then 54

 

Примітка:

У зв’язку з обмеженням кількості сторінок статті розмістити всю інформацію не вдалося. Для отримання детальнішої інформації звертатися на email prokopivr@ukr.net.