Страница 8 из 10

ngcgui

Добавлено: 14 янв 2012, 21:02
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 КБ) 1468 скачиваний
Положить файлы в папку с конфигурацией станка.
Более удобным будет поместить в отдельную папку,тогда можно их использовать для разных кофигураций.
Прописать в 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
Теперь создаем нашу первую вкладку следующей строкой - пока без названия:
(для просмотра содержимого нажмите на ссылку)

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

NGCGUI_SUBFILE =""
Запускаем,проверяем:
(для просмотра содержимого нажмите на ссылку)
Screenshot-5.png (55968 просмотров) <a class='original' href='./download/file.php?id=3810&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (51.01 КБ)</a>
Screenshot-6.png (55968 просмотров) <a class='original' href='./download/file.php?id=3811&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (50.3 КБ)</a>
Настройка
Теперь создаем сам файл подпрограммы для нашей вкладки.
Он должен быть такого вида:
(для просмотра содержимого нажмите на ссылку)

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

o<имя> sub
 тело попрогр
o<имя> endsub
имя- имя подпрограммы,имя файла и название нашей вкладки.
тело подпрогр- g-код, который мы напишем.
Назовем файл lathe (пример будет из токарной обработки):
(для просмотра содержимого нажмите на ссылку)

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

o<lathe> sub
  тело подпрогр
o<lathe> endsub
Окончание файлов должно быть .ngc
Помещаем наш файл lathe.ngc в папку прописанную в ini [DISPLAY]PROGRAM_PREFIX
(для просмотра содержимого нажмите на ссылку)

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

PROGRAM_PREFIX = /home/nkp/emc2/nc_files
и прописываем путь к ней там же:
(для просмотра содержимого нажмите на ссылку)

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

NGCGUI_SUBFILE =/home/nkp/emc2/nc_files/lathe.ngc
Проверяем:
(для просмотра содержимого нажмите на ссылку)
Screenshot-3.png (55969 просмотров) <a class='original' href='./download/file.php?id=3809&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (51.24 КБ)</a>
Кстати,загружаемый по умолчанию EMC файл можно изменить в ini [DISPLAY]
если прописать так
(для просмотра содержимого нажмите на ссылку)

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

OPEN_FILE = ""

не загр. ничего.(как на скриншоте выше.)
Напишем тело нашей подпрограммы.
Его надо начинать с набора инструкций, которые определяют параметры :
(для просмотра содержимого нажмите на ссылку)

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

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
Смотрим:
(для просмотра содержимого нажмите на ссылку)
Screenshot-7.png (55967 просмотров) <a class='original' href='./download/file.php?id=3812&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (56.48 КБ)</a>
Каждая строка появилась во вкладке с возможностью редактировать данные.
Теперь мы в нашей подпрограмме (в 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 КБ) 1813 скачиваний
Запускаем,на вкладке нажимаем "Create feature" ,потом "Finalize"
Получаем запрограммированную траекторию:
(для просмотра содержимого нажмите на ссылку)
Screenshot-8.png (55966 просмотров) <a class='original' href='./download/file.php?id=3815&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (56.69 КБ)</a>
Описание
Примеры
Как объеденить несколько подпрограмм
В программу могут быть объеденены несколько копий как одной подпрограммы, так и разные подпрограммы.
Как это выглядит на практике:
у нас есть 6 вкладок с подпрограммами для фрезерной обработки:
(для просмотра содержимого нажмите на ссылку)
Screenshot.png (55943 просмотра) <a class='original' href='./download/file.php?id=3824&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (55.81 КБ)</a>
Объеденим их все в одну программу. Открываем первую вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
Этим мы передали наши параметры в создаваемый ngcgui файл auto.ngc. Изменим некоторые параметры(например координаты начала обработки) Нажмем еще раз "CreateFeature".В файл auto.ngc передались также и новые параметры.Нажимаем "Finalize"-загружаем готовый файл с двумя подпрограммами:
(для просмотра содержимого нажмите на ссылку)
Screenshot-1.png (55943 просмотра) <a class='original' href='./download/file.php?id=3825&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (64.18 КБ)</a>
Чтобы объеденить подпрограммы с разных вкладок :
1.Открываем первую вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
2.Переходим на нужную вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
3.Повторяем,если необходимо.
4.Нажимаем "Finalize".
5. Соглашаемся создать из всех вкладок.
(для просмотра содержимого нажмите на ссылку)
Screenshot-2.png (55943 просмотра) <a class='original' href='./download/file.php?id=3826&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (65.78 КБ)</a>
Удобней объеденять несколько одинаковых контуров так:
1.создаем из требуемой вкладки копию нажатием кнопки "new"
2.нажимаем "Subfile" ,открываем файл(в нашем случае тот же,что и на первой вкладке)
3.повторяем необходимое число раз
4.корректируем параметры для каждой копии
5.объеденяем все,соблюдая нужную нам последовательность обработки.
(для просмотра содержимого нажмите на ссылку)
Screenshot-3.png (55943 просмотра) <a class='original' href='./download/file.php?id=3827&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (72.72 КБ)</a>
5. Соглашаемся создать из всех вкладок.
(для просмотра содержимого нажмите на ссылку)
Screenshot12.png (55675 просмотров) <a class='original' href='./download/file.php?id=4009&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (76.2 КБ)</a>
Файлы подпр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 байт) 2049 скачиваний
face.ngc
(894 байт) 2046 скачиваний
для фрезерной обработки
(для просмотра содержимого нажмите на ссылку)

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

 (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 (55576 просмотров) <a class='original' href='./download/file.php?id=4064&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (75.05 КБ)</a>
цилиндрический карман

Re: ngcgui

Добавлено: 06 авг 2012, 23:58
Lexxa
тагда надо экспорт в g-код прикрутить

Re: ngcgui

Добавлено: 07 авг 2012, 00:06
nkp
Lexxa писал(а):тагда надо экспорт в g-код прикрутить
Немного расширенней загрузить код галка есть:
Выделение(011).png (5058 просмотров) <a class='original' href='./download/file.php?id=7267&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (18.43 КБ)</a>
По настоящему думаю не выйдет -потому как в О-кодах используем циклы ,условия и пр.
"Начать с этого кадра" в таких условиях проблематично

Re: ngcgui

Добавлено: 10 авг 2012, 12:01
Алексс
я вот чего подумал, nkp, не желаешь завести акаунт на github и туда синхронизировать все (ну или какие хочешь) разработки ?
удобно, отовсюду оступно, история хранится.
плюс вдруг найдутся еще желающие что дополнить/поправить ?

Re: ngcgui

Добавлено: 03 дек 2012, 10:49
Гармонист
идея сделать еще "генератор шестеренок"
на подобие GearGenerator (ссылка http://woodgears.ca) - только открытый, бесплатный и не урезанный.
Конечно это в некотором роде изобретения колеса...
но преимущества налицо: не нужно доп-редакторов(типа чернильницы), доп-плагинов к редакторам(плагин создания шестеренок), ...

G-код генерироваться будет сразу внутри программы работы правления станком!

Re: ngcgui

Добавлено: 05 дек 2012, 13:28
Nick
Параметров будет очень много, начиная от формы зуба, кончая подачей, заглублением толщиной + нужно сделать CAM который из линии сделает Gкод. В общем геморроя выше крыши.

Проще взять inkscape, и в нем уже есть gears.

Re: ngcgui

Добавлено: 05 дек 2012, 15:37
Гармонист
Nick писал(а):Проще взять inkscape, и в нем уже есть gears.
согласен, только в нем нет 3ей координаты, из-за чего нельзя сделать шестерни со специальной формой зуба... например со скошенной формой(говорят она более точная и уменьшает биения) или конусо-подобную шестерню... хотя эти задачи скорее для 3d, а не 2d редактора...

Re: ngcgui

Добавлено: 06 дек 2012, 14:33
Nick
Да-да, и самое главное расчет зуба там гораздо сложнее.

Re: ngcgui

Добавлено: 07 мар 2013, 22:26
nkp
добавление чекбоксов в ngcgui:
если используем ngcgui автономно - то изменения вносим в файл /usr/bin/ngcgui
вот сам файл:
ngcgui.tar
(140 КБ) 628 скачиваний
если используем ngcgui в Axis - то изменения вносим в файл /usr/lib/tcltk/linuxcnc/ngcgui.tcl
(содержимое то же)
теперь в строке ,там где хотим получить чекбокс пишем так: #<coolant> = #1 (=1 <> coolan)
Выделение(015).jpg (4794 просмотра) <a class='original' href='./download/file.php?id=12635&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (110.97 КБ)</a>
теперь в своих подпрограммках можно прописывать примерно так:
(info: чекбокс)
o<zew> sub
#<coolant> = #1 (=1 <> coolant)
o100 if [#<coolant> eq 1]
M8
o100 endif
o<zew> endsub

то есть - если галка стоит - выполняем M8

Re: ngcgui

Добавлено: 10 мар 2013, 01:05
nkp
подпрограммка для сегментов:

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

(info: сегмент ) 
 o<segment> sub 
 #<R1>       =      #1 (=30   R внешний) 
 #<r>       =      #2 (=10   r внутренний)  
 #<a>       =      #3 (=30   угол) 
 #<Coolant> =      #4 (=1 <>   охлаждение ) 
 #<feed>    =      #5 (=400 подача) 

F130 G90 
G0 Y#<r>
G4 P1
#<b> = [90-[#<a>]]
G2 X [[COS[#<b>]] * [#<r>]] Y [[SIN[#<b>]] * [#<r>]]  I0 J-#<r>
G1 X [[COS[#<b>]]*#<R1>] Y [[SIN[#<b>]] *#<R1>]
o<if0> if [#<a>  LT 180]
#<R2> = #<R1>
o<if0> else
#<R2> =[-#<R1>]
o<if0> endif
G3 X0 Y#<R1> R#<R2>
G1 Y#<r>
o<segment> endsub
Выделение(021).jpg (4774 просмотра) <a class='original' href='./download/file.php?id=12689&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (216.19 КБ)</a>
segment.ngc
(569 байт) 1177 скачиваний
https://www.youtube.com/watch?v=9jgT7OeaOi8
зы
подачу забыл прилепить...

Re: ngcgui

Добавлено: 12 мар 2013, 15:37
Nick
О, прикольная штука. :good:
В мозгу давно крутится идея сделать к ngcgui дерево, чтобы можно было менять очередность фич и из параметры и прямо на живую видеть результат в предпросмотре...


эх вот бы времени найти..

Re: ngcgui

Добавлено: 24 ноя 2013, 18:01
nkp
тут реализация ngcgui на питоне ... (напомню - оригинал на тикле )
почти все как и было - интерфейс , функционал ...
Выделение_006.png (4400 просмотров) <a class='original' href='./download/file.php?id=21520&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (134.3 КБ)</a>

Re: ngcgui

Добавлено: 25 май 2014, 20:24
Ворон226
А как прикрутить ngcgui к MyGUI? Есть ли такая возможность?

Re: ngcgui

Добавлено: 25 май 2014, 20:56
nkp
Ворон226 писал(а):А как прикрутить ngcgui к MyGUI? Есть ли такая возможность?
http://cnc-club.ru/forum/viewtopic.php? ... 120#p33186

Re: ngcgui

Добавлено: 25 май 2014, 21:37
Ворон226
nkp писал(а):Установка
Для установки в EMC2 версии 2.4 нужны 4 файла:
А для более поздних версий ничего не поменялось?

Re: ngcgui

Добавлено: 25 май 2014, 21:58
nkp
Ворон226 писал(а):А для более поздних версий ничего не поменялось?
в папкe bin уж eсть файл ngcgui,
eго запускаeшь при запущenом eмс2 , выбираeшь файл с подпрограммой (оnа должа лeжать в папкe с остальnывми ж-кодами)
ps
поож клава приказала долго жить))

Re: ngcgui

Добавлено: 25 май 2014, 23:54
Ворон226
nkp писал(а):eго запускаeшь при запущeнном eмс2 , выбираeшь файл с подпрограммой
Если честно, то мало чего понял...
Запускаю linuxcnc со своей конфигурацией и... как и где запускаю ngcgui?

Re: ngcgui

Добавлено: 26 май 2014, 07:16
nkp
Ворон226 писал(а):Если честно, то мало чего понял...
просто клавиатура накрылась - писать подробней не мог...
=========
Ворон226 писал(а):
nkp писал(а):Установка
Для установки в EMC2 версии 2.4 нужны 4 файла:
А для более поздних версий ничего не поменялось?
ngcgui у тебя уже есть - в папке:
/папка_емс_из_исходников/bin
этот файл можно запускать из консоли с нужными настройками(размер граф.окна,шрифт,и т.д.)
например у меня:
Выделение_033.png (4144 просмотра) <a class='original' href='./download/file.php?id=28608&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (73.01 КБ)</a>
----------
а можно эту команду "упаковать" в файл ,например М133 и запускать из емс
=========
наверно можно и фильтр настроить , да , скорей всего это будет самым удобным способом(не пробовал пока)
===========
открывать новые подпрограммы можно кнопкой :
Выделение_034.png (4144 просмотра) <a class='original' href='./download/file.php?id=28609&sid=82593336b5269b3108bd4308a4c03127&mode=view' target=_blank>Загрузить оригинал (60.68 КБ)</a>
файлы подпрограмм должны лежать в папке с G-кодами (указаной в ini-файле)

Re: ngcgui

Добавлено: 26 май 2014, 07:20
nkp
в дополнение:

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

Usage:
  ngcgui --help
  ngcgui [Options] -D nc_files_directory_name
  ngcgui [Options] -i linuxcnc_inifile_name
  ngcgui [Options]

  Options:
         [-S subroutine_file]
         [-p preamble_file]
         [-P postamble_file]
         [-o output_file]
         [-a autosend_file]            (autosend to axis default:auto.ngc)
         [--noauto]                    (no autosend to axis)
         [--font [big|small|fontspec]] (default: "Helvetica -10 bold")
         [--horiz|--vert]              (default: --horiz)
         [--cwidth comment_width]      (width of comment field)
         [--vwidth varname_width]      (width of varname field)
         [--quiet]                     (fewer comments in outfile)
         [--imageframe]                (default: separate widget for image)

Re: ngcgui

Добавлено: 26 май 2014, 17:34
Ворон226
Спасибо - буду ночью ковырять. Задача не создать универсальный широкораскрытый инструмент, а заточенный на нужную задачу без дополнений. Думаю, что разберусь. Во всяком случае, буду разбираться. Из темы не ухожу ;)

Re: ngcgui

Добавлено: 26 май 2014, 19:08
Ворон226
Начал пробовать.
Оказалось, что ngcgui у меня находится в /usr/bin , а сама библиотека ngcgui в /home/sun/linuxcnc/nc_files/ngcgui_lib
nkp писал(а):этот файл можно запускать из консоли с нужными настройками(размер граф.окна,шрифт,и т.д.)
например у меня:
Я запустил так:

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

$ /usr/bin/ngcgui --font big --vert --cwidth 44 --vwidth 0 -D . -S /home/sun/linuxcnc/nc_files/ngcgui_lib/arc1.ngc -a auto.ngc &
[2] 3252
[1]   Готово            /usr/bin/ngcgui --font big --vert --cwidth 44 --vwidth 0 -D . -S /home/sun/linuxcnc/nc_files/ngcgui_lib -a auto.ngc
sun@sun-desktop:~$ 
И у меня открылось окно с подпрограммой arc1.ngc

Но это отдельное окно - буду пытаться прикрутить его к своему MyGUI...