Структура TGF-файла:
| <команда>
<параметры> |
первая команда в файле |
| ....... | произвольное число команд |
| <команда>
<параметры> |
последняя команда в файле |
<команда> = unsigned short int (2 байта)
=
младший байт - 0x2a - признак команды + старший байт
-
код команды
короче:
<команда>=0x2aCodкоды команд совпадают с кодами команд DGF, кроме кодов 0xff и 0xfe - "заголовок"
| Код команды | Параметр | Байт на
параметр |
Байт на
команду |
Описание команды и параметров |
| 0xff | struct TgfHead | sizeof(struct TgfHead) | sizeof(struct TgfHead)+2 | Смотри описание структуры TgfHead |
| 0xfe | struct Tgf1Head | sizeof(struct Tgf1Head) | sizeof(struct Tgf1Head)+2 | Смотри описание формата TGF_v |
struct TgfHead
{
/* Обязательно используемые параметры */
char Head[11]; /* "TGF_format"
фиксированная строка для проверки формата*/
long int Smin[2]; /* min x,y */
long int Smax[2]; /* max x,y */
float
lenL;
/* длина резов */
float
lenH;
/* длина холостых переходов */
unsigned short int plineN;/* число полилиний
= число включений лазера */
/* Информационные параметры */
long int razStol; /* сколько раз
выводился на стол */
long int razDisp; /* сколько раз
выводился на дисплей */
float TimeStolCalc; /* полное расчетное время
на столе, сек */
float TimeStol; /*
полное
реальное время вывода на столе */
float TimeDisp; /*
полное
реальное время вывода на дисплей без рисования */
unsigned short int Nnkadr; /* число кадров в
исходном файле */
unsigned short int control; /* контроль числа
кадров в исходном файле */
float res1; /*
reserved */
float res2; /*
reserved */
float res3; /*
reserved */
};
| Код команды |
|
Байт на
параметр |
Байт на
команду |
Описание команды и параметров |
|
|
||||
| 0x00 |
|
2 | 6 | приращение
Параметры задают относительное перемещение относительно текущего положения, после выполнения перемещения текущее положение инструмента будет являться текущим положением для следующего относительного перемещения. |
| 0х01 |
|
4 | 10 | приращение |
| 0х02 |
|
2 | 6 | абс.перемещение
Параметры задают абсолютное положение конечной точки перемещения |
| 0х03 |
|
4 | 10 | абс.перемещение |
|
|
||||
| 0х04 |
|
2 | 6 | приращение |
| 0х05 |
|
4 | 10 | приращение |
| 0x06 |
|
2 | 6 | абс.перемещение |
| 0x07 |
|
4 | 10 | абс.перемещение |
|
|
||||
| 0x08 | X,Y,Xc,Yc | 2 | 10 | приращение
X,Y задают положение конечной точки, а Xc, Yc - положение центра дуги в по отношению к текущему положению. |
| 0x09 | X,Y,Xc,Yc | 4 | 18 | приращение |
| 0x0a | X,Y,Xc,Yc | 2 | 10 | абс.перемещение |
| 0x0b | X,Y,Xc,Yc | 4 | 18 | абс.перемещение |
|
|
||||
| 0x0c | X,Y,Xc,Yc | 2 | 10 | приращение |
| 0x0d | X,Y,Xc,Yc | 4 | 18 | приращение |
| 0x0e | X,Y,Xc,Yc | 2 | 10 | абс.перемещение |
| 0x0f | X,Y,Xc,Yc | 4 | 18 | абс.перемещение |
| Код команды | Параметры | Байт на
параметр |
Байт на
команду |
Описание команды и параметров |
| 0x10 | n | 2 | 4 | Выбор головки |
| 0x11 | V0, V1 | 2 | 6 | выбор скорости |
| 0x12 | A0, A1 | 2 | 6 | выбор ускорения |
| 0x15 | V1, A1 | 2 | 6 | Выбор скорости и ускорения при опущенном инструменте |
| 0x17 | - | 0 | 2 | Пустая операция, NOP |
| 0x18 | - | 0 | 2 | Переключение в режим ручного управления |
| 0x1a | - | 0 | 2 | " Конец программы " |
| 0x1f | n c1,...,cn | 2 и 1 | 2+2+n | " Черчение символов" |
| 0x1c
0x1d 0x1e 0x21 |
n | 2 | 4 | игнорируется |