Все переменные которые указывают на меру длины первоначально выражаются в миллиметрах. Для преобразования в другие меры длины вы должны задать масштабный коэффициент на этапе редактирования файла def, для чего зайдите в раздел 2. PROGRAMMING MODE AND UNIT (Режим программирования и Ед.измерения) и в пункте 5 введите масштабный коэффициент для линейных единиц измерения.
В файлах постпроцессора используется четыре типа переменных:
Все четыре типа могут быть модальными или немодальными.
Значение переменных траектории инструмента устанавливается из соответствующих блоков траектории инструмента и файла постпроцессора exf. Имена переменных траектории инструмента заданы в Cimatron NC и содержат в имени символ подчеркивания.
Вплоть до 50 переменных взаимодействия может быть определено и использовано. Они полезны для изменения начальных значений переменных при каждом вызове постпроцессора на выполнение.
Здесь более подробно рассмотрены переменные траектории инструмента.
Ниже приведен пример применения переменных взаимодействия:
Значения по умолчанию для переменных взаимодействия определяются на этапе создания файла exf. Эти значения отображаются при вызове постпроцессора в окне CimatronE и могут быть изменены по вашему усмотрении. В следующий раз при вызове постпроцессора будут отображены последние введенные значения переменных.Значения переменных взаимодействия могут быть, как и любые пользовательские переменные, изменены в ходе выполнения постпроцессора.
Ниже приведен пример присваивания значения и последующего изменения пользовательской переменной SEQUENCE:
Пример1: SEQUENCE = SEQSTART ;
Пример2: SEQUENCE = SEQUENCE + SEQINCR ;
Пользовательские переменные Инструмента/Цикла могут использоваться в файле постпроцессора exf с именем описанным в файле <root_cad>/tools/user.def с префиксом $.
Внимание!!!
Так написано в справке для Cimatron IT.
В справке для CimatronE написано малость по-другому и совсем сбивает с толку…
Пользовательские переменные Инструмента/Цикла могут использоваться в файле постпроцессора exf с именем, описанным в файле DFPost (.def) с префиксом $. Файл def располагается в директории [Cimatron\CimatronE]\Program\IT\var\post.
Примечание: Убедитесь что имя переменной состоит только из цифр и/или латинских буковок.
Пример: OUTPUT \J "catalog number:" $catalog ;
Все пользовательские переменные не могут содержать в имени символ подчеркивания. Они не могут быть идентичными с зарезервированными системными командами (например, OUTPUT, TOOLS,TAN). Имя может состоять только из латинских букв и/или цифр. Но первый символ – только буква. Первые пятнадцать символов значимые и должны быть уникальными.
Тип переменной | Траектория инструмента(Tool Path) | Взаимодействия (Interaction) | Пользовательские (User-defined) | Пользовательские Инструмента/Цикла (Tools/Cycles User-defined) |
Создана | Системой | Декларировано пользователем | Декларировано пользователем | Системой |
Имя присвоено | Системой (с символом подчеркивания) | Пользователем (без подчеркивания) | Пользователем (без подчеркивания) | Система (согласно файлу user.def) |
Формат задан | Системой (может быть переопределен функцией FORMAT) | Пользователем (в разделе INTERACTION) | Пользователем (в разделе FORMAT) | Пользователем (в разделе FORMAT и должно соответствовать файлу user.def) |
Значение задано | Системой в блоке программы | Пользователем в разделе INTERACTION в файле exf | Пользователем в блоке программы | Системой в блоке смены инструмента (Tool Change: Blocks) |
Изменение значения | Возможно (не рекомендуется) | Возможно | Возможно | Не возможно |
Кроме того может использоваться параметр ALL_VAR в командах KEEP или SET_ON (прежнее RESET) для обработки всех переменных за раз. Этот параметр касается всех четырех типов переменных.
Константы также могут использоваться в файле exf. Константы могут быть литерными (заключенные в кавычки), управляющие символы ASCII и/или специальные константы, TAB_ (TAB + символ подчеркивания).
Пользовательские переменные, переменные взаимодействия и их формат должны определяться в начале файла exf, до первого блока. Для пользовательских переменных это делается с помощью функции FORMAT. Переменные взаимодействия определяются с помощью функции INTERACTION. Тип переменной может быть любым из указанных здесь. Формат каждого типа определяется в файле def.
Модальный или немодальный статус переменной определяет, когда переменная будет выведена.
Для 18 предопределенных типов переменных, статус модальный/немодальный задается в файле def (секция 3. FORMATS , последний пункт в параметрах формата). Переменные символьного типа мо умолчанию модальные. Кроме того, статус переменной может изменяться на модальный или немодальный в процессе выполнения файла exf. Индикатор 'on/off' сохраняется для каждой переменной. Система использует данный индикатор для определения послать значение переменной на вывод или нет. Когда модальной переменной присвоено новое значение, она получает индикатор 'on'. Только переменные с индикатором 'on' будут посланы на выход. После того как модальная переменная послана на вывод, ее индикатор принимает значение 'off'. В результате если модальная переменная была послана на выход и значение переменной больше не изменялась, то в следующий раз переменная не будет послана на выход.
В примере ниже предположим, что переменная SEQUENCE имеет статус – модальная. В первом случае она будет выведена всего один раз, а во втором – уже дважды.
Пример: 1.SEQUENCE = SEQSTART ;
OUTPUT \J SEQUENCE;
OUTPUT \J SEQUENCE;
OUTPUT \J SEQUENCE;
Пример: 2.SEQUENCE = SEQSTART ;
OUTPUT \J SEQUENCE;
SEQUENCE = SEQSTART+ SEQINCR ;
OUTPUT \J SEQUENCE;
OUTPUT \J SEQUENCE;
Немодальные переменные никогда не принимают значение индикатора 'off'. Они будут посланы на вывод каждый раз при встрече их в командах вывода типа OUTPUT. В примере выше, если предположить что переменная SEQUENCE не модальная, то ее значение будет выведено в обоих случаях по три раза.
Само значение переменной не влияет на принцип работы индикатора 'on/off', будь то переменная это текст, код или число принцип сохраняется.
Текст, который не меняется во время работы постпроцессора, может быть включен в файл exf для вывода его файл NC кодов. Для этого текст должен быть заключен в двойные кавычки. Перед и после двойных кавычек должен располагаться пробел.
Пример: OUTPUT \J "T" CURR_TOOL "M66" ;
В примере выше символ Т и код М66 будут выведены в неизменном виде.
Управляющий символ ASCII это комбинация клавиши Ctrl и другого символа. В файле exf такие символы записываются как комбинация символа обратной косой черты (\) и необходимого символа.
Пример: \J
В примере показана комбинация символов, которая приводит к переводу строки.
В Cimatron GPP альтернативным вариантом перевода строки служит комбинация Ctrl и плюс (+).
Пример: \+
Если ваша стойка ЧПУ требует программу в виде фиксированных колонок, то вам придется использовать константу TAB_ (TAB+ подчеркивание). Когда в команде вывода встречается данная константа, то система заменит ее соответствующим количеством пробелов. Количество пробелов (позицию начала колонок) определяется в начале файла exf перед основными блоками.
Примечание: Количество значений константы (количество колонок) ограничено 20.
Длина строки ограничена 160 символами.
Пример: OUTPUT TAB_ X_HOME ;
В примере выше, значение переменной X_HOME будет выведено в позицию заданную параметром SET_TABS в начале файла exf.
Если же вам надо в файле вывести непосредственно <символ табуляции>, то воспользуйтесь управляющим символом \I (Ctrl + I).
Все используемые переменные в файле exf должны быть определены в самом начале файла перед основными блоками программы.
Для определения переменных и описания их типов имеется несколько функций:
1. | FORMAT | создает одну или несколько переменных определенного типа или переопределяет тип системных переменных. |
2. | IDENTICAL | позволяет определить две или более переменных-идентичными. |
3. | INTERACTION | создает переменную взаимодействия с пользователем. |
4. | MODAL | устанавливает модальный статус переменных. |
5. | NON_MODAL | устанавливает немодальный статус переменных. |
6. | NEW_LINE_IS | задает специальный символ для запуска последовательности команд. |
7. | SET_TABS | устанавливает позиции вывода колонок. |
Каждое различное объявление должно быть записано в отдельной строке и заканчиваться точкой с запятой (;). Если объявление одного и того типа записываются в одну строку, то они должны разделяться точкой с запятой и пробелами. Пробелы должны быть между объявлением и именем переменой и между именами переменных.
Данное объявление позволяет определить переменную заданного типа.
Пример: FORMAT (USER_1) XPOS XLIST [500] X_CURPOS $X;
Тип переменной должен следовать за ключевым словом FORMAT в круглых скобках (до и после круглых скобок должны следовать пробелы). Далее следует имя определяемой переменной или список переменных разделенных пробелами. Для системных переменных будет установлен заданный тип взамен типа заданного по умолчанию.
В приведенном примере тип USER_1 присваивается переменным:
XPOS | пользовательской переменной |
XLIST [500] | пользовательскому массиву на 500 значений |
X_CURPOS | системной переменной (тип по умолчанию COORDINATES ) |
$X | пользовательская переменная Tools/Cycles |
Вместо типа USER_1 может быть использован один из 18 доступных типов :
0. Character
1. Coordinates
2. Angles
3. Feed
4. Spindle_speed
5. Dwell
6. Sequencing
7. Tool
8.-17.User_[1-10]
18. Real
Более подробную информацию смотрите здесь.
Данное объявление позволяет определить идентичные переменные. Все переменные, указанные в данном объявлении будут всегда иметь одинаковое значение. Если значение одной из переменных изменилось системой или пользователем, то другие автоматически будут скорректированы.
Пример: IDENTICAL X_CURPOS X_ENDPT;
IDENTICAL Y_CURPOS Y_ENDPT Y1 Y2 Y3;
Данное объявление используется для определения переменных взаимодействия. Может быть определено до 50 переменных взаимодействия. Эти переменные позволяют ввести какую-нибудь информацию пользователю до выполнения постпроцессора.
Пример определения переменной взаимодействия:
INTERACTION (Coordinates) "ENTER_DELTA_Z" DZ = 10.0;
За ключевым словом INTERACTION в круглых скобках указывается тип определяемой переменой (до и после круглых скобок должны следовать пробелы). Далее в кавычках следует текст, который будет выведен в диалоге для пользователя (пробелы не допускаются). В конце пишется непосредственно имя переменной и ее значение по умолчанию и все определение заканчивается точкой с запятой
При вызове постпроцессора пользователь может изменить значение переменных взаимодействия по своему усмотрению. Новое значение переменной станет значением по умолчанию.
Примечание: Все переменные типа Coordinates умножаются на масштабный коэффициент.
Все переменные отображаются как числа типа REAL или INTEGERS.
Представление согласно типа REAL всегда с тремя цифрами после десятичной точки не зависимо от настроек формата в файле def. Рекомендуется чтобы формат типа переменной взаимодействия соответствовал типу INTEGER или числу с тремя знаками после десятичной точки.
Пример: Формат в файле def:
USER_6: 2,1,2,1,NO,NO,....
USER_7: 1,5,1,5,NO,NO,....
USER_8: 4,3,1,1,NO,NO,....
USER_9: 3,3,1,1,NO,NO,....
Файл exf:
INTERACTION (USER_6) "INPUT" A = 1.1 ;
INTERACTION (USER_7) "INPUT" B = 1.1 ;
INTERACTION (USER_8) "INPUT" C = 1.1 ;
INTERACTION (USER_9) "INPUT" D = 1.1 ;
OUTPUT \J "A=" A "B=" B "C=" C "D=" D ;
Взаимодействие при выполнении постпроцессора:
Задано пользователем A=1.166 | Будет получено в постпроцессоре A=1.166 |
Задано пользователем B=1.56789 | Будет получено в постпроцессоре B=1.568 |
Задано пользователем C=7777.999 | Будет получено в постпроцессоре C=7778.000 |
Задано пользователем D=125.747 | Будет получено в постпроцессоре D=125.747 |
Файл вывода: A=1.2 B=1.56789 C=7778 D=125.747
Только определение переменной D дает корректный результат.
В диалоге взаимодействия с пользователем переменные появляются в том порядка, в котором они записаны в файле exf.
Любая переменная может быть модальной или немодальной. Все переменные имеют индикатор 'on/off'. У немодальной переменной этот индикатор всегда имеет значение 'on'. У модальных переменных индикатор получает значение 'off' после того как переменная выведена в файл выхода и значение 'on' после получения переменной нового значения. Кроме того, с помощью функции SET_ON или RESET значение индикатора может быть установлено на 'on' принудительно, даже если значение переменной не изменилось. Так же с помошью функции SET_OFF можно принудительно установить индикатор на 'off', даже в случае изменения значения переменной. Данный индикатор влияет, будет ли переменная послана на вывод в файл выхода. См. также здесь.
Статус модальный/немодальный для переменной определяется ее типом и установлен в файле def. Определение MODAL аннулирует статус установленный определениями FORMAT и INTERACTION.
Пример: FORMAT (Coordinates) PECK;
MODAL PECK CYC_DWELL;
В примере выше пользовательская переменная PECK и переменная траектории CYC_DWELL объявлены как модальные.Переменной PECK был назначен тип Coordinates и соответствующей ему формат (формат типа 1). Переменная CYC_DWELL имеет тип Dwell (формат типа 5). После определения MODAL обе перемененные имеют формат исходных типов, за исключением статуса модальный/немодальный. Теперь обе переменные модальные.
В определение MODAL может включаться список переменных.
Определение NON_MODAL действует аналогично определению MODAL.
Определение присваивает переменным статус - немодальной.
Пример: FORMAT (Coordinates) PECK;
NON_MODAL PECK CYC_DWELL;
В примере переменные PECK и CYC_DWELL определены как немодальные переменные, даже если прежде они были модальными.
Данный параметр позволяет задать определенный символ, при встрече которого в функции OUTPUT в программе будет выполнена некая последовательность команд. Это своего рода мини-макрос или процедура внутри программы.
Пример: NEW_LINE_IS ! ;
OUTPUT \J "N" SEQ ;
SEQ = SEQ + SEQINCR ;
В примере выше восклицательный знак задан как специальный символ, при встрече которого в программе будет выполнена серия команд заданных ниже. Будет произведен переход на новую строку, выведен символ N и значение переменой SEQ. Затем переменная SEQ увеличится на значение SEQINCR.
Пример ниже иллюстрирует работу параметра.
Пример: BEGINNING OF TAPE:
SEQ = 10; SEQINCR = 2; PROG = 1234;
OUTPUT "% \J "P" PROG "(TEST 1)";
OUTPUT ! ;
OUTPUT "G00 G90" ! "G55";
OUTPUT !; OUTPUT ! " ";
Выходной файл:
%
P1234 (TEST 1)
N10 G00 G90
N12 G55
N14
Примечание:
NEW_LINE_IS не должен использоваться с командами print0…print10. Не рекомендуется использовать параметр с командой распечатки.
Если после спец.символа не будет осуществляться вывод данных, то NEW_LINE_IS не активизируется. Но если спец.символ последний в команде вывода он активизируется.
Пример:
NEW_LINE_IS $ ;
CSEQ = CSEQ + ISEQ ;
OUTPUT \J "N" CSEQ ;
1.output \J TAB_ "A" TAB_ "B" TAB_ "C" TAB_ "D" TAB_ "E";
2.output $ ;
3.output $ "Q1";
4.output $;
5.output "Q2" $;
6.OUTPUT \J "P (TEST 1)";
7.OUTPUT $;
8.OUTPUT "G00 G90" $ "G55";
9.OUTPUT $; OUTPUT $ "_";
10. OUTPUT $;
Результат:
A B C DE
N100Q1
N105Q2
P (TEST 1)
N115G00 G90
N120G55
N125_
N130
Пояснения: 2 строка не отрабатывается; 4 строка отрабатывается, т.к. за ней идет вывод значений; в 5 строке символ $ не отрабатывается, т.к. далее идет спец.символ, а не данные (если убрать \J, то отработал бы); в 9 строке первый символ $ не отрабатывается; 10 строка отрабатывается, т.к. последний в череде вывода.
Если ваша стойка ЧПУ требует программу в виде фиксированных колонок, то вам придется использовать константу TAB_ (TAB+ подчеркивание). Параметр SET_TABS позволяет задать позиции начала колонок. Когда в команде вывода встречается константа TAB_ система добавит в строку столько пробелов, сколько надо для размещения колонок в позиции заданной в данном параметре.
Примечание: Количество значений константы (количество колонок) ограничено 20.
Длина строки ограничена 160 символами.
Пример: SET_TABS 4 9 12 18;
В примере заданы позиции четырех колонок с началом в соответствующих позициях.
Пример ниже иллюстрирует работу параметра.
Пример:
output \J "123456789012345678901234567890";
output \J "ABCD";
output \J TAB_ "A" TAB_ "B" TAB_ "C" TAB_ "D";
output \J TAB_ TAB_ "ABCD";
output \J "A" TAB_ "BC" TAB_ "D";
output \J TAB_ "A" TAB_ "B" TAB_ "C" TAB_ "D" TAB_ "E";
Результат будет таким: