Страница 10 из 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 (55961 просмотр) <a class='original' href='./download/file.php?id=3810&mode=view' target=_blank>Загрузить оригинал (51.01 КБ)</a>
Screenshot-6.png (55961 просмотр) <a class='original' href='./download/file.php?id=3811&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 (55962 просмотра) <a class='original' href='./download/file.php?id=3809&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 (55960 просмотров) <a class='original' href='./download/file.php?id=3812&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 (55959 просмотров) <a class='original' href='./download/file.php?id=3815&mode=view' target=_blank>Загрузить оригинал (56.69 КБ)</a>
Описание
Примеры
Как объеденить несколько подпрограмм
В программу могут быть объеденены несколько копий как одной подпрограммы, так и разные подпрограммы.
Как это выглядит на практике:
у нас есть 6 вкладок с подпрограммами для фрезерной обработки:
(для просмотра содержимого нажмите на ссылку)
Screenshot.png (55936 просмотров) <a class='original' href='./download/file.php?id=3824&mode=view' target=_blank>Загрузить оригинал (55.81 КБ)</a>
Объеденим их все в одну программу. Открываем первую вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
Этим мы передали наши параметры в создаваемый ngcgui файл auto.ngc. Изменим некоторые параметры(например координаты начала обработки) Нажмем еще раз "CreateFeature".В файл auto.ngc передались также и новые параметры.Нажимаем "Finalize"-загружаем готовый файл с двумя подпрограммами:
(для просмотра содержимого нажмите на ссылку)
Screenshot-1.png (55936 просмотров) <a class='original' href='./download/file.php?id=3825&mode=view' target=_blank>Загрузить оригинал (64.18 КБ)</a>
Чтобы объеденить подпрограммы с разных вкладок :
1.Открываем первую вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
2.Переходим на нужную вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
3.Повторяем,если необходимо.
4.Нажимаем "Finalize".
5. Соглашаемся создать из всех вкладок.
(для просмотра содержимого нажмите на ссылку)
Screenshot-2.png (55936 просмотров) <a class='original' href='./download/file.php?id=3826&mode=view' target=_blank>Загрузить оригинал (65.78 КБ)</a>
Удобней объеденять несколько одинаковых контуров так:
1.создаем из требуемой вкладки копию нажатием кнопки "new"
2.нажимаем "Subfile" ,открываем файл(в нашем случае тот же,что и на первой вкладке)
3.повторяем необходимое число раз
4.корректируем параметры для каждой копии
5.объеденяем все,соблюдая нужную нам последовательность обработки.
(для просмотра содержимого нажмите на ссылку)
Screenshot-3.png (55936 просмотров) <a class='original' href='./download/file.php?id=3827&mode=view' target=_blank>Загрузить оригинал (72.72 КБ)</a>
5. Соглашаемся создать из всех вкладок.
(для просмотра содержимого нажмите на ссылку)
Screenshot12.png (55668 просмотров) <a class='original' href='./download/file.php?id=4009&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 (55569 просмотров) <a class='original' href='./download/file.php?id=4064&mode=view' target=_blank>Загрузить оригинал (75.05 КБ)</a>
цилиндрический карман

Re: ngcgui

Добавлено: 19 ноя 2014, 21:19
nkp
Ворон226 писал(а):Так и не нашел как картинку вставить...
по моему картинка вставляется по умолчанию ,если ее имя совпадает с именем файла программы и она(картинка) лежит в той же папке...

Re: ngcgui

Добавлено: 19 ноя 2014, 21:21
torvn77
Ворон226 писал(а):А почему не G92?
Да ,это я плохо обдумал,g92 лучше.
torvn77 писал(а):Вставить программу можно оформив её как вызываемую из мастера внешнею суброутину
И как?[/quote]
Как я писал здесь:Re: [WIKI] Создание конфигурации простого автомата от чайник #220
Опишу ещё раз несколько иначе.
внутрь мастера на место строки

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

(тут должна быть программа фрезеровки элемента)
надо вставить
O<example_func> call [#<_line>] [#<param_1>] [#<param_2>] .... [#<param_29>]

А саму функцию записать в фаил example_func.ngc и положить в пути указанном в [RS274NGC]SUBROUTINE_PATH
Можешь попробовать добавить в саму программу /usr/bin/ngcgui вызов mkdir /tmp/ngcgui.out и если это получится то прописать
[RS274NGC]
SUBROUTINE_PATH = NC-Subroutinus:/tmp/ngcgui.out

Получится должно,так как я проверил и ngcgui это скрипт.

Re: ngcgui

Добавлено: 19 ноя 2014, 21:24
Ворон226
nkp писал(а):
Ворон226 писал(а):Как просто вставить в "мастер" программу обработки детали?
o<cod> call
=========
сам код положить в файл cod.ngc и его в папку с остальными программами...
файл cod.ngc оформить в виде:
o<cod>sub
...
...
o<cod>endsub
Кхе... Т.е. мы должны взять файл "деталь.ngc" , переименовать его в "cod.ngc" , а уже затем использовать его в "мастере"?
А, если нужно вторую деталь обрабатывать, то опять все переименовывать и запускать "мастер"?

Я думал есть окно для загрузки подпрограммы обработки детали из самого "мастера"...

Re: ngcgui

Добавлено: 19 ноя 2014, 21:26
Ворон226
torvn77 писал(а):Как я писал здесь:Re: [WIKI] Создание конфигурации простого автомата от чайник #220
Опишу ещё раз несколько иначе.
внутрь мастера на место строки...
Получается, что проще сделать, используя обычные Ctrl-C и Ctrl-V ;) Выделил, вставил и запустил.

Re: ngcgui

Добавлено: 19 ноя 2014, 21:42
nkp
Ворон226 писал(а):Я думал есть окно для загрузки подпрограммы обработки детали из самого "мастера"...
я может быть не правильно понял вопрос...
в окне ngcgui (это ты наверно называешь "мастер") есть кнопка выбора подпрограммы:
Выделение_096.png (6320 просмотров) <a class='original' href='./download/file.php?id=36910&mode=view' target=_blank>Загрузить оригинал (116.07 КБ)</a>

Re: ngcgui

Добавлено: 19 ноя 2014, 21:47
torvn77
А preamble и postamble это стандартная машиноспецифичная шапка и конец программы?

Re: ngcgui

Добавлено: 19 ноя 2014, 21:50
nkp
torvn77 писал(а):А preamble и postamble это стандартная машиноспецифичная шапка и конец программы?
да - они действительны будут для всех подпрограмм в директории...

Re: ngcgui

Добавлено: 19 ноя 2014, 22:08
Ворон226
А почему у меня таких кнопочек в конфигурации нет?
Снимок-13.png (6303 просмотра) <a class='original' href='./download/file.php?id=36912&mode=view' target=_blank>Загрузить оригинал (29.89 КБ)</a>
(я вижу, что у вас эта кнопочка появляется при вызове из терминала, а вот как сделать в "мастерах" в конфигурации станка?)

Re: ngcgui

Добавлено: 19 ноя 2014, 22:17
nkp
вот так еще можно вызывать нужную программу фрезеровки:

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

o<sverlo> sub
   #<Num_X> =  #1 (=3 кол-во элементов по X)
   #<Step_X> =  #2 (=10 шаг по X, мм)
   #<Num_Y> =  #3 (=3 кол-во элементов по Y)
   #<Step_Y> =  #4 (=10 шаг по Y, мм)
   #<Max_RPM> = #9 (=5000 обороты шпинделя)
   #<Start_X> = #10 (=0 нач.координата по X, мм)
   #<Start_Y> = #11 (=0 нач.координата по Y, мм)
   #<prog> = #12 (=111 программа обработки)

G0 Z5.0
G0 X0 Y0 S#<Max_RPM> M3
#<Current_Y> = #<Start_Y>
   o100 repeat [#<Num_Y>]
   #<Current_X> = #<Start_X>
      o101 repeat [#<Num_X>]
      G0 X#<Current_X> Y#<Current_Y>

o[#<prog>]call

      G0 Z5.0
      #<Current_X> = [#<Current_X> + #<Step_X>]
      o101 endrepeat
   #<Current_Y> = [#<Current_Y> + #<Step_Y>]
   o100 endrepeat
G0 Z5.0 M5
G0 X0 Y0
M9
o<sverlo> endsub
недостаток - имя программы всегда число(например 111.ngc)

Re: ngcgui

Добавлено: 19 ноя 2014, 22:20
nkp
Ворон226 писал(а):кнопочка появляется при вызове из терминала, а вот как сделать в "мастерах" в конфигурации станка?)
наверно код изменился - раньше всегда кнопки были...
надо разобраться...

Re: ngcgui

Добавлено: 19 ноя 2014, 22:21
Ворон226
Это, как раз, не страшно!

Только в вызываемой программе нужно прописывать в начале
o<номер_программы>sub
и закончить программу
o<номер_программы>endsub

Так?

Re: ngcgui

Добавлено: 19 ноя 2014, 22:23
nkp
Ворон226 писал(а):Так?
да -только без <>
o111sub
...
o111endsub
ну и без M2 в коде разумеется...

Re: ngcgui

Добавлено: 21 июл 2015, 22:37
nkp
есть в ngcgui такая штука ttt
(для просмотра содержимого нажмите на ссылку)
Выделение_043.png (6150 просмотров) <a class='original' href='./download/file.php?id=54589&mode=view' target=_blank>Загрузить оригинал (56.3 КБ)</a>
есть шрифт - вроде как поддерживает кириллицу
(для просмотра содержимого нажмите на ссылку)
Выделение_044.png (6150 просмотров) <a class='original' href='./download/file.php?id=54590&mode=view' target=_blank>Загрузить оригинал (117.22 КБ)</a>
написана программка на tcl..
что ей может "мешать" перерабатывать кириллицу??
upd:
решил немного по другому ;)
(для просмотра содержимого нажмите на ссылку)
Выделение_045.png
Выделение_045.png (9.58 КБ) 6148 просмотров

Re: ngcgui

Добавлено: 22 июл 2015, 09:35
Nick
nkp писал(а):написана программка на tcl..
что ей может "мешать" перерабатывать кириллицу??
А что говорит?
Скорее всего проблема с кодировкой - не задана в программе.

Re: ngcgui

Добавлено: 22 июл 2015, 13:10
Serg
Nick писал(а):Скорее всего проблема с кодировкой - не задана в программе.
В tcl проблемы с кодировками решены лет 10 назад - везде внутри используется Unicode.

Re: ngcgui

Добавлено: 29 май 2023, 06:36
vik_vo
Уважаемые знатоки спасите помогите, уже несколько дней мучаюсь с добавлением вкладок и кнопок в интерфейс, вроди получилось
Снимок экрана_2023-05-29_10-28-39.png (2738 просмотров) <a class='original' href='./download/file.php?id=207962&mode=view' target=_blank>Загрузить оригинал (59.19 КБ)</a>
но оно не работает (( выдаёт ошибку
Снимок экрана_2023-05-29_10-29-20.png (2738 просмотров) <a class='original' href='./download/file.php?id=207963&mode=view' target=_blank>Загрузить оригинал (54.98 КБ)</a>
Подскажите что не так?