Edycja Postprocesora
: 10 lis 2012, 22:11
Witam mam problem z edycją postprocesora. Chciałem dodać aby po wymianie narzędzia postprocesor wpisał do programu nazwę następnego narzędzia dzięki temu kolejne narzędzie które będzie używane uszykuje się do wymiany.
Sterowanie Sinumerik 810D.
Co prawda udało mi się to ale czy potrzebne jest tyle linijek kodu ?? i tyle zmiennych?
----------------------------------
Plik:
Sinumerik_810D_3x.gpp
----------------------------------
----------------------------------
----------------------------------
do zmiennych typu string oraz numeric zapisuję nazwy użytych narzędzi oraz ich średnicę
----------------------------------
----------------------------------
Efekt jest taki jak niżej:
PRZED EDYCJĄ:
PO ZMIANIE:
Moje pytanie brzmi czy istnieje jakaś zmienna która określała by nazwę "Następnego narzędzia" coś jak tool_user_type która wprowadza nazwę aktualnego ??
Sterowanie Sinumerik 810D.
Co prawda udało mi się to ale czy potrzebne jest tyle linijek kodu ?? i tyle zmiennych?
----------------------------------
Plik:
Sinumerik_810D_3x.gpp
----------------------------------
Kod: Zaznacz cały
@init_post
global string tool_diameter_f r_file_name tool_1 tool_2 tool_3 tool_4 tool_5 tool_6 tool_7 tool_8 tool_9 tool_10 tool_11 tool_12 tool_13 tool_14 tool_15 tool_16 tool_17 tool_18 tool_19 tool_20
global integer save_proc
global logical m_feed_flag first_rapid_move main rot_flag loop_flag cooling_flag
global numeric save_feed save_spin moov_x moov_y moov_z winkel tool_1r tool_2r tool_3r tool_4r tool_5r tool_6r tool_7r tool_8r tool_9r tool_10r tool_11r tool_12r tool_13r tool_14r tool_15r tool_16r tool_17r tool_18r tool_19r tool_20r
Kod: Zaznacz cały
@end_program
{nb,'T="'tool_1,'_',tool_1r,'"'} ;wrzucenie 1 narzędzia na koniec programu
{nb,'M6 ;wymiana narzędzia'} ;wymiana narzędzia
if tylko_kod eq true
{nb, 'M17 ;Koniec Podprogramu'}
{nb, ''}
else
{nb, 'M30 ;Koniec Programu'}
{nb, ''}
endif
Kod: Zaznacz cały
@def_tool
if tylko_kod ne true
if tool_number eq 1
tool_1 = upper(tool_user_type)
tool_1r = (tool_offset*2)
endif
if tool_number eq 2
tool_2 = upper(tool_user_type)
tool_2r = (tool_offset*2)
endif
if tool_number eq 3
tool_3 = upper(tool_user_type)
tool_3r = (tool_offset*2)
endif
if tool_number eq 4
tool_4 = upper(tool_user_type)
tool_4r = (tool_offset*2)
endif
if tool_number eq 5
tool_5 = upper(tool_user_type)
tool_5r = (tool_offset*2)
endif
if tool_number eq 6
tool_6 = upper(tool_user_type)
tool_6r = (tool_offset*2)
endif
if tool_number eq 7
tool_7 = upper(tool_user_type)
tool_7r = (tool_offset*2)
endif
if tool_number eq 8
tool_8 = upper(tool_user_type)
tool_8r = (tool_offset*2)
endif
if tool_number eq 9
tool_9 = upper(tool_user_type)
tool_9r = (tool_offset*2)
endif
if tool_number eq 10
tool_10 = upper(tool_user_type)
tool_10r = (tool_offset*2)
endif
if tool_number eq 11
tool_11 = upper(tool_user_type)
tool_11r = (tool_offset*2)
endif
if tool_number eq 12
tool_12 = upper(tool_user_type)
tool_12r = (tool_offset*2)
endif
if tool_number eq 13
tool_13 = upper(tool_user_type)
tool_13r = (tool_offset*2)
endif
if tool_number eq 14
tool_14 = upper(tool_user_type)
tool_14r = (tool_offset*2)
endif
if tool_number eq 15
tool_15 = upper(tool_user_type)
tool_15r = (tool_offset*2)
endif
if tool_number eq 16
tool_16 = upper(tool_user_type)
tool_16r = (tool_offset*2)
endif
if tool_number eq 17
tool_17 = upper(tool_user_type)
tool_17r = (tool_offset*2)
endif
if tool_number eq 18
tool_18 = upper(tool_user_type)
tool_18r = (tool_offset*2)
endif
if tool_number eq 19
tool_19 = upper(tool_user_type)
tool_19r = (tool_offset*2)
endif
if tool_number eq 20
tool_20 = upper(tool_user_type)
tool_20r = (tool_offset*2)
endif
{nb, '; - T',tool_number' '}
if tool_message eq ''
{upper(tool_user_type), '_' (tool_offset*2)}
if corner_radius ne 0
{'_R'corner_radius}
endif
else
{upper(tool_message)}
endif
endif
endp
----------------------------------
Kod: Zaznacz cały
@change_tool
if tylko_kod ne true
if !first_tool
{nb,'M9'}
cooling_flag = false
{nb,'G0 Z',tool_z_level}
endif
if tool_message ne ''
{nb,'T="'upper(tool_message)'"'}
else
{nb,'T="',upper(tool_user_type), '_'tool_diameter:integer_def_f,'"'}
endif
{nb,'M6'}
if next_tool_number eq 2 ;jeśli następne narzędzie jest drugim z kolei
{nb,'T="'tool_2,'_',tool_2r,'"'} ;to wprowadź jego nazwę i średnicę
endif
if next_tool_number eq 3
{nb,'T="'tool_3,'_',tool_3r,'"'}
endif
if next_tool_number eq 4
{nb,'T="'tool_4,'_',tool_4r,'"'}
endif
if next_tool_number eq 5
{nb,'T="'tool_5,'_',tool_5r,'"'}
endif
if next_tool_number eq 6
{nb,'T="'tool_6,'_',tool_6r,'"'}
endif
if next_tool_number eq 7
{nb,'T="'tool_7,'_',tool_7r,'"'}
endif
if next_tool_number eq 8
{nb,'T="'tool_8,'_',tool_8r,'"'}
endif
if next_tool_number eq 9
{nb,'T="'tool_9,'_',tool_9r,'"'}
endif
if next_tool_number eq 10
{nb,'T="'tool_10,'_',tool_10r,'"'}
endif
if next_tool_number eq 11
{nb,'T="'tool_11,'_',tool_11r,'"'}
endif
if next_tool_number eq 12
{nb,'T="'tool_12,'_',tool_12r,'"'}
endif
if next_tool_number eq 13
{nb,'T="'tool_13,'_',tool_13r,'"'}
endif
if next_tool_number eq 14
{nb,'T="'tool_14,'_',tool_14r,'"'}
endif
if next_tool_number eq 15
{nb,'T="'tool_15,'_',tool_15r,'"'}
endif
if next_tool_number eq 16
{nb,'T="'tool_16,'_',tool_16r,'"'}
endif
if next_tool_number eq 17
{nb,'T="'tool_17,'_',tool_17r,'"'}
endif
if next_tool_number eq 18
{nb,'T="'tool_18,'_',tool_18r,'"'}
endif
if next_tool_number eq 19
{nb,'T="'tool_19,'_',tool_19r,'"'}
endif
if next_tool_number eq 20
{nb,'T="'tool_20,'_',tool_20r,'"'}
endif
if last_tool eq true
{nb,'T="'tool_1,'_',tool_1r,'"'}
endif
save_spin = 0
if first_tool then
{nb,'G0 Z',znext}
endif
endif
endp
Efekt jest taki jak niżej:
PRZED EDYCJĄ:
Kod: Zaznacz cały
T="GLOWICA_50"
M6
...
...
...
T="WIERTŁO_6.8"
M6
...
...
...
T="GWINTOWNIK_8"
M6
...
...
...
M30
PO ZMIANIE:
Kod: Zaznacz cały
T="GLOWICA_50"
M6
T="WIERTŁO_6.8"
...
...
...
T="WIERTŁO_6.8"
M6
T="GWINTOWNIK_8"
...
...
...
T="GWINTOWNIK_8"
M6
T="GLOWICA_50"
...
...
...
T="GLOWICA_50"
M6
M30
Moje pytanie brzmi czy istnieje jakaś zmienna która określała by nazwę "Następnego narzędzia" coś jak tool_user_type która wprowadza nazwę aktualnego ??