Страница 2 из 5

Re: G76 и G33

Добавлено: 04 фев 2013, 23:20
vmarkiv
Хотя по G33 G76 у меня есть задумка для подобного типа деталей переводить шпиндель в оборотную координату С - поворотную ось и тогда резцом можно царапать любое . Но на моем 16К20 есть люфт в коробке и доконца сделать это не получалось , при удержании шпинделя сильно стучит .

Re: G76 и G33

Добавлено: 04 фев 2013, 23:45
Nick
Про G34 посмотрим... Кстати вот есть интересная страничка о том, что в пром стойках сделано не так, как в linuxcnc: http://wiki.linuxcnc.org/cgi-bin/wiki.p ... Lathe_Code

Re: G76 и G33

Добавлено: 05 фев 2013, 01:06
aegis
Nick писал(а):Про G34 посмотрим
ж34 для емс неивестен. тут или ж33 или ж33,1 или ж76 надо смотреть. а по хорошему ж34 работает у нас на заводе на эмко и на нцт - лично ен пользовался, но в документации описано было. ж34 то что надо. смысл такой что это синхронизация движения с переменным шагом, причем подача в каждом кадре будет синхронизироваться с начальной меткой, тоесть можно и резьбу на шарике резать к примеру а не только на конусах

Re: G76 и G33

Добавлено: 05 фев 2013, 10:14
Nick
Вот интересная страничка по расширению Gкода, но правда в основном методами Python. Без изменений в интерпретаторе Gкода:
http://www.linuxcnc.org/docs/devel/html ... cture.html
Кстати, нашел две интересные штуки - как можно передавать произвольный параметр из ini в gкод и получать значение произвольного пина.
http://www.linuxcnc.org/docs/devel/html ... features_a
http://www.linuxcnc.org/docs/devel/html ... ariables_a
Интересно, оно работает?

Re: G76 и G33

Добавлено: 05 фев 2013, 10:42
nkp
всем этим занимается плотно Michael Haberler
он и в интепретатор для питона вносит изменения насколько я понял
interp_python.cc.tar
(20 КБ) 478 скачиваний
все это работает в 2.6
некоторые вещи я пробовал
а вот по коду интерпретатора:
вот здесь
interp_convert.cc.tar
(210 КБ) 486 скачиваний
есть такая функция

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

START_SPEED_FEED_SYNCH
не могу найти ее тело
файлы интерпретатора:
rs274ngc.tar
(900 КБ) 477 скачиваний

Re: G76 и G33

Добавлено: 05 фев 2013, 10:53
Lexxa
а я узнал как шнеки делаются на взрослых станках.
несколько вариантов реализации, но суть одна - вихревая обработка.
Шпиндель с заготовкой должен вращаться медленно, тут обычно используют ось С на токарных.
Вместо резцедержки ставится специальная вихревая головка.
Вместо оси С в шпиндель можно вставить специальный червяк, и его крутить отдельным двигателем. на втором конце червяка патрон, в него заготовку.
Но вихревая головка один фик нужна. Это если шаг достаточно большой.
Ну или вихревой станок.

Re: G76 и G33

Добавлено: 05 фев 2013, 11:03
Nick
Вот так оно обрабатывает g33

https://github.com/sittner/linuxcnc/blo ... t.cc#L4322

Забавно, вот код твоей функции https://github.com/sittner/linuxcnc/blo ... le.cc#L401 :)
Наверно, она где-то еще объявляется :)

Re: G76 и G33

Добавлено: 05 фев 2013, 11:12
nkp
вихревая обработка - это сила
http://www.youtube.com/watch?v=gcjhWrexbi8
но шнеки (повторюсь) - это просто пример
задача "красиво" заиметь кодирование переменного шага синхронезируемого естественно с шпинделем
имея приспособу для той же вихревой обработки такая опция все равно нужна

Re: G76 и G33

Добавлено: 05 фев 2013, 11:17
nkp
Nick писал(а):Забавно, вот код твоей функции
gcodemodule.cc - это модуль Axis
по идее емс и без него должен работать ;)
если она (искомая функция) объявляется в другом месте - то что ж получается - код интепретатора
выходит за рамки директории rs274ngc (ни в одном файле ее не нашел)
(правда поздно вчера было :) -мог и не заметить))
????????

Re: G76 и G33

Добавлено: 05 фев 2013, 11:35
Nick
А как происходит синхронизация вихревой головки и патрона?

Re: G76 и G33

Добавлено: 05 фев 2013, 11:37
nkp
Nick писал(а):А как происходит синхронизация вихревой головки и патрона?
так наверно через энкодер
или ты про что??
upd
на видео выше обычный станок без чпу - и синхронизация естественно гитарой

Re: G76 и G33

Добавлено: 05 фев 2013, 11:39
Nick
На том видео вроде как просто отдельная приблуда с отдельным движком и все... никаких энкодеров, никаких приводов подач...

Re: G76 и G33

Добавлено: 05 фев 2013, 11:42
nkp
обновил выше
то есть подача на установленный шаг резьбы через вал с выбором передаточного соотношения шестерней

Re: G76 и G33

Добавлено: 05 фев 2013, 12:40
Lexxa
как обычную резьбу режут - также.
естесственно для переменного шага G34 нужна будет.

Re: G76 и G33

Добавлено: 06 фев 2013, 23:46
nkp
пробовал цикл
результаты:

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

M3 S540
#<zst> = 20
#<zend> = 2
#<z> = #<zst>
#<zstep> = 2
#<x> = 3
G1 f50 X3 Z21
o100 while [#<z>-#<zstep> GE #<zend> ]
  #<z> = [#<z>-#<zstep>]
  #<k> = [0.1*[#<z>]]
  G33 X#<x> Z#<z> K#<k>
o100 end while
M2
вот так работает и можно наблюдать переменное значение подачи
https://www.youtube.com/watch?v=BJot9mQ1meI
а дальше пытаюсь уменьшать шаг- подача становиться постоянной(соответственно и шаг)
теперь вопросы:
может на симуляторе некорректно такие вещи проверять?
и еще,Ник ,у тебя в задании К стоит корень:

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

#<zst> = 0
#<zend> = 100
#<z> = #<zst>
#<zstep> = 0.01
#<x> = 10
o100 while [#<z>+#<zstep> LT #<zend> ]
  #<z> = [#<z>+#<zstep>]
  #<k> = SQRT[#<z>]
  G33 X#<x> Z#<z> K#<k>
o100 end while
не понял замысла???
конечно,можно любую зависимость задавать
чаще наверно линейную

Re: G76 и G33

Добавлено: 06 фев 2013, 23:53
Nick
Ну корень он так, для примера :), вспомнил на досуге, что можно мат функции использовать :).

Лучше конечно на rt проверить. Но по идее главное, чтобы linuxcnc успел траекторию построить, должен успеть, если ты конечно шаг в 0.0001 не поставишь..

Эх... еще бы как-нибудь синхронизацию проверить... :roll: только вот как?

Re: G76 и G33

Добавлено: 06 фев 2013, 23:57
nkp
Nick писал(а):Лучше конечно на rt проверить. Но по идее главное, чтобы linuxcnc успел траекторию построить, должен успеть, если ты конечно шаг в 0.0001 не поставишь.. Эх... еще бы как-нибудь синхронизацию проверить... только вот как?
симулятор - это я имел в виду sim_encoder ;)
а так ядро конечно RT
без sim_encoder ж33 вообще не работает никак

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

#==============================
loadrt sim_encoder 
addf sim-encoder.make-pulses  servo-thread
addf sim-encoder.update-speed servo-thread
setp sim-encoder.0.ppr  1024
net speed motion.spindle-speed-out-rps    sim-encoder.0.speed
loadrt encoder
addf encoder.update-counters   base-thread
addf encoder.capture-position  servo-thread
net enc.a  sim-encoder.0.phase-A   encoder.0.phase-A 
net enc.b  sim-encoder.0.phase-B   encoder.0.phase-B
net enc.z  sim-encoder.0.phase-Z   encoder.0.phase-Z
setp encoder.0.position-scale 250
net index motion.spindle-index-enable  encoder.0.index-enable 
net revs  motion.spindle-revs           encoder.0.position 

Re: G76 и G33

Добавлено: 07 фев 2013, 00:02
Nick
Тогда надо пробовать на станке :freak:
Так что ты говоришь хотел сделать :)

Re: G76 и G33

Добавлено: 07 фев 2013, 11:07
vmarkiv
Что-бы шаг резьбы менялся в границах одного витка

Re: G76 и G33

Добавлено: 07 фев 2013, 11:34
vmarkiv
В стойке NC210 http://bsystem.ru/Portals/0/files/TechD ... r%20TC.pdf формат функции немного другой , вот так хочется :
Формат:
G33 [ОСИ] K [R] ,
где:
[ОСИ] - представлены символом оси и цифровым значением в явной
или неявной форме (параметр E);
K - представляет шаг резьбы. В случае переменного шага,
представляет начальный шаг. Должен присутствовать всегда;
- представляет изменение шага. Для нарезания резьбы с воз-
растающим шагом I должна быть положительной, для нарезания
резьбы с уменьшающимся шагом должна быть отрицательной;
[R] - представляет отклонение по отношению к угловой позиции
нуля шпинделя (в градусах). Используется при многозаходной
резьбе для того, чтобы не сдвинуть начальную точку.