Добрый день. (Был очень занят).
На занятии мы работали в блоке:
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
Спасибо за Вопрос!