Постпроцессор не полный,я сломался на добавлений автоматической компенсаций инструмента.
Код: Выделить всё
;
; LinuxCNC - G-Code XYZ Artcam post processor
; License: GPL v2
; Author : torvn77
; email : torvn77@mail.ru
;
; Поддерживает:
; 1)Отдельные команды для подъёма и опускания инструмента.
; Команда опускания происходит на скорости [FP],что уменьшает вероятность слома инструмента при попаданий в заготовку.
; 2)Пауза в 10 сек. в работе программы после запуска и остановки шпинделя.
; 3)Назначение места парковки портала по окончанию УП в машинных координатах.
; 4)Линейная интерполяция.
; 5)Круговая интерполяция по и против часовой стрелки.
; 6)Задание места настройки компенсаций инструмента
; 7)Задание места для ручной смены инструмента в машинных координатах
;
; Документация и описание программы LinuxCNC (en) : http://linuxcnc.org/docs/html/
; Быстрый обзор поддерживаемого LinuxCNC G-cod'a (en): http://linuxcnc.org/docs/html/gcode.html
; Рускоязычная тема,посвящённая G-cod'у : http://cnc-club.ru/forum/viewtopic.php?f=15&t=113
;
;
; ######## Параметры файла ########
;
;
; Название постпроцессора в менюшке Арткама
DESCRIPTION = "AA_LinuxCNC - 3-Axis (mm) (*.ngc)"
; Расширение файла,которое ему будет присвоено при созданий
FILE_EXTENSION = "ngc"
; Система едениц,в которой написан постпроцессор
UNITS = MM
;
; Правила нумерования строк (Нумерование строк в данном постпроцессоре не используются)
FORMAT = [N|@|N|1.0]
LINE_NUM_START = 0
LINE_NUM_INCREMENT = 10
LINE_NUM_MAXIMUM = 999999
;
;Стандарт окончания строки в Linux:
;END_OF_LINE = "[10]"
;Стандарт окончания строки в Windows(Default):
END_OF_LINE = "[13][10]"
;
;
; ######## Установка формата переменных ########
;
;
; Формат и правила подстановки номера текущего инструмента
FORMAT = [T|@||1.0]
; Формат и правила подстановки номера прошлого инструмента
FORMAT = [TP|@||1.0]
;
; Формат и правила подстановки скорости шпинделя
FORMAT = [S|@|S|1.0]
;
; Формат и правила подстановки координаты X и параметров на её основе.
FORMAT = [X|@|X|+1.4]
; X-координата домашней точки ПРОГРАММЫ.
FORMAT = [XH|@|X|+1.4]
; Крайние точки рельефа по координате X
FORMAT = [XMIN|@|X|+1.4]
FORMAT = [XMAX|@|X|+1.4]
;
; Формат и правила подстановки координаты Y и параметров на её основе.
FORMAT = [Y|@|Y|+1.4]
; Y-координата домашней точки ПРОГРАММЫ.
FORMAT = [YH|@|Y|+1.4]
; Крайние точки рельефа по координате Y
FORMAT = [YMIN|@|Y|+1.4]
FORMAT = [YMAX|@|Y|+1.4]
;
; Формат и правила подстановки координаты Z и параметров на её основе.
FORMAT = [Z|@|Z|+1.4]
; Z-координата домашней точки ПРОГРАММЫ.
FORMAT = [ZH|@|Z|+1.4]
; Безопасная высота по Z
FORMAT = [SZ|@|Z|+1.4]
; Крайние точки рельефа по координате Z
FORMAT = [ZMIN|@|Z|+1.4]
FORMAT = [ZMAX|@|Z|+1.4]
;
; Как я предпологаю,Арткамовская ось вращения R соответствует одной из следующих осей LinuxCNC:U,V,W (ещё есть оси A,B,C)
; Но какой именно? U что-ли?
; Формат и правила подстановки координаты оси вращения R и параметров на её основе.
FORMAT = [R|@|U|+1.4]
; R-координата домашней точки ПРОГРАММЫ.
FORMAT = [RH|@|U|+1.4]
;
; Coordinated helical motion ("Arc feed")
FORMAT = [I|@|I|+1.4]
FORMAT = [J|@|J|+1.4]
;
; Формат скорости перемещения ((units|mm)/min),автоматически назначаемой Арткамом выбором из переменных
; [FR],[FC] или [FP] соответствующих текущему инструменту или траекторий.
FORMAT = [F|@|F|1.1]
; Формат скорости быстрого перемещения (units|mm)/min
FORMAT = [FR|@|F|1.1]
; Формат скорости врезания (units|mm)/min
FORMAT = [FP|@|F|1.1]
; Формат скорости подати материала (units|mm)/min
FORMAT = [FC|@|F|1.1]
;
;
; ######## Program moves ########
;
;
; Размер рабочего стола X=700 Y=800 z=100 .
; Место для ручной смены инструмента X=350 Y=150 z=100 .
; Место парковки портала после окончания исполнения программы X=350 Y=800 z=100 .
; Максимальная скорость линейного перемещения станка X=Y=Z=8 м/сек.
; Параметры ПК позволяют развивать скорость до X=Y=Z=3,3 м\сек.
;
; Установка скорости БЫСТРОГО перемещения [FR] в максимальное для станка значение.
; В LinuxCNC используется S-образный график ускорения,так что резкого торможения и связанных с ним проскоков координат быть не должно.
RAPID_FEED_RATE = 3300
;
; Задание команды изменения скорости перемещения.
; Но я поставил эти комманды непосредственно в строки и поэтому этот параметр стал не нужным и закоментирован.
;FEED_RATE_CHANGE = "[F|#] [S|#] ( FRC )"
;
; Задание команды подъёма по Z .
RETRACT_MOVE = "[FR] [S|#] G00 [X|#] [Y|#] [Z|#] ( RtM [F] )"
;
; Задание команды опускания по Z.
PLUNGE_RATE_MOVE = "[FP] [S|#] G01 [X|#] [Y|#] [Z|#] ( PM [F] )"
;
; Задание в сокращённой и полной (FIRST_) форме команды быстрого перемещения.
FIRST_RAPID_RATE_MOVE = "[F|#] [S|#] G00 [X|#] [Y|#] [Z|#] ( F_RRM )"
RAPID_RATE_MOVE = "[F|#] [S|#] G00 [X|#] [Y|#] [Z|#]"
;
; Задание в сокращённой и полной (FIRST_) форме команды линейной резки.
FIRST_FEED_RATE_MOVE = "[F|#] [S|#] G01 [X|#] [Y|#] [Z|#] (F_FRM)"
FEED_RATE_MOVE = "[F|#] [S|#] G01 [X|#] [Y|#] [Z|#]"
;
; Задание в сокращённой и полной (FIRST_) форме команды резки по дуге по часовой стрелке.
FIRST_CW_ARC_MOVE = "[F|#] [S|#] G02 [X] [Y] [I] [J] (F_CW)"
CW_ARC_MOVE = "[F|#] [S|#] G02 [X] [Y] [I] [J]"
;
; Задание в сокращённой и полной (FIRST_) форме команды резки по дуге против часовой стрелки.
FIRST_CCW_ARC_MOVE = "[F|#] [S|#] G03 [X] [Y] [I] [J] (F_CCW)"
CCW_ARC_MOVE = "[F|#] [S|#] G03 [X] [Y] [I] [J]"
;
;
; ######## END Program moves ########
;
;
START = " "
START = " "
START = " ( Variables status: )"
START = " "
START = " ( S=[S] )"
START = " ( F=[F] FC=[FC] FP=[FP] FR=[FR] )"
START = " ( SZ=[SZ] )"
START = " "
START = " ( XH=[XH] YH=[YH] ZH=[ZH] RH=[RH] )"
START = " ( XMIN=[XMIN] YMIN=[YMIN] ZMIN=[ZMIN] RMIN=RMIN )"
START = " ( XMAX=[XMAX] YMAX=[YMAX] ZMAX=[ZMAX] RMAX=RMAX )"
;
;
START = " "
START = " "
START = " (######## Set up program header ########)"
START = " "
START = " "
; Закоментирую,пока не пойму,что такое абсолютные координаты и зачем они нужны
;START = "G90"
; Установка единиц координат программы G20 - inches,G21 - mm.
START = "G21"
; Выбор плоскости XY для круговой интерполяций.Варианты выбора:
; XY - G17(Default),ZX - G18,YZ - G19 (UV - G17.1,WU - G18.1,VW - G19.1 не поддерживаются)
START = "G17"
;
START = " "
START = " "
START = " (START Select tools and change offset)"
START = " "
START = " "
START = " "
; Сделано на основе секций TOOLCHANGE
;
; Предпологается,что по неизвестной причине всё,что может и не может быть включено и установлено,включено и установлено.
;
; Отключение основного и дополнительного охлаждения
; Иначе при смене инструмента СОЖ потечёт на пол:).
; Но впринципе это может быть и пылесос.
START = "M9"
; Отключение шпинделя
START = "M05"
; Пауза в 10 сек.,для того,чтобы шпиндель успел остановится.
START = "G04P10"
; Сброс настроек компенсаций инструмента.
START = "G40"
START = "G49"
; Переход в положение для смены инструмента
START = "[FR]"
START = "G53 G00 Z100"
START = "G53 G00 X350 Y150"
; Выбор инструмента
START = "T[T] M06"
; Переход в область работы
START = "[FR]"
START = "G53 G0 Z100"
START = "G00 [XH] [YH]"
; Задание настроек инструмента(должно быть)
START = "G40"
START = "G49"
; Переход в XY "дом" программы и остановка на безопасной высоте.
; Предполагается,что крепления заготовки вы поставили так,что шпиндель во время обработки их не заденет
; и соответсвенно любое перемещение в пределах поверхности [XMIN]-[XMAX] [YMIN]-[YMAX] [SZ] пройдёт без столкновений.
START = "G53 G0 Z100"
START = "G00 [XH] [YH]"
START = "G00 [SZ]"
; Включение основного охлаждения
START = "M8"
; Включение доплнительного охлаждения
;START = "M7"
; Включение шпинделя,установка подачи на подачу врезания и установка частоты вращения шпинделя
START = "M03 [FP] [S]"
; Пауза на 10 сек.,чтобы шпиндель успел разогнаться
START = "G04P10"
;
START = " ( END Select tools and change offset)"
;
START = " "
START = " "
START = " (######## END Set up program header ########)"
START = " "
START = " "
;
;
;
TOOLCHANGE = " "
TOOLCHANGE = " "
TOOLCHANGE = " (######## Toolchange ########)"
TOOLCHANGE = " "
TOOLCHANGE = " "
; Вывод инструмента на безопасную высоту,скорость [FP] или [FC],чтобы чего не испортить.
TOOLCHANGE = "[FR] G00 [SZ]"
; Отключение основного и дополнительного охлаждения
; Иначе при смене инструмента СОЖ потечёт на пол.
; Но впринципе это может быть и пылесос.
TOOLCHANGE = "M9"
; Отключение шпинделя
TOOLCHANGE = "M05"
; Пауза на 10 сек.,чтобы шпиндель успел остановиться.
TOOLCHANGE = "G04P10"
; Сброс настроек инструмента
TOOLCHANGE = "G40"
TOOLCHANGE = "G49"
; Переход в положение для ручной смены инструмента на максимальной высоте Z МАШИНЫ,чтобы чего не испортить.
TOOLCHANGE = "[FR]"
TOOLCHANGE = "G53 G0 100"
TOOLCHANGE = "G53 G0 X350 Y150"
; Смена инструмента
TOOLCHANGE = "T[T] M06"
; Переход в область измерения параметров компенсаций инструмента на максимальной высоте Z МАШИНЫ,чтобы чего не испортить.
TOOLCHANGE = "[FR]"
TOOLCHANGE = "G53 G0 100"
TOOLCHANGE = "G00 [XH] [YH]"
; Задание настроек инструмента,коррекция на длинну и диаметр.
; Пока просто отключаем до понимания того,как это делать.
TOOLCHANGE = "G40"
TOOLCHANGE = "G49"
; Переход в XY "дом" программы и остановка на безопасной высоте SZ.
; Предполагается,что крепления заготовки вы поставили так,что шпиндель во время обработки их не заденет
; и соответсвенно любое перемещение в пределах поверхности [XMIN]-[XMAX] [YMIN]-[YMAX] [SZ] пройдёт без столкновений.
TOOLCHANGE = "[FR]"
TOOLCHANGE = "G53 G0 100"
TOOLCHANGE = "G00 [XH] [YH]"
TOOLCHANGE = "G00 [SZ]"
; Включение основного охлаждения
TOOLCHANGE = "M8"
; Включение доплнительного охлаждения
;TOOLCHANGE = "M7"
; Включение шпинделя,установка подачи на подачу врезания(предосторожность) и установка частоты вращения шпинделя
TOOLCHANGE = "M03 [S] [FP]"
; Пауза на 10 сек.,чтобы шпиндель успел разогнаться
TOOLCHANGE = "G04P10"
;
TOOLCHANGE = " "
TOOLCHANGE = " "
TOOLCHANGE = " (######## END Toolchange ########)"
TOOLCHANGE = " "
TOOLCHANGE = " "
;
;
;
END = " "
END = " "
END = " (######## End of file ########)"
END = " "
END = " "
; Вывод инструмента
END = "[FC] G00 [SZ]"
; Сброс настроек инструмента
END = "G40"
END = "G49"
; Отключение охлаждения инструмента.
END = "M9"
; Отключение шпинделя
END = "M05"
; Пауза на 10 сек.,чтобы шпиндель успел остановиться.
END = "G04P10"
; Переход в положение для ручной смены инструмента
END = "[FR]"
END = "G53 G00 Z100"
END = "G53 G00 X350 Y150"
; Возвращение инструмента в магазин
END = "(T=[T],интересно,какое значение T сейчас,если 0,то может вызвать подпрограмму TOOLCHANGE?)"
END = "T0 M06"
; Парковка портала
END = "G53 G00 Z100"
END = "G53 G00 X350 Y800 Z100"
; Остальные действия перед отключением машины
; Отключение станка
END = "M30"
END = " "
END = " "
END = " (######## End of file ########)"
END = " "
END = " "
Файлы ответственные за работу постпроцессора в Арткаме 2010:
config.dll - читает постпроцессоры с расширением *.con
pmpost.dll - читает файлы с расширением *.pmopt (предположительно),файлы должны находится в субдиректории optionfiles
Файлы с расширением *.con - постпроцессоры в формате программы ArtCAM
Файлы в каталоге optionfiles с расширением *.pmopt - постпроцессоры в формате программы Power Mill
Лишние файлы *.con и *.pmopt можно спокойно удалить оставив только файл нужный непосредственно в работе.
Файлы с другими расширениями за исключением config.dll и pmpost.dll также можно удалить.
Так же внимание привлекают файлы,на поверку оказывающиеся чем-то не нужным
Файл cldata.dll является постпроцессором создающим бинарные файлы с расширением *.cut.
Файл aux_dlls/Biesse.dll,не смотря на заманчивое название часть постпроцессора к станкам Biesse и общего значения не имеет.
Мануальник к языку написания постпроцессора для Арткама 2010 Старый мануальник к языку написания постпроцессора: Таблица кодов символов Арткама:
Код: Выделить всё
= 0
= 9 табуляция??
= 10
= 13
= 32
| = 124
~ = 126
% = 37
{ = 123
} = 125
( = 40
) = 41
* = 42
. = 46
/ = 47
: = 58
; = 59
= = 61
? = 63
@ = 64
\ = 92
^ = 94
! = 33
+ = 43
- = 45
$ = 36
& = 38
' = 39
, = 44
` = 96
_ = 95
" = 34
# = 35
< = 60
> = 62
[ = [91]
] = [93]
#<_ = [35][60][95]
> = [62]
[#<_ = [91][35][60][95]
>] = [62][93]