Выход токарника в место смены инструмента

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Фрост
Мастер
Сообщения: 382
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 17
Настоящее имя: Сергей
Контактная информация:

Выход токарника в место смены инструмента

Сообщение Фрост »

Очередность движения осей, заданная для хомления, не влияет на очередность выхода в точку смену инструмента, и движется сразу двумя осями. Для исключения нежелательных событий, нужно сначала завершить движение по Х и затем начать Z.

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

[EMCIO]
TOOL_CHANGE_POSITION = 0 0 -100
TOOL_CHANGE_WITH_SPINDLE_ON = 1

[AXIS_X]
[JOINT_0]
HOME_SEQUENCE = 0

[AXIS_Z]
[JOINT_1]
HOME_SEQUENCE = 1
Если бы не кривость ЛСНС, которая не понимает что работает в токарной конфигурации, отлично подошел бы параметр TOOL_CHANGE_QUILL_UP = 1 - максимально отвести инструмент.
Вариант с TOOL_CHANGE_AT_G30 = 1 тоже не особо подходит, тоже двигает сразу двумя осями, хотя для однотипных деталей если задать значение 5181 0.000000, 5183 -250.000000 станок сначала выходит в нужную координату, а потом перекатывается по Z в TOOL_CHANGE_POSITION.

Как реализовать более грамотно? Желательно без ремапа
alex_sar
Мастер
Сообщения: 1672
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 278
Настоящее имя: Алексей
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение alex_sar »

Фрост писал(а): Если бы не кривость ЛСНС, которая не понимает что работает в токарной конфигурации
А в чём конкретно кривость проявляется?

Мне кажется нежелательные события одинаково возможны и если сначала двигать X, и если сначала двигать Z.
Детали разные - например резец в отверстии - что будет если ехать по Х наружу?
Фрост
Мастер
Сообщения: 382
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 17
Настоящее имя: Сергей
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение Фрост »

alex_sar писал(а): А в чём конкретно кривость проявляется?
На мой взгляд, если системе указана токарная конфигурация, доминирование осей должно измениться, в частности TOOL_CHANGE_QUILL_UP. И к тому же слабо представляю программу, где любой инструмент (хоть резец хоть сверло) может без отвода уйти на смену. А вот зацепить другим за деталь- легко.
alex_sar писал(а): например резец в отверстии
А если фреза Т-образная?))) В любом случае думаю это некоторая недоработка, для хоуминга есть же приоритет осей.
Остается понять, как изменить порядок...
alex_sar
Мастер
Сообщения: 1672
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 278
Настоящее имя: Алексей
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение alex_sar »

Фрост писал(а): Остается понять, как изменить порядок...
почему ремаппинг пугает? вроде ничего страшного там нет.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение Serg »

Просто в постпроцессоре перед сменой инструмента добавить выход в G28/G30 в нужной последовательности. :yawn:
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение tokarka63 »

К чему вообще эти "пляски" в программе отводишь инструмент куда хочешь там и меняешь!)
Вообще не понимаю, зачем уводить револьверку в концы осей!)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение nkp »

в исходниках даже комент оставлен:

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

    /* optional move to tool change position.  This
     * is a mess because we really want a configurable chain
     * of events to happen when a tool change is called for.
     * Since they'll probably involve motion, we can't just
     * do it in HAL.  This is basic support for making one
     * move to a particular coordinate before the tool change
     * is called.  */
========================================
если уж кому то сильно_надо ,то в emccannon.cc можно задать любую цепочку
действий :

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

void CHANGE_TOOL(int slot)
{
    EMC_TRAJ_LINEAR_MOVE linearMoveMsgX;
    EMC_TRAJ_LINEAR_MOVE linearMoveMsgZ;    
    linearMoveMsgX.feed_mode = canon.feed_mode;
    linearMoveMsgZ.feed_mode = canon.feed_mode;    
    EMC_TOOL_LOAD load_tool_msg;

    flush_segments();

    /* optional move to tool change position.  This
     * is a mess because we really want a configurable chain
     * of events to happen when a tool change is called for.
     * Since they'll probably involve motion, we can't just
     * do it in HAL.  This is basic support for making one
     * move to a particular coordinate before the tool change
     * is called.  */
    
    if (have_tool_change_position) {
        double vel, acc, x, y, z, a, b, c, u, v, w;

        x = FROM_EXT_LEN(tool_change_position.tran.x);
        y = FROM_EXT_LEN(tool_change_position.tran.y);
        z = FROM_EXT_LEN(tool_change_position.tran.z);
        a = canon.endPoint.a;
        b = canon.endPoint.b;
        c = canon.endPoint.c;
        u = canon.endPoint.u;
        v = canon.endPoint.v;
        w = canon.endPoint.w;

        if (have_tool_change_position > 3) {
            a = FROM_EXT_ANG(tool_change_position.a);
            b = FROM_EXT_ANG(tool_change_position.b);
            c = FROM_EXT_ANG(tool_change_position.c);
        }

        if (have_tool_change_position > 6) {
            u = FROM_EXT_LEN(tool_change_position.u);
            v = FROM_EXT_LEN(tool_change_position.v);
            w = FROM_EXT_LEN(tool_change_position.w);
        }

        VelData veldata = getStraightVelocity(x, y, z, a, b, c, u, v, w);
        AccelData accdata = getStraightAcceleration(x, y, z, a, b, c, u, v, w);
        vel = veldata.vel;
        acc = accdata.acc;
        linearMoveMsgZ.end = to_ext_pose(x, y, z, a, b, c, u, v, w);
        linearMoveMsgX.end = to_ext_pose(x, y, canon.endPoint.z, a, b, c, u, v, w);

        linearMoveMsgX.vel = linearMoveMsgX.ini_maxvel = toExtVel(vel);
        linearMoveMsgX.acc = toExtAcc(acc);
        linearMoveMsgX.type = EMC_MOTION_TYPE_TOOLCHANGE;
	    linearMoveMsgX.feed_mode = 0;
        linearMoveMsgX.indexrotary = -1;

        linearMoveMsgZ.vel = linearMoveMsgZ.ini_maxvel = toExtVel(vel);
        linearMoveMsgZ.acc = toExtAcc(acc);
        linearMoveMsgZ.type = EMC_MOTION_TYPE_TOOLCHANGE;
	    linearMoveMsgZ.feed_mode = 0;
        linearMoveMsgZ.indexrotary = -1;
        
	int old_feed_mode = canon.feed_mode;
	if(canon.feed_mode)
	    STOP_SPEED_FEED_SYNCH();

        if(vel && acc) 
            interp_list.append(linearMoveMsgX);
            interp_list.append(linearMoveMsgZ);
	if(old_feed_mode)
	    START_SPEED_FEED_SYNCH(canon.spindle_num, canon.linearFeedRate, 1);

        canonUpdateEndPoint(x, y, z, a, b, c, u, v, w);
    }

    /* regardless of optional moves above, we'll always send a load tool
       message */
    interp_list.append(load_tool_msg);
}
с такими изменениями и строкой в INI

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

TOOL_CHANGE_POSITION = 33.3 0 50.8
движения такие
https://www.youtube.com/watch?v=Ln2wVEKUbIA
Фрост
Мастер
Сообщения: 382
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 17
Настоящее имя: Сергей
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение Фрост »

nkp писал(а): если уж кому то сильно_надо ,то в emccannon.cc можно задать
А где его искать, как редактировать (надо ли компилировать или просто в редакторе) и перезапишется ли он при обновлениях системы?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение nkp »

Фрост писал(а): А где его искать, как редактировать (надо ли компилировать или просто в редакторе) и перезапишется ли он при обновлениях системы?
установить емс из исходников
поправить файл
при обновлении ничего в таком случае не слетит
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение Serg »

При изменении длины/диаметра заготовки нужно будет править конфиг и перезапускать LinuxCNC. Ну или всегда ездить в самый дальний угол.

Кстати, а сверла и внутренние резцы тоже менять отъезжая сначала по X?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение nkp »

контроллер всё не предусмотрит
однозначно - правильно это в программе прописывать
Аватара пользователя
rage
Мастер
Сообщения: 1002
Зарегистрирован: 13 окт 2014, 09:14
Репутация: 617
Настоящее имя: Константин
Откуда: Новосибирск
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение rage »

Задаю координаты смены инструмента в солидкаме, в посте перед сменой отвожу резец по z потом меняю инструмент и отвожу уже по Х.
У меня нет револьверки, несколько резцов на оси.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение Serg »

nkp писал(а): контроллер всё не предусмотрит
однозначно - правильно это в программе прописывать
Можно комплексно сделать, я на одном станке сделал так:
M-команда "заглядывает" в таблицу инструментов в поле "Orient" и кладёт результат в глобальную переменную.
O-процедура вызывает эту M-команду и на основе результата выбирает последовательность отъезда в позицию G28.
В постпроцессоре прописан вызов этой O-процедуры перед сменой инструмента.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
rage
Мастер
Сообщения: 1002
Зарегистрирован: 13 окт 2014, 09:14
Репутация: 617
Настоящее имя: Константин
Откуда: Новосибирск
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение rage »

Serg писал(а): в таблицу инструментов в поле "Orient"
А это поле на что нибудь еще влияет?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение Serg »

На компенсацию. А на что оно должно ещё влиять?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
rage
Мастер
Сообщения: 1002
Зарегистрирован: 13 окт 2014, 09:14
Репутация: 617
Настоящее имя: Константин
Откуда: Новосибирск
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение rage »

Serg писал(а): На компенсацию. А на что оно должно ещё влиять?
по моим наблюдениям ни на что.
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение ex71 »

rage писал(а): 30 янв 2021, 20:28 по моим наблюдениям ни на что.
Ну как минимум на отображение резца в окне lcnc.
Serg писал(а): На компенсацию. А на что оно должно ещё влиять?
эээ.. вопрос: "компенсацию", то есть изменяется знак корректора при его сложении/вычитании с машинной координатой?
То есть, если для уменьшения диаметра на внешнем резце я уменьшаю корректор, ТО для внутреннего получится надо будет увеличивать корректор?
Я не часто правлю корректоры, но что-то были такие мысли что на каком-то резце не в ту сторону корректор работал.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Выход токарника в место смены инструмента

Сообщение Serg »

Я сам не сталкивался - всегда правильно указывал. А у одного клиента были какие-то несоответствия с компенсацией расточного резца, я особо не вникал т.к. уже планировал приезд к нему для выяснения, но напоследок послал ему картинку из доки и попросил проверить таблицу инструментов - он написал, что было указано неправильно, он поправил и всё заработало как надо.
Тогда была мысль изучить исходники на эту тему, ибо сам заинтересовался, но как-то недосуг было...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

Вернуться в «LinuxCNC»