Jump to content

Postbuilder (переименование файла с выводом в окно листинга)


an-kval

Recommended Posts

Встречал здесь на форуме вопросы и поиск решений, связанные с переименованием постпроцессируемого файла в имя операции. Создаем процедуру (любое имя) с этим кодом, вставляем в Program End Secuence в самый низ.  

 

#===========================================
# Переименование постпроцессируемого файла
# в имя операции и вывод в окно листинга NX
#===========================================
global mom_output_file_suffix
global mom_operation_name
global ptp_file_name

MOM_close_output_file $ptp_file_name

set operation $mom_operation_name.$mom_output_file_suffix

if {[file exists $operation]} {MOM_remove_file $operation}
file rename $ptp_file_name $operation
set tmp [open $operation r]
set file_data [read $tmp]
close $tmp
MOM_output_to_listing_device $file_data

 

 

Edited by an-kval
  • Нравится 2
Link to post
Share on other sites
  • 2 weeks later...


UnPinned posts
13 часов назад, an-kval сказал:

Немного усовершенствовал процедурку

А возможно полностью избавиться от вывода листинга ?

Link to post
Share on other sites
2 часа назад, Дядя сказал:

А возможно полностью избавиться от вывода листинга ?

Конечно, в окне "Постпроцессировать" сними галку с вывода листинга.

3 часа назад, healerovski сказал:

Посмотрю у себя, в одной компании структура постов была именно такая. Генерило главный файл и подпрограммы из всех переходов. Надо проверить работал ли пост по выделенным операциям.  Если не ошибаюсь, то он все нормально генерил, но всегда создавал в древе подгруппу папки программ)

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

  • Нравится 1
Link to post
Share on other sites
healerovski
18.11.2025 в 12:11, an-kval сказал:

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

Завтра постараюсь найти.

Link to post
Share on other sites
17.11.2025 в 15:31, an-kval сказал:

Две строки над строкой где путь к CIMCO. В строке с путём замени $operation на $ptp_file_name

Заметил один не совсем приятный момент , при симуляции симко открывает программу , хотя это не нужно.

Link to post
Share on other sites
2 часа назад, Дядя сказал:

Заметил один не совсем приятный момент , при симуляции симко открывает программу , хотя это не нужно.

Не совсем понял. 

Link to post
Share on other sites
2 часа назад, Дядя сказал:

Заметил один не совсем приятный момент , при симуляции симко открывает программу , хотя это не нужно.

Проверка нужна. Возможно это поможет.

Скрытый текст

#=============================================================
proc PB_CMD__check_block_post_in_simulation { } {
#=============================================================
# This custom command should return
#   1 : Output BLOCK
#   0 : No output
#
  global mom_post_in_simulation
  
  if { [info exists mom_post_in_simulation] && $mom_post_in_simulation == "CSE" } {
    return 1
  } else {
    return 0
  }
}

 

Link to post
Share on other sites

При симуляции УП в CIMCO? Или при симуляции в NX G-кода моделью станка? Никак не могу суть уловить. Или не выспался)

Link to post
Share on other sites
2 часа назад, an-kval сказал:

При симуляции УП в CIMCO? Или при симуляции в NX G-кода моделью станка? Никак не могу суть уловить. Или не выспался)

Нажимаю кнопку симуляция станка , симуляция программы ЧПУ и симко открывается с программой .

Link to post
Share on other sites
46 минут назад, Дядя сказал:

Нажимаю кнопку симуляция станка , симуляция программы ЧПУ и симко открывается с программой .

Ну видимо в папке станка у тебя этот же постпроцессор установлен. Отредактируй его. Закомментируй запуск симки. Честно говоря вот тут я не в курсе. Я симуляцию G-кода не делаю. CSE драйвер не победил пока. Пытаюсь с нуля написать.

Link to post
Share on other sites
Только что, an-kval сказал:

Ну видимо в папке станка у тебя этот же постпроцессор установлен.

В папке станка поста нет , пост в папке постпроцессор , получается что при симуляции NX постпроцессирует программу чтобы ее проверить через симулятор , по этому открывается симко.

Link to post
Share on other sites
4 минуты назад, Дядя сказал:

В папке станка поста нет , пост в папке постпроцессор , получается что при симуляции NX постпроцессирует программу чтобы ее проверить через симулятор , по этому открывается симко.

Там в корневой папке станка должен лежать .dat файл аналог того что в папке где все посты. Там же в папке станка, тоже есть папка постпроцессор. Туда кинь правленый, без запуска симки. И в .dat файле пропиши к нему путь.

Link to post
Share on other sites
1 час назад, an-kval сказал:

Там в корневой папке станка должен лежать .dat файл аналог того что в папке где все посты. Там же в папке станка, тоже есть папка постпроцессор. Туда кинь правленый, без запуска симки. И в .dat файле пропиши к нему путь.

Понял , спасибо.

Link to post
Share on other sites
1 час назад, mr_Voden сказал:

@an-kval Просто добавь проверку запущена ли симуляция. Выше написал пример такой функции.

Да мне и не надо было) Но всё равно спасибо за код.

Link to post
Share on other sites
  • 1 month later...
Shershen

@an-kval

Спасибо за код. Очень интересно.

Я отсутствие листинга самостоятельно победить не смог, а мне надо. Попробую как работает ваш вариант.

 

Поэтому остановился на следующем простом варианте. Может пригодится кому.

Имя файла задаю атрибутом, потому что его же вывожу в карты наладки (рабочие инструкции) и иногда в саму уп.

При постпроцессировании задаю имя любой кнопкой. В папку падает УП с нужным мне именем, а листинг открывает вот эту самую временную копию, которую иногда смотрю.

Остальные уп проекта постятся просто нажатием ОК.

В итоге в папке несколько уп с нужными именами, и единственный временный файл.

 

Насчет mom_output_file_suffix, не понял. Он жеж для поста инструментами самого постбилдера задается.

И файлы уп с нужным расширением сразу и получаются.

 

 

#=============================================================
proc PB_CMD_rename_output_file { } {
#=============================================================
# Переименование файла УП именем атрибута 
# mom_attr_PROGRAMVIEW_NAME, если он есть.
# Вставить в самый конец программы.

# return

global mom_output_file_basename
global mom_output_file_directory
global mom_output_file_suffix
global mom_output_file_full_name
global ptp_file_name

global mom_group_name 
global mom_oper_program
global mom_attr_PROGRAMVIEW_NAME 
global mom_attr_PROGRAMVIEW_name
global mom_attr_PART_NUMBER 
global mom_attr_PART_number
global output_file_rename

global mom_sys_control_out 
global mom_sys_control_in 
set co $mom_sys_control_out
set ci $mom_sys_control_in

    if { ![info exists mom_attr_PROGRAMVIEW_NAME] || \
        ![info exists mom_attr_PROGRAMVIEW_name] } {
return
    }

# вместо mom_attr_PROGRAMVIEW_name любая переменная с нужным именем УП
# например output_file_rename
    if { [info exists output_file_rename] } {
        set file_name $output_file_rename
    } elseif { [info exists mom_attr_PROGRAMVIEW_NAME] } {
        set file_name $mom_attr_PROGRAMVIEW_NAME
    } elseif { [info exists mom_attr_PROGRAMVIEW_name] } {
        set file_name $mom_attr_PROGRAMVIEW_name
    }

set new_full_filename "$mom_output_file_directory${file_name}.$mom_output_file_suffix"

# закрыть текущий файл
MOM_close_output_file $mom_output_file_full_name

# копировать с перезаписью существующего файла
file copy -force $mom_output_file_full_name $new_full_filename


}
#

 

 

 

 

Edited by Shershen
Link to post
Share on other sites
an-kval
8 часов назад, Shershen сказал:

@an-kvalСпасибо за код. 

 

Пожалуйста. Пробуй. По переменной расширения уп что именно смущает? Если вариант прямого написания в коде, это для тех, кто не хочет искать где в постбилдере устанавливается расширение. Просто фича)

p:s. Я файлы уп сразу открываю в cimco, листинг вообще отключил. Гораздо удобнее, не надо искать файл, сразу редактируешь.

Edited by an-kval
Link to post
Share on other sites

Подскажите пожалуйста в чём может быть проблема

процедура вывода УП в CIMCO выглядит так:

#=============================================================
proc Open_NC_file_by_CIMCO { } {
#=============================================================
# Вывод постпроцессируемого файла в CIMCO edit
#=============================================================
global mom_output_file_directory mom_output_file_suffix
global mom_operation_name ptp_file_name

exec C:\\CIMCO\\CIMCO2023\\CIMCOEdit\\CIMCOEdit.exe $ptp_file_name & 
}

 

при постпроцессировании ошибка, файл занят другим процессом

 

изображение.png

 

 

Link to post
Share on other sites
an-kval

Сделате как в моём примере. Там всё работает. Проблема в том, что вы пытаетесь запустить $ptp_file_name

Link to post
Share on other sites
  • 3 weeks later...
15.01.2026 в 18:33, an-kval сказал:

Сделате как в моём примере. Там всё работает. Проблема в том, что вы пытаетесь запустить $ptp_file_name

Разобрался в чем была проблема, я передавал на открытие файла УП в CIMCO не закрыв запись в него постпроцессором, иными словами файл УП был еще занят постпроцессором.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Сообщения

    • eljer0n
      @Sergej71 , спасибо огроменнейшее! Долгих лет и всяческих успехов! В 23й версии есть инструмент "Мастер шпилек", очень удобная вещь, позволяющая не вырисовывать вручную и указывать условное отображение резьбы. Так вот под шлицевую гайку на валу понадобилась резьба М98х2, которой, естественно в стандарте не было. Добавление через конфигуратор Toolbox результата не дало, после якобы сохранения и выхода из конфигуратора данные не сохранялись и пропадали при повторном входе (естественно, и при выборе резьбы в мастере шпилек тоже). Через указанный @Sergej71 способ удалось за пять минут решить проблему. Акцентирую внимание, что для работы с мастером шпилек мало ввести данные в таблицу "Размер резьбы" (ту самую _DATA_HW_TappedHole), нужно поправить еще и таблицу "Данные резьбы" (обвел на скриншоте). Плюс к тому нужно быть осторожным с раскладкой (рус-англ) и разделителями (точки, запятые), тут уже опытным путем нужно подобрать в зависимости от системного разделителя.    
    • tiomat
      Вот на примере Солида вы здорово показали как там все это работает по-человечески, где бы вы не ткнули на детали (кроме вершин, кромок, ребер и осей), вращение ее происходит вокруг центра модели.
    • tiomat
      Бинго! Не в бровь, а в глаз. Честно говоря, очень приятно что уловили мысль, так как многие коллеги очень ревностно относятся к критике тефлекса, считая данный продукт идеальным или почти идеальным, а кто так не считает, тот просто не умеет им пользоваться. Я попробовал, у меня не получилось, "свободное" у меня стоит по умолчанию. то-то и оно, поэтому и получается убогое вращение, а теперь скажите, оно кому-то нужно, вращение вокруг "тыка"?
    • koroll16
    • gudstartup
      Это не странно для Фанук 6
    • mannul
    • ks1_
      И это странно. Должна работать если в G54 что то забито. Ну еще посмотреть какие функции активны хотя этому вроде ничто мешать не должно. Попробуйте еще задать подачу. В некоторых стойках если подача не задана по G0 не идет.
    • ks1_
      Не очень надеялся получить ответ в таком объёме. Спасибо. Обработка по 3д поверхности строками в основном YZ плоскости с линейной интерполяцией. Подача не 10м/мин а порядка двух и сглаживает хорошо. Правда иногда возникает ощущение что слишком хорошо. В смысле подозрение на заносы. И не получается разогнать существенно больше 2 м/мин. Время обработки перестает уменьшается с увеличением подачи. Но в целом устраивает. Это как создать контейнер? Хотя наверное нам не поможет. Станки купили без памяти. Только со стандартной системной порядка 200 с копейками килобайт. Работаем с квадратненькой флешки. Соответственно редактор на станке недоступен. Кстати пару раз уже ловили флешку на том что рвет текст уп.
    • Centur5
      прошу помочь кто может поделится постпроцессором и кинематикой я устал с этим...
    • agering53
      У вас станок не отрабатывает, или выдает ошибку на экран?
×
×
  • Create New...