Strona 1 z 1
Edycja postprocesorów
: 09 lut 2017, 09:09
autor: kaspian91
Witam
Moja firma jest fazie wdrażania postprocesorów dla Heidenhain oraz Fanuc w wersji NX 10 od firmy Camdivision. Problem polega na tym że postprocesor generuj kod z niepożądanymi kropkami typu X+80. X-80. F250. Kolejna sprawa to gdy liczba nie jest całością to wychodzi X-.5 zamiast X-0.5. Pan twierdzi że tak ma być. Jeśli ktoś wie w których miejscach można to z edytować to proszę o zdjęcia.
: 09 lut 2017, 17:40
autor: davish88
A zapytałeś dlaczego tak ma być?
: 09 lut 2017, 20:34
autor: mateu5
Czy twoja maszyna nie przyjmuje takiego zapisu ? Czy chcesz to zmienić ze względów wizualnych ?
Żeby to zmienić trzeba dopisać odpowiednią procedurę która już w kodzie wyjściowym będzie usuwać kropki, czy też wstawiać zera. Robiłem to jakiś czas temu na HH426 który właśnie nie chciał czytać takiego zapisu "X-.3".
: 10 lut 2017, 09:06
autor: kaspian91
davish88 pisze:A zapytałeś dlaczego tak ma być?
Nie da się i koniec.
[ Dodano: 2017-02-10, 09:08 ]
mateu5 pisze:Czy twoja maszyna nie przyjmuje takiego zapisu ? Czy chcesz to zmienić ze względów wizualnych ?
Żeby to zmienić trzeba dopisać odpowiednią procedurę która już w kodzie wyjściowym będzie usuwać kropki, czy też wstawiać zera. Robiłem to jakiś czas temu na HH426 który właśnie nie chciał czytać takiego zapisu "X-.3".
A zrobił byś jakieś zdjęcia poglądowe w których miejscach i jak ta procedura wygłąda??
: 10 lut 2017, 13:08
autor: pragmatic_player
Wrzuć procedurę ... bo też mam wątpliwości.
Przerzucanie każdej wartości przez procedure na pewno spowolni generowanie kodu.
: 10 lut 2017, 13:17
autor: rc666
kaspian91
Przedewszystkim zapis bez kropki wyraza zupelnie inna wartos niz z kropka. Pamietaj o tym!!!
Dla sprawdzenia zrob prosty program I wprowadz posow z kropka na koncu I bez kropki na koncu. Zobaczysz roznice.
: 10 lut 2017, 13:21
autor: pragmatic_player
Nie zawsze...
Niektóre maszyny nie muszą mieć kropki. Zależy od ustawień sterownika.
Zazwyczaj jest tak, że bez kropki traktuje jako "mikrony" ale nie zawsze tak jest.
Wydaje mi się, że kolega kaspian91 chce nacieszyć oko bo generalnie ten zapis jest prawidłowy, popularny i jeśli przyjdzie nowy operator, który pracował na maszynie gdzie są kropki (bo musiały być) to nie będzie się dziwił ...
Ale o gustach się nie dyskutuje

: 10 lut 2017, 14:42
autor: kaspian91
pragmatic_player pisze:Nie zawsze...
Niektóre maszyny nie muszą mieć kropki. Zależy od ustawień sterownika.
Zazwyczaj jest tak, że bez kropki traktuje jako "mikrony" ale nie zawsze tak jest.
Wydaje mi się, że kolega kaspian91 chce nacieszyć oko bo generalnie ten zapis jest prawidłowy, popularny i jeśli przyjdzie nowy operator, który pracował na maszynie gdzie są kropki (bo musiały być) to nie będzie się dziwił ...
Ale o gustach się nie dyskutuje

Dla maszyn i sterowań DMC635V eco – 3 osie; Fanuc 0iMC oraz DMC1035 eco – 3 osie; Heidenhain TNC620 kropki są niepotrzebne a współrzędne są traktowane jako milimetry. Taki zapis stosujemy z myślą o pracujących pracownikach nie o nowych.
Wiadomo że jest to kwestia przyzwyczajenia i taki problem to nie problem.
Ale nie odbiegając od tematu to prosił bym o konkretne informacje jeśli ktoś takie posiada.
: 10 lut 2017, 21:13
autor: mateu5
Wspomniana wcześniej procedura to PB_CMD_before_output, należy dodać do niej kilka wpisów.
global mom_o_buffer
global mom_sys_leader
global mom_sys_control_out mom_sys_control_in
set buff $mom_o_buffer
# Remove trailing in-line comment
set i_at [string first "$mom_sys_control_out" $buff]
if { $i_at > -1 } {
#set buff [string trimright [string range $buff 0 [expr $i_at - 1]]]
}
# Process to avoid output of block buffer without any useful address
regsub -all {[0-9]+} $buff "" buff
regsub -all {L} $buff "" buff
regsub -all {F} $buff "" buff
regsub -all {MAX} $buff "" buff
regsub -all { } $buff "" buff
regsub -all {\. } $mom_o_buffer { } mom_o_buffer
regsub -all {\.0 } $mom_o_buffer { } mom_o_buffer
regsub -all {\.000 } $mom_o_buffer { } mom_o_buffer
regsub -all {X\.} $mom_o_buffer {X0.} mom_o_buffer
regsub -all {Y\.} $mom_o_buffer {Y0.} mom_o_buffer
regsub -all {Z\.} $mom_o_buffer {Z0.} mom_o_buffer
regsub -all {R\.} $mom_o_buffer {R0.} mom_o_buffer
regsub -all {X-\.} $mom_o_buffer {X-0.} mom_o_buffer
regsub -all {Y-\.} $mom_o_buffer {Y-0.} mom_o_buffer
regsub -all {Z-\.} $mom_o_buffer {Z-0.} mom_o_buffer
regsub -all {R-\.} $mom_o_buffer {R-0.} mom_o_buffer
regsub -all { \.} $mom_o_buffer { 0.} mom_o_buffer
regsub -all { \-\.} $mom_o_buffer { -0.} mom_o_buffer
regsub -all {end} $mom_o_buffer {} mom_o_buffer
set buff [join $buff ""]
set l [string length $buff]
if { $l == 0 } {
set mom_o_buffer ""
}
: 13 lut 2017, 14:52
autor: kaspian91
mateu5 pisze:Wspomniana wcześniej procedura to PB_CMD_before_output, należy dodać do niej kilka wpisów.
Dzięki sprawdzę to.
Jest jeszcze druga sprawa. Moja firma wdraża również postprocesor dla Sinumeric 810D oraz 840D. Dotychczas korzystaliśmy z modułu ShopMill dla operatora oraz z licencjonowanego symulatora SinuTrain. Jednak jest to zbyt czasochłonne przy skomplikowanych detalach.
Miałbym prośbę aby ktoś ocenił poprawność formuły oraz doradził ewentualne poprawki.
Dodam że maszyny są 5-osiowe, ze indeksowanymi skrętami.