ngcgui

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

ngcgui

Сообщение nkp »

NGCGUI - установка, настройка, описание, примеры.
Примеры
Файлы подпрограмм

NGCGUI это утилита для использования в EMC2 подпрограмм,т.н. мастеров.
Ссылки
http://www.youtube.com/watch?v=Bn8T5Fw0ISs
http://www.linuxcnc.org/docs/2.5/html/g ... ha:O-Codes - О-коды
Установка
Для установки в EMC2 версии 2.4 нужны 4 файла:
ngcgui.rar
(38.12 КБ) 1463 скачивания
Положить файлы в папку с конфигурацией станка.
Более удобным будет поместить в отдельную папку,тогда можно их использовать для разных кофигураций.
Прописать в ini файле в секции [DISPLAY] пути к этим файлам:
(пример из моего ini файла)
(для просмотра содержимого нажмите на ссылку)

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

[attachment=10]Screenshot-7.png[/attachment][DISPLAY]

USER_COMMAND_FILE = /home/nkp/emc2/ngcgui/ngcgui_tst/tkapp.py
NGCGUI = /home/nkp/emc2/ngcgui/ngcgui_tst/ngcgui.tcl
TKAPP   = /home/nkp/emc2/ngcgui/ngcgui_tst/ngcgui_app.tcl
TKAPP   = /home/nkp/emc2/ngcgui/ngcgui_tst/ngcgui_ttt.tcl
Обратите внимание: : ngcgui_app.tcl должен предшествовать ngcgui_ttt.tcl
Теперь создаем нашу первую вкладку следующей строкой - пока без названия: Запускаем,проверяем: Настройка
Теперь создаем сам файл подпрограммы для нашей вкладки.
Он должен быть такого вида: имя- имя подпрограммы,имя файла и название нашей вкладки.
тело подпрогр- g-код, который мы напишем.
Назовем файл lathe (пример будет из токарной обработки): Окончание файлов должно быть .ngc
Помещаем наш файл lathe.ngc в папку прописанную в ini [DISPLAY]PROGRAM_PREFIX и прописываем путь к ней там же: Проверяем: Кстати,загружаемый по умолчанию EMC файл можно изменить в ini [DISPLAY]
если прописать так
не загр. ничего.(как на скриншоте выше.)
Напишем тело нашей подпрограммы.
Его надо начинать с набора инструкций, которые определяют параметры :
(для просмотра содержимого нажмите на ссылку)

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

o<lathe> sub
   #<Material_Dia> =  #1 (=16 Диаметр заготовки)
   #<Final_Dia> =  #2 (=10 Диаметр детали)
   #<Depth_Cut> =  #3 (=2 глуб  прохода)
   #<Final_Cut> =  #4 (=0.00 глуб чист прох)
   #<SurfaceSpeed> =  #5 (=100 Поверхностная скорость)
   #<FeedRate> =  #6 (=40 Подача)
   #<Max_RPM> =  #7 (=1500 обороты)
   #<Z_EndOfCut> =  #8 (=2 финиш )
   #<Z_StartOfCut> =  #9 (=46 L заготовки)
   #<RToolNumber> = #10 (=1 Черновой инстр)
   #<FToolNumber> = #11 (=1 Чистовой инстр)
   #<Coolant> = #12 (=8 Охл вкл=8, Выкл=9)
o<lathe> endsub
Смотрим: Каждая строка появилась во вкладке с возможностью редактировать данные.
Теперь мы в нашей подпрограмме (в g-коде) можем (и будем) использовать переменные.
Например,вмето T1M6 пишем T#<RToolNumber> M6
После набора инструкций (их может быть до 30) непосредственно сам G-код:
(для просмотра содержимого нажмите на ссылку)

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

T#<RToolNumber> M6
G43 G7 G96 D#<Max_RPM> S#<SurfaceSpeed>
M3 M#<Coolant>
G0 X#<Material_Dia> Z#<Z_StartOfCut>
#<Current_Dia>=#<Material_Dia>
o100 while [#<Current_Dia> gt #<Final_Dia>]
O101   if [#<Current_Dia>-#<Depth_Cut> gt #<Final_Dia>]
         #<Current_Dia>=[#<Current_Dia>-#<Depth_Cut>]
O101   else
         #<Current_Dia>=#<Final_Dia>
O101   endif
       X#<Current_Dia>
       G1 Z#<Z_EndOfCut> F#<FeedRate>
       G0 X[#<Current_Dia>+0.025]
       Z#<Z_StartOfCut>
o100 endwhile
G0 X[#<Current_Dia>+0.025]
M5 M9               
Z#<Z_StartOfCut>
G49                
G53 G0 X0 Z0       
o<lathe> endsub
Сам файл:
lathe.ngc
(1.28 КБ) 1810 скачиваний
Запускаем,на вкладке нажимаем "Create feature" ,потом "Finalize"
Получаем запрограммированную траекторию: Описание
Примеры
Как объеденить несколько подпрограмм
В программу могут быть объеденены несколько копий как одной подпрограммы, так и разные подпрограммы.
Как это выглядит на практике:
у нас есть 6 вкладок с подпрограммами для фрезерной обработки: Объеденим их все в одну программу. Открываем первую вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
Этим мы передали наши параметры в создаваемый ngcgui файл auto.ngc. Изменим некоторые параметры(например координаты начала обработки) Нажмем еще раз "CreateFeature".В файл auto.ngc передались также и новые параметры.Нажимаем "Finalize"-загружаем готовый файл с двумя подпрограммами: Чтобы объеденить подпрограммы с разных вкладок :
1.Открываем первую вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
2.Переходим на нужную вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
3.Повторяем,если необходимо.
4.Нажимаем "Finalize".
5. Соглашаемся создать из всех вкладок. Удобней объеденять несколько одинаковых контуров так:
1.создаем из требуемой вкладки копию нажатием кнопки "new"
2.нажимаем "Subfile" ,открываем файл(в нашем случае тот же,что и на первой вкладке)
3.повторяем необходимое число раз
4.корректируем параметры для каждой копии
5.объеденяем все,соблюдая нужную нам последовательность обработки. 5. Соглашаемся создать из всех вкладок. Файлы подпрoграмм
для токарной обработки
(для просмотра содержимого нажмите на ссылку)

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

;   цикл на уменьшение, который может быть использован как часть  программы

#<start-value> = 15    ;нач значение
#<decrement>   = 1    ;декремент -еденичн. уменшение
#<end-value>   =10    ;конеч значение
#<end>=3  ; значен X
o100 do
;------------------------------------------------------------
G0 X#<end>   ;любые действия
;-----------------------------------------------------------
  G4 P1.0 (маленькая пауза)

  ; алгоритм
  o110 if [[#<start-value> - #<decrement>] GT #<end-value>]
    ; убедиться, что [начальное значение минус декремент] не будет выходить за рамки конечного значения
    #<start-value> = [#<start-value> - #<decrement>]
  o110 else
   
    #<start-value> = #<end-value> 
  o110 endif
;---------------------------------------
 #<end>=[#<end>+2]
;---------------------------------------
o100 while [#<start-value> GT #<end-value>]



M2
шаблон цикла
(для просмотра содержимого нажмите на ссылку)

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

(info: сфера ) 
 o<sfer> sub 
 #<promien_walca> =     #1 (=30 радиус заготовки) 
 #<promien_na_plasko> =  #2 (=20 Радиус части без скругл.) 
 #<promien_kulki> =     #3 (=10 Радиус  скругления) 
 #<przybranie> =     #4 (=1 снятие за прох) 
 #<przesuniecie_z> =     #5 (=0 Начало по Z) 
  #<Coolant>    =        #6 (=8 охлажд вкл=8 выкл=9) 
 #<predkosc> = #7 (=400 скорость резания) 
 #<promien> = #<promien_walca> 
 M3 M#<Coolant> 
 #<walec> = 0 
 #<promien_walca> = [#<promien_walca>-#<promien_na_plasko>] 
 g18 (g7)  G64
 M3 S1000 
 g0 z[#<przesuniecie_z>+1] x[[#<promien>]+1] 
 o100 while [#<walec> lt [#<promien_walca>]] 
 #<walec>=[[#<walec>]+[#<przybranie>]] 
o110 if [[[#<promien_walca>]-[#<walec>]+[#<promien_na_plasko>]]GT [ #<promien_na_plasko>]]
 x[[#<promien_walca>]-[#<walec>]+[#<promien_na_plasko>]]
z[#<przesuniecie_z>] 
 g3 x[[#<promien>]] z-[[#<walec>]-[#<przesuniecie_z>]] r[#<promien_kulki>]  f[#<predkosc>]   
  o110 else  
    G61
 x[[#<promien_walca>]-[#<walec>]+[#<promien_na_plasko>]]
z[#<przesuniecie_z>] 
 g3 x[[#<promien>]] z-[[#<walec>]-[#<przesuniecie_z>]] r[#<promien_kulki>]  f[#<predkosc>] 
  o110 endif
 g0 
 x [[#<promien>]+1] 
 z[#<przesuniecie_z>+1] 
 o100 endwhile 
 o<sfer> endsub
M2
сфера
(для просмотра содержимого нажмите на ссылку)

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

(info: внешний конус) 
 o<stozek> sub 
 #<MaxRPM>          = #1 (= 3000 макс обороты) 
 #<SurfaceUnitsMin> = #2 (= 40 поверхностная скорость) 
 #<Przybranie>        = #3 (= 2 за 1 проход) 
 #<Z-Start>         = #4 (= 0.000 старт по Z) 
 #<kat>           = #5 (= 45 угол конуса) 
 #<dlugosc_stozka> =  #6 (=30 длинна конуса) 
 #<srednica_walka> = #7 (=30 начальный диаметр) 
 #<Coolant>         = #8 (=8 охлаж вкл=8 выкл=9) 
#<FeedRate>        = #9 (=40 подача)
 #<zebrane_max> = [tan[#<kat>]*[#<dlugosc_stozka>]] 
 #<ilosc_przybran> = [[#<zebrane_max>]/[#<przybranie>]] 
 #<zejscie_dlugosci> = [[#<dlugosc_stozka>]/[#<ilosc_przybran>]] 
 #2 = #<zejscie_dlugosci> 
 #1 = 0 
G96 D#<MaxRPM> S#<SurfaceUnitsMin> 
M3
 o100 while [#<ilosc_przybran> gt 0] 
 #1=[[#1]+[#<przybranie>]] 
 g0 z1 
 x[[#<srednica_walka>/2]-[#1]] 
 z0 
 g1 f[#<FeedRate>] z-[#<zejscie_dlugosci>] x[#<srednica_walka>/2] 
 g0 x[[#<srednica_walka>/2]+1] 
 #<ilosc_przybran> = [[#<ilosc_przybran>] - [#<przybranie>]] 
 #<zejscie_dlugosci> = [[#<zejscie_dlugosci>]+[#2]] 
 o100 endwhile  
 g0 z1 
 o<stozek> endsub
конус по его длине
(для просмотра содержимого нажмите на ссылку)

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

(info: проточка наружной поверхности)
o<od> sub
#<Material_Dia> =  #1 (=16 Диаметр заготовки)
   #<Final_Dia> =  #2 (=10 Диаметр детали)
   #<Depth_Cut> =  #3 (=2 глуб  прохода)
   #<Final_Cut> =  #4 (=0.00 глуб чист прох)
#<SurfaceSpeed> =  #5 (=100 Поверхностная скорость)
    #<FeedRate> =  #6 (=40 Подача)
     #<Max_RPM> =  #7 (=3000 обороты)
  #<Z_EndOfCut> =  #8 (=2 финиш )
#<Z_StartOfCut> =  #9 (=46 L заготовки)
 #<RToolNumber> = #10 (=2 Черновой инстр)
 #<FToolNumber> = #11 (=1 Чистовой инстр)
     #<Coolant> = #12 (=8 Охл вкл=8, Выкл=9)

T#<RToolNumber> M6

G43 G7 G96 D#<Max_RPM> S#<SurfaceSpeed>

M3 M#<Coolant> 
G0 X#<Material_Dia> Z#<Z_StartOfCut>
#<Current_Dia>=#<Material_Dia>

o100 while [#<Current_Dia> gt #<Final_Dia>]

O101   if [#<Current_Dia>-#<Depth_Cut> gt #<Final_Dia>]
         #<Current_Dia>=[#<Current_Dia>-#<Depth_Cut>]
O101   else
         #<Current_Dia>=#<Final_Dia>
O101   endif

       X#<Current_Dia>
       G1 Z#<Z_EndOfCut> F#<FeedRate>
       G0 X[#<Current_Dia>+0.025]
       Z#<Z_StartOfCut>
o100 endwhile

G0 X[#<Current_Dia>+0.025]
M5 M9             
Z#<Z_StartOfCut>
G49             
G53 G0 X0 Z0    
o<od> endsub
обработка наружной цилиндрической поверхности
(для просмотра содержимого нажмите на ссылку)

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

(info: расточка)
o<id>sub
      #<Hole_Dia> =  #1 (=16  нач диаметр отверстия)
     #<Final_Dia> =  #2 (=20  кон диаметр отверстия)
     #<Depth_Cut> =  #3 (=1 расточ за 1 проход)
   #<Spring_Cuts> =  #4 (=0 Spring Cuts)
  #<Z_StartOfCut> =  #5 (=46 Z начало обработки)
    #<Z_EndOfCut> =  #6 (=-0.600 Z конец обработки)
  #<SurfaceSpeed> =  #7 (=80 поверхн скорость)
      #<FeedRate> =  #8 (=50 подача)
#<MaxSpindle_RPM> =  #9 (=3000 макс обороты)
    #<ToolNumber> = #10 (=1 № инстр)
       #<Coolant> = #11 (=8 охлажд вкл= 8 выкл=9)

T#<ToolNumber> M6
G43 G7 G96 D#<MaxSpindle_RPM> S#<SurfaceSpeed>
M3 M#<Coolant> 
G0 X#<Hole_Dia> Z#<Z_StartOfCut> 
#<Current-Diameter> = #<Hole_Dia>
o100 while [#<Current-Diameter> lt #<Final_Dia>]
O101   if [#<Current-Diameter> + #<Depth_Cut> lt #<Final_Dia>]
         #<Current-Diameter> = [#<Current-Diameter> + #<Depth_Cut>]
O101   else
         #<Current-Diameter> = #<Final_Dia>
O101   endif
       X#<Current-Diameter>
       G1 Z#<Z_EndOfCut> F#<FeedRate>
       G0 X[#<Current-Diameter>-0.010]
       Z#<Z_StartOfCut>
o100 endwhile
o102 while [#<Spring_Cuts> gt 0]
       G1 X#<Final_Dia>
       Z#<Z_EndOfCut>
       X[#<Final_Dia>-0.010]
       G0 Z#<Z_StartOfCut>
       #<Spring_Cuts> = [#<Spring_Cuts> -1]
o102 endwhile
G0 X[#<Current-Diameter>-0.010]
M5 M9          
Z#<Z_StartOfCut>
G49             
G53 G0 X0 Z0   
o<id>endsub
расточка
taper-od.ngc
(1021 байт) 2044 скачивания
face.ngc
(894 байт) 2040 скачиваний
для фрезерной обработки
(для просмотра содержимого нажмите на ссылку)

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

 (info: цилиндрический карман)
O<deepcylindricalpocket> sub
  #<xc>     = #1 (= 0 X центр)
  #<yc>     = #2 (= 0 Y центр)
  #<safez>  = #3 (= 8 безоп высота)
  #<depth>  = #4 (= 2 глубина фрезерования)
  #<radius> = #5 (= 5 радиус)
  #<milld>  = #6 (= 6 диаметр фрезы)
  #<frate>  = #7 (= 120 подача)
  #<zstep>  = #8 (= 0.5 z за 1 об)
  #<rstep>  = #9 (= 1 r за 1 об)

  O<if> if [ #<frate> NE 0 ]
    F#<frate>
  O<if> endif
  O<if> if [ #<zstep> EQ 0 ]
    #<zstep> = [#<milld>/2]
  O<if> endif
  O<if> if [ #<rstep> EQ 0 ]
    #<rstep> = [#<milld>/2]
  O<if> endif
  #<z> = #<safez>
  #<r> = [#<radius> - #<milld>/2]
  G0 Z#<safez>
  G4 P0
  G0 X[#<xc> + #<r>] Y#<yc>
  O<loop> while [ 1 ]
    O<if> if [ #<z> - #<zstep> LT #<depth>]
      #<zstep> = [#<z> - #<depth>]
    O<if> endif   
    G40
    G2 X[#<xc> - #<r>] Y#<yc> Z[#<z> - #<zstep>/2] R#<r>
    G2 X[#<xc> + #<r>] Y#<yc> Z[#<z> - #<zstep>] R#<r>   
    #<r1> = #<r>
    O<loop_r> while [ 1 ]
      G2 X[#<xc> - #<r1>] Y#<yc> R#<r1>
      G2 X[#<xc> + #<r1>] Y#<yc> R#<r1>
      #<r1> = [#<r1> - #<rstep>]
      O<if> if [ #<r1> GT 0 ] 
        G1 X[#<xc>+#<r1>]
      O<if> else
        O<loop_r> break
      O<if> endif      
    O<loop_r> endwhile
    G1 X[#<xc> + #<r>]
    #<z> = [#<z> - #<zstep>]
    O<if> if [ #<z> LE #<depth> ]
      O<loop> break
    O<if> endif
  O<loop> endwhile
  G0 Z#<safez>
O<deepcylindricalpocket> endsub
3.png (55416 просмотров) <a class='original' href='./download/file.php?id=4064&sid=a56c9d8c22043ab81441845af74a83d5&mode=view' target=_blank>Загрузить оригинал (75.05 КБ)</a>
цилиндрический карман
Последний раз редактировалось nkp 20 июл 2012, 06:57, всего редактировалось 45 раз.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ngcgui

Сообщение Nick »

nkp писал(а):Вот сделал поворот по 2 точкам,пока не кнопками ,а ngcgui:
http://www.youtube.com/watch?v=MI2GS6m3hzo
Круто!!! Это все тупо Gкодом и 4-ой осью делается?
Ролучается что вторая точка должна лежать на оси Y?
nkp писал(а):Вот эти варианты: G1-G1 , G1-G2 , G2-G1 , G2-G2 (первая команда из Nx, вторая- из N(x-1) )
А если там есть еще g92, g17 или еще какие-нибудь хитрые коды? Все не так просто. Для частного случая с G01-03 решаемо, но для общего похоже вообще не решаемо. Т.к. тот же G92 необратим...


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

Re: ngcgui

Сообщение nkp »

Nick писал(а): А если там есть еще g92, g17 или еще какие-нибудь хитрые коды? Все не так просто. Для частного случая с G01-03 решаемо, но для общего похоже вообще не решаемо. Т.к. тот же G92 необратим...
Ну хоть с чего то начать :)
В тот же маче писали вообще только линейные перемещения
Обратная обработка нужна сравнительно редко - вот упоминали эрозию проволочную,там этого достаточно будет.
Последний раз редактировалось nkp 11 май 2012, 10:10, всего редактировалось 1 раз.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ngcgui

Сообщение Nick »

Ок, как тебе помочь? Могу написать скрипт для инвертирования Gкода содержащего G01-G03.
Единственный нюанс, надо либо знать текущую точку, либо незаконченное движение кодов G02, G03 придется писать через R.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ngcgui

Сообщение nkp »

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

Re: ngcgui

Сообщение Nick »

Для определения параметров I J K нужна текущая точка.
Блин, не плохо бы еще знать модальные кода G90-91.1
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ngcgui

Сообщение nkp »

То есть (x;y) при ж2 мы берем из Nx-1 ,а (I;J) или R из N. ж2 меняем на ж3
вечером попробую на практике
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ngcgui

Сообщение nkp »

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

Re: ngcgui

Сообщение Nick »

i,j по умолчанию пишутся относительно начальной точки. а если мы не знаем начальной точки, то облом ;). придется через R пересчитывать.

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

Re: ngcgui

Сообщение nkp »

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

Re: ngcgui

Сообщение Nick »

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

Re: ngcgui

Сообщение nkp »

Nick писал(а):Я и говорю, надо либо точку текущую знать, либо в формат R все переписывать. Либо в абсолютные координаты переходить.
Ну с текущей точкой не проблема-ее мы всегда знаем
5420-5428 - Current Position
А про остальные моменты-думаю что пользователь сией опцией должен изначально генерировать свой код по определенным правилам( а куда ж без них :hehehe: )
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ngcgui

Сообщение Nick »

А как вообще все это реализовывать, через ngcgui? Как подменять Gкод? И как узнать текущую строку и gкод перед ней?
muxa
Мастер
Сообщения: 229
Зарегистрирован: 15 мар 2012, 12:29
Репутация: 23
Контактная информация:

Re: ngcgui

Сообщение muxa »

Еже ли я правильно понял ход мысли то :
про 3 точки - ИМХО их на самом деле должно быть 4 как минимум.
3 точки это когда сам по себе кусок (заготовка) типа ровная ровнее не бываит.
а ведь ее могут отрезать как нибудь.
так что в идеале 4 точки "оббежать" и нарисовать векторами замкнутый прямоугольник который потом
вращать на экране или привязывать к крайним точкам G кода ( чтоб гарантированно "вписаться" в деталь или чтоб с минимумом заморочек
кроить, ну т.е заморочки типа - отрезать 3,175мм от края )
:thinking:
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: ngcgui

Сообщение Serg »

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

Re: ngcgui

Сообщение nkp »

тут сделали поворот координат для плазмы: http://www.linuxcnc.org/index.php/engli ... 0&id=20912
попробовал повторить-как то работает неадекватно.
Может кто то попробует запустить:
configs.rar
править путь к nc_files в ini
(6.31 КБ) 420 скачиваний
похоже делал выше -но с ngcgui
тут удобней -кнопками , но не пойму - в чем затык?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ngcgui

Сообщение Nick »

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

Re: ngcgui

Сообщение nkp »

Nick писал(а): что именно не адекватно?
вот:
http://youtu.be/5M8Gq7jfgnA
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ngcgui

Сообщение Nick »

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

Re: ngcgui

Сообщение nkp »

немного о полярной системе координат.
Общие определения
примеры использования :
spiral.ngc
(117 байт) 1106 скачиваний
Вот здесь об этой системе в linuxcnc
маленький мастер использующий полярную систему:
polar.ngc
(282 байт) 1077 скачиваний
Последний раз редактировалось nkp 11 июл 2012, 18:25, всего редактировалось 1 раз.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ngcgui

Сообщение Nick »

WOW! Крутейшая штука! А она давно есть, или только в новых версиях появилась?

Мне кажется, что spiral.ngc у тебя не правильный - очень похоже на тот же polar, там надо изменить строку перемещения на что-то вроде
g91 G1 @#2 ^#1
Ответить

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