Заглушка.ру

Кое-что о GPP (часть 3)

Назад

Глава 5

Блочные функции

В программе постпроцессора (файле exf) допускается использовать функции, которые используют данные траектории инструмента созданной системой Cimatron NC. Эти функции формируются набором операторов, переменных, констант и прочих условий. Иногда функция должна быть выполнена не внутри блока, а перед ним для сохранения/изменения значений или условий. Каждая функция должна заканчиваться точкой с запятой (;).

Доступные блочные функции:

1. KEEP Сохраняет величины для последующего использования.
2. OUTPUT Посылает переменные, строки, прочие константы, и управляющие символы (например, NEW_LINE_IS) в выходной файл.
3. PRINT, PRINT1…PRINT10, PRINT0 Посылает переменные, строки и прочие константы на экран и в файл с расширением msg или файлы с заданным расширением (заданы в файле def).
4. Assignment (=) Оператор присваивания значения переменной.
5. IF_SET, ELSE, END_IF Оператор условия. Функция (например, OUTPUT) будет выполнена, если условие верно. Если же условие не верно, то выполняется оператор после ELSE.
6. IF_EXISTS, ELSE, END_IF Этот оператор проверяет наличие параметров TOOL/CYCLES заданных пользователем.
7. REPEAD, UNTIL Многократное выполнение функций пока условие оператора истинное.
8. SET_ON, SET_OFF Устанавливает статус модальной переменной на 'on' или 'off'.
9. CALL Вызывает внешнюю программу на выполнение.
10. CONVERT Преобразование формата переменной.
11. CUT_FILE Делим файл и вывод продолжается в новый файл если значение данной переменной SET_ON.

Ниже эти функции рассмотрены более подробно.

5.1 KEEP

Пример: FEED:

KEEP MCH_FEED;

Функция получает и сохраняет значение переменной. Суть в том, что в системе имеется множество переменных, но активизируются (т.е. получают значения) только те которые вам необходимы и это выполняется данной функцией. Иногда даже если на первый взгляд вам в данный момент переменная не нужна все же желательно ее активизировать, для последующего спользования. В функции можете использовать список переменных

Параметр ALL_VAR при использовании в данной функции получает все системные переменные и переменные пользователя.

5.2 OUTPUT

Функция выводит переменные, строки, спец.символы в выходной файл. Когда переменная послана на вывод и если она модальная ее статус устанавливается на 'off'.

Пример: TOOL CHANGE:

OUTPUT ! TOOL_NAME;

В примере в функции отрабатывается спец.символ и переменная TOOL_NAME. Спец.символ определяет параметр NEW_LINE_IS.

В функции можете использовать список переменных.

5.3 PRINT

Функция PRINT действует аналогично OUTPUT.

Эта функция использует те же параметры и также меняет модальный статус переменной. Однако функция PRINT посылает данные на экран и в файл с именем <part name>.<tool path 1>. msg.

Переменные, которые должны быть выведены функцией PRINT, не должны использоваться в функции OUTPUT. В функции можете использовать список переменных.

Пример: TOOL CHANGE:

OUTPUT ! TOOL_NAME;

PRINT "Milling tool “ TOOL_NAME “is installed.”;

В приведенном примере выше примере после вывода переменной TOOL_NAME в выходной файл на экране отобразится сообщение "Milling tool " TOOL_NAME "is installed." и будет создан файл msg с соответствующим сообщением. Но это сработает, если переменная TOOL_NAME объявлена как немодальная. Если переменная TOOL_NAME модальная то после вывода ее значения в выходной файл, ее статус изменится на 'off' и она будет проигнорирована в функции PRINT.

Аналогично функции PRINT работают и функции PRINT1…PRINT10, за исключением того что информация выводиться не в файл с расширением msg, а в файлы <part name>.<tool path 1>.<extension>, где <extension> расширение, заданное в настройках файла def (по умолчанию pr1…pr10).

Функция PRINT0 аналогична функции PRINT за исключением того, что посылает данные всегда в файл print0.txt в текущем каталоге.

5.4 Оператор присваивания

Знак равенства используется для присваивания значения переменной. Знак равенства должен быть записан с пробелами до и после него. Только один оператор присваивания должен быть записан в строке.

Пример1:HVAL = CURR_TOOL + 50 ;

Пример2:SEQUENCE = SEQUENCE + SEQINCR ;

Пример3: X = "A string of_characters.";

В примере 1 обычное арифметическое действие и его результат присваивается переменной HVAL.

В примере 2 значение переменной SEQUENCE увеличивается на значение переменной SEQINCR.

В примере 3 переменная Х принимает значение символьной строки, но без пробелов (т.е. "Astringof_characters").

Когда в результате операции присваивания модальная переменная изменяет значение, ее статус изменяется на ‘on’. Тем не менее, если же значение все-таки остается неизменным статус не изменяется.

Примечание:
Все переменные стоящие справа от знака равенства должны быть одного формата.
Пользователь сам несет ответственность за всевозможные коллизии в математических операциях, как например деление на ноль.

Для исключения деления на ноль можно использовать оператор IF_SET.

Пример: IF_SET (X _GT_ O) Y = A/X ;

END_IF ;

5.5 IF_SET (Оператор условия)

Иногда выполнения операции зависит от, того имеет, ли статус переменной значение 'on', т.е. обновлена переменная или нет или от некоего логического условия. Эти условия могут проверяться оператором IF_SET.

Также данный оператор предусматривает альтернативный вариант действия в случае не выполнения основного условия, например статус модальной переменной 'off' или невыполнения логического условия. Это осуществляется параметром ELSE.

Оператор IF_SET должен заканчиваться параметром END_IF.

Пример1: IF_SET (X_CURPOS) OUTPUT $ "X" X_CURPOS ; END_IF ;

Пример2: IF_SET (X_CURPOS) OUTPUT $ "X" X_CURPOS ;

ELSE X = X + 1 ;

END_IF ;

В примере 1 если переменная X_CURPOS имеет статус 'on' будет осуществлена команда вывода OUTPUT, если статус переменной X_CURPOS 'off' то вывод не будет выполнен. Во втором случае если статус переменной 'off' то выполниться утверждение ELSE, т.е. Х увеличиться на 1.

Любое из приведенных ниже логических условий может использоваться в операторе IF_SET:

(переменная _EQ_ переменная) ДА, если две переменные идентичны.
(переменная _NE_ переменная) ДА, если две переменные не идентичны.
(переменная _GT_ переменная) ДА, если первое число больше второго.
(переменная _LT_ переменная) ДА, если первое число меньше второго.
(переменная _LE_ переменная) Да, если первое число меньше или равно второму.
(переменная _GE_ переменная) Да, если первое число больше или равно второму.

Примечание:
Сравнение символьных переменных не поддерживается. Если же надо проверить символьную переменную, то ее надо сравнивать непосредственно со строкой текста. Например: IF_SET (FILE _EQ_ "any_file"). При сравнение строк учитывается регистр и пробелы.
Не рекомендуется производить сравнивание переменных различных форматов.

Пример: IF_SET (X _EQ_ Y)

OUTPUT \J “X & Y = “ X_CURPOS ;

ELSE

OUTPUT \J “X = “ X_CURPOS “ Y = “ Y_CURPOS ;

END_IF ;

В примере если две перемененные X и Y равны( например, 1234), то вывод будет выглядеть так: "X&Y=1234" . Если не равны (например, 1234 и 45), то вывод будет выглядеть так: "X=1234 Y=45".

Сравнение производиться в два шага:

Шаг первый:

Контроль на равенство переменных.

Это выполняется для всех логических условий: EQ, NE, GT, LT, GE, LE

Сравнение двух переменных:

Две строки сравниваются непосредственно. При сравнении двух переменных различных форматов результат может быть неожиданным.

Пример: DFPOST FORMAT:

USER_1: 3,3,3,3,NO,NO,....

USER_2: 4,4,4,4,NO,NO,....

.exf file:

FORMAT (USER_1) A ;

FORMAT (USER_2) B ;

A = 1.123 ;

B = 1.123 ;

IF_SET (A _EQ_ B)

OUTPUT \J A " равно" B ;

ELSE

OUTPUT \J A " НЕ равно" B ;

END_IF ;

При компиляции файла exf будет выдано следующие предупреждение, сообщающее о том, что в операторе сравнения используются переменные различных форматов и результат может быть не корректным:

***WARNING IN LINE 18
IF_SET (A _EQ_ B)
MIXED FORMATS ARE USED IN ONE EXPRESSION
RESULT MAY BE INCORRECT.

Выходной файл будет выглядеть так: 1.123 НЕ равно 1.123.

Сравнение переменной с числом:

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

Шаг второй:

Если переменные не равны, то они сравниваются с двойной точностью для определения большего из них.

Операторы IF_SET могут содержать другие входящие операторы IF_SET, как в примерах ниже:

Пример:

IF_SET IF_SET

IF_SET

IF_SET

END_IF

END_IF

END_IF END_IF

5.6 IF_EXIST (Оператор условия)

Оператор проверяет, существует ли заданная переменная TOOLS/CYCLES и корректна ли она описана в файле user.def.

Пример:

IF_EXISTS ($MAXSPEED)

IF_SET (SPIN_SPEED _GT $MAXSPEED)

SPIN_SPEED = $MAXSPEED;

END_IF;

END_IF;

5.7 REPEAT, UNTIL (Циклическое выполнение команд)

Если есть необходимость выполнить команду или группу команд многократно пока какое-либо условие выполняется, то используйте оператор REPEAT…UNTIL.

Команды записываются после слова REPEAT, условие выполнения команд записывается после слова UNTIL. В качестве условий могут использоваться логические условия описанные в операторе IF_SET. В случае использования переменной команды будут выполнены при статусе переменной 'on'.

Пример:CIRCULAR MOTION:

IND = 0 ;

XNEW = X_CURPOS ;

YNEW = Y_CURPOS ;

REPEAT

IND = IND + 1 ;

XNEW = XNEW + XDEL ;

YNEW = YNEW + YDEL ;

OUTPUT $ LIN_MOV ;

IF_SET (XNEW) OUTPUT .X. XNEW ; END_IF ;

IF_SET (YNEW) OUTPUT .Y. YNEW ; END_IF ;

UNTIL (IND_EQ_NSEG) ;

В примере команды будут выполняться пока переменна IND не сравняется с NSEG.

5.8 SET_ON и SET_OFF (смена статуса 'on/off')

Иногда приходиться принудительно изменять статус ‘on/off’ переменной. Например, переменную надо послать в выходной файл, даже если ее значение не изменилось с тех пор, как она была послана в выходной файл последний раз (т.е. статус все еще 'off'). SET_ON служит для установки статуса 'on', SET_OFF для установки статуса 'off'.Вы можете использовать список переменных в операторе.

Можете использовать параметр ALL_VAR для смены статуса у всех переменных сразу.

Пример1:SET_ON X_ENDPT Y_ENDPT Z_ENDPT ;

Пример2:SET_ON ALL_VAR ;

Пример3:SET_OFF X_CURPOS ;

В примере 1 у трех переменных статус устанавливается на 'on'. В примере 2 статус всех переменных становиться 'on'. В примере 3 статус переменной устанавливается 'off'.

5.9 CALL (Вызов внешней программы)

Функция CALL может использоваться для запуска внешней программы. Вплоть до 50 вызовов программ может присутствовать в файле постпроцессора. Эта функция полезна когда необходимо осуществить какие-нибудь расчеты. Вы можете вызвать расчетную программу, передав ей параметры для расчета и получив результаты расчета по окончанию выполнения сторонней программы.

В функции CALL в качестве параметров указывается имя программы в кавычках, список передаваемых переменных (INPAR) и список получаемых параметров (OUTPAR). Тип передаваемых и получаемых переменных надо определить в начале файла exf.

Пример:FORMAT (COORDINATES) XLAST YLAST ;

FORMAT (CHARACTER) CHAR1 ;

FORMAT (USER_1) FACTOR ;

FORMAT (USER_2) RESLT ;

LINEAR MOTION:

OUTPUT $ LIN_MOV ;

XLAST = X_CURPOS ;

YLAST = Y_CURPOS ;

FACTOR = 100 ;

CALL "PROG1" INPAR XLAST YLAST FACTOR ;

OUTPAR RESLT FACTOR CHAR1 ;

OUTPUT $ " The result of the calculation is "CHAR1 ;

OUTPUT $ RESLT “ “ FACTOR ;

В примере когда в траектории инструмента встретится прямолинейное движение (LINEAR MOTION), после выполнения одного вывода в файл и трех операций присваивания, будет вызвана на выполнение внешняя программа PROG1. Этой программе в качестве входных параметров будет переданы значения трех переменных XLAST, YLAST и FACTOR. Результаты выполнения программы PROG1 будут получены в три переменные CHAR1, RESLT и FACTOR. После выполнения программы PROG1 будут выполнены две операции вывода в файл.

Примечание:
- Максимальная длина имени передаваемых и получаемых переменных INPAR/OUTPAR 6 символов, согласно ограничениям FORTRAN.
- В качестве передаваемых и получаемых переменных могут использоваться системные переменные, если их длина не превышает вышеуказанных ограничений.
- В функции CALL не должны использоваться вычисления.

5.10 CONVERT (Преобразование типа)

Функция округления с двойной точностью и контроля десятичных цифр.

Синтаксис: CONVERT INVAR OUTVAR NUM ;

Входные параметры (INVAR) – любая переменная в файле exf (например, X_CURPOS, MYVAR)

Выходные параметры (OOUTVAR) – любая (включая входную) переменная в файле exf. Эта переменная будет равняться входной переменной округленной до NUM цифр после запятой.

NUM – количество десятичных цифр.

Все переменные должны быть определены заранее

Рекомендации по использованию:

Поскольку вычисления в постпроцессоре должны быть по возможности более точными, то не рекомендуется использовать CONVERT для таких переменных, как например углы поворота, масштабные коэффициенты.

В некоторых же случаях расчеты должны выполняться с переменными в том виде в котором они будут переданы станку.(например расстояние между двумя точками). В этих случаях надо использовать CONVERT для преобразования внутреннего представления переменной к их выходному формату.

Пример: расчет расстояния между координатами станка:

DFPOST FORMAT: 3,3,3,3,YES,YES

Без CONVERT

  Координаты траектории Внутренние представление G-код
XOLD 100.0004 100.00040 100.000
XNEW 109.9996 109.99960 110.000
XNEW-XOLD 9.9992 9.99920 9.999

С CONVERT:

CONVERT XOLD XOLD N ;

CONVERT XNEW XNEW N ;

  Координаты траектории Внутренние представление G-код
XOLD 100.0004 100.00000 100.000
XNEW 109.9996 110.00000 110.000
XNEW-XOLD 9.9992 10.0000 10.0000

Ограничения:

Функция работает только с переменными, в которых общее количество цифр не более 9. Общее количество цифр: Максимальное количество цифр целой части + максимальное количество цифр дробной части.

Замечания переводчика:
Эта функция влияет только на внутреннее представление переменных. Обычно все переменные представлены в максимальной точности и при выводе в выходной файл они округляются (при необходимости) и приводятся к формату заданного типа. Так вот функция CONVERT позволяет изменить внутреннее представление переменной, приведя его в соответствие к формату типа данной переменной.

5.11 CUT_FILE

Переменная CUT_FILE позволяет вам делить выходной G-кодов на несколько файлов. Этот принцип работает так же как деление файла по максимальному количеству кадров (см.параметры файла dxf). Различие лишь в том что деление может быть осуществлено в любом месте программы (например, траекторию каждого инструмента в отдельный файл). Если значение переменной SET_ON будет произведено деление файла.

Использование данного механизма деления подразумевает использование блоков:
BEGINNING OF TAPE:
AFTER CUT:
END OF TAPE:
BEFORE CUT:

Глава 6

Использование подпрограмм.

В случае применения для фрезерования стратегий PROFILE, POCKET или CLEAR многократно применяются идентичные перемещения инструмента. В данных случаях выходной файл может быть сокращен по средствам применения подпрограмм.

Важное замечание:
Подпрограммы не могут использоваться при применении других стратегий обработки.В этих других стратегиях все повторяющиеся строки кода записываются всякий раз при выполнении.

Для создания подпрограмм для процедур PROFILE, POCKET или CLEAR вам надо записать блок SUBROUTINE CALL в файл exf постпроцессора.

Если данный блок будет отсутствовать, то выходной файл будет включать все строки кода для каждого слоя.

Если блок SUBROUTINE CALL присутствует, то будет записан первый слой в подпрограмме. Последующие слои уже не будут никуда писаться.

Подпрограммы могут быть записаны в конце основного файла G-кодов в порядке их создания или в отдельных файлах подпрограмм. Вопрос номер 3 в 1 разделе ответов на вопросы при создании файла def отвечает за то, будут ли создаваться отдельные файлы или нет. Если вы выберите вариант создания новых файлов, то система будет создавать файл постпроцессора с расширением, состоящим из символа S и числа. Числа назначаются в порядке создания подпрограмм.

Пример: Выходной файл: <part>.<tool path>.<post-processor>

Первая подпрограмма: <part>.<tool path>.<post-processor>.S1

Вторая подпрограмма: <part>.<tool path>.<post-processor>.S2

В блоке SUBROUTINE CALL могут записываться различные команды. Они будут выполнены в основной программе перед созданием подпрограммы.

Команды, которые надо выполнить в начале подпрограммы записываются в блоке BEGINNING OF SUB.

Команды, которые надо выполнить в конце подпрограммы записываются в блоке END OF SUB.

Команды, которые надо выполнить в основной программе после возвращения из подпрограммы записываются в блок SUBROUTINE RETURN:

Пример: SUBROUTINE CALL:

SUBNUM = SUB_NUMBER + 7999 ;

OUTPUT $ " G65 P" SUBNUM " Z" LAYER_Z ;

BEGINNING OF SUB:

SUBFLG = 1 ;

SET_ON ZDM ;

OUTPUT "%" ;

OUTPUT \J "O" SUBNUM ;

OUTPUT $ " G90 G" ZDM ;

SET_ON MCH_FEED ;

OUTPUT $ " G1 Z#26 F" MCH_FEED ;

END OF SUB:

OUTPUT $ " G40" $ " M99" ;

SUBFLG = 0 ;

SUBROUTINE RETURN:

SET_ON LIN_MOV CIRC_MOV MCH_FEED ;

SET_ON X_CURPOS Y_CURPOS Z_CURPOS ;

Примечание:

Подпрограммы не создаются в следующих случаях:

- в процедурах которые вручную редактировались.

- процедуры PROFILE и POCKET с углом наклона DRAFT ANGLE

- процедура PROFILE с заданной шириной заготовки STOCK WIDT

- процедура PROFILE со смешанным направлением обработки B-DIRECTION

- системная переменная NO_SUBROUT установлена как SET_OFF.

Глава 7

Системные флаги.

Системные флаги служат для управлением процедурой создания файлов G-кодов. Системные флаги могут принимать значение SET_ON или SET_OFF или принимать определенное значение и влиять на процесс создания файла G-кодов.

Системный флаг(переменная) Значение по умолчанию Блоки действия Применение
CIR_INTERP SET_ON ORIGIN CHANGE:
BEGINNING OF TAPE:
Если значение SET_OFF то все радиальные перемещения будут разбиты на линейные перемещения согласно точности определенной в файле def
NO_SUBROUT SET_OFF ORIGIN CHANGE:
BEGINNING OF TAPE:
Если SET_ON то подпрограммы создаваться не будут
TRANS_MATX
TRANS_MATY
TRANS_MATZ
0.0 ORIGIN CHANGE:
BEGINNING OF TAPE:
TOOL CHANGE:
Соответствующие значения будут добавлены к координатам перед выводом их в файл G-кодов
ROT_MAT1
ROT_MAT2
ROT_MAT3
ROT_MAT4
ROT_MAT5
ROT_MAT6
ROT_MAT7
ROT_MAT8
ROT_MAT9
1,0
0.0
0.0
0.0
1.0
0.0
0.0
0.0
1.0
ORIGIN CHANGE:
BEGINNING OF TAPE:
Матрица вращения умножает соответствующие координаты перед выводом их в файл G-кодов
CUT_FILE SET_OFF ВСЕ БЛОКИ Если SET_ON то выходной файл разбивается.

Приложение А

Блоки и их переменные

Блок Переменная Описание
ВСЕ БЛОКИ CUT_FILE Если SET_ON то выходной файл разбивается.
BLOCK_NUM Текущий номер блока в TP_LIST
DBL_QUOTE Символ кавычки "
AXIS CHANGE:
(смена осей)
AXIS_NUM Количество осей используемое в текущей процедуре
BEGINNING OF PROC:
(начало процедуры)
ANGLE_INCR Приращение угла
Процедуры: CLEANUP, SRFPKT, ZCUT.
BET_LAYERS Обработка между слоями=1
Без обработки между слоями=0
Процедура: WCUT
BY_SCALLOP По гребешку=1
По 2D шагу в бок=0
Процедуры:(параллельные проходы) CLEANUP, SRFPKT, WCUT (между слоями)
CHECK_OFST Офсет к контрольной поверхности
CHECK_OFST2…6 Офсет к контрольной поверхности#2…#6
CHECK_TOL Допуск на контрольную поверхность
Процедуры: CLEANUP, 3D_STEP, PLUNGE_MILL, SRFPKT, SRFPRF, SURCLR, SURMILL, WCUT, ZCUT.
CIR_INTERP Интерполяция круговых перемещений.
On=круговая интерполяция (по умолчанию)
Off=линейная интерполяция
CONT_OFST Офсет к первому контуру
Процедуры: CLEANUP, 3D_STEP, POCKET, PROFILE, PLUNGE_MILL, SRFPKT, SRFPRF, WCUT, ZCUT.
CONT_TOL Точность контуров
Процедуры: ROUGH_5X, CLEANUP, CURVE_MX, POCKET, PROFILE, RULED_MX, SRFPKT, SRFPRF, SURCLR, WCUT, ZCUT.
DEL_Z_UP Значение DEL_Z_UP в процедурах CLEANUP, CURVE_MX, 3D_STEP, POCKET, PROFILE, RULED_MX, SRFPKT, SRFPRF, SURCLR, SURMILL, WCUT, ZCUT.
DIAM_OFFS Значение офсета диаметра в процедурах Pocket и Profile с автоматическим сверлением
DOWN_STEP Значение DOWN_STEP (шаг в низ) в процедурах CLEANUP, CURVE_MX, POCKET, PROFILE, PLUNGE_MILL, RULED_MX, WCUT, ZCUT.
END_ANGLE Конечный угол
Процедуры: CLEANUP, SRFPKT, ZCUT.
I_START
J_START
K_START
I, J и K компоненты вектора, который описывает начальное положение оси инструмента в проволочной резке и 5-и осевом фрезеровании
LEAD_ANGLE Ведущий угол
Процедуры: SURCLR, SURMILL.
MCH_MODE Описывает режим обработке в заданной процедуре. 0-фрезерование; 1-сверление; 3-специальный (автом.сверление с циклом фрезерования резьбы)
MILL_ANGLE Угол фрезерования
Процедуры:(когда не используется радиальная обработка) CLEANUP, PLUNGE_MILL, SRFPKT, WCUT, ZCUT.
MIN_CLRLN Минимальная безоп.длина инструмента (вылет)
-1=значение задано, но не учитывается.
-2=значение не задано.
Процедуры: Rough Parallel, Rough Spiral, ReRough, Finish Mill All, Finish Mill By Limit Angle, Finish Horiz. Planar Areas, Cleanup и Pencil.
MOVMNT_NUM Номер блока (кадра) перемещений в текущей процедуре (не корректно отрабатывает при использовании подпрограмм, квадрантов и линейной аппроксимации дуг)
NOM_FEED Номинальный показатель подачи.
NUM_CONT Количество контуров.
NUM_CSRF Количество контрольных поверхностей. Учитываются все группы контрольных поверхностей.
NUM_LAYERS Количество слоев в процедуре. Только движения фрезерования. 0=нет слоев.
NUM_P2SRF Количество поверхностей PART2 (детали2)
NUM_P3…6SRF Количество поверхностей PART3…6
NUM_PASS Количество проходов.
Процедуры: ROUGH_5X, CLEANUP, CURVE_MX, RULED_MX, SURCLR, SURMILL.
NUM_PSRF Количество поверхностей PART (детали)
NUM_SPRING Количество проходов резьбы
ORBIT_OFS Значение офсета орбиты
Процедура: WCUT
OSIDE_STEP Между слоями / Шаг в бок.
Процедура: WCUT
PART_OFST Офсет к поверхностям детали
Процедуры: ROUGH_5X, CLEANUP, CURVE_MX, 3D_STEP, PLUNGE_MILL, RULED_MX, SRFPKT, SRFPRF, SURCLR, SURMILL, WCUT, ZCUT.
PART_OFST2…6 Офсет к поверхностям детали#2…#6
PART_TOL Точность поверхностей детали
Процедуры: ROUGH_5X, CLEANUP, 3D_STEP, PLUNGE_MILL, RULED_MX, SRFPKT, SRFPRF, SURCLR, SURMILL, WCUT, ZCUT.
PLATFORM_ Тип платформы: DOS, NT, SUN, SGI, HP
PRC_UCSN1…13 Имя СКП процедуры (256 символов)
Примечание: в случае выполнения процедур трансформации, где СКП создаются автоматически, имена созданных СКП генерируются автоматически U_1, U_2 и т.д.
PROC_CMNT Комментарий процедуры
PROC_NAME Имя текущей процедуры (например, PROFILE, DRILL)
PROC_NUM Уникальный номер процедуры, присваиваемый ей системой в момент создания. Не может быть изменен пользователем. В каждой траектории номер ре-инициализируется.
PROC_SCLP Гребешок
Процедуры: CLEANUP, CURVE_MX, RULED_MX, SRFPKT, SURCLR, SURMILL, 3D_STEP
PROC_TRJ Тип Parallel/Spiral/Radial.
Процедуры: POCKET, CLEANUP, PLUNGE_MILL, SRFPKT, WCUT, ZCUT.
PUP_BOOL1…6 Параметр пользователя: булева переменная (Boolean)
PUP_INT1…6 Параметр пользователя: целая переменная (Integer)
PUP_COMBO1…6 Параметр пользователя: список выбора (Dropdown list (Combo))
PUP_FLOAT1…6 Параметр пользователя: переменная типа REAL, не зависимая от ед.измерения, например, угол.
PUP_UDFLT1…6 Параметр пользователя: переменная типа REAL, зависимая от ед.измерения, например, дистанция.
RGH_FIN Только черновое=1
Черновое+Чистовое=2
Только чистовое=3
Процедура: CLEANUP, POCKET, SRFPKT, WCUT
SIDE_STEP Значение шага в бок в процедуре
Процедура: CLEANUP, CURVE_MX, POCKET, PLUNGE_MILL, SRFPKT, SURCLR, SURMILL, WCUT, ZCUT, PROFILE, SRFPRF, 3D_STEP.
START_ANGL Начальный угол
Процедура: (радиальная обработка) CLEANUP, SRFPKT, WCUT, ZCUT.
STK_WIDTH PROFILE – ширина заготовки
Процедуры: PROFILE, SRFPRF
TILT_ANGLE Угол наклона
Процедуры: SURCLR, SURMILL.
TRANSF_NUM Количество трансформаций
UNIBI_DIR Unidir/Bidir (направление фрезерования в одну сторону/в обе стороны)
Процедуры: ROUGH_5X, CLEANUP, CURVE_MX, POCKET, PROFILE, PLUNGE_MILL, RULED_MX, SRFPKT, SRFPRF, SURCLR, SURMILL, WCUT, ZCUT.
WITH_STOCK С/без заготовки
Процедура: WCUT
X_INTER
Y_INTER
Z_INTER
Промежуточные точки
X_START
Y_START
Z_START
Текущая (начальная) позиция в оригинальной СКП траектории
Z_DOWN Значение Z_DOWN
Процедуры: POCKET, PROFILE, PLUNGE_MILL, WCUT, ZCUT.
Z_UP Значение Z_UP
Процедуры: POCKET, PROFILE, PLUNGE_MILL, RULED_MX, WCUT, ZCUT.
BEGINNING OF SUB:
(начало подпрограммы)
   
BEGINNING OF TAPE:
(начало ленты)
CURR_ORIG Начальный номер в контролере ЧПУ на который запишется текущее значение
DATE_SDD Текущая дата: день
DATE_SMM Текущая дата: месяц
DATE_SYY Текущая дата: год
ETERNET_ID ID локального компьютера в Интернете (физический адрес Интернет адаптера – используется для лицензирования)
EXT_POST Внешний/внутренний постпроцессор
FACTOR_ Переменная FACTOR из файла def.
IMS_PRJN1…13 Путь для проекта IMS (256 символов)
Параметр IMS Post
I_ORIGIN
J_ORIGIN
K_ORIGIN
I, J и K компоненты вектора, который описывает начальное положение оси инструмента в проволочной резке и 5-и осевом фрезеровании для активной системы координат в начальной корд.системы траектории.
MACSYS_NAM Имя MACSYS
NODE_ID NODE_ID рабочей станции
NUM_ORIGS Количество СКП во всех траекториях
PART_NAME Имя детали
PART_NAM2…13 Имя детали (256 символов)
PART_PATH Путь к детали, без имени детали (1-20 символы)
PART_PATH2 Путь к детали, без имени детали (21-40 символы)
PART_PATH3 Путь к детали, без имени детали (41-60 символы)
PART_PATH4…13 Путь к детали, без имени детали (256 символов)
PFM_UNITS Единицы измерения PFM
PLATFORM_ Тип платформы: DOS, NT, SUN, SGI, HP
POST_NAME Имя текущего постпроцессора
TIME_SHH Текущее время: часы
TIME_SMM Текущее время: минуты
TIME_SSS Текущее время: секунды
USER_NAME Имя пользователя
X_HOME
Y_HOME
Z_HOME
Начальная позиция в активной системе координат
X_MACH
Y_MACH
Z_MACH
Машинный ноль, заданный переменными взаимодействия в начальном диалоге постпроцессора.
X_ORIGIN
Y_ORIGIN
Z_ORIGIN
Начало активной СК в начальной СК траектории.
BEGINNING OF TOOLPATH:
(начало траектории)
TP_CMNT Комментарий траектории
TP_CMNT2...4 Комментарий траектории (256 символов)
TP_NAM1…13 Полное имя траектории (256 символов)
TP_NAME Имя траектории
TP_TYPE Тип траектории: MILL, LATHE, WIRE, PUNCH
TP_UCSN1…13 Имя СКП траектории (256 символов)
TP_UCSNUM Начальный номер в контролере ЧПУ на который запишется текущее значение
TP1_TYPE Подтип траектории
TPNM_LOWER Имя траектории в верхнем регистре
CIRCULAR MOTION:
(круговые перемещения)
CIRC_MOV Код кругового перемещения был установлен в разделе 8, вопрос 1 - по часовой стрелке вопрос 2 - против часовой стрелки.(файл def)
ABS_ANG (ST_ANG + ARC_ANG).
ARC_ANG Угол дуги в градусах
ARC_PLN Плоскость дуги:XY = 1, XZ = 2, YZ = 3.
CIRC_APPRX Коды кругового перемещения, то флаг nc_circ_approx=1; В других случаях = 0
CIRC_TOL Допуск линейной аппроксимации дуг (перезаписывает значение, заданное в файле def)
END_ANG Конечный угол в градусах .(0 < END_ANG < 360)
RADIUS_ Радиус дуги
ST_ANG Начальный угол дуги
X_CENTER
Y_CENTER
Z_CENTER
Центр дуги в активной системе координат
X_CURPOS
Y_CURPOS
Z_CURPOS
Текущая позиция в активной СК
X_ENDPT
Y_ENDPT
Z_ENDPT
Конечная точка в активной СК
COOLANT:
(охлаждение)
MCH_COOL Код охлаждения заданный в файле def (раздел 6, вопрос 4, 5, 6, & 7)
CUTTER COMPENSATION:
(компенсация инструмента)
CUTCOM_OFF Код выключения компенсации инструмента в файле def (раздел 8, вопрос 9)
CUTCOM_ON Код включения компенсации инструмента в файле def (раздел 8, вопрос 10-влево, 11-вправо),
CYCLE:
(циклы)
CYC_2PLN Не используется
CYC_CLEAR Цикл подчистки – координата Z в подчищаемой плоскости.
CYC_CODE Код цикла в файле def (раздел 9)
CYC_DEPTH Cycle depth coordinate value.
CYC_DWELL Cycle dwell time in hundredths of a second.
CYC_DZINIT The DRILL procedure DEL INIT value
CYC_PECK Cycle PECK value.
CYC_REDUC Cycle DECREASE value.
CYC_RETR Код цикла отхода
CYC_TIMES Number of times to peck
CYC_XSHFT Цикл смещения по оси X
CYC_YSHFT Цикл смещения по оси Y
CYCLE_1..12 Количество активных циклов
CYCLE_SUB Если значение параметра 14 то это цикл резьбофрезерования, иначе повторение предыдущего цикла.
CYCLE: SPECIAL: В дополнение к вышеописанным параметрам цикла
TRD_APRFED Скорость подхода, как % от нормальной подачи.
Актуально только при CYCLE_SUB=14
Безразмерная единица
TRD_CLIMB Направление резания:
1: Снизу-вверх
2: Сверху-вниз
3: Сверху-вниз с подъемом – специальный режим применяется только при "threads-per-step" >1.
TRD_NOMD Номинальный диаметр резьбы.
Тип REAL, зависит от ед.измерения, >0
TRD_PITCH Шаг резьбы
Тип REAL, зависит от ед.измерения, > -9999
(+=правая; -=левая)
TRD_STEP Витков резьбы за смешение инструмента вдоль оси (зубов на пластине).
Целое число >=0.
0= один виток 360град. (метчик)
>1=количество зубчиков, инструмент смещается на Шаг резьбы умноженный на количество зубцов.
TRD_STRANG Угол начала захода резьбы.
Тип Real, безразмерная, между -360 и +360
TRD_INTERN TRUE_ – внутренняя резьба; FALSE_ –внешняя резьба.
В GPP2 параметр называется RD_INTERNAL
TRD_STKWID Ширина заготовки. Будет создано несколько проходов с постепенным приближением к нужному диаметру. Для внутренней резьбы начнет с меньшего диаметра с увеличением к номиналу, для наружной с большего диаметра.
В GPP2 параметр называется TRD_STOCK_WIDTH
TRD_SIDEST Боковой шаг между проходами. Имеет значение если TRD_STKWID не ноль.
В GPP2 параметр называется TRD_SIDE_STEP
TRD_APRRAD Радиус входа в спираль резьбы. Актуальный радиус может быть меньше, если нет соответствия инструмента и отверстия (только для внутренней резьбы).
При значении 0 – подход по нормали.
В GPP2 параметр называется TRD_APR_RADIUS
TRD_TPRANG Угол конусной резьбы. Всегда положительный. Номинальный диаметр – верхний диаметр.
В GPP2 параметр называется TRD_TAPERED_ANG
TRD_CUTCOM Флаг компенсации инструмента:
0 – выключена
1 – включена, для траектории по вершине инструмента
2 – включена, для траектории по геометрии (только для CimatronE 10 и выше)
В GPP2 параметр называется TRD_CUTTER_COMP
TRD_LINTOL Если дуги преобразованы в линейные перемещения определяет точность (максимальное расстояние между дугой и линией). Значение по умолчанию 0,01мм.
В GPP2 параметр называется TRD_LIN_TOL.
TRD_HELAPP Если TRUE_, то подход касательный по спирали с плавным изменением Z. Если FALSE_ только подход по горизонтали.
Значение по умолчанию TRUE_
В GPP2 параметр называется TRD_HELICAL_APPROACH
TRD_HELRET Если TRUE_, то отход касательный по спирали с плавным изменением Z. Если FALSE_ только отход по горизонтали.
Значение по умолчанию TRUE_
В GPP2 параметр называется TRD_HELICAL_RETRACT
DWELL:
(задержка)
MCH_DWELL Задержка в сотых секунды.
END OF FILE:
(конец файла)
   
END OF PROC:
(конец процедуры)
N_FED_TIME Время раб.подачи
N_FST_TIME Время ускоренных перемещений
N_GEN_TIME Общее время
END OF SUB:
(конец подпрограммы)
   
END OF TAPE:
(конец ленты)
   
FEED:
(подача)
MCH_FEED Подача в миллиметрах в секунду
GROOVE CYCLE: Не использовал, по этому не знаю что это такое…
INSERT WITH (SEQUENCING):
INSERT WITHOUT (SEQUENCING):
INS_STR Вставляемая строка
LINEAR MOTION:
(линейные перемещения)
LIN_MOV Код линейного перемещения был установлен в разделе 7, вопрос 1 в файле def.
COMP_3X 3-D компенсация инструмента
I_COORD
J_COORD
K_COORD
I, J и K компоненты вектора, который описывает направление проволоки в проволочной резке и направление оси инструмента в 5-и осевом фрезеровании.
LINE_ANG Угол линии относительно оси X
LINE_LENG Длина прямолинейного участка
MI_COORD I компонент матрицы трансформации Post MACSYS в оригинальную MACSYS.
MJ_COORD J компонент матрицы трансформации Post MACSYS в оригинальную MACSYS.
MK_COORD K компонент матрицы трансформации Post MACSYS в оригинальную MACSYS.
SRF_NORX
SRF_NORY
SRF_NORZ
X,Y и Z нормали к поверхности
X_CURPOS,
Y_CURPOS,
Z_CURPOS
Текущая позиция в активной СК
MESSAGE:
(сообщение)
MESS_STR Строка с сообщением
NURBS MOTION:
(перемещения nurbs)
Коды nurbs движений определялись в файле def (раздел 9, вопрос 1)
CNTRL_NUM Количество контрольных точек сплайна.
CNTRL_X
CNTRL_Y
CNTRL_Z
Координаты контрольной точки сплайна
KNOT_ Значение узла контрольной точки
NRB_INTERP Режим интерполяции сплайна
NURBS_DEG Степень текущего сплайна
NURBS_MOV Код сплайнового перемещения
NURBS_TOL Точность текущего сплайна
WEIGHT_ Вес контрольной точки
ORIGIN CHANGE:
(смена начала)
CIR_INTERP Интерполяция круговых движений
On – круговая интерполяция (по умолчанию);
Off – линейная интерполяция.
CURR_ORIG Начальный номер в контролере ЧПУ на который запишется текущее значение
INV_MAT1…9 Матрица обратная оригинальной матрице – обновляется вместе с оригинальной.
I_ORIGIN
J_ORIGIN
K_ORIGIN
I, J, K единичного вектора оси Z СКП
IX_ORIG
JX_ORIG
KX_ORIG
I, J, K единичного вектора оси X СКП
MI_ORIGIN
MJ_ORIGIN
MK_ORIGIN
Начало текущей СКП в координатах macsys, компоненты вектора.
MIX_ORIG
MJX_ORIG
MKX_ORIG
Изменения в оси X между предыдущей и текущей СКП, компоненты вектора.
MX_ORIGIN
MY_ORIGIN
MZ_ORIGIN
Координаты текущей СКП в координатах macsys
NO_SUBROUT Режим создания подпрограмм.
On – создание подпрограмм разрешено;
Off - создание подпрограмм неразрешено.
ROT_MAT1…9 Матрицы вращения. Значения по умолчанию определяют единичную матрицу. Может переопределяться пользователем.
TRANS_MATX
TRANS_MATY
TRANS_MATZ
X, Y, Z вектора трансформации. Все переменные типа COORDINATES умножаются на эти величины
X_MSYSORGN
Y_MSYSORGN
Z_MSYSORGN
X, Y, Z начала главной СК (macsys)
Параметр только для CimatronE
X_ORIGIN
Y_ORIGIN
Z_ORIGIN
Координаты текущей СК в системе координат MACSYS.
SPIN:
(шпиндель)
SPIN_DIR Код направления вращения шпинделя (раздел 6, вопрос 1 файла def).
1 – по часовой стрелки;
2 – против часовой стрелки;
3- стоп
SPIN_SPEED Скорость вращения в оборотах в минуту
START STRING:
(начало строки)
SEGMT_NUM Номер сегмента линии в строке
SUBROUTINE CALL:
(запуск подпрограммы)
LAYER_Z Значение Z для текущего слоя
NUM_LAYERS Общее число слоев в процедуре. Т.е. сколько раз будет вызвана подпрограмма.
SUB_NUMBER Номер вызываемой подпрограммы.
SUBROUTINE RETURN:
(возврат из подпрограммы)
   
THREAD CANNED CYCLE:
THREAD CYCLE:
Блоки для обработки резьбы. Т.к. мне не пришлось заниматься этой темой, то перевод параметров отсутствует.
TOOL CHANGE:
(смена инструмента)
Примечание: для возможности обработки повторяющихся деталей при использовании последнего инструмента параметры NEXT_TOOL и NEXT_NAME устанавливаются для первого инструмента.
CON_ANG Угол конуса инструмента
CUR_NAM1…12 Имя текущего инструмента (продолжение имени для CURR_NAME)
CURR_NAME Имя текущего инструмента. Если имя длиннее 20 символов, то продолжение в CUR_NAM1…12
CURR_TOOL Текущий номер державки
E_LENGTH Расстояние между осью инструмента и центром окружности.
E_TOL_TYPE Форма инструмента согласно таблице:
0 - Ball cutter
1 - Bull nose cutter
2 - Flat cutter
3 - Drill
4 - Reamer
5 - Tap
6 - Center drill
7 - Lollypop cutter
8 - Slot mill (full radius)
9 - Slot mill (sharp corner)
10 - Slot mill (corner radius)
11 - Dove mill (full radius)
12 - Dove mill (sharp corner)
13 - Dove mill (corner radius)
14 - Counter sink
HOLDER_DIA Диаметр державки. (отриц.диам.= не используется державка)
NXT_NAM1…12 Имя следующего инструмента (продолжение имени для NEXT_NAME)
NEXT_NAME Имя следующего инструмента. Если имя длиннее 20 символов, то продолжение в NXT_NAM1…12
NEXT_TOOL Номер следующей державки
TOOL_CMN1…12 Продолжение комментария инструмента из TOOL_CMNT
TOOL_CMNT Комментарий инструмента. Если он длиннее 20 символов, то продолжение в TOOL_CMN1…12
TOOL_MAT Материал инструмента
TRANS_MATX
TRANS_MATY
TRANS_MATZ
X, Y, Z вектора трансформации. Все переменные типа COORDINATES умножаются на эти величины
X_AFTR_TCH
Y_AFTR_TCH
Z_AFTR_TCH
Следующие значения X,Y,Z после смены инструмента. Следующая точка в траектории после смены инструмента.
CLEAR_LENG Расстояние между державкой и вершиной инструмента (безоп.длина/вылет)
CUT_LENGTH Длина режущей части инструмента
DIA_COMP Используется когда компенсация инструмента включена
DIAMETER_ Диаметр инструмента
FIXT_COMP Индекс компенсации
FREE_LEN Длина инструмента
GAUGE_LEN Расстояние между вершиной инструмента и точкой вращения
GRIP_LEN Длина хвостовика
HLD_CMN1…13 Комментарий державки
HLD_NAM1…13 Имя державки
HOLD_BOT01…10 Нижний диаметр державки (державка номер 1…10)
HOLD_CON01…10 Высота конуса державки
HOLD_NUM Количество ступеней текущей державки
HOLD_TOP01…10 Верхний диаметр державки
HOLD_TOT01…10 Общая высота державки
LENG_COMP Индекс компенсации длины
LIFE_LEN Время жизни инструмента (стойкость)
REF_HIGH Справочная высота для инструмента спец.формы
SHANK_ANG Угол хвостовика
SHANK_BOT Нижний диаметр хвостовика
SHANK_CON Высота конуса хвостовика
SHANK_TOP Верхний диаметр хвостовика
SHANK_TOT Общая высота хвостовика
SHNKANG_ON Конусный хвостовик
SPNDL_BOT Нижний диаметр шпинделя
SPNDL_CON Высота конуса шпинделя
SPNDL_TOP Верхний диаметр шпинделя
SPNDL_TOT Общая высота шпинделя
TEETH_NUM Число зубьев инструмента
TOOL_ANGLE Угол вершины инструмента
TOOL_PID PID инструмента ( уникальный ID)
TOOL_RAD Радиус вершины инструмента
TOOL CHANGE MESSAGE:    
TRANSFORMATION:
(преобразование)
TRF_MAT1…9 Матрицы вращения
TRF_VECX;
TRF_VECY;
TRF_VECZ
Матрицы перемещения вдоль осей X,Y,Z
Z SURFACE: Z_CURPOS Уровень поверхности сверления

Эпилог.

В заключении несколько слов о GPP2. Основные принципы работы аналогичны работе с GPP. Вместо файла def используется файл df2 и он редактируется специальной утилитой Gpp2_df2_editor. В ней по аналогии с GPP надо так же задать все необходимые параметры и настройки станка и форматы типов данных.

Параметры станка

Вместо файла exf в GPP2 используется файл ex2 и для его редактирования используется специальный редактор GPP2_EX2_editor:

Редактор постпроцессора

 

Ну и на этом пока закончим…

 

Часть 1

Часть 2

 

Назад

  FDB © Великий Новгород 2010. Все права защищены. fdbir@yandex.ru



Hosted by uCoz