Страница 3 из 23

Re: FAQ по Gcode, примеры

Добавлено: 09 июн 2012, 15:21
xentaur
Сейчас проверять буду.
А на счет полярных координат вариантов нет?

Re: FAQ по Gcode, примеры

Добавлено: 09 июн 2012, 15:34
xentaur
nkp писал(а):это я от лени так пишу-сорри(по аналогии с геометрией)
Это нормально сработает если подпрограмма в относительных координатах, а если в абсолюте то нифига не получится.
Или если в начале подпрограммы написать что-то типа

Код: Выделить всё

G10 L2 P0 X0 Y0
Но!!! P0 портит всё!!! Может G92 спасёт? Похоже параметры самое то. Как проверю отпишусь.

Re: FAQ по Gcode, примеры

Добавлено: 09 июн 2012, 16:00
Nick
xentaur писал(а):Nick, а параметры #5330 из G-кода можно менять, тогда это хоть какой-то вариант! Я тогда находясь в G53 в #5330 запищу первый центр, потом G54 (или что там соответствует) и т.д. Вот это да! Вариант!
Лучше их менять через G10 L2, а читать можно через #1234 (это относится к параметрам которые задают систему координат).

по поводу твоей задачи, я бы сделал так:

Код: Выделить всё

#<num> = 9 
#<r-step> = 40
#<mach> = 123 (номер подпрограммы)

O100 repeat [#<num>]
  G10 L2 R[#5330+#<r-step>] 
  O<#mach> call 
O100 endrepeat 

Все это можно в свою очередь запихать в отельный файл с отдельным Osub потом его вызывать O<angular-array> call [xxx] [yyy] [zzz]. И тоже можно сделать и с квадратным массивом.

Re: FAQ по Gcode, примеры

Добавлено: 09 июн 2012, 16:09
xentaur
Спасибо. Идея понятна, но не нова. К сожалению точность деталюшек высокая. И поэтому из-за корявости изготовления кондуктора для крепления заготовок, приходится координаты центров задавать индивидуально для каждой позиции.
По документации для G10 L2 параметр P обязательный.

Re: FAQ по Gcode, примеры

Добавлено: 09 июн 2012, 16:30
Nick
xentaur писал(а):По документации для G10 L2 параметр P обязательный.
Ну можно его тоже в функцию передавать...

Re: FAQ по Gcode, примеры

Добавлено: 09 июн 2012, 16:49
xentaur
Не нужно мне в подпрограмму его передавать. В моем случае подпрограмма делает фигурные отверстия вокруг текущего X0 Y0 Z0 используя текущую абсолютную систему координат. Вот X0 Y0 Z0 R0 Я и хочу менять в основной проге.
Я кондуктор на столе выставил, забазировал первую заготовку в G54, например, и всё! Дальше мне просто нужны смещения и повороты. Координаты остальных заготовок мне известны.

Re: FAQ по Gcode, примеры

Добавлено: 09 июн 2012, 17:10
nkp
И повороты и смещения -все есть.В чем сейчас трудность?

Re: FAQ по Gcode, примеры

Добавлено: 09 июн 2012, 17:54
xentaur
Трудность в адаптации. Пример мне не подходит - подпрограмма в G91 работает.

Код: Выделить всё

g54 g17 g40 g90 g90.1

o103 sub
#<a>=40
o133 repeat [6]
g10 l2 p0 r[#<a>]

/старый код подпрограммы
g0 x10 y0
z0.2 
G02 I7.5 J0 z-5 p10
g0 x7.5 y0
z5
/---------------------------

#<a>=[#<a>+60]
o133endrepeat
o103 endsub

/Основная программа

f600
g0 z50
x0 y0
o103call

m2
Есть предложения? Как сделать матрицу таких? Желательно задавать координаты относительно первой заготовки.

Re: FAQ по Gcode, примеры

Добавлено: 09 июн 2012, 18:03
nkp
xentaur писал(а):Пример мне не подходит - подпрограмма в G91 работает.
что это значит?
мой код из о103 выбрасывается полностью.Туда суем код подпрограммы настоящей

Re: FAQ по Gcode, примеры

Добавлено: 09 июн 2012, 18:06
xentaur
G10 L2 без P- точно не работает. Неудобно получается.

Re: FAQ по Gcode, примеры

Добавлено: 09 июн 2012, 18:35
xentaur
nkp писал(а):что это значит?
мой код из о103 выбрасывается полностью.Туда суем код подпрограммы настоящей
моя подпрограмма работает только в G90 и X0 Y0 должен быть в центре заготовки. В моем примере (твоём переделанном :cheesy: ) в подпрограмме режется резьба, только для одного отверстия - остальные обрабатываются при помощи поворота координат.
Большое спасибо. Но я никак не допру как мне остальные заготовки обработать?
Заготовок 24 штуки в матрице 6х4. Нужно обработать все.
Просто хочу задать координаты всех следующих заготовок относительно первой
Типа G10 L2 P0 X50, но у меня какой-то бред начинается.
Вот вроде что то начало получаться.

Код: Выделить всё


g54 g17 g40 g90 g90.1

o103 sub
  #<a>=0
    o133 repeat [6]
    g10 l2 p0 r[#<a>]
  
    /старый код подпрограммы
    g90
    g0 x10 y0
    z0.2 
    G02 I7.5 J0 z-2 p4
    g0 x7.5 y0                
    z5
    /---------------------------
    
    #<a>=[#<a>+60]
    o133endrepeat 
  g10 l2 p0 r0
  o103 endsub

/Основная программа

f1500
g0 z50

g10 l2 p0 x0
o103call

g10 l2 p0 x25
o103call

g10 l2 p0 x50
o103call

g10 l2 p0 x0 y25
o103call

g10 l2 p0 x25 y25
o103call

g10 l2 p0 x50 y25
o103call

m2
offset_rotate.png (6090 просмотров) <a class='original' href='./download/file.php?id=5817&mode=view' target=_blank>Загрузить оригинал (119.34 КБ)</a>
Но не удобно и коряво. везде L2 P0 :pssdoff:
Пока так сойдет.

Re: FAQ по Gcode, примеры

Добавлено: 09 июн 2012, 18:58
xentaur
Спасибо за помощь, скоро и на станке попробую.

Облом G10 L2 не сбрасывает координаты при перезапуске программы. Что делать?

Re: FAQ по Gcode, примеры

Добавлено: 09 июн 2012, 23:42
nkp
xentaur писал(а):Что делать?

Код: Выделить всё

g54 g17 g40 g90 g90.1

o103 sub
  #<a>=0
    o133 repeat [6]
    g10 l2 p0 r[#<a>]
  
    /старый код подпрограммы
    g90
    g0 x10 y0
    z0.2 
    G02 I7.5 J0 z-2 p4
    g0 x7.5 y0                
    z5
    /---------------------------
    
    #<a>=[#<a>+60]
    o133endrepeat 
  g10 l2 p0 r0
  o103 endsub

/Основная программа

f1500
g0 z50

g10 l2 p1 x0
o103call
g55
g10 l2 p2 x25
o103call
g56
g10 l2 p3 x50
o103call
g57
g10 l2 p4 x0 y25
o103call
g58
g10 l2 p5 x25 y25
o103call
g59
g10 l2 p6 x50 y25
o103call
g54
g10 l2 p1 r0
g0 x0 y0
m2
проверил-вроде работает

Re: FAQ по Gcode, примеры

Добавлено: 10 июн 2012, 03:08
xentaur
Первый раз работает как надо, а второй и дальше пилит только дальний ряд дважды (даже если станок выключить авостом, включить, хоум, пуск).
Но если перезапустить LinuxCNC, то опять первый раз ОК, а остальные только второй ряд дважды.

Так вроде получилось, опять же криво, но работает.

А вот я код переделал с бесконечным циклом, Я так часто делаю, но LinuxCNC тошнит. Точнее загрузку прервать можно по [Esc], и даже прогу запустить, потом если остановить, то опять [Esc] или полный повисон. :idiot: :pssdoff:

Код: Выделить всё

%
g54 g17 g40 g90 g90.1 
g10 l2 p0 x0 y0 z0 r0

o103 sub
  #<a>=0
    o133 repeat [6]
    g10 l2 p0 r[#<a>]
  
    (старый код подпрограммы)
    g90
    g0 x10 y0
    z0.2 
    G02 I7.5 J0 z-2 p4
    g0 x7.5 y0                
    z5
    (-----------------------)
    
    #<a>=[#<a>+60]
    o133endrepeat 
  g10 l2 p0 r0
  o103 endsub

(Основная программа)

f1500
g0 z50

o555 while [1]
m3

g10 l2 p0 x0
o103call

g10 l2 p0 x25
o103call

g10 l2 p0 x50
o103call

g10 l2 p0 x0 y25
o103call

g10 l2 p0 x25 y25
o103call

g10 l2 p0 x50 y25
o103call

z50 m5
m0
o555 endwhile


m2
%






P.S. Потом заменил while на repeat [1000] и не дождался окончания трассировки. :lol: Поставил [100]. Но так не годится, хочу while[1].

Re: FAQ по Gcode, примеры

Добавлено: 10 июн 2012, 04:23
xentaur
Нашел способ. block_delete должен быть отключен перед загрузкой программы.

Код: Выделить всё

%
g54 g17 g40 g90 g90.1 
g10 l2 p0 x0 y0 z0 r0

o103 sub
  #<a>=0
    o133 repeat [6]
    g10 l2 p0 r[#<a>]
  
    (старый код подпрограммы)
    g90
    g0 x10 y0
    z0.2 
    G02 I7.5 J0 z-2 p4
    g0 x7.5 y0                
    z5
    (-----------------------)
    
    #<a>=[#<a>+60]
    o133endrepeat 
  g10 l2 p0 r0
  o103 endsub

(Основная программа)

f1500
g0 z50

o555 repeat [100]
m3

g10 l2 p0 x0
o103call

g10 l2 p0 x25
o103call

g10 l2 p0 x50
o103call

g10 l2 p0 x0 y25
o103call

g10 l2 p0 x25 y25
o103call

g10 l2 p0 x50 y25
o103call

z50 m5
m0
/m2 (чтобы не ждать долго загрузки)
o555 endrepeat


m2
%
Но нифига, только block_delete включаешь и можно пить кофе...Решил оставить repeat [100].

Re: FAQ по Gcode, примеры

Добавлено: 10 июн 2012, 11:11
xentaur
Оказалось что проблема в оболочке axis, под tklinuxcnc бесконечный while работает похоже без проблем. Нужно с axis разбираться.
33 минуты полёт нормальный!

Re: FAQ по Gcode, примеры

Добавлено: 11 июн 2012, 15:04
Nick
xentaur писал(а):Оказалось что проблема в оболочке axis, под tklinuxcnc бесконечный while работает похоже без проблем. Нужно с axis разбираться.33 минуты полёт нормальный!
Скорее всего потому, что tk не строит визуализацию всей обработки, а axis пытается это сделать и нарывается на бесконечный цикл.
ЗЫ что такое block_delete?
ЗЫЫ тему позже отделю...

Re: FAQ по Gcode, примеры

Добавлено: 28 июн 2012, 11:41
sr480
Подскажите как правильно задать начало заготовки?

Сейчас я подъезжаю в начало заготовки, в MDI вызываю G92 X0 Y0 Z0. Но приэтом загруженная программа фрезеровки не смещается в этот ноль - нужно переоткрыть файл.
Фрезеровка идет двумя разными инструментами, при смене инструмента нужно заново выставлять высоту - приходится останавливать программу, ехать в ноль, вызывать G92 Z0, перезагружать файл, и запускать с места остановки.

Как-то это неправильно. Еще хочу поставить один концевик, чтоб он работал как Prob-In

Re: FAQ по Gcode, примеры

Добавлено: 28 июн 2012, 12:59
Nick
Смещается не рисунок предпросмотра, а смещается нулевая точка системы координат.
На скриншоте даже отображается какие коды на нее повлияли.
sr480 писал(а):Как-то это неправильно. Еще хочу поставить один концевик, чтоб он работал как Prob-In
Не вопрос, ставь :) Кстати, можешь автоматом настроить обнуление второй фрезы. (Через G38)

Re: FAQ по Gcode, примеры

Добавлено: 28 июн 2012, 13:04
sr480
Ну вот открыл я свой GCode - LinuxCNC мне пишет: невозможно выполнить, так как превышает минимум оси Х, тогда я отъезжаю влево вызываю G92 X0, пробую снова и тожесамое, а вот если переоткрыть GCode то рисунок в просмотре перемещается и исполняется тоже без проблем.