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

FAQ/Unigraphics/POST


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

14 минуты назад, artem-nafanya сказал:

Нумеруется так же первая строка, но теперь через одно значение массива. 

Я просто не стал опять писать 

{

global mom_sys_seqnum_start mom_sys_seqnum_incr
set mom_seqnum $mom_sys_seqnum_start

}

 

Полный вариант:

global mom_sys_seqnum_start mom_sys_seqnum_incr
set mom_seqnum $mom_sys_seqnum_start

set i 1
foreach number [lsort -ascii $list_tool] {
        set seq_temp ""
        if { $i < 2 } {

                set seq_temp "N$mom_seqnum " 

                incr mom_seqnum  $mom_sys_seqnum_incr
                incr i
        } else { set i 1 }
        puts $ofile "$seq_temp$number"       
}

 

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


34 минуты назад, lexincton сказал:

Я просто не стал опять писать 

{

global mom_sys_seqnum_start mom_sys_seqnum_incr
set mom_seqnum $mom_sys_seqnum_start

}

Эти переменные я объявил, но всё равно не так.

 

 

Сейчас код выглядит так:  

#ВЫВОД СОДЕРЖИМОГО МАССИВА С ПОМОЩЬЮ ЦИКЛА
global mom_sys_seqnum_start mom_sys_seqnum_incr
set mom_seqnum $mom_sys_seqnum_start

set i 1
foreach number [lsort -ascii $list_tool] {
        set seq_temp ""
        if { $i < 2 } {
                set seq_temp "N$mom_seqnum "
                incr mom_seqnum  $mom_sys_seqnum_incr
                incr i
        } else { set i 1 }
        puts $ofile "$seq_temp $number"
}

 

while { [gets $ifile buf] > 0 } {
       puts $ofile "$buf"
}
close $ifile
close $ofile

MOM_remove_file $tmp_file_name
MOM_open_output_file $ptp_file_name
 

Hide  

И выводит номера кадров отмеченные на фото жёлтым.

Надо чтобы номера кадров были на месте красных отметок.

Снимок.JPG

Изменено пользователем artem-nafanya
Ссылка на сообщение
Поделиться на других сайтах
27 минут назад, artem-nafanya сказал:

И выводит номера кадров отмеченные на фото жёлтым.

Надо чтобы номера кадров были на месте красных отметок

Пост надо с проектом

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

Пост надо с проектом

Пожалуйста:@lexincton

 

project.7z

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

Автор постпроцессора засунул данные по инструменту в текстовые блоки, которые выводил ПОСЛЕ постпроцессирования в начало файла УП процедурой reprocess. Так как "вклиниться" в эти текстовые блоки не так просто, надо голову ломать как эти блоки разбить на ; T2 / D1, потом номер кадра, потом R00 =  - могу подсказать как в этих текстовых блоках изменить место вывода ; T2 / D1 и нумерация начнется с R00

; **********************
; * DANNIE INSTRUMENTA *
; **********************
N80 CDI001 ; NACHALO DANNIH INSTRUMENTA
;
N10000   R00=2 R01=1 R02=3 R03=0.000 R04=0.000 R05=0.800
     R06=-2.5 R07=42.5 R10=500
     R20=200 R21=5 R22=2
     CWZ001 ; WERKZEUGDATEN ERSTWERKZEUG EINTRAGEN
     ; T2 / D1
;
  R00=3 R01=1 R02=2 R03=0.000 R04=0.000 R05=0.400
     R06=0. R07=0. R10=500
     R20=200 R21=5 R22=3
     CWZ001 ; WERKZEUGDATEN ERSTWERKZEUG EINTRAGEN
     ; T3 / D1
;
N10100   R00=6 R01=1 R02=3 R03=0.000 R04=0.000 R05=0.800
     R06=-2.5 R07=42.5 R10=500
     R20=200 R21=5 R22=6
     CWZ001 ; WERKZEUGDATEN ERSTWERKZEUG EINTRAGEN
     ; T6 / D1
;
 ; T3 / D2
     R00=3 R01=2 R02=3 R03=0.000 R04=0.000 R05=0.400
     R06=0. R07=0. R10=500
     CWZ001 ; WERKZEUGDATEN ERSTWERKZEUG EINTRAGEN
;
N120 CDI002 ; OKONCHANIE DANNIH INSTRUMENTA
N130 STOPRE
N140 R199=0
N150 

В чужих плодах воспаленных мозгов копаться - небольшое удовольствие.......

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

Пожалуйста:@lexincton

 

project.7z

Можно было сделать красивее через списки, но результат необходимый есть (последующие номера тоже можно отформатировать по порядку)

project.rar

 

Как видите, как раз он не гибкий

 

Изменено пользователем lexincton
Ссылка на сообщение
Поделиться на других сайтах
22 часа назад, lexincton сказал:

Можно было сделать красивее через списки, но результат необходимый есть (последующие номера тоже можно отформатировать по порядку)

project.rar

 

Как видите, как раз он не гибкий

 

Большое спасибо Вам за труд!

Ссылка на сообщение
Поделиться на других сайтах
В 18.01.2018 в 14:51, lexincton сказал:

Потому что ее нет и к тому же ничего не добавляется

 

global list_tool double_tools

if { ![info exists list_tool] } { set list_tool {} }
set row_tool  $mom_tool_number
set bsearch 0
foreach tool $list_tool {
    if { $tool == $row_tool } {
        set bsearch 1
        break
    }
}

if { !$bsearch } {

    lappend list_tool $row_tool

} elseif { ![info exists $double_tools($row_tool)] } { set double_tools($row_tool) 0 }

Если есть смена инструмента с одним и тем же номером, то этот код считает, что это дубликат.

Подскажите как сделать что бы он на это не реагировал?

Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, artem-nafanya сказал:

Если есть смена инструмента с одним и тем же номером, то этот код считает, что это дубликат.

Подскажите как сделать что бы он на это не реагировал?

Без учета номера регистра?

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

Без учета номера регистра?

Тут регистр не отслеживается, только номер инструмента.

Так получается если инструменты в операциях расположены так:

Т2

Т2

Т2

Т6

то нет одинаковых номеров инструментов, и это правильно.

А если так:

Т2

Т2

Т6

Т2

то код находит одинаковые номера инструментов, хотя это один и тот же инструмент Т2.

Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, artem-nafanya сказал:

Тут регистр не отслеживается, только номер инструмента.

Так получается если инструменты в операциях расположены так:

Надо смену инструмента отслеживать? И выводить порядок этой смены?

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

Надо смену инструмента отслеживать? И выводить порядок этой смены?

Если отработал инструмент 1) Т1 и потом произошла смена инструмента на Т2, а потом смена на Т1,

то последний Т1 может быть как новым инструментом с номером совпадающим 1) Т1,так и снова сам первый инструмент 1) Т1.

Ссылка на сообщение
Поделиться на других сайтах
43 минуты назад, artem-nafanya сказал:

Если отработал инструмент 1) Т1 и потом произошла смена инструмента на Т2, а потом смена на Т1,

то последний Т1 может быть как новым инструментом с номером совпадающим 1) Т1,так и снова сам первый инструмент 1) Т1.

И?

5 часов назад, lexincton сказал:

Надо смену инструмента отслеживать? И выводить порядок этой смены?

Изменено пользователем lexincton
Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, lexincton сказал:

И?

Вроде как массив из $mom_tool_number должен давать список уникальных номеров инструментов, но эта уникальность как бы теряется если есть смена инструмента.

Как отследить сей момент?

Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, artem-nafanya сказал:

Вроде как массив из $mom_tool_number должен давать список уникальных номеров инструментов, но эта уникальность как бы теряется если есть смена инструмента.

 

Т.е. при 

Т2
Т2
Т2
Т6

в списке T2 и Т6, при

Т2

Т2

Т6

Т2

3 инструмента?

Изменено пользователем lexincton
Ссылка на сообщение
Поделиться на других сайтах
21 минуту назад, lexincton сказал:

 

Т.е. при 

Т2
Т2
Т2
Т6

в списке T2 и Т6, при

Т2

Т2

Т6

Т2

3 инструмента?

И там и там 2 инструмента. Но в варианте, когда Т6 находится между Т2, в NX возникает смена инструмента и код:

КОД  

global double_list_tool
global double_tools mom_tool_number
#ПРОВЕРКА НА ОДИНАКОВЫЕ НОМЕРА ИНСТРУМЕНТОВ (ВЫВОД ПРЕДУПРЕЖДЕНИЯ В РЕПРОЦЕССЕ)
if { ![info exists double_list_tool] } { set double_list_tool {} }
set row_tool $mom_tool_number
set bsearch 0
foreach tool $double_list_tool {
    if { $tool == $row_tool } {
        set bsearch 1
        break
    }
}
if { !$bsearch } {
    lappend double_list_tool $row_tool
} elseif { ![info exists double_tools($row_tool)] } { set double_tools($row_tool) 0 }
 

foreach number [array names double_tools]  {
MOM_display_message "ОБНАРУЖЕНЫ ОДИНАКОВЫЕ НОМЕРА ИНСТРУМЕНТОВ T$number"
MOM_output_to_listing_device "ОБНАРУЖЕНЫ ОДИНАКОВЫЕ НОМЕРА ИНСТРУМЕНТОВ T$number"
}

Hide  

отрабатывает, что как бы Т2 до смены инструмента и Т2 после смены инструмента -- это разные инструменты, хотя по факту один и тот же Т2.

Но может быть случай что человек ошибся и реально создал два разных инструмента с одинаковым номером "2".

Вариант с ошибкой человека код отрабатывает верно, а вариант со сменой инструмента -- нет.

 

Поясняющее видео: https://yadi.sk/d/8w8GnWmN3RghEz

 

Изменено пользователем artem-nafanya
Вариант с ошибкой человека код отрабатывает верно, а вариант со сменой инструмента -- нет.
Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, artem-nafanya сказал:

отрабатывает, что как бы Т2 до смены инструмента и Т2 после смены инструмента -- это разные инструменты, хотя по факту один и тот же Т2.

Но может быть случай что человек ошибся и реально создал два разных инструмента с одинаковым номером "2".

Вариант с ошибкой человека код отрабатывает верно, а вариант со сменой инструмента -- нет.

Событие смены инструмента в билдере работает через одно место, чтобы отслеживать смену надо самому писать процедуру

project.rar

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

Событие смены инструмента в билдере работает через одно место, чтобы отслеживать смену надо самому писать процедуру

project.rar

Можно и процедуру отслеживания, но если получить нужный список инструментов, то тогда не надо будет процедуру отслеживания создавать.

Например, список адекватно отображающий номера инструментов, выдаёт известная команда TOOL_LIST (пример в прикреплённом посте). Если получится взять из этого TOOL_LIST массив с номерами инструмента и засунуть их в проверку на одинаковые инструменты, то теоретически должно получиться.

Поясняющее видео: https://yadi.sk/d/5LlLstRJ3RirXA

POST_TOOL_LIST.rar

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, artem-nafanya сказал:

Можно и процедуру отслеживания, но если получить нужный список инструментов, то тогда не надо будет процедуру отслеживания создавать.

Отслеживать надо, если надо запомнить порядок смены, просто для списка инстр-та это не требуется

10 часов назад, artem-nafanya сказал:

Если получится взять из этого TOOL_LIST массив с номерами инструмента и засунуть их в проверку на одинаковые инструменты, то теоретически должно получиться.

Вариантов масса, можно и так попробовать

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

Вариантов масса, можно и так попробовать

Что-то пока не удаётся объединить TOOL_LIST и проверку на дубли. Не совсем понятно где там массив с номерами инструментов?

Какие есть ещё варианты?

Ссылка на сообщение
Поделиться на других сайтах
  • SHARit закрепил это тему

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

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

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

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

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

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

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

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

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

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




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