346 вопросов

351 ответов

2,308 пользователей

Добро пожаловать на сайт Вопросы и Ответы, где вы можете задавать вопросы и получать ответы от других членов сообщества. С 03/01/2018 вопросы могут задавать только владельцы учебных аккаунтов LAUFER CNC LLC. Зарегистрироваться можно по этой ссылке: https://cnc.uno/reg

Пост процессор

0 голосов
Антон добрый день! Вчера на занятии вы продемонстривровали как применить макро в пост процессоре и показали как работает оператор IF THEN, а как работает IF GOTO? Как добавить  в УП нужный кадр с нужным номером в нужное место? Я, так понимаю, нужно новый кадр писать? Если да, то в каком месте?
спросил 28 Окт, 15 от Андрей Огурцов (540 баллов) в категории Пост-процессоры для CAM|CAE систем
категория изменена 29 Окт, 15 от Anton Laufer
Антон! Ну что скажите?

1 Ответ

0 голосов
 
Лучший ответ

Добрый день. (Был очень занят). 

На занятии мы работали в блоке:

Private Sub FirstPositionAfterToolChange(ByVal e As FirstPositionAfterToolChangeEventArgs) Implements IMachineDefinition_2_1.FirstPositionAfterToolChange

 
NcCode.LineNumber("N")
NcCode.NewString("IF [#100 EQ " & e.ToolNumber & "] THEN M30")
NcCode.NewLine()
 
  End Sub
-------------------------------------------------------------------------------------------------

Так как при использовании оператора GOTO в макро-программировании, запрещено употреблять переменные, то остается только один вариант.

В том же блоке изменить THEN на GOTO, и делать переход к постоянному кадру, то есть конкретному, при необходимости:

NcCode.LineNumber("N")
NcCode.NewString("IF [#100 EQ " & e.ToolNumber & "] GOTO 1000")
NcCode.NewLine()
 
В каком то блоке, например после основной обработки  ProgramEnd, мы дописываем физически адрес нашего кадра, куда мы будем переходить:
 
  Private Sub ProgramEnd(ByVal e As ProgramEndEventArgs) Implements IMachineDefinition_2_1.ProgramEnd
 
NcCode.LineNumber("N")   ---------- ЭТУ СТРОКУ Я УДАЛЯЮ, так как она напишет переменный номер строки, по порядку, а мне нужно конкретно 1000, чтобы произошел переход на неё:
 
NcCode.NewString("N1000 G91 G28 Z0. X0. Y0.")  --- А НОВУЮ СТРОКУ Я НАЧИНАЮ С НОМЕРА N1000, как переменной текста - STRING, т.к. мне нужно, чтобы данная строка была в наличии, и именно на этом месте.
NcCode.NewLine()
....................
Дописуйте что вы хотите выполнить в данном блоке N1000, в случае перехода с условия:
----------------

End Sub

Спасибо за Вопрос!

ответил 29 Окт, 15 от Anton Laufer (16,780 баллов)
выбран 01 Ноя, 15 от Андрей Огурцов
перенес в категорию пост-процессоры.
Пост процессоры
...