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

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

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

Re: ngcgui

Добавлено: 24 июл 2012, 12:51
Serg
Так он хочет не только картинку, но и подпрограмму со всеми её полями ввода и т.п., и чтоб они все одновременно работали. :) Фактически запустить несколько таких прог в одном контексте.

P.S. Ник, самое весёлое - это когда над проектом на С работают три программера, двое из которых имеют большой опыт программирования на Tcl/Tk - так вот этот третий впринципе не втупляет в код на С, который генерят те двое, причём этот код получается гораздо эффективней и компактней. :-D
P.P.S. А если они ещё владеют LISP'ом... :-D

Re: ngcgui

Добавлено: 28 июл 2012, 16:49
Алексс
nkp, спасибо за статейку!!
установил себе ngcgui, даже работает.
однако русские буковки отображаются криво - что подкрутить ??

Re: ngcgui

Добавлено: 28 июл 2012, 17:01
nkp
в теме обсуждался вопрос шрифтов
но признаться как то неоднозначно смена шрифта работает
у меня сейчас кирилица тоже в ngcgui смотрится никчемно (надо бы занятся-шрифтов в систему подкинуть- поэкспериментировать)
(для просмотра содержимого нажмите на ссылку)
Выделение(036).png (5971 просмотр) <a class='original' href='./download/file.php?id=6951&sid=428ebd02782930112e1410ed1a8cf122&mode=view' target=_blank>Загрузить оригинал (163.46 КБ)</a>

Re: ngcgui

Добавлено: 28 июл 2012, 17:17
Алексс
ну у меня просто кракозябры показывает.
NGCGUI_FONT = Arial -10 normal писал - не помогло.

вечером еще посмотрю.

Re: ngcgui

Добавлено: 28 июл 2012, 23:49
nkp
Несколько слов о таком инструменте как Truetype Tracer.
Эта программка выдает G-код текста .Может работать самостоятельно и в виде вкладки Linuxcnc.Рассмотрим оба варианта.
Сама программка (если не установлена) :
deb.tar
(20 КБ) 541 скачивание
В консоли пишем:

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

truetype-tracer  CNC-Club
получаем ж-код нашей надписи:
(для просмотра содержимого нажмите на ссылку)
Выделение(037).png (5963 просмотра) <a class='original' href='./download/file.php?id=6968&sid=428ebd02782930112e1410ed1a8cf122&mode=view' target=_blank>Загрузить оригинал (213.52 КБ)</a>
добавим вывод кода в файл (в нужную директорию емс) :

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

truetype-tracer   CNC-CLUB   > /home/nkp/emc2/nc_files/20.ngc
вот теперь мы легко загружаем программу в емс:
(для просмотра содержимого нажмите на ссылку)
Выделение(038).png (5963 просмотра) <a class='original' href='./download/file.php?id=6969&sid=428ebd02782930112e1410ed1a8cf122&mode=view' target=_blank>Загрузить оригинал (38.75 КБ)</a>
Изменим внешний вид надписи прописав нужный нам шрифт:

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

truetype-tracer -f /usr/share/fonts/truetype/FezSSK-Bold.ttf CNC-CLUB   > /home/nkp/emc2/nc_files/20.ngc
смотрим:
(для просмотра содержимого нажмите на ссылку)
Выделение(039).png (5963 просмотра) <a class='original' href='./download/file.php?id=6970&sid=428ebd02782930112e1410ed1a8cf122&mode=view' target=_blank>Загрузить оригинал (33.84 КБ)</a>
Здесь общие сведения о шрифтах TrueType .
Большая коллекция шрифтов.
Можно получить на выходе dxf файл,прописав:

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

truetype-tracer-dxf  NKP  >nkp.dxf
в дом папке смотрим dxf файл:
(для просмотра содержимого нажмите на ссылку)
Выделение(043).png (5955 просмотров) <a class='original' href='./download/file.php?id=6975&sid=428ebd02782930112e1410ed1a8cf122&mode=view' target=_blank>Загрузить оригинал (84.81 КБ)</a>
-----------------------------------------------------------------------------------
Теперь сделаем вкладку .
Пропишем в ini файле в секцию [DISPLAY] :

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

TKAPP             = /home/nkp/cnc/tcl/ngcgui_ttt.tcl
TTT               = truetype-tracer 
(путь к файлу пишем свой)
В емс 2.5 файлы содержаться в сборке
Вот тут я заметил (может только у меня), что вкладка truetype-tracer (ttt) не появляетс,если нет хоть одной вкладки ngcgui.
(для просмотра содержимого нажмите на ссылку)
Выделение(040).png (5963 просмотра) <a class='original' href='./download/file.php?id=6971&sid=428ebd02782930112e1410ed1a8cf122&mode=view' target=_blank>Загрузить оригинал (37.35 КБ)</a>
Дальше пишем нужный текст, выбираем настройки,ставим галку если нам нужно будет повернуть надпись ,жмем Make.
Открывается стандартная вкладка ngcgui в которой мы можем изменять параметры:
(для просмотра содержимого нажмите на ссылку)
Выделение(041).png (5963 просмотра) <a class='original' href='./download/file.php?id=6972&sid=428ebd02782930112e1410ed1a8cf122&mode=view' target=_blank>Загрузить оригинал (30.49 КБ)</a>
После корректировки жмем Создать-завершить :
(для просмотра содержимого нажмите на ссылку)
Выделение(042).png (5963 просмотра) <a class='original' href='./download/file.php?id=6973&sid=428ebd02782930112e1410ed1a8cf122&mode=view' target=_blank>Загрузить оригинал (20.17 КБ)</a>

Re: ngcgui

Добавлено: 29 июл 2012, 11:53
Алексс
Алексс писал(а):ну у меня просто кракозябры показывает.
все просто - нужно по русски писать в unicode и тогда все показывается правильно.
nkp писал(а):Несколько слов о таком инструменте как Truetype Tracer.
поставил себе - классная штука.
единственное не понял в каких единицах масштаб задается. но можно поэкспериментировать и подобрать.

nkp - дайте ему еще медаль ;)

Re: ngcgui

Добавлено: 06 авг 2012, 21:22
T00T
nkp писал(а):Решение ошибки возможности деления на 0 :

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

o124 if [#10 NE 0]
#<dd>=[360/[#10]]
o124 endif 

не получается обойти ошибку деления на ноль

o<rezba> sub
#<Start_Dia> = #1 (=20 Диаметр Начальный)
#<Dia_rezby> = #2 (=10 Диаметр резьбы)
#<Z_Start> = #3 (=50 Z_Начальное)
#<Z_EndOfCut> = #4 (=2 Z_Конечное)
#<conus> = #5 (=0 конусность)
#<SurfSpeed> = #6 (=300 обороты)
#<Depth_Cut> = #7 (=1.5 глуб резьбы)
#<Step> = #8 (=1.5 Шаг резьбы)
#<Kon_otstup> = #9 (=50 Конечный отступ)
#<Step_cut> = #10 (=0.2 единичная глубина)
#<Smeshenee> = #11 (=0.173 смещение центра)
#<tangens> = #12 (=0.577 тангенс угла резьбы)
#<Nproh> = #13 (=3 число чист проходов)

#<nul>=0
G43
G7 G97 S#<SurfSpeed> M3
M8
G0 X#<Start_Dia> Z#<Z_Start>
#<Current_Dia>=#<Dia_rezby>
#<cotangens>=[1/#<tangens>] - на эту строку ругается типа деление на 0
o<rezba> endsub

#<cotangens>=[1/[#12]] - даже так не хочет
Если делить на какой нибудь параметр - сразу грит деление на 0

Просто стандартный цикл G76 режет резьбу по центру - а это ужасно! Так резцов не напасёшься :)

Re: ngcgui

Добавлено: 06 авг 2012, 21:28
nkp
Так пробовал:
(для просмотра содержимого нажмите на ссылку)

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

o<rezba> sub
 #<Start_Dia> = #1 (=20 Диаметр Начальный)
 #<Dia_rezby> = #2 (=10 Диаметр резьбы)
 #<Z_Start> = #3 (=50 Z_Начальное)
 #<Z_EndOfCut> = #4 (=2 Z_Конечное)
 #<conus> = #5 (=0 конусность)
 #<SurfSpeed> = #6 (=300 обороты)
 #<Depth_Cut> = #7 (=1.5 глуб резьбы)
 #<Step> = #8 (=1.5 Шаг резьбы)
 #<Kon_otstup> = #9 (=50 Конечный отступ)
 #<Step_cut> = #10 (=0.2 единичная глубина)
 #<Smeshenee> = #11 (=0.173 смещение центра) 
 #<tangens> = #12 (=0.577 тангенс угла резьбы)
 #<Nproh> = #13 (=3 число чист проходов)

#<nul>=0 
G43
G7 G97 S#<SurfSpeed> M3
M8
G0 X#<Start_Dia> Z#<Z_Start>
#<Current_Dia>=#<Dia_rezby>

o124 if [#<tangens> NE 0]
#<cotangens>=[1/#<tangens>]
o124 endif

 
o<rezba> endsub

Re: ngcgui

Добавлено: 06 авг 2012, 21:30
T00T
Попробую, щас :)
Ура... работает!!

Re: ngcgui

Добавлено: 06 авг 2012, 21:39
T00T
nkp писал(а):Некоторые опции ngcgui:

NGCGUI_SUBFILE = любое_имя - содает вкладку с "любое_имя "

В файле ini NGCGUI_OPTIONS = noiframe nonew noremove
noiframe -графический файл отдельным окном: nonew - запрещает создание новых вкладок
noremove - запрещает удаление вкладок
Кнопки "Вперед" "Назад"- соотв. перемещение активной вкладки.
Содержимое файла PREAMBLE записывается в начало генерируемого файла.
Содержимое файла POSTAMBLE записывается в конце генерируемого файла.
Вместо PREAMBLE или POSTAMBLE
можно поместить команды в поле ввода.
Начинать команду с : (двоеточие) и отделять; (точка с запятой). Примеры: Вставляя в любое место подпрограммы строку:

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

info: ваш_коментарий
выводим его вверху вкладки.

Может это только у меня так?

А эти кнопки PREAMBLE POSTAMBLE ФАЙЛ как добавить?
И кнопка G-kode что делает?

Re: ngcgui

Добавлено: 06 авг 2012, 21:43
T00T
Кстати, для поклонников НЦ-31 и других станков...
Мастер по типу G77 с НЦэшки: Цикл расточки внутренней и внешней, с конусами и без

Re: ngcgui

Добавлено: 06 авг 2012, 21:44
nkp
T00T писал(а):А эти кнопки PREAMBLE POSTAMBLE ФАЙЛ как добавить?
у меня они есть:
Выделение(011).png (5895 просмотров) <a class='original' href='./download/file.php?id=7261&sid=428ebd02782930112e1410ed1a8cf122&mode=view' target=_blank>Загрузить оригинал (13.75 КБ)</a>
T00T писал(а):И кнопка G-kode что делает?
где такая?

Re: ngcgui

Добавлено: 06 авг 2012, 21:46
T00T
Здорово, а уменя всё стандартно, так что нет:)

Re: ngcgui

Добавлено: 06 авг 2012, 21:49
nkp
Запусти так:

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

#!/bin/sh

ngcgui --font big  --vert  --cwidth 44 --vwidth 0 -D . -S /home/nkp/emc2/nc_files/arc2.ngc -a auto.ngc &
путь подправь

Re: ngcgui

Добавлено: 06 авг 2012, 21:50
T00T
T00T писал(а):И кнопка G-kode что делает?
где такая?[/quote]

В 29 посте на картинке есть.

Кстати есть такая проблема - допустим создана программа из нескольких мастеров подряд и между ними нет доп. строк. если я остановился посреди программы, то начинать прогу надо сначала, т.к. с нужного мастера не получается запустить. Т.Е. в аксисе нажимаю начать с этого кадра, а начинает всё равно сначала

Re: ngcgui

Добавлено: 06 авг 2012, 21:52
T00T
nkp писал(а):Запусти так:

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

#!/bin/sh

ngcgui --font big  --vert  --cwidth 44 --vwidth 0 -D . -S /home/nkp/emc2/nc_files/arc2.ngc -a auto.ngc &
путь подправь
Я не силён в линуксе и тикеле. Это где запустить или прописать?

Re: ngcgui

Добавлено: 06 авг 2012, 21:58
Lexxa
интересно б кстати ncgui прикрутить не к аксису, а, скажем, к mini или gscreen

Re: ngcgui

Добавлено: 06 авг 2012, 21:59
nkp
это пропиши в файл (допустим М133)
положи его к ж-кодам
сделать исполняемым
можно повесить на кнопку в glade или еще куда нибудь
а можно просто этот файл запускать
(не забудь путь в файле править)

Re: ngcgui

Добавлено: 06 авг 2012, 22:01
nkp
Lexxa писал(а):интересно б кстати ncgui прикрутить не к аксису, а, скажем, к mini или gscreen
вот это и есть решение
я так сейчас и делаю
то есть ngcgui у тебя будет запускаться откуда захочешь
лишь бы емс был запущен

Re: ngcgui

Добавлено: 06 авг 2012, 23:48
nkp
T00T писал(а):Кстати есть такая проблема - допустим создана программа из нескольких мастеров подряд и между ними нет доп. строк. если я остановился посреди программы, то начинать прогу надо сначала, т.к. с нужного мастера не получается запустить. Т.Е. в аксисе нажимаю начать с этого кадра, а начинает всё равно сначала
ngcgui создает auto.ngc - который как бы состоит из вызовов подпрограмм(ы) с предустановленными юзером параметрами.
По своей сути это и не G-код
Думаю "начать с этого кадра" корректно и не отработает
-------------
А почему именно Stop ? Почему не пауза? Кнопка включения нулевой подачи(т.н. "Стоп подачи")?