NX10 Postbuilder - Hole milling

NX CAM/Unigraphics

Autor tematu
jareix
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 4
Posty: 7
Rejestracja: 23 lut 2011, 12:41
Lokalizacja: Warszawa

NX10 Postbuilder - Hole milling

#1

Post napisał: jareix » 06 sty 2017, 13:53

Witam,

podstawowe informacje o problemie:

NX 10
Operacja - Hole Milling
Maszyna - HERMLE C400 (5axis table-table)
Sterownik - HEIDENHAIN iTNC 530 HSCI

kolejny problem z postprocesorem który zakupiła firma w której pracuję dał o sobie znać dosyć boleśnie. Z mojego niedopatrzenia w trakcie frezowania otworu przelotowego operacją Hole milling narzędzie zakaleczyło stół obrotowy w maszynie... Szczęście w nieszczęściu było takie, że średnica otworu pokryła się z średnicą otworu centrującego w stole nie uszkadzając jego pasowanego wymiaru, a jedynie kalecząc dno. Oczywiście nakrętka + tulejka oprawki ER32 i narzędzie na złom. Po wnikliwym sprawdzeni programu w NX CAM wyszło, że jest poprawny - bezkolizyjny. Gdy w CIMCO odpaliłem G-kod zobaczyłem, że ścieżki po spirali ułożyły się poziomami. Poniżej zamieszczam print screen z przykładowego detalu, w którym jest identyczny problem.
Obrazek

Po przegenerowaniu przez postprocesor ścieżka w CIMCO wygląda jak poniżej. Podzieliła się na dwa poziomy, z których drugi frezował podkład aluminiowy a następnie stół.
Obrazek

Do tej pory stworzyłem kilka pomyślnie działających postów na maszyny 3axis. Od kilku miesięcy odbudowuję postprocesor 5osi na podstawie postprocesora sim08_mill_5ax dodanego do NX. Pominę już fakt, że ten który zakupiła firma za kilkanaście tys PLN bazuje w 100% na sim08_mill_5ax a wprowadzono jedynie kilka zmian. Przesiedziałm już nad tą kwestą kilkanaście godzin, ale efekt nadal mizerny. Poniżej zamieszczam zdjęcie z składni ruchu helikalnego z mojego posta.

Obrazek

Problem polega na tym, że narzędzie po dejechaniu do końca pierwszej helisy nie powraca na w osi Z do płaszczyzny bezpiecznej, aby ponownie zacząć obróbkę od górnej płaszczyzny otworu, ale traktuje koniec I helisy jako początek II. Moim zdaniem brakuje wymuszenia wyjazdu do płaszczyzny bezpiecznej. Dziwna sprawa, którą wyhaczyłem - w G-code brakuje wiersza nr 120, w pliku *review.out (Review Tool) podobnie, brakuje wartości do wyjazdu w osi Z do płaszczyzny bezpiecznej.

Obrazek

Po przegenerowaniu omawianej operacji przez post na Fanuc 3axis wszystko działa poprawnie. Porównywałem pliki z narzędzia Review Tool ale moja biegłość w zmiennych z NX jak również programowaniu w TCL jeszcze kuleje. Zamieszczę plik z Review Tool oraz G-code, może znawcy tematu coś znajdą. Dzięki za wszelką pomoc i wskazówki!
Załączniki
Hole_milling_v4_forum.rar
(38.56 KiB) Pobrany 158 razy



Tagi:


piotrmax
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 1
Posty: 49
Rejestracja: 15 maja 2012, 15:33
Lokalizacja: Mazowieckie

#2

Post napisał: piotrmax » 06 sty 2017, 19:31

Witaj,

Pozdrawiam
Ostatnio zmieniony 06 sty 2017, 19:57 przez piotrmax, łącznie zmieniany 1 raz.

Awatar użytkownika

nxcam
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 1
Posty: 734
Rejestracja: 04 maja 2009, 17:54
Lokalizacja: Tuszyma
Kontakt:

#3

Post napisał: nxcam » 06 sty 2017, 19:49

Wygenerowałem, na podstawie danych do operacji jakie podałeś, swój plik NC z NX CAM na używanym postprocesorze Heidenhain

- kluczową sprawą jest tu chyba wyjazdu w postprocesorze jakiego używasz w bloku 42 (sama spirala jest tutaj "zapętlona")
- na standardowym szablonie chyba nie jest przewidziane robienie kliku spiral z jednej operacji, stąd brak wyjazdu

Obrazek


Autor tematu
jareix
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 4
Posty: 7
Rejestracja: 23 lut 2011, 12:41
Lokalizacja: Warszawa

#4

Post napisał: jareix » 07 sty 2017, 11:52

nxcam za odpowiedź!

Jakiś pomysł jak to poprawić? Rozumiem, że problem leży w składni procedury PB_CMD_init_helix i rozwiązaniem jest dopisanie wymuszenia wyjazdu do poziomu bezpiecznego po zakończeniu pierwszej helisy? Jeśli tak, w miarę możliwości proszę o udostępnienie składni do dopisania. Próbowałem znaleźć rozwiązanie w postach zamieszczonych w GTAC, ale wszystkie dostępne na sterowanie HH iTNC 530 generują helisę interpolowaną liniowo, a nie kołowo jaką chcę uzyskać. Próbowałem również zaimportować procedurę set_helix_move zastępując pb_cmd_helix, ale wyrzuca mi błąd w trakcie generowania G_kodu i jak dotąd nie ogarnąłem gdzie leży przyczyna. Any ideas?


FTW
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 2
Posty: 710
Rejestracja: 16 gru 2016, 10:44
Lokalizacja: śląsk

#5

Post napisał: FTW » 07 sty 2017, 17:44

W defaultowym poście sim08_iTNC jest takie coś w tym bloku jak poniżej. Co prawda z wersji 8.0, ale wygląda jakby ktoś wywalił połowę tego bloku.

W przykładowym programie jest taka składnia w momencie kończenia pierwszej helisy. W linii 115 jest wyjazd na retract plane i potem zaczyna się znowu druga.

105 L X-971.203 Y-989.404 Z547.523
106 L X-971.588 Y-989.775 Z547.419
107 L X-971.549 Y-990.308 Z547.314
108 L X-971.114 Y-990.62 Z547.209
109 L X-970.597 Y-990.484 Z547.105
110 L X-970.4 Y-990. Z547.
111 CC X-971. Y-990.
112 C X-970.4 Y-990. DR+
113 CC X-970.7 Y-990.
114 C X-971. Y-990. DR+
115 L Z556. FMAX
116 CC X-969.7 Y-990.
117 C X-968.4 Y-990. DR+
118 L X-968.605 Y-988.913 Z555.949
119 L X-969.268 Y-988.021 Z555.898
120 L X-970.241 Y-987.482 Z555.847
121 L X-971.349 Y-987.393 Z555.797
122 L X-972.395 Y-987.77 Z555.746

set mom_kin_helical_arc_output_mode LINEAR - zamień na QUADRANT i kod zmienia postać.

Nie jestem w stanie powiedzieć na ile to będzie działać, bo nigdy nie robiłem nic pod Heidenheina, trzeba by to dobrze przetestować zanim cokolwiek puścisz na maszynie.

170 CC X10. Y10.
171 CP IPA90. IZ-.25 DR+
172 CC X10. Y10.
173 CP IPA90. IZ-.25 DR+
174 CC X10. Y10.
175 CP IPA90. IZ-.25 DR+
176 CC X10. Y10.
177 C X12.1 Y10. DR+
178 CC X11.05 Y10.
179 C X10. Y10. DR+
180 L Z10. FMAX
182 L Z-3. FMAX
183 CC X10.25 Y10.
184 C X10.5 Y10. DR+
185 CC X10. Y10.
186 CP IPA90. IZ-.25 DR+
187 CC X10. Y10.
188 CP IPA90. IZ-.25 DR+
189 CC X10. Y10.
190 CP IPA90. IZ-.25 DR+
191 CC X10. Y10.
192 CP IPA90. IZ-.25 DR+
193 CC X10. Y10.


uplevel #0 {
#
# This ommand will be executed automatically at the start of program and
# anytime it is loaded as a slave post of a linked post.
#
# This procedure can be used to enable your post to output helix.
# You can choose from the following options to format the circle
# block template to output the helix parameters.
#

set mom_sys_helix_pitch_type "rise_revolution"

#
# The default setting for mom_sys_helix_pitch_type is "rise_radian".
# This is the most common. Other choices are:
#
# "rise_radian" Measures the rise over one radian.
# "rise_revolution" Measures the rise over 360 degrees.
# "none" Will suppress the output of pitch.
# "other" Allows you to calculate the pitch
# using your own formula.
#
# This custom command uses the block template circular_move to output
# the helix block. If your post uses a block template with a different
# name, you must edit the line that outputs the helix block.

#
# The following variable deines the output mode for helical records.
#
# FULL_CIRCLE -- This mode will output a helix record for each 360
# degrees of the helix.
# QUADRANT -- This mode will output a helix record for each 90
# degrees of the helix.
# LINEAR -- This mode will output the entire helix as linear gotos.
# END_POINT -- This mode will assume the control can define an entire
# helix in a single block.

#set mom_kin_helical_arc_output_mode END_POINT
set mom_kin_helical_arc_output_mode LINEAR

MOM_reload_kinematics



#=============================================================
proc MOM_helix_move { } {
#=============================================================
global mom_pos_arc_plane
global mom_sys_cir_vector
global mom_sys_helix_pitch_type
global mom_helix_pitch
global mom_prev_pos mom_pos_arc_center
global PI

switch $mom_sys_helix_pitch_type {
none { }
rise_revolution { set pitch $mom_helix_pitch }
rise_radian { set pitch [expr $mom_helix_pitch / ($PI * 2.0)]}
other {
#
# Place your custom helix pitch code here
#
}
default { set mom_sys_helix_pitch_type "none" }
}

global mom_pos
global helix_angle
global helix_height
global mom_helix_direction

switch $mom_pos_arc_plane {
XY { MOM_force Once I J; MOM_suppress Once K; set cir_index 2 }
YZ { MOM_force Once J K; MOM_suppress Once I; set cir_index 0 }
ZX { MOM_force Once K I; MOM_suppress Once J; set cir_index 1 }
}

set helix_height [expr $mom_pos($cir_index) - $mom_prev_pos($cir_index)]

switch $mom_helix_direction {
CLW { set helix_direction -1 }
CCLW {set helix_direction 1}
}

set helix_angle [expr 360*$helix_direction*$helix_height/$mom_helix_pitch]

# You may need to edit this line if you output more than one block
# or if you have changed the name of your circular_move block template
#
MOM_do_template coolant_on
MOM_do_template circular_move
MOM_force Once circle_direction
MOM_do_template helix_move


} ;# MOM_helix_move


} ;# uplevel


Autor tematu
jareix
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 4
Posty: 7
Rejestracja: 23 lut 2011, 12:41
Lokalizacja: Warszawa

#6

Post napisał: jareix » 08 sty 2017, 10:25

Skopiowałem to co zamieściłeś, sprawdziłem i jak się okazuje gdzieś przedobrzyłem ponieważ przy generowaniu wyrzuca mi błąd:

Obrazek


w pliku TCL wygląda to tak:

Obrazek

Ogarnę jeszcze plik pui do sim08 z wersji NX8.0 i w nim poszperam. Niemniej jednak "FTW" dzięki za odpowiedź!


FTW
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 2
Posty: 710
Rejestracja: 16 gru 2016, 10:44
Lokalizacja: śląsk

#7

Post napisał: FTW » 08 sty 2017, 11:59

Wywal znak "}" w linii 5301 i powinno działać. U mnie dodanie tego znaku w tej linii powoduje wystąpienie tego błędu.


Autor tematu
jareix
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 4
Posty: 7
Rejestracja: 23 lut 2011, 12:41
Lokalizacja: Warszawa

#8

Post napisał: jareix » 08 sty 2017, 14:03

Usunąłem nawias "}" w linii 5301 z poziomu pliku tcl, ale błąd nadal występuje, tym razem linijkę wcześniej w 5300.
Obrazek
Nawias o którym wspomniałeś jest dodawany z automatu przez postbuilder (czerwona strzałka na dole zdjęcia), więc na dłuższą metę przy dalszej rozbudowie posta, każdy "save" wiązałby się z ręcznym usuwaniem omawianego nawiasu, o ile ten trick usunąłby pojawianie się błędu. Próbowałem również z nawiasami przy MOM helix_move oraz uplevel, ale krzaczyło nadal. Szukam dalej...
Obrazek


mateu5
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 1
Posty: 618
Rejestracja: 31 paź 2009, 16:20
Lokalizacja: PL

#9

Post napisał: mateu5 » 08 sty 2017, 15:20

Zobacz w wiadomości PW.
Mazak -> Fanuc -> Acramatic -> Sinumeric -> Heidenhain -> Mitsubishi meldas -> EdgeCAM -> NX CAM -> Postprocesory.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „NX CAM/Unigraphics”