G76 и G33

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

G76 и G33

Сообщение nkp »

Хочу в этой теме обсудить вопрос синхронизируемых подач в Lcnc.
и рассмотреть все это в связке с невозможностью возможностью изменения шага ( конусности и т.д)
по данному вопросу гуглиться только один пример
да - этот код работает - я подробно не разбирался,но
похоже здесь используется тот же пронцип - по которому сначала я и пошел, только обернутый в циклы
а принцип такой - разбивать траекторию на части- и каждой части задавать свой шаг

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

G1 F30
M3 S300
X2 Z12
G33 X3   Z 10 K .5
G33 X3.5 Z 8 K .4
G33 X4   Z 6 K .3
G33 X4.5 Z 4 K .2
G33 X5   Z 2 K .1
M2
линейно или нет - это уже второй вопрос
так вот в идеале хотелось бы чтоб в емс была внутренняя такая возможность - чтоб планировщик все это разбивал и присваивал - ну как в других чпу
Для решения этой задачи необходимы две вещи:
1. выяснить -возможно ли это при данном интерпретаторе (по другому сказать - можно ли обойтись малой кровью,или пол емс надо переписать ;) )
2. если ответ на п.1. - положительный - то сделать это
трудности :
1. нет полной информации - как работает интерпретатор (да и быть ее не могло :) )
2. все это на писано на си (со всеми для меня вытекающими :thinking: )
Последний раз редактировалось nkp 27 июн 2013, 20:46, всего редактировалось 2 раза.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: G76 и G33

Сообщение Nick »

А что именно не так работает?
Вообще в примере какая-то хитрая обработка. Интереснно, как будет проходить синхронизация на углах траектории?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: G76 и G33

Сообщение nkp »

Nick писал(а):Вообще в примере какая-то хитрая обработка.
если ты насчет вот этого примера:
Выделение(013).jpg (47378 просмотров) <a class='original' href='./download/file.php?id=11507&mode=view' target=_blank>Загрузить оригинал (223.44 КБ)</a>
(для просмотра содержимого нажмите на ссылку)

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

    #1000 = 0.0000   #1100 = 0.3200   #1200 = 0.0450
    #1001 = 0.0450   #1101 = 0.2560   #1201 = 0.0450
    #1002 = 0.1530   #1102 = 0.2560   #1202 = 0.0450
    #1003 = 0.2190   #1103 = 0.2406   #1203 = 0.0440
    #1004 = 0.2620   #1104 = 0.2189   #1204 = 0.0430
    #1005 = 0.3040   #1105 = 0.1920   #1205 = 0.0420
    #1006 = 0.3450   #1106 = 0.1651   #1206 = 0.0410
    #1007 = 0.3850   #1107 = 0.1480   #1207 = 0.0400
    #1008 = 0.4240   #1108 = 0.1390   #1208 = 0.0390
    #1009 = 0.4620   #1109 = 0.1330   #1209 = 0.0380
    #1010 = 0.4990   #1110 = 0.1280   #1210 = 0.0370
    #1011 = 0.5350   #1111 = 0.1280   #1211 = 0.0360
    #1012 = 0.5700   #1112 = 0.1280   #1212 = 0.0350
    #1013 = 0.6040   #1113 = 0.1280   #1213 = 0.0340
    #1014 = 0.7294   #1114 = 0.1280   #1214 = 0.0330
    #1015 = 0.7644   #1115 = 0.1219   #1215 = 0.0350
    #1016 = 0.7994   #1116 = 0.1132   #1216 = 0.0350
    #1017 = 0.8324   #1117 = 0.1025   #1217 = 0.0330
    #1018 = 0.8634   #1118 = 0.0918   #1218 = 0.0310
    #1019 = 0.8924   #1119 = 0.0831   #1219 = 0.0290
    #1020 = 0.9194   #1120 = 0.0790   #1220 = 0.0270
    #1021 = 0.9584   #1121 = 0.0770   #1221 = 0.0260
    #1022 = 1.4334   #1122 = 0.0770   #1222 = 0.0250
    #1023 = 1.4604   #1123 = 0.0770   #1223 = 0.0260
    #1024 = 1.4894   #1124 = 0.0770   #1224 = 0.0280
    #1025 = 1.5204   #1125 = 0.0770   #1225 = 0.0300
    #1026 = 1.6854   #1126 = 0.0770   #1226 = 0.0320
    #1027 = 1.7154   #1127 = 0.0770   #1227 = 0.0320    
    G20
    G64 P0.002 
    G18 
    G40 G49 
    G92.1 
    M3 S580     
    #100 = 0.330   
    #101 = 0.050    
    #102 = 0.075    
    #106 = 0.500    
    #107 = 0.400    
    #108 = 1.900    
    #109 = 6.0      
    #200 = 26  
    #103 = 100 
    O100 while [ #200 GE 0 ]  
        O101 if [#[#200+1100] LT #103]
            #103 = #[#200+1100]
        O101 endif
        #200 = [#200-1]  
    O100 endwhile
    #104 = [#101+#102]
    #105 = 1
    O102 while [[#103+#104] LT #100]
        #104 = [#104+#102]
        #105 = [#105+1]
    O102 endwhile   
    G0X#107Z#108
    #104 = [#104-#102] 
    O103 while [#105 GT 0]  
        #200 = 26  
        #110 = [#[#200+1100]+#104]             
        #112 = [#[#200+1000]+[#104*#106]]    
        G0X[#110+#102]Z[#112+#102]
        O105 if [#110 LE #100]
            G1F#109X#110Z#112
        O105 else
            G0X#110Z#112
        O105 endif
        #200 = [#200-1]
        O104 while [ #200 GE 0 ]
            #111 = [#[#200+1100]+#104]          
            #113 = [#[#200+1000]+[#104*#106]]  
            O106 if [[#110 LE #100] OR [#111 LE #100]]
                G1F#109X#111Z#113
            O106 else
                G0X#111Z#113
            O106 endif
            #110 = #111
            #112 = #113
            #200 = [#200-1]
        O104 endwhile
        O107 if [#111 LT #107]
            G0X#107
        O107 endif
        G0X#107Z#108
        #104 = [#104-#102]
        #105 = [#105-1]
    O103 endwhile 
    #101 = 0.100
    #104 = [#104+#102] 
    #102 = 0.007 
    #116 = 0.0004 
    #105 = 1 
    O113 while [#104 GE 0]
        F30
        #200 = 26 
        #110 = [#[#200+1100]+#104]		
        #112 = [#[#200+1000]+[#104*#106]]	
        #114 = [#[#200+1200]]			
        G0X[#110]Z[#112+#101]
        G33 K[#114] X[#110] Z[#112]
        #200 = [#200-1]
        O114 while [ #200 GE 0 ]
            #111 = [#[#200+1100]+#104]		
            #113 = [#[#200+1000]+[#104*#106]]	
            #115 = [#[#200+1200]]		
            G33K#114X#111Z#113 
            #110 = #111
            #112 = #113
            #114 = #115 
            #200 = [#200-1]
        O114 endwhile 
        O117 if [#111 LT #107]
            G0X#107
        O117 endif  
        G0X#107Z#108  
        O118 if [#104 LE [2*#102]]
            O119 if [#102 GT #116]
                #102 = [#104/2]
            O119 endif
        O118 endif
        #104 = [#104-#102]
        #105 = [#105+1]
    O113 endwhile
    M5 
    G0X1Z3 
    M2 
то - да - довольно хитрая
но хитрость эта вынужденая - так как нет возможности проще прописать команду переменного шага
Nick писал(а):А что именно не так работает?
да ничего пока не работает ;)
хочеться G76 с параметром - который задает переменный шаг
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: G76 и G33

Сообщение nkp »

Nick писал(а):как будет проходить синхронизация на углах траектории?
это про переходы диаметров???
так емс не знает о них
тут все на G33 (хотя и G76 построена на G33) - то есть вычисляем величину подачи на один оборот
вот отсюда и выплывает концептуальный вопрос:
можно ли в принципе вместо этого коэфициента передать функцию
например:

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

К = |2Z|
где z - координата z
ну или любым другим (возможным,удобным)способом
чтоб не городить массив на полстраницы или цикл что сам запутаешся ;)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: G76 и G33

Сообщение Nick »

Переменный шаг.... А что это такое? :)

Нужно резьбу такую хитрую нарезать?
Тебе нужна равномерная подача в зависимости от Z, а не расстояния XYZ?

------------

Функция постоянная?
zilk
Опытный
Сообщения: 139
Зарегистрирован: 07 янв 2012, 19:05
Репутация: 1
Откуда: Украина, Харьков
Контактная информация:

Re: G76 и G33

Сообщение zilk »

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

Re: G76 и G33

Сообщение nkp »

zilk писал(а):ты морковку для дровокола хочешь нарезать?
на морковку как раз можно шаг и постоянный
ну по крайней мере подключал приятелю движок с морковкой - так у него конус с постоянным шагом
подхватывает и колет
опасная правда штука - грибок я бы поставил с двух сторон - да и в перчатках работать
категорически запрещено - говорю это,так как реально видел картину после "такой " работы
никому не пожелаю....
=====================
а по существу (хотя ту же морковку тоже нужно кому то делать) - мое мнение такое:
есть вещи - которые можно сделать и на обычном токарнике и на чпу (на чпу может быть быстрее,точнее,легче,выгодней и др.варианты)
а есть вещи - которые на обычном станке сделать или очень трудно - или просто невозможно
так вот возможность делать изделия из второй группы должна быть обязательно заложена в стойку
я там выше выкладывал руководство оператора на HAAS
почему бы не стремиться получить такие же возможности ))))
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: G76 и G33

Сообщение Nick »

Не совсем понимаю, что именно сейчас не сделать???
Можешь привести какой-нибудь пример?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: G76 и G33

Сообщение nkp »

Nick писал(а):что именно сейчас не сделать???
я не говорю что нельзя сделать
может я и не знаю
но то что прямо переменный шаг не задается в ж76 - это очевидно
Nick писал(а):привести какой-нибудь пример?
хотел быстренько найти фотки подобного - толком не нашел ну примерно такие шнеки:
Выделение(014).jpg
Выделение(014).jpg (19.9 КБ) 47357 просмотров
Выделение(015).jpg (47357 просмотров) <a class='original' href='./download/file.php?id=11510&mode=view' target=_blank>Загрузить оригинал (88.76 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: G76 и G33

Сообщение Nick »

Хмм... не простая задачка...
А если написать цикл с процедурой? Или просто цикл.

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

#<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
PS а что, haas такое умеет на чистом Gкоде делать?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: G76 и G33

Сообщение nkp »

Nick писал(а):А если написать цикл с процедурой? Или просто цикл.
напишем
обязательно напишем цикл
но я поднял эту тему немного разобраться - как ,грубо говоря, этот "цикл" зашить в интерпретатор
разберемся с этим - и другие задачи легче будут решаться
я спросил на их форуме - не планируется ли это в lcnc3
тут на wiki завели страничку - и каждый может оставить свои запросы относительно lcnc3
это как с корректировкой оффсетов был разговор - было бы очень удобно корректировать тло на лету
короче к чему это я - глубже погружаться нужно ;)
Последний раз редактировалось nkp 04 фев 2013, 22:38, всего редактировалось 1 раз.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: G76 и G33

Сообщение nkp »

Nick писал(а):PS а что, haas такое умеет на чистом Gкоде делать?
я не видел код по которому изготовили подобный шнек -
но сделали его именно на haas - поэтому я и стал из интереса руководство листать
надо у Lexxa спросить - он должен знать....
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: G76 и G33

Сообщение Lexxa »

с ходу ответить рука не поднимается.
какой хаас, токарный? Мне кажется, что этот шнек сделан на 4- координатном фрезерном из заготовки с токарного.
Есть вариант сделать такую штуку на токарном с игреком, противошпинделем и приводным инструментом. Но это, ихмо, не технологично.
Проще на фрезерном. Завтра у технологов спрошу как такие вещи делать.

Просто на чистом токарнике больно маленькая скорость резания получится и больно большая подача.

upd: Y не обязательно пожалуй, но без приводного инструмента врятли обошлось
:bender:
vmarkiv
Мастер
Сообщения: 516
Зарегистрирован: 21 янв 2012, 00:23
Репутация: 32
Откуда: Ивано-Франковск
Контактная информация:

Re: G76 и G33

Сообщение vmarkiv »

В форуме http://cnc-club.ru/forum/viewtopic.php? ... 120#p54236 я уже пробовал поднять этот вопрос , но пока деталь сделал на НЦ31 - обидно, однако...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: G76 и G33

Сообщение nkp »

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

Re: G76 и G33

Сообщение nkp »

vmarkiv писал(а):я уже пробовал поднять этот вопрос
так по следам топика и открыта тема
показалось,что не хватает удобного инструментария в емс
Lexxa, я бы тебя попросил узнать у технологов - как обстоят дела с подобными циклами во взрослых стойках
(я имею в виду ж76)
то есть - как в ж-кодах конкретно задается переменный шаг резьбы?
конкретно (если можно) как будет выглядеть сама запись
ну например в емс это выглядит так :
G76 P1.5 Z10 I-5 J0 R1.5 K1.5 Q30 H2 E1 L2 (с постояным шагом естественно)
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: G76 и G33

Сообщение Lexxa »

спрошу не вопрос.
upd:
G76 - нарезание многозаходной резьбы
G32 (код А и В) и G33 (код С) - нарезние резьбы
G34 - нарезание резьбы с переменным шагом.
Последний раз редактировалось Lexxa 04 фев 2013, 23:04, всего редактировалось 1 раз.
:bender:
vmarkiv
Мастер
Сообщения: 516
Зарегистрирован: 21 янв 2012, 00:23
Репутация: 32
Откуда: Ивано-Франковск
Контактная информация:

Re: G76 и G33

Сообщение vmarkiv »

По витку с разным шагом К сделать шнек у меня получалось -старт делался по реперу , но по кусочках - нет . В 1990 году я писал для НЦ31 программу для нарезки спиральной винтовой линии с переменным шагом на шарике (сфере ) - процарапать удавалось . Но сейчас ни вспомнить , ни найти програму не могу
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: G76 и G33

Сообщение Lexxa »

вот в фануке нулевке
Вложения
1.pdf
(43.64 КБ) 1372 скачивания
:bender:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: G76 и G33

Сообщение nkp »

Lexxa писал(а):вот в фануке нулевке
вот чего я хочу в емс !!!
Ответить

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