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

Re: Тангенциальный нож

Добавлено: 16 май 2015, 23:54
vvpolyakov
Сегодня поигрался с программкой atan2 из вышеупомянутой темы, вот возник вопрос, а можно ли заставить подниматься нож при резкой смене направления?

Re: Тангенциальный нож

Добавлено: 17 май 2015, 00:33
NightV
можно..
насчет авотара... злобный пингвин у нас уже есть, который на фоне леса :hehehe:

Re: Тангенциальный нож

Добавлено: 17 май 2015, 20:56
vvpolyakov
=))
ок, а как? =))
хотя бы примерно, что нужно сделать что бы заставить программу остановиться и поднять Z

Re: Тангенциальный нож

Добавлено: 17 май 2015, 21:19
NightV
vvpolyakov писал(а):хотя бы примерно,
врать не буду, не знаю, НО в чем прелесть LCNC в связке с Gcodetools это в гибкости, настроить можно как угодно.
года 3 назад мы с Nick под меня Gcodetools кроили, востанавливал хитрый станок гравировки по стеклу, были несколько проблем работы с поворотной головой, ниче.. сделали, досих пор работает :) только мы сделали все через Gcode, недоезды, переезды, отскоки от стекла на острых углах и тд и тп
если nkp, Nick и UAVpilot подтянутся сюда, уверен решат твою проблему :)

Re: Тангенциальный нож

Добавлено: 17 май 2015, 21:39
vvpolyakov
для работы с gcodetools нужны нервы более крепкие =)))

Re: Тангенциальный нож

Добавлено: 18 май 2015, 07:34
nkp
vvpolyakov писал(а):а можно ли заставить подниматься нож при резкой смене направления?
несколько мыслей и вопросов :
если смотреть на задачу в разрезе кинематики (или atan2) - то наверно можно получить подъем только уже в начале движения "условно назад"...
----------
то есть - сперва "едем назад" - потом "поворачиваем нож",
хотя происходить это будет практически одновременно...
преимущество подобного решения в том , что нет необходимости задавать в жкоде параметры поворотной оси...
добавляется задача повернуть и опустить нож после поднятия - это же тоже по
идее должно предшествовать началу движения по XY...
--------------
если момент поднятия должен быть строго перед поворотом инструмента - то скорей всего нужно из жкода напрямую давать такую команду...
Nick пишет, что GT это умеет
кстати - Nick , как это там работает? правильно ли я думаю:
поднимая нож командой жкода , необходимо и поворачивать , и опускать его уже жкодом ...
так команда для поворотной оси уже берется не из векторов X,Y ??
то есть в этом случае GT выдает код для XYZA trivial кинематики??
----------
для полного понимания вопроса:
какой цифрой можно выразить "резкой смене направления" ??
==============
ну и наверно можно написать фильтр для емс , который будет прогонять код и добавлять подъемы...

Re: Тангенциальный нож

Добавлено: 18 май 2015, 09:52
gendos
Мне кажется удобно если было бы как в mach3, он делает все сам.

Re: Тангенциальный нож

Добавлено: 18 май 2015, 10:36
vvpolyakov
микронная точность не нужна, так что вполне можно сделать шаг в резком направлении (что бы посчитать тангенс по скорости) прежде чем начать поднимать Z

Re: Тангенциальный нож

Добавлено: 18 май 2015, 12:05
Nick
Вариант:
Добавляем near. Ему на вход текущее значение atan2, и текущее положение оси.
Если near не срабатывает, то (near.out=>not.in=>not.out) => motion.feed-hold + схемка на Classic ladder. (хотя feed-hold наверное тоже лучше в ladder завернуть)
Схема на ladder будет:
1. поднимать нож - stepgen.2.pos-cmd (добавляем нужное значение (скорее всего через add2))
2. доворачивать нож
3. опускать нож
4. снимать feed-hold.

Re: Тангенциальный нож

Добавлено: 18 май 2015, 12:19
nkp
Nick писал(а):Вариант:
хороший вариант :good:
но (даже с учетом того - что может вопрошающему это и подходит) мне бы
хотелось подумать над решением - которое не поворачивало бы инструмент не подняв его...
нельзя ли все таки задействовать кинематику,вычисляя угол поворота ,и если он превышает установленый предел ,
то активировать пин , который потом коммутировать с feed-hold ...
а потом уже - подъем ,поворот , опускание , и продолжаем... :thinking:

Re: Тангенциальный нож

Добавлено: 18 май 2015, 12:25
Nick
Самая большая проблема - c G64. Узнаем мы о том, что нам надо поворачивать не сразу и при этом можем иметь текущую не нулевую скорость.
Если работать на G61 - то все просто. Узнаем о повороте прямо перед стартом осей, сразу включаем feed-hold и никуда не едем.


В описанном выше примере, нож будет поворачиваться только в поднятом состоянии, при превышении предела. И feed-hold будет включаться сразу.

Зачем нам для этого кинематика?

Re: Тангенциальный нож

Добавлено: 18 май 2015, 12:48
nkp
Nick писал(а):Зачем нам для этого кинематика?
это я напутал - atan2 с tangentkins...
============================================
не будет ли выскакивать ошибка следования
после "насильственного" поворота оси :thinking:

Re: Тангенциальный нож

Добавлено: 18 май 2015, 13:00
Nick
nkp писал(а):не будет ли выскакивать ошибка следования
после "насильственного" поворота оси
в atan2 поворотная ось не контроллируется кинематикой. ;)
остальные оси будем двигать в feed-hold незаметно от кинематики - т.е. просто добавляем непосредкственно к stepgen.X.pos-cmd и вычитая из обратной связи.

Re: Тангенциальный нож

Добавлено: 18 май 2015, 13:19
nkp
Nick писал(а):остальные оси будем двигать в feed-hold незаметно от кинематики - т.е. просто добавляем непосредкственно к stepgen.X.pos-cmd и вычитая из обратной связи.
z ось тоже можно "не показывать" планировщику - она ведь не будет управляться жкодом...

Re: Тангенциальный нож

Добавлено: 18 май 2015, 13:37
Nick
nkp писал(а): она ведь не будет управляться жкодом...
будет - холостые переезды.

Re: Тангенциальный нож

Добавлено: 18 май 2015, 21:30
vvpolyakov
такс... из всего понял только то как включить motion.feed-hold =)
а вот как поднять, потом повернуть, потом опустить и потом отключить motion.feed-hold?
это же где-то отдельно от atan2 надо программировать? )

Re: Тангенциальный нож

Добавлено: 19 май 2015, 02:19
Serg
По хорошему надо копать в сторону нового планировщика - он-то знает куда скоро поедем...

Re: Тангенциальный нож

Добавлено: 19 май 2015, 10:13
Nick
vvpolyakov писал(а):а вот как поднять, потом повернуть, потом опустить и потом отключить motion.feed-hold?
это же где-то отдельно от atan2 надо программировать? )
Classic ladder :)

Примерно вот так:
на %I0 подаем превышение предела разницы текущего положения и значения atan2.
После этого %Q0 выставляется в 1. Q0 заводим на feed-hold.
Также при растущем фронте I0 отключаем Q1 (это не нарисовал), который заведем на блокировку вращения ножа (например на stepgen.N.enable).
Q0 также заводим на mux2, который добавит к команде привода по Z нужное значение.
Q0 через таймер заводим на включение Q1 - которое разблокирует поворот ножа.

И в самом низу добавляем I1 - вход near который будет определять, что мы довернули нож = он сбрасывает Q0 и Q1.
classic ladder.png (5045 просмотров) <a class='original' href='./download/file.php?id=50551&sid=4ffe205258fb90b09aaf248d51987629&mode=view' target=_blank>Загрузить оригинал (179.71 КБ)</a>
Мда..... косяков по схеме много... работать она (без исправлений) скорее всего не будет, но общий принцип надеюсь понятен :freak:.
UAVpilot писал(а):По хорошему надо копать в сторону нового планировщика - он-то знает куда скоро поедем...
О том, что нам надо резко поворачивать, мы узнаем за 1 серво цикл до перемещения, может этого хватит?

Re: Тангенциальный нож

Добавлено: 19 апр 2023, 18:33
Tiberius
Жаль, что тема умерла без решения!

Re: Тангенциальный нож

Добавлено: 20 апр 2023, 04:12
AAN
Я в свое время для такой же задачи изучил Python и написал постпроцессор, который добавлял ось C в готовый G-код.