Автор:
Лілія Федисів, Роман Прокопів (Дрогобич)
Технічний прогрес сьогодні тісно пов’язаний з широким впровадженням у виробництво засобів обчислювальної техніки. На машинобудівних заводах повсюди використовуються обладнання ЧПК. На їх основі створюються виробничі системи та дільниці, що керуються від ЕОМ. Життя вимагає переходу від автономно працюючих верстатів з ЧПК до роботизованих технологічних комплексів (РТК), гнучких виробничих систем (ГВС) та гнучких автоматизованих виробництв, працюючих за принципом «безлюдної технології».
Пропонуємо Вашій увазі варіант використання мови програмування 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.