Вот что у меня получилось:
1. код берем тут:
https://code.launchpad.net/~xepecine/figaro/trunk
2. запускаем python figaro.py input
3. gкод будет в input.ngc
4. теперь самое интересное как он работает...
Надо тестировать! Если влом все читать, внизу пример использования!
Feeders - фидеры
Хранятся в файле который берется из figaro.ini.
Формат файла: из файла берутся все описания фидеров которые выглядят так:
Параметры фидеров
Что должно быть внутри каждого фидера:
Компонент, который хранится в фидере.
Код: Выделить всё
# Feeder Parameters separated by any space
# \n\t can be used for multiline parameters
# Parameters = x(x,y,z,a) capacity
Parameters = (10.0, 20.0, 30.0, 40.0) 40.0
# State = cx(x,y,z,a) remain
State = (10.0, 20.0, 30.0, 40.0) 4.0
Параметры, в строке могут разделяться любым пробелом.
Parameters - x(x,y,z,a) начальное положение фидера, capacity емкость фидера.
State = cx(x,y,z,a) - текущее положение фидера, remain - текущий остаток.
Дальше самое интересное - описание функций фидера
Каждая функция описывается так:
<тип функции>-function = <строка вызова функции> параметры разделенные \t
Пока есть два типа функций Next и Fill.
- В функции Next есть три основных типа:
Фиксированный - fixed_tape, x_tape, y_tape - это функции next для фидера в виде ленты закрепленной на столе. (Как тут http://www.youtube.com/watch?v=-CqpbsTfVtM). Параметры для этих функций - для fixed_tape - сдвиг dx,dy, для остальных сдвиг по 1 оси.
Пример:
- С протяжкой - pull_tape (p1) (p2), эта функция для описания филера который нужно протягивать. Параметры - две точки (x1,y1,z1,a1) (x2,y2,z2,a2)
Пример:
Код: Выделить всё
# Next-function = pull_tape (x0,y0,z0,a0) (x1,y1,z1, a0)
Next-function = pull_tape (0,0,0,0) (10,0,0,0)
- И еще одна функция на все случаи жизни - flat_gcode - просто чистый Gкод, который будет добавляться в выходной файл.
Пример:
Код: Выделить всё
# [Any]-function = flat_gcode [Any string with ∅ ='', &='&', &tab;, &newline; \n\t=&newline]
Next-function = flat_gcode M03
(можем все что захотим)
(и даже это)
(...)
По фидерам пока все.
Компоненты
Компоненты также хранятся в отдельном файле. Синтаксис файла такой же.
Параметры компонентов
Comp-Ref = R - ссылка на ref компонента
Код: Выделить всё
# Pick-Place = (x,y,z,a) (x,y,z,a)
Pick-Place = (0.0, 0.0, 0.0, 0.0) (0.0, 0.0, 0.0, 0.0)
Две точки, которые добавляются к точке взятия компонента и точке постановки компонента. Может пригодиться, если нужно брать не за центр, или если берем из универсального фидера (О нем позже).
Функции компонентов
- Cluch-function = flat_gcode M03
Функция фиксирования компонента. Пока тут есть только flat_gcode.
- Release-function = flat_gcode M03
Функция установки компонента. Пока тут есть только flat_gcode.
- Adjust-function = flat_gcode M03
Функция юстировки компонента. Пока тут есть только flat_gcode.
Пример использования.
Пример использования
Пробуем запустить python figaro.py input
.....
Нужна реальная плата...
....
В архиве есть примерные конфиги с 2 фидерами и 1 компонентом
Что будет происходить после генерации Gкода - Компоненты R будут браться из фидера Plain1.
Все остальные компоненты будут браться из универсального фидера с Comp-ref=*, по мере опустошения фидеров на экран будет выводиться сообщение, поставьте в такой-то фидер такие-то компоненты.
Что нужно сделать дополнительно.
Надо указать 0 платы. Для этого едем в референсную точку платы и настравиаем в ней G55, т.е. делаем G10 L20 P2 X0 Y0 Z0 A0 . Все компоненты устанавливаются в G55.
Нужно задать #<z_safe> для безопасного перемещения. #<z_safe> указывается для G54!