Подпрограммы ЧПУ
Использование при программировании обработки деталей в САП СПД ЧПУ подпрограмм — один из эффективных путей сокращения объема исходной информации. Как уже указывалось, операция, описанная подпрограммой, часто называется макрооперацией, а массив информации в программе САП — макросом.
Подпрограмма — набор инструкций, в которых некоторые параметры, называемые аргументами, могут не уточняться при определении подпрограммы. Выполнение вызывается особой инструкцией, которая устанавливает значение аргументов. Подпрограмма выделяется двумя специальными инструкциями, из которых одна находится в начале, а другая — в конце подпрограммы:
Идентификатор = МАСИО/СПИСОК АРГУМЕНТОВ
: тело подпрограммы
: (различная информация, включающая
: геометрические инструкции, инструкции движения,
: арифметические операции и т. д.) : TERMAC
Инструкции, входящие в подпрограмму, кроме инструкции MACRO, могут иметь метку.
СПИСОК АРГУМЕНТОВ состоит из набора элементов, отделенных запятыми. Каждый элемент может быть идентификатором (неиндексированным), переменной или инструкцией присваивания. Идентификаторы, определяемые в списке аргументов в инструкции MACRO, принимаются во внимание только при выполнении подпрограммы и не зависят от основной программы, например:
MACl=MACRO/A,В,С
MAC2=MACRO/A=W,В=20, С=30
TERMAC — инструкция определения конца подпрограммы — является последней. Она может иметь метку.
Инструкция вызова подпрограммы определяется главным словом CALL и имеет формат: CALL/ИДЕНТИФИКАТОР ПОДПРОГРАММЫ, СПИСОК АРГУМЕНТОВ. В списке аргументов инструкции словом CALL указываются только те аргументы, которым не присвоено значение при определении программы, например:
CALL/MAC1
CALL/MAC2,А=5,В=10,С=12
CALL/MAC3,А=10,FIG1=P(37),MOfl=XSMALL
Для сохранения подпрограмм с заданными идентификаторами в системном диске (в памяти или в библиотеке) используют инструкцию STORE. Формат инструкции:
STORE/ИДЕНТИФИКАТОР ПОДПРОГРАММЫ. Подпрограммы многократно используются в основных программах без предварительного описания.
Если необходимо удалить подпрограммы, хранящиеся в библиотеке по команде STORE, применяют инструкцию удаления (стирания) подпрограмм. Формат инструкции:
DELETE/ИДЕНТИФИКАТОР ПОДПРОГРАММЫ, ALL.
Пример. Вариант использования подпрограммы в основной программе обработки. Пусть необходимо обработать четыре паза одинаковой формы и разных размеров (рис. 10.27). В центре каждого паза условно показано предварительно сделанное отверстие для ввода фрезы. Толщина детали 20 мм; диаметр фрезы для обработки пазов 18 мм. На рисунке показан отдельно вынесенный паз, изображенный в системе координат X'0'Y', оси которой проходят через оси симметрии паза. Программа обработки детали имеет вид:
1 PARTNO/PR5
2 GLPRNT
3 FROM/0,0,150
4 M1=MATRIX/TRANSL,60,60,О
5 M2=MATRIX/TRANSL,60,130,0
6 M3=MATRIX/TRANSL,60,155,0
7 M4=MATRIX/TRANSL,160,55,0
6 PIOO^POINT/0,0, 150
9 MACl=MACRO/RD, DL, Fl, F2,RF
1 Pl=POINT/RD,0
2 P2=POINT/-RD. O
3 Cl=CIRCLE/0,0,RD
4 C2=CIRCLE/-(DL/2-RD),0,RD
Рис. 10.27. Пример обработки повторяющихся геометрических элементов с использованием подпрограмм и матриц преобразования координат |
5 C3=CIRCLE/DL/2-RD,0,RD
6 Ll=LINE/0,-RD,20,-RD
7 L2=LINE/0,RD,20,RD
8 CONT1=CONTUR/P1,CLW, CI,LI,CLW, C2,
8 L2,CLW, C3,LI,CLW, CI,P2
9 GODLTA/O,0,-150,500
10 GODLTA/(bL/2-RD-l),0,0,Fl
11 GODLTA/-(DL/2-RD-1),0,0,F2
12 GODLTA/-(DL/2-RD-1),0,0,F1
13 GODLTA/f)L/2/-RD-3),0,0,F2
14 FEDRAT/Fl, MPM
15 CUTCOM/RIGHT,RF
16 CUTCOM/8HO
17 ACT/CONTl
18 CUTCOM/9110
19 GOTO/O,0,0
20 GODLTA/O,0,150,500
21 TERMAC
22 TRACUT/Ml
23 GOTO/PIOO,1200
24 CALL/MAC1,RD=14,DL=60,F1=80,
24 F2=500,RF=9
25 TRACUT/NOMORE
26 TRACUT/M2
27 GOTO/PIOO,1200
28 CALL/MAC1,RD=12,DL=40,Fl=80,
28 F2=500,RF=9
29 TRACUT/NOMORE
30 TRACUT/M3
31 GOTO/PIOO,1200
32 CALL/MAC1,RD=11,DL=30,F1=80,
32 F2=500,RF=9
33 TRACUT/NOMORE
34 TRACUT/M4
35 GOTO/PIOO,1200
36 CALL/MAC1,RD=15,DL=65,Fl=500,,
36 RF=9
37 TRACUT/NOMORE
38 GOTO/O,0Д50,1200
39 FINI
В первых девяти строках описаны матрицы преобразования координат (параллельное смещение осей координат в центр симметрии каждого из пазов), указана исходная точка Р100 (на рис. не показана) с координатой 2=150 мм, задана подпрограмма МАС1, в которой вместо ряда численных значений используются аргументы: RD — радиус паза; DL — длина паза; F1 — значение рабочей подачи; F2 — значение ускоренной подачи; RF — радиус фрезы.
Новыми строками 1 — 7 определяется геометрия паза с помощью аргументов. Так,, точка Р1 задается координатами x = RD, у = 0, точка Р2 — координатами х=—RD, У — 0. Прямая L1 задана двумя точками. Координаты первой точки х = 0, у=—RD, второй — * = 20 мм, у= — RD. Величина * для второй точки может быть принята любой в пределах длины паза. Аналогично задана и прямая L2. Для контура принято, что центры окружностей С2 и СЗ размещены в точках, координата х которых определяется расчетом.
Строка 8 определяет контур CONT1, который описывает геометрию траектории центра инструмента. Начало контура — точка Р1, далее движение происходит по дуге окружности С1, по прямой L1, по дуге С2, но прямой L2, по дуге СЗ, по прямой L1 и заканчивается приходом в точку Р2 по дуге окружности С2.
Строка 9 определяет позиционирование фрезы в центр паза. Строки 10 и 11 задают движение инструмента вправо на рабочей подаче F1 и возврат в точку 0 на ускоренной подаче F2. Строки 12, 13 определяют движение инструмента влево и возврат. Строки 14—16 задают условия обработки контура. Строка 17 определяет движение инструмента по контуру, а 18—21 завершают цикл макрооперации.
Строки 22—39 — продолжение основной программы. В строках 24, 28, 32, 36 происходит вызов подпрограммы МАС1 (обработка паза) с присвоением конкретных численных значений аргументам, входящим в подпрограмму. Перед каждым вызовом подпрограммы в строках 22, 26, 30, 34 вводятся в действие ранее описанные матрицы преобразования координат.
Как видно из этого примера, за счет использования подпрограммы МАС1 значительно сокращается объем геометрической и технологической информации, которая требуется для описания обработки пазов.