ngcgui

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

ngcgui

Сообщение nkp » 14 янв 2012, 21:02

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

NGCGUI это утилита для использования в EMC2 подпрограмм,т.н. мастеров.
Ссылки
http://www.youtube.com/watch?v=Bn8T5Fw0ISs
http://www.linuxcnc.org/docs/2.5/html/gcode/o-code.html#cha:O-Codes - О-коды
Установка
Для установки в EMC2 версии 2.4 нужны 4 файла:
ngcgui.rar
(38.12 Кб) Скачиваний: 649

Положить файлы в папку с конфигурацией станка.
Более удобным будет поместить в отдельную папку,тогда можно их использовать для разных кофигураций.
Прописать в 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 Кб) Скачиваний: 624

Запускаем,на вкладке нажимаем "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 байт) Скачиваний: 593

face.ngc
(894 байт) Скачиваний: 556


для фрезерной обработки
(для просмотра содержимого нажмите на ссылку)
Код: Выделить всёРазвернуть
 (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

ngcgui 3.png
цилиндрический карман
Последний раз редактировалось nkp 20 июл 2012, 06:57, всего редактировалось 45 раз(а).
nkp
Мастер
 
Сообщения: 7008
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1094
Медальки:

Re: ngcgui

Сообщение Nick » 27 янв 2012, 14:41

А вот такую штуку пробовал?
noiframe -- put image inside a toplevel instead of a frame so all controls are available
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1330
Заслуга: Developer
Медальки:

Re: ngcgui

Сообщение Nick » 27 янв 2012, 14:46

Похоже, что этот код загружает картинки:
И, возможно, код чуть ниже этого...
Код: Выделить всёРазвернуть
3739 proc ::ngcgui::image_init {hdl} {
3740   set ::ngc($hdl,img,status)    new
3741   if [info exists ::ngc(embed,axis)] {
3742     set ::ngc($hdl,img,top) .$::ngc(any,app)-$hdl
3743   } else {
3744     set ::ngc($hdl,img,top) .$::ngc(any,app)
3745   }
3746   if [winfo exists $::ngc($hdl,img,top)] return
3747   wm withdraw [toplevel $::ngc($hdl,img,top)]
3748   wm protocol $::ngc($hdl,img,top) WM_DELETE_WINDOW \
3749               [list wm withdraw $::ngc($hdl,img,top)]
3750
3751   if {$::ngc(opt,noinput) && !$::ngc($hdl,chooser)} {
3752     pack forget $::ngc($hdl,iframe) ;# wI remove the Input frame
3753   }
3754   if {   (!$::ngc(opt,noiframe) && !$::ngc($hdl,chooser) )\
3755       || (!$::ngc(opt,noiframe) &&  $::ngc($hdl,standalone) )\
3756       } {
3757     # use a frame for image
3758     set p [winfo parent $::ngc($hdl,iframe)]
3759     set w $p.[qid] ;# name of frame
3760     set ::ngc($hdl,img,widget) [image_widget $hdl $w]
3761     set ::ngc($hdl,img,type) frame
3762   } else {
3763     # use a toplevel for image
3764     set ::ngc($hdl,img,widget) [image_widget $hdl $::ngc($hdl,img,top).i]
3765     set ::ngc($hdl,img,type) toplevel
3766   }
3767   # note: new_image packs $::ngc($hdl,img,widget)
3768 } ;# image_init
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1330
Заслуга: Developer
Медальки:

Re: ngcgui

Сообщение nkp » 30 янв 2012, 23:25

В свете описания ngcgui хотел бы предложить высказаться всем заинтерисованным в усовершенствовании ,модернизации оного.
Может быть не столько ngcgui конкретно,а вцелом интерфейса т.н. мастеров.
Мне уже после первого знакомства с решением в виде вкладок подумалось,что увеличение их количества,ну скажем до нескольких десятков ,приведет
к неразберихе. Посмотрел как это выглядит в маче.Может что то подобное применить и в емс? Первая вкладка-кнопки :общий выбор обработки.


Выбираем-сл.вкладка: выбор подпрограммы.

Кнопки с графикой.
Кнопка вызавает соответствующую вкладку мастера.
Вложения
ngcgui Screenshot-6.png
Выбираем-сл.вкладка: выбор подпрограммы:
ngcgui Screenshot-4.png
Кнопки с графикой.
Кнопка вызавает соответствующую вкладку мастера:
ngcgui Screenshot-1.png
nkp
Мастер
 
Сообщения: 7008
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1094
Медальки:

Re: ngcgui

Сообщение Nick » 30 янв 2012, 23:29

Разумно. Если все структурировать в виде дерева, то будет просто здорово.
А ты не раздирался, в ngcgui можно объединять несколько обработок в последовательность?
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1330
Заслуга: Developer
Медальки:

Re: ngcgui

Сообщение nkp » 30 янв 2012, 23:36

Nick писал(а): в ngcgui можно объединять несколько обработок в последовательность?


Да.Описано в шапке. Как объеденить несколько подпрограмм
nkp
Мастер
 
Сообщения: 7008
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1094
Медальки:

Re: ngcgui

Сообщение Nick » 31 янв 2012, 09:52

О, круто! Я в тайне надеялся, но был не уверен :)
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1330
Заслуга: Developer
Медальки:

Re: ngcgui

Сообщение roach » 03 фев 2012, 08:27

nkp, в твоем архиве есть threadx.ngc подцепил его, но резьбу нарезает не с тем шагом, задавал 1,5 на деле нарезал 15)) вот что получается:
Код: Выделить всёРазвернуть
g18 (xz plane)
g21 (20=inches, 21=mm)
g40 (cancel cutter radius compensation)
g49 (cancel tool lengthoffset)
g90 (absolute distance mode)
g94 (units/min feedrate)
g54 (Coordinant system 1 default)
(ngcgui: call subroutine file: /home/user16k30/emc2/configs/16k30/testsuite_lathe/threadx.ngc)
(ngcgui: positional parameters:)
(         #1 =     diameter =           40)
(         #2 =       startz =           15)
(         #3 =        pitch =          1.5)
(         #4 =         endz =          -15)
(         #5 =   peakoffset =           -1)
(         #6 =     cutdepth =          0.1)
(         #7 =   regression =          1.0)
(         #8 =  threaddepth =          1.5)
(         #9 =        angle =            0)
(        #10 =   springpass =            2)
(        #11 =  taperamount =            0)
(        #12 =    tapertype =            0)
(        #13 =      coolant =            7)
(        #14 =          rpm =          200)
o<threadx> call [40][15][1.5][-15][-1][0.1][1.0][1.5][0][2][0][0][7][200]
Аватара пользователя
roach
Мастер
 
Сообщения: 205
Зарегистрирован: 01 июн 2011, 07:55
Репутация: 0
Медальки:

Re: ngcgui

Сообщение nkp » 03 фев 2012, 08:59

Этот архив выкладывал по просьбе из-за панельки pyVCP.Файлы в папке ngcgui - каша -все в т.с. в процессе...
Вот откуда threadx.ngc :
Lathe_G71_G72_subs.zip
(514.58 Кб) Скачиваний: 338

На основе этих о-кодов хочу сделать мастера поудобней.
nkp
Мастер
 
Сообщения: 7008
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1094
Медальки:

Re: ngcgui

Сообщение roach » 03 фев 2012, 09:15

nkp писал(а):Этот архив выкладывал по просьбе из-за панельки pyVCP.Файлы в папке ngcgui - каша -все в т.с. в процессе...
Вот откуда threadx.ngc :
Lathe_G71_G72_subs.zip

На основе этих о-кодов хочу сделать мастера поудобней.

да нашел этот файлик
Аватара пользователя
roach
Мастер
 
Сообщения: 205
Зарегистрирован: 01 июн 2011, 07:55
Репутация: 0
Медальки:

Re: ngcgui

Сообщение roach » 03 фев 2012, 10:05

наверное проблема не в threadx.ngc, оказывается у меня нет синхронизации подачи с оборотами шпинделя. уменьшаю обороты, а подача та же самая
Аватара пользователя
roach
Мастер
 
Сообщения: 205
Зарегистрирован: 01 июн 2011, 07:55
Репутация: 0
Медальки:

Re: ngcgui

Сообщение nkp » 27 фев 2012, 10:43

nkp писал(а): Посмотрел как это выглядит в маче.Может что то подобное применить и в емс? Первая вкладка-кнопки :общий выбор обработки.
Выбираем-сл.вкладка: выбор подпрограммы.
Кнопки с графикой.
Кнопка вызавает соответствующую вкладку мастера.

Такую концепцию мастеров легче реализовать с решением такого плана:
ngcgui 11.png

Разработка на glade
http://www.linuxcnc.org/index.php/english/component/kunena/?func=view&catid=41&id=16045&start=18
Для "попробовать" скачиваем:
test.tar.gz
(27.87 Кб) Скачиваний: 328

запускаем ваш emc2
запускаем gscreen.py
nkp
Мастер
 
Сообщения: 7008
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1094
Медальки:

Re: ngcgui

Сообщение nkp » 27 фев 2012, 11:01

Кстати, поднимался вопрос отображения 4 знаков после запятой.
Здесь как раз так.
nkp
Мастер
 
Сообщения: 7008
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1094
Медальки:

Re: ngcgui

Сообщение Nick » 27 фев 2012, 11:32

А чем он выгодно отличается от Axis?
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1330
Заслуга: Developer
Медальки:

Re: ngcgui

Сообщение nkp » 27 фев 2012, 11:45

Ну выгода пока что для таких как я (кто недавно пополнил свой лексикон словами "питон","тикль", и т.д.) :)
То есть работа с glade довольно простыми средствами получить свой экран.
А это просто пример реализации-не более.Так что про конкретные удобства,кроме как вышеуказанной гибкости в наполнении нужными элементами,речь не идет.
nkp
Мастер
 
Сообщения: 7008
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1094
Медальки:

Re: ngcgui

Сообщение Nick » 27 фев 2012, 12:02

Так Gscreen написан на питоне? Что-то мне тикль не нравится - мутный он какой-то и не понятный :)...
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1330
Заслуга: Developer
Медальки:

Re: ngcgui

Сообщение nkp » 27 фев 2012, 12:14

На питоне.Но мне от этого не легче-добавился еще один пункт в мой План:
выучить ангельский язык и языки программирования питон ,тикль и др.
написать свой экран для емс потом и свой "емс"
ну и что уж там-написать свой windows=>завоевать весь финанс.мир :hehehe:
nkp
Мастер
 
Сообщения: 7008
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1094
Медальки:

Re: ngcgui

Сообщение 2cme » 19 мар 2012, 22:23

А приблизительно по времени сколько у вас ушло на освоение ngcgui?
2cme
Почётный участник
Почётный участник
 
Сообщения: 1043
Зарегистрирован: 24 янв 2012, 13:18
Репутация: -158
Медальки:

Re: ngcgui

Сообщение nkp » 19 мар 2012, 22:38

Вы установите ngcgui.Настроить тут помогут.Там все не так сложно :)
nkp
Мастер
 
Сообщения: 7008
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1094
Медальки:

Re: ngcgui

Сообщение nkp » 06 май 2012, 18:49

Навеяно темой http://cnc-club.ru/forum/viewtopic.php?f=16&t=1801#p23771
Решил сделать отдельный мастер для подобных деталей
flanec.ngc
(947 байт) Скачиваний: 346


загвоздка в обработке исключений( деление на 0)
думаю решим
nkp
Мастер
 
Сообщения: 7008
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1094
Медальки:

Re: ngcgui

Сообщение nkp » 06 май 2012, 19:34

Вот тот же код , но без ngcgui:
Код: Выделить всёРазвернуть
F80 G17
G00 X-6 Y0
G01 z0
G02 X-6 Y0 I6 J0
G00 z3
#<dd>=60
#<aa>=0
o103 repeat [6]
G10 L2 R[#<aa>] P0
G00 X-11 Y0
G01 z0
G02 X-11 Y0 I2 J0
G00 z3
#<aa>=[[#<aa>]+[#<dd>]]
o103 endrepeat
G00 X-16 Y0
G01 z0
G02 X-16  Y0 I16 J0
G00 z3
M2
nkp
Мастер
 
Сообщения: 7008
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1094
Медальки:

Пред.След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: 1240, 19bvn58, a_leha, aicT, Alexxs, anthro, Bender, Bing [Bot], crusider, evgenymcp, Google [Bot], Homo_erectus, ignv, Ivan91, Majestic-12 [Bot], meruslan, mikehv, Nonstopich, nva-tuning, passer-by, VAT, Yahoo [Bot], Yandex [bot], Фрост, Дрюня

Поделиться

Reputation System ©'