Макросы автоподстановки

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
Alexanders
Кандидат
Сообщения: 82
Зарегистрирован: 10 окт 2013, 23:41
Репутация: 14
Контактная информация:

Макросы автоподстановки

Сообщение Alexanders »

Подскажите, ести ли в языке G-кодов макросы автоподстановки? Например где-то в начале программы объявляется строка безопасности и положение зоны смены инструмента. А далее, в тексте программы встречается условное выражение, присвоенное этим процедурам.
Или только вызов подпрограммы и, возможно, обращение к переменным? Если не сложно, то хотелось бы несколько разных вариантов примеров....
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Макросы автоподстановки

Сообщение nkp »

Alexanders писал(а): макросы автоподстановки?
имеется в виду подобие сишного #define ??
Alexanders
Кандидат
Сообщения: 82
Зарегистрирован: 10 окт 2013, 23:41
Репутация: 14
Контактная информация:

Re: Макросы автоподстановки

Сообщение Alexanders »

Да. И в макроассемблере это тоже имеется. Но затем происходит компиляция и в программу попадают уже подставленные данные. А что происходит в стойке ЧПУ?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Макросы автоподстановки

Сообщение Serg »

Зависит от конкретного интерпретатора G-кодов (Mach, Linuxcnc, etc.). Как правило есть переменные.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Alexanders
Кандидат
Сообщения: 82
Зарегистрирован: 10 окт 2013, 23:41
Репутация: 14
Контактная информация:

Re: Макросы автоподстановки

Сообщение Alexanders »

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

Re: Макросы автоподстановки

Сообщение nkp »

Alexanders писал(а):Макроподстановки там подразумеваются?
в чистом виде кажется нет...
а что собственно требуется ??
=============
вот пример программы емс:

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

G17 G21 G40 G49 G54 G80 G90 G94
 #3= 600
 #4 = 0
 #5 = 0
 #20 = 0
 g00 x[0] y[0] z[20]
 o100 while [#5 lt 120] (column of six daisies along y axis)
 o150 while [#4 lt 180] (line of 9 daisies along x axis)
 o200 do
 g10 l2 p1 x[#4] y[#5] r#20 (set zero position)
 g00 x[10] y[0] (1st petal tip)
 z[0] (work surface)
 g91 (incremental mode)
 g01 x[-2.4] z[-2] F#3 (cut 1st petal)
 g01 x[-4.6] z[2] F#3
 g90 (absolute mode)
 g00 z[5] (clearance)
 #20 = [#20 + 30]
 o200 while [#20 lt 360] (finish daisy)
 #20 = 0
 #4 = [#4+20]
 o150 endwhile (finish row)
 #4 = 0
 #5 =[#5+20]
 o100 endwhile (finish matrix)
 g00 z[20]
 g00 x[0] y[0]
 m30
вот что она делает:
Выделение_054.png (4260 просмотров) <a class='original' href='./download/file.php?id=21165&sid=3599a5c982aec42690a08d0749e7626e&mode=view' target=_blank>Загрузить оригинал (83.31 КБ)</a>
Alexanders
Кандидат
Сообщения: 82
Зарегистрирован: 10 окт 2013, 23:41
Репутация: 14
Контактная информация:

Re: Макросы автоподстановки

Сообщение Alexanders »

Допустим есть у нас часто повторяющиеся процедуры при смене инструмента:
M05 (Шпиндель стоп)
M09 (СОЖ выкл)
G53 G00 X-100 Z-200 (отход в зону смены инструмента в станочных координатах)
G40 G80...... (строка безопасности)
G54 (возврат в систему координат детали)

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

Re: Макросы автоподстановки

Сообщение Serg »

Alexanders писал(а):G53 G00 X-100 Z-200 (отход в зону смены инструмента в станочных координатах)
При таком отходе как правило ломается фреза и/или деталь. Нужно сначала подняться в Z0, а уж потом ехать куда-то.
Да и ехать привильнее командой G28 - она ровно для этого и придумана.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Макросы автоподстановки

Сообщение nkp »

Alexanders писал(а):пример с вызовом подпрограммы.

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

(mmount.ngc - sample program)
(this program mills a stepper motor mount)
(it is intended to be run on the Mazak at the CNC workshop)
(it requires the custom 3-station workholding fixture that is on that machine)
(station 1 starts with a flat rectangular blank, and makes holes in it)
(station 1 uses the G55 coordinate system)
(touch off: XY = center of 1.876 hole, Z = top of plate)
(station 2 mounts the part using a couple of the holes, and mills the outline)
(station 2 uses the G56 coordinate system)
(touch off: XY = center of 1.876 hole, Z = top of plate)
(station 3 mounts the part on end to drill, tap, and c'bore holes in one end)
(station 3 uses the G57 coordinate system)
(touch off: XZ = center of 1.876 hole, Y = back surface of plate)

(it uses the following tools:)
(1       1       -1.1901     0.250   3/4 center drill)
(2       2       -0.2875     0.209   #4 tap drill)
(3       3        0.0        0.1406  9/64 clearance drill)
(4       4       -1.6630     0.25    1/4 end mill)
(5       5       -1.5042     0.5     1/2 end mill)
(15      15      -1.5042     0.55    same 1/2 end mill oversize roughing)
(6       6       -0.1833     0.25    1/4-20 pulley tap)

#100=10.0 (outside feed)
#101=10.0 (inside feed)
#102=3.0 (drill feed)

G17 G20 G40 G90

o100 sub
  (helical hole milling, load tool and set feed first, then use like so:)
  (o100 call [x pos] [y pos] [safety height] [hole depth] [hole dia] [tool dia])
  (tool dia doesn't have to be specified exactly.)
#9=#5 (save real dia)
#5=[#5-.020]
#4=[0 - #4]
#7=[#6 / 2]  (#7 is depth per circle = half of tool diameter)
#8=[#3 - #7] (#8 is current depth step)
g0 z#3
(start above and right so we make a convex corner for entry to the ccw arcs)
g0 x[#1 + #6] y[#2 + [#5]] 
g41 g0 x#1 y[#2 + [#5 / 2]]
o101 while [#8 GT #4]
(down toward the specified depth a bit at a time)
g3 x#1 y[#2 + [#5 / 2]] i0 j[0 - [#5 / 2]] z#8
#8=[#8 - #7]
o101 endwhile
(down to the actual depth)
g3 x#1 y[#2 + [#5 / 2]] i0 j[0 - [#5 / 2]] z#4
(full circle at the actual depth)
g3 x#1 y[#2 + [#5 / 2]] i0 j[0 - [#5 / 2]]
(now make a finish pass at the actual diameter)
g3 x#1 y[#2 - [#9 / 2]] i0 j[0 - [[#5 + #9]/4]]
g3 x#1 y[#2 - [#9 / 2]] i0 j[#9/2]
g3 x#1 y[#2 + [#5 / 2]] i0 j[[#5+#9]/4]
g0 z#3
g40
o100 endsub

(DRILL 3/4 CENTER)
T1 M6 G43
G55
S764 M3 M8
G00 X0.0000 Y0.0000
G00 Z0.2500
(spot five holes in station 1)
G81 R0.0250 Z-0.0400 X0.0000 Y-6.0000 F#102
G81 R0.0250 Z-0.0400 X0.0000 Y-7.0000 F#102
G81 R0.0250 Z-0.0400 X0.0000 Y-3.5000 F#102
G81 R0.0250 Z-0.0400 X0.0000 Y-2.5000 F#102
G81 R0.0250 Z-0.0400 X-1.938 Y-8.9000 F#102
G00 Z0.2500
M5 M9
G00 G53 Z0.0000

(MILL 0.250)
T1 M6 G43
(station 1)
G55
S3056 M3 M8
G00 X0.0000 Y0.0000
G00 Z0.2500

(mill curved slot)
G00 X-0.1806 Y-11.4324
G41
G01 X-0.1806 Y-11.1824 F#101
G03 X0.3449 Y-10.6567 I-1.7574 J2.2824 Z0.025
G03 X0.1221 Y-10.4853 I-0.1114 J0.0857 Z0.0
G02 X-0.3521 Y-10.9596 I-2.0601 J1.5853 Z-0.125
G03 X-0.1806 Y-11.1824 I0.0858 J-0.1114
G03 X0.3449 Y-10.6567 I-1.7574 J2.2824 
G03 X0.1221 Y-10.4853 I-0.1114 J0.0857
G02 X-0.3521 Y-10.9596 I-2.0601 J1.5853 Z-0.250
G03 X-0.1806 Y-11.1824 I0.0858 J-0.1114
G03 X0.3449 Y-10.6567 I-1.7574 J2.2824 
G03 X0.1221 Y-10.4853 I-0.1114 J0.0857
G02 X-0.3521 Y-10.9596 I-2.0601 J1.5853 Z-0.375
G03 X-0.1806 Y-11.1824 I0.0858 J-0.1114
G03 X0.3449 Y-10.6567 I-1.7574 J2.2824
G03 X0.1221 Y-10.4853 I-0.1114 J0.0857
G02 X-0.3521 Y-10.9596 I-2.0601 J1.5853 Z-0.550
G03 X-0.1806 Y-11.1824 I0.0858 J-0.1114
G03 X0.3449 Y-10.6567 I-1.7574 J2.2824
G03 X0.1221 Y-10.4853 I-0.1114 J0.0857
G02 X-0.3521 Y-10.9596 I-2.0601 J1.5853
G00 Z0.2500
G40

(mill second curved slot)
G00 X1.5152 Y-8.4181
G41
G01 X1.7652 Y-8.4181 Z0.025
G02 X1.7652 Y-9.3819 I-3.7032 J-0.4819 Z-0.125
G03 X2.0440 Y-9.4181 I0.1394 J-0.0181
G03 X2.0440 Y-8.3819 I-3.9820 J0.5181
G03 X1.7652 Y-8.4181 I-0.1394 J-0.0181
G02 X1.7652 Y-9.3819 I-3.7032 J-0.4819 Z-0.250
G03 X2.0440 Y-9.4181 I0.1394 J-0.0181
G03 X2.0440 Y-8.3819 I-3.9820 J0.5181
G03 X1.7652 Y-8.4181 I-0.1394 J-0.0181
G02 X1.7652 Y-9.3819 I-3.7032 J-0.4819 Z-0.375
G03 X2.0440 Y-9.4181 I0.1394 J-0.0181
G03 X2.0440 Y-8.3819 I-3.9820 J0.5181
G03 X1.7652 Y-8.4181 I-0.1394 J-0.0181
G02 X1.7652 Y-9.3819 I-3.7032 J-0.4819 Z-0.550
G03 X2.0440 Y-9.4181 I0.1394 J-0.0181
G03 X2.0440 Y-8.3819 I-3.9820 J0.5181
G03 X1.7652 Y-8.4181 I-0.1394 J-0.0181
G02 X1.7652 Y-9.3819 I-3.7032 J-0.4819
G00 Z0.2500
G40

(mill four holes)
o100 call [ 1.1880] [-0.9380] [0.25] [0.55] [0.4375] [0.25]
o100 call [-1.1880] [-0.9380] [0.25] [0.55] [0.4375] [0.25]
o100 call [ 0.0000] [-7.5000] [0.25] [0.55] [0.5000] [0.25]
o100 call [ 0.0000] [-1.4000] [0.25] [0.55] [0.5000] [0.25]

G00 G53 Z0.0000
(station 3)
G57
G0 X0.0000 Y0.0000
(counterbores)
(o100 call [x pos] [y pos] [safety height] [hole depth] [hole dia] [tool dia])
F#101
o100 call [1.188] [-0.250] [1.4] [-0.367] [0.405] [0.25]
F[#101/3] (mostly plunging)
o100 call [1.188] [-0.250] [1.4] [-0.267] [0.2813] [0.25]
F#101
o100 call [-1.188] [-0.250] [1.4] [-0.367] [0.405] [0.25]
F[#101/3] (mostly plunging)
o100 call [-1.188] [-0.250] [1.4] [-0.267] [0.2813] [0.25]
M5 M9

G00 G53 Z0.0000

(DRILL 9/32)
T1 M6 G43
G55
S679 M3 M8
G00 X0.0000 Y0.0000
G00 Z0.2500
G83 R0.050 Z-0.6000 Q.15 X-1.9380 Y-8.9000 F#102
G00 G53 Z0.0000
G57
G00 X0.0000 Y0.0000
G00 Z1.5000
G83 R1.5000 Z-0.100 Q.15 X1.1880 Y-0.2500 F#102
G83 R1.5000 Z-0.100 Q.15 X-1.1880 Y-0.2500 F#102
M5 M9
G00 G53 Z0.0000

(DRILL #4)
T1 M6 G43
G55
S914 M3 M8
G00 X0.0000 Y0.0000
G00 Z0.2500
G83 R0.050 Z-0.7000 Q0.15 X0.0000 Y-7.0000 F#102
G83 R0.050 Z-0.7000 Q0.15 X0.0000 Y-6.0000 F#102
G83 R0.050 Z-0.7000 Q0.15 X0.0000 Y-3.5000 F#102
G83 R0.050 Z-0.7000 Q0.15 X0.0000 Y-2.5000 F#102
G00 G53 Z0.0000
(drill at station 3)
G57
G00 X0.0000 Y0.0000
G00 Z1.5000
G00 X-1.188 Y-0.250 
G00 Z0.500
G83 R0.500 Z-0.938 Q0.15 F#102
G00 Z1.5000
G00 X1.188 Y-0.250
G00 Z0.500
G83 R0.500 Z-0.938 Q0.15 F#102
M5 M9
G00 G53 Z0.0000

(MILL 0.500)
T1 M6 G43
S1527 M3 M8
G55
G00 X0 Y0
G00 Z0.2500
F#100
(two large holes - turn the slugs into chips so they don't get caught)
(o100 call [x pos] [y pos] [safety height] [hole depth] [hole dia] [tool dia])
o100 call [0.0000] [0.0000] [0.25] [0.6] [1.000] [0.5]
o100 call [0.0000] [0.0000] [0.25] [0.6] [1.876] [0.5]
o100 call [0.0000] [-8.900] [0.25] [0.6] [1.00] [0.5]
o100 call [0.0000] [-8.900] [0.25] [0.6] [2.00] [0.5]

G00 G53 Z0.0000
(station 2 - milling the perimeter)
G56
(first notch - to allow scrap to drop away)
G00 X0 Y0
G00 X-3.75 Y-8.9
G00 Z0.25
G01 Z-0.25
G01 X-2.9 Y-8.9
G00 Z0.25
G00 X-3.75 Y-8.9
G01 Z-0.6
G01 X-2.9 Y-8.9
G00 Z0.25
(2nd drop notch)
G00 X-3.75 Y0.5
G01 Z-0.25
G01 X-2 Y0.5
G00 Z0.25
G00 X-3.75 Y0.5
G01 Z-0.6
G01 X-2 Y0.5
G00 Z0.25
(3rnd drop notch)
G00 X0 Y2.75
G01 Z-0.25
G01 X0 Y1.75
G00 Z0.25
G00 X0 Y2.75
G01 Z-0.6
G01 X0 Y1.75
G00 Z0.25
(beginning of profile)
G00 G53 Z0.0000
G00 X0 Y0
G00 Z0.2500
G00 X-1.6732 Y1.0677

G03 X-0.6423 Y1.0677 I0.5154 J0.8569 Z-0.2500 F#100
G02 X0.6423 Y1.0677 I0.6423 J-1.0677
G01 X1.4775 Y0.5653
G02 X1.5976 Y0.3739 I-0.1289 J-0.2142
G01 X2.4036 Y-8.3886
G02 X2.4046 Y-8.4115 I-0.2489 J-0.0229
G01 X2.4046 Y-9.4000
G02 X2.2096 Y-9.7962 I-0.5000 J0.0000
G01 X0.0386 Y-11.4672
G02 X-0.6625 Y-11.3760 I-0.3050 J0.3962
G01 X-2.3342 Y-9.2050
G02 X-2.4359 Y-8.8548 I0.3962 J0.3050
G01 X-1.5975 Y0.3737
G02 X-1.4774 Y0.5653 I0.2490 J-0.0226
G01 X-0.6423 Y1.0677
G02 X0.6423 Y1.0677 I0.6423 J-1.0677 Z-0.6000
G01 X1.4775 Y0.5653
G02 X1.5976 Y0.3739 I-0.1289 J-0.2142
G01 X2.4036 Y-8.3886
G02 X2.4046 Y-8.4115 I-0.2489 J-0.0229
G01 X2.4046 Y-9.4000
G02 X2.2096 Y-9.7962 I-0.5000 J0.0000
G01 X0.0386 Y-11.4672
G02 X-0.6625 Y-11.3760 I-0.3050 J0.3962
G01 X-2.3342 Y-9.2050
G02 X-2.4359 Y-8.8548 I0.3962 J0.3050
G01 X-1.5975 Y0.3737
G02 X-1.4774 Y0.5653 I0.2490 J-0.0226
G01 X-0.6423 Y1.0677
G02 X0.6423 Y1.0677 I0.6423 J-1.0677
G00 Z0.2500
G40

G00 X-1.6732 Y1.0677

G03 X-0.6423 Y1.0677 I0.5154 J0.8569 Z-0.6000 F#100
G02 X0.6423 Y1.0677 I0.6423 J-1.0677
G01 X1.4775 Y0.5653
G02 X1.5976 Y0.3739 I-0.1289 J-0.2142
G01 X2.4036 Y-8.3886
G02 X2.4046 Y-8.4115 I-0.2489 J-0.0229
G01 X2.4046 Y-9.4000
G02 X2.2096 Y-9.7962 I-0.5000 J0.0000
G01 X0.0386 Y-11.4672
G02 X-0.6625 Y-11.3760 I-0.3050 J0.3962
G01 X-2.3342 Y-9.2050
G02 X-2.4359 Y-8.8548 I0.3962 J0.3050
G01 X-1.5975 Y0.3737
G02 X-1.4774 Y0.5653 I0.2490 J-0.0226
G01 X-0.6423 Y1.0677
G01 X-0.2248 Y1.3189 (continue past edge)
G00 Z0.2500
G40
M5 M9
G00 G53 Z0.0000

(TAP PULLEY 1/4-20)
T1 M6 G43
S200 M3 M8
G55
G00 X0.0000 Y0.0000
G00 Z0.2500
G00 X0.0000 Y-7.0000
G33.1 Z-0.95 K0.05
G00 X0.0000 Y-6.0000
G33.1 Z-0.95 K0.05
G00 X0.0000 Y-3.5000
G33.1 Z-0.95 K0.05
G00 X0.0000 Y-2.5000
G33.1 Z-0.95 K0.05

G00 G53 Z0.0000
G57

G00 X0.0000 Y0.0000
G00 Z1.5000
G00 X1.1880 Y-0.2500
G33.1 Z-1.0 K0.05
G00 X-1.1880 Y-0.2500
G33.1 Z-1.0 K0.05
M5 M9
G00 G53 Z0.0000

T0 M6 G49
M02
подпрограмма заключается между o100 sub и o100 endsub
вызывается : o100 call [ 1.1880] [-0.9380] [0.25] [0.55] [0.4375] [0.25]
в скобках - передаваемые параметры...
это все справедливо для емс
http://www.linuxcnc.org/docs/2.5/html/gcode/o-code.html
Alexanders
Кандидат
Сообщения: 82
Зарегистрирован: 10 окт 2013, 23:41
Репутация: 14
Контактная информация:

Re: Макросы автоподстановки

Сообщение Alexanders »

UAVpilot писал(а):
Alexanders писал(а):G53 G00 X-100 Z-200 (отход в зону смены инструмента в станочных координатах)
При таком отходе как правило ломается фреза и/или деталь. Нужно сначала подняться в Z0, а уж потом ехать куда-то.
Да и ехать привильнее командой G28 - она ровно для этого и придумана.
Безусловно, сначала отвод инструмента в безопасную позицию. А вот смену инструмента при серийном производстве выгоднее производить ближе к детали.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Макросы автоподстановки

Сообщение Serg »

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

P.S. в серийном производстве как правило смена автоматическая и магазин чаще имеет фиксированную позицию.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Alexanders
Кандидат
Сообщения: 82
Зарегистрирован: 10 окт 2013, 23:41
Репутация: 14
Контактная информация:

Re: Макросы автоподстановки

Сообщение Alexanders »

UAVpilot, Вы меня неправильно поняли. Вопрос был общим по организации частоповторяющихся групп кода. А конкретный пример был по токарке....
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6599
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Макросы автоподстановки

Сообщение NightV »

в Окуме (токарка) часто использую такой финт
пример проги где проходит черновая и сразу чистовая обработка (траектория от фанаря)

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

G0 X800 Z500
X15 Z3 T030303 S1500

NLAP1 G81
X35
G01 Z0.15 F0.25
X30.3 Z-5 
Z-20 Z-15
X18.5 Z-42
X14 Z-45
G80

G85 NLAP1 D2 U0.2 W0.1 F0.15
G87 NLAP1

G00 Z10
X800 Z500
тоесть траектория пишется один раз, НО вызывать ее могу по разному

как черновую (с отступами для чистовой)
G85 NLAP1 D2 U0.2 W0.1 F0.15
D2 - сколько снимать за проход (по Х)
U0.2 - одступ от траектории по Х
W0.1 - одступ от траектории по Z
F0.15 - подача для черновой

как чистовую
G87 NLAP1
идет точно по траектории с подачей F0.25 как указано в самой траектории

иногда вызываю по 3 раза
черновая
чистовая
режем резьбу
чистовая
режем резьбу побыстрому (чисто причесать, за два прохода)

это конечно не макрос, но удобно держать только одну траекторию и не править ее в двух местах
Всё просто! если знаешь КАК!
Alexanders
Кандидат
Сообщения: 82
Зарегистрирован: 10 окт 2013, 23:41
Репутация: 14
Контактная информация:

Re: Макросы автоподстановки

Сообщение Alexanders »

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

Re: Макросы автоподстановки

Сообщение Nick »

Надо его маны читать, у всех это по разному...
Alexanders
Кандидат
Сообщения: 82
Зарегистрирован: 10 окт 2013, 23:41
Репутация: 14
Контактная информация:

Re: Макросы автоподстановки

Сообщение Alexanders »

NightV писал(а):в Окуме (токарка) часто использую такой финт
пример проги где проходит черновая и сразу чистовая обработка (траектория от фанаря)

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

G0 X800 Z500
X15 Z3 T030303 S1500

NLAP1 G81
X35
G01 Z0.15 F0.25
X30.3 Z-5 
Z-20 Z-15
X18.5 Z-42
X14 Z-45
G80

G85 NLAP1 D2 U0.2 W0.1 F0.15
G87 NLAP1

G00 Z10
X800 Z500
тоесть траектория пишется один раз, НО вызывать ее могу по разному

как черновую (с отступами для чистовой)
G85 NLAP1 D2 U0.2 W0.1 F0.15
D2 - сколько снимать за проход (по Х)
U0.2 - одступ от траектории по Х
W0.1 - одступ от траектории по Z
F0.15 - подача для черновой

как чистовую
G87 NLAP1
идет точно по траектории с подачей F0.25 как указано в самой траектории

иногда вызываю по 3 раза
черновая
чистовая
режем резьбу
чистовая
режем резьбу побыстрому (чисто причесать, за два прохода)

это конечно не макрос, но удобно держать только одну траекторию и не править ее в двух местах
Только сейчас повнимательнее вчитался в текст и понял, что это циклы, для которых описывается конечная поверхность. А в цикл вместо диапазона адресов передается условная метка.
Это не совсем то. Точнее совсем не то :). Кстати, насколько оптимально стойка просчитывает траектории для разных типов обработки?
В HAAS есть такое, только там указывается диапазон адресов. Ни разу не пробовал.
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6599
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Макросы автоподстановки

Сообщение NightV »

Alexanders писал(а):Кстати, насколько оптимально стойка просчитывает траектории для разных типов обработки
настолько оптимально что просто тащюсь!!! столько интелекта для станка 86 года не ожидал
например черновая обработка по такой траектории
7890.png
7890.png (4.71 КБ) 4163 просмотра
сначала проходит естеественно зеленую зону
но потом САМ разбивает на зоны, обрабатывает до конца (никуда не отпрыгивая) красную,потом синюю и в конце серую, оптимальней даже ручками не напишеш ;)
Всё просто! если знаешь КАК!
Ответить

Вернуться в «Windows / Mach»