Перейти к публикации

Поиск переменных параметра инструмента и вывода процедуры


ArtemGerasimov

Рекомендованные сообщения

Всем доброго времени суток. Ищу помощи по ряду вопросов. Буду благодарен если кто подскажет.

1) Есть необходимость написания процедуры c проверкой по выводу в УП пользовательского текста в событии Auto Tool Change, но главный нюанс заключается в том, что вывод должен произойти только когда инструмент вызывается ПЕРВЫЙ РАЗ. Если этот же инструмент будет вызываться повторно 2 и более раз во всей программе- строки больше не выводятся. Это правило должно работать для всех инструментов (screen1). Вызов инструмента происходит по имени

2) Ищу mom переменные хвостовика осевых инструментов- диаметр и длину, поискал в браузере от постбилдера по shank но там не то что нужно (screen2)

3) Ищу mom переменную поля описания инструмента (если таковая есть) (screen3)

Screenshot_1.jpg

Screenshot_2.jpg

Screenshot_3.jpg

Ссылка на сообщение
Поделиться на других сайтах


11 час назад, ArtemGerasimov сказал:

1) Есть необходимость написания процедуры c проверкой по выводу в УП пользовательского текста в событии Auto Tool Change, но главный нюанс заключается в том, что вывод должен произойти только когда инструмент вызывается ПЕРВЫЙ РАЗ. Если этот же инструмент будет вызываться повторно 2 и более раз во всей программе- строки больше не выводятся. Это правило должно работать для всех инструментов (screen1). Вызов инструмента происходит по имени

Дык делайте массив с занесением туда имён уже вызванных инструментов, сравнивайте имя текущего с элементами массива и либо выводите, либо нет. Это же не сложно.

Ссылка на сообщение
Поделиться на других сайтах
23 часа назад, grOOmi сказал:

Дык делайте массив с занесением туда имён уже вызванных инструментов, сравнивайте имя текущего с элементами массива и либо выводите, либо нет. Это же не сложно.

К сожалению мой уровень познания tcl поверхностный, пишу простенькие процедуры с set, if, else. Логика с массивом понятна более чем, а вот с массивами не работал. Если не затруднит могли бы Вы накидать клочок кода как это должно выглядеть (занесение переменной в массив/ проверка на наличие занесенной переменной во всем массиве)?

Ссылка на сообщение
Поделиться на других сайтах

@ArtemGerasimov Накидал пример с массивом, очень простой и топорный, надеюсь нигде не ошибся. С каким-нибудь list было бы интереснее.

 

#где-то инициализируем массив, обьявив массив TOOLS_BUFFER и счетчик элементов TOOLS_BUFFER_COUNT
global TOOLS_BUFFER TOOLS_BUFFER_COUNT
set TOOLS_BUFFER_COUNT 0


#проверка на наличие такого элемента в массиве
global flag
set flag "FALSE"
for { set i 0 } { $i < $TOOLS_BUFFER_COUNT } { incr i } {
    #если нашли то добавлять не нужно
    if { $TOOLS_BUFFER($i)=="имя текущего инструмента" } {
        set flag "TRUE"    
    }
}
#если не нашли то нужно добавлять в массив
if { $flag=="FALSE" } {

    #добавляем новую запись в массив
    set TOOLS_BUFFER($TOOLS_BUFFER_COUNT) "имя текущего инструмента"

    #увеличиваем счетчик элементов массива
    incr TOOLS_BUFFER_COUNT
}

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, mr_Voden сказал:

@ArtemGerasimov Накидал пример с массивом, очень простой и топорный, надеюсь нигде не ошибся. С каким-нибудь list было бы интереснее.

 

#где-то инициализируем массив, обьявив массив TOOLS_BUFFER и счетчик элементов TOOLS_BUFFER_COUNT
global TOOLS_BUFFER TOOLS_BUFFER_COUNT
set TOOLS_BUFFER_COUNT 0


#проверка на наличие такого элемента в массиве
global flag
set flag "FALSE"
for { set i 0 } { $i < $TOOLS_BUFFER_COUNT } { incr i } {
    #если нашли то добавлять не нужно
    if { $TOOLS_BUFFER($i)=="имя текущего инструмента" } {
        set flag "TRUE"    
    }
}
#если не нашли то нужно добавлять в массив
if { $flag=="FALSE" } {

    #добавляем новую запись в массив
    set TOOLS_BUFFER($TOOLS_BUFFER_COUNT) "имя текущего инструмента"

    #увеличиваем счетчик элементов массива
    incr TOOLS_BUFFER_COUNT
}

Спасибо. Попробую с этим разобраться. Придется еще почитать литературу похоже

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...