Jump to content
Fixidea

FAQ/Unigraphics/POST

Recommended Posts

Fixidea
Тема создана для более быстрого поиска ответов по постпроцессорам в Unigraphics NX.

Прошу все вопросы, связанные с созданием постпроцессора в NX, задавать здесь.

Share this post


Link to post
Share on other sites


dan.soloviev

 

Тема создана для более быстрого поиска ответов по постпроцессорам в Unigraphics NX.
Прошу все вопросы, связанные с созданием постпроцессора в NX, задавать здесь.

 

не посоветуете ли мануал по postbuilder ?

Share this post


Link to post
Share on other sites
jREj

Вот есть видеоурок:

 

  • Нравится 1

Share this post


Link to post
Share on other sites
o_nix

NX Post Builder 8.5.3 Требуется обрамить блоки с круговыми перемещениями доп командами G08P1 и G08P0, отдельными кадрами

G08P1
X Y I J
X Y I J
X Y I J
X Y I J
G08P0
X Y Z
X Y Z
X Y Z
G08P1
X Y I J
X Y I J
G08P0
Z
X Y
....

Можно ли это сделать через Post Builder ?? Я что только не пробовал - не получается.

G08P1 удаётся хотя бы примерно в нужную позицию поставить через Engage Move, а вот G08P0 - ну никак ...

или только tcl редактировать вручную ??

 

подскажите пожалуйста где и что надо подравить ))

Edited by o_nix

Share this post


Link to post
Share on other sites
undrakot

NX Post Builder 8.5.3 Требуется обрамить блоки с круговыми перемещениями доп командами G08P1 и G08P0, отдельными кадрами

G08P1
X Y I J
X Y I J
X Y I J
X Y I J
G08P0
X Y Z
X Y Z
X Y Z
G08P1
X Y I J
X Y I J
G08P0
Z
X Y
....

Можно ли это сделать через Post Builder ?? Я что только не пробовал - не получается.

G08P1 удаётся хотя бы примерно в нужную позицию поставить через Engage Move, а вот G08P0 - ну никак ...

или только tcl редактировать вручную ??

 

подскажите пожалуйста где и что надо подравить ))

 

У меня через постбилдер не редактировалось. Вышел из положения так:

 

в ПБ создаешь новые блоки G08P1 и G08P0, даешь им имена (например, circle_start и circle_stop соответственно).

 

Потом сохраняешь свой пост и закрываешь ПБ. Далее в ноутпаде открываешь pui файл своего ПП, находишь в нем раздел #Motions Start, строка {Circular Move} {circular_move} ... Заменяешь во вторых скобках circular_move на circle_start circular_move circle_stop. Сохраняешь и снова открываешь пост в постбилдере

  • Нравится 1

Share this post


Link to post
Share on other sites
vicebear

А если вставить в виде текста? Правда, будет выводить после каждого кадра круговой интерполяции.

Share this post


Link to post
Share on other sites
o_nix

оно и по первому способу предложенному undrakot
точно так же выводит в каждом кадре ...

только я делал в circular только в начале G08P1, в linear и rapid  только в начале G08P0

но всё же он натолкнул меня на мысль ))

нужно сделать новый WORD G08P с возможными значениями 1 или 0

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

тогда вывод будет нужными блоками строк....

осталось только понять как такое сделать :D

Edited by o_nix

Share this post


Link to post
Share on other sites
vicebear

Я тут в Фануковский по быстрому пихнул ваши команды. Вы так хотели?

  • Нравится 1

Share this post


Link to post
Share on other sites
o_nix

да так, выводится блоками

 

жаль только что под NX9, постбилдером из 8ки не открывается pui ... 

Share this post


Link to post
Share on other sites
Bully
жаль только что под NX9, постбилдером из 8ки не открывается pui ... 
 Не понял проблемы, там же все в одном в инсталяшке идет. Галочку поставить только при установке. Вернее даже, не отжимать.

Share this post


Link to post
Share on other sites
o_nix

да установлен постбилдер ))

 

но версия другая из nx8.5.3 

 

pui созданные в более новой версии постбилдера не открываются 

 

Вся суть в общем то в двух функциях 

proc PB_CMD_p1g2p0_end { } {
#=============================================================
global p1p0

if {![info exists p1p0]} {set p1p0 0}

if {$p1p0 == 1} {
set p1p0 0
MOM_output_literal "G08P0"
}
}


#=============================================================
proc PB_CMD_p1g2p0_start { } {
#=============================================================
global p1p0

if {![info exists p1p0]} {set p1p0 0}

if {$p1p0 == 0} {
set p1p0 1
MOM_output_literal "G08P1"
}
}

Share this post


Link to post
Share on other sites
Bully
pui созданные в более новой версии постбилдера не открываются 
А, я не так понял просто. Sorry

Share this post


Link to post
Share on other sites
o_nix

собственно 

POSTBUILDER_VERSION=2007.0.3.0

в заголовке pui решил вопрос и всё стало прекрасно открываться старой версией ))

Edited by o_nix

Share this post


Link to post
Share on other sites
vicebear

собственно 

POSTBUILDER_VERSION=2007.0.3.0

в заголовке pui решил вопрос и всё стало прекрасно открываться старой версией ))

Хм, прикольно. Не знал. Тогда смотрите в постбилдере в перемещениях, эти команды вписаны туда. Если что непонятно, спрашивайте.

Share this post


Link to post
Share on other sites
tikito

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

 

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

если можно то покажите на картинках что меняли.

файлы прицепляю

Share this post


Link to post
Share on other sites
avd

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

 

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

если можно то покажите на картинках что меняли.

файлы прицепляю

Попробуйте в Operation Stat Sequence - Start of Path вставить пользовательскую команду PB_CMD_start_of_operation_force_addresses

Share this post


Link to post
Share on other sites
tikito

спасибо.работает. а как насчёт названий операций..есть ли такое?

Share this post


Link to post
Share on other sites
avd

а как насчёт названий операций..есть ли такое?

 

Про это?

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

Share this post


Link to post
Share on other sites
jREj

спасибо.работает. а как насчёт названий операций..есть ли такое?

 

Посмотрите эти переменные: mom_template_subtype, mom_template_type и mom_path_name. Делал в посте вывод M02 в зависимости от названия операции в навигаторе. Использовал mom_path_name.

Share this post


Link to post
Share on other sites
tikito

ни одна их этих переменных не подходит. variable streamline вобще выдаёт как planar mill.

эта вроде выводит правильно mom_operation_type

Share this post


Link to post
Share on other sites
jREj

ни одна их этих переменных не подходит. variable streamline вобще выдаёт как planar mill.

эта вроде выводит правильно mom_operation_type

 

Значит ее используйте

Share this post


Link to post
Share on other sites
tikito

искал в нете как активировать авто тормоз поворотной оси но не совсем понял как это сделать именно через пост.

в самом файле как там говорится в начале я тоже нехочу делать..надо через пост

вот такая переменная mom_clamp_status.но как применить

 

http://www.eng-tips.com/viewthread.cfm?qid=258025

 

Share this post


Link to post
Share on other sites
undrakot

искал в нете как активировать авто тормоз поворотной оси но не совсем понял как это сделать именно через пост.

в самом файле как там говорится в начале я тоже нехочу делать..надо через пост

вот такая переменная mom_clamp_status.но как применить

 

http://www.eng-tips.com/viewthread.cfm?qid=258025

 

По-моему, значение переменной mom_clamp_status как раз и задается через стандартную UDEшку Clamp. Так что от событий у тебя вряд ли уйти получится. Ну либо отслеживать тип операции. Если пятиосевая, то не выводить блокировку, иначе - выводить

Share this post


Link to post
Share on other sites
tikito

на том форуме что приципил как раз и сделали без событий..только через сам пост..вот толька как он сделал..

Share this post


Link to post
Share on other sites
avd

на том форуме что приципил как раз и сделали без событий..только через сам пост..вот толька как он сделал..

Кстати автор того топика и на этом форуме есть (во всяком случае ник и имя совпадаю). И еще ваша ссылка в России не работает, приходится на этот ресурс переходить через анонимайзеры (пэдээф не смотрел в начале).

По задаче, вам по сути надо сделать следующее (поправьте если не так): необходимо при подходе в операции включить блокировку осей (типа М25 в HH), а в конце операции разблокировать (M26), но это все безобразие надо делать только при 2+3, при много осевой такой блокировки делать не надо?

Если так, что здесь можно поступить по разному, например, при пяти осеовой обработки вводить UDE, которое подавляет вывод блокировки/разблокировки или каким-либо образом "узнавать", что идет непрерывная много осевая обработка и так подавляет. Также есть всегда метод имени рабочего и крестьянки - постпостпроцессинг (но это вообще не интересно).

Вопрос как узнавать также можно решить по разному.

По своему опыту использования много осевой обработки (проще использовать UDE).

 

П.С. Интресно что вам заокеанские коллеги посоветуют? Напишите если будет что-то интресное.

Share this post


Link to post
Share on other sites
tikito

я потом понял что кто то русский пишет там..да ты всё правильно понял что мне нужно сделать..но только пока для 3+1.мне надо распознание где позиционная обработка а где неприрывная..хочется как можно меньше вмешиваться в сам файл prt поэтому нехочу делать через EDE

я создал там новую тему..старая уже закрыта..ответят отпишусь

Share this post


Link to post
Share on other sites
avd

я потом понял что кто то русский пишет там..да ты всё правильно понял что мне нужно сделать..но только пока для 3+1.мне надо распознание где позиционная обработка а где неприрывная..хочется как можно меньше вмешиваться в сам файл prt поэтому нехочу делать через EDE

я создал там новую тему..старая уже закрыта..ответят отпишусь

В принципе это реально сделать (я так думаю), нужно заготовку поста и примеры prt и что и куда вставлять

Share this post


Link to post
Share on other sites
tikito

выкладываю хасовский пост и файл..в нём нужно сделать автоматическую блокировку и разблокировку.

теперь другая проблема появилась..на nx 8 все работало. пост синумерик

там пост выводит наименьшую координату по z и потом перемешает её в начало программы.на на nx 9 не перемешает то что нужно в начало программы

Share this post


Link to post
Share on other sites
tikito

кто подскажет переменную для выводы радиуса фрезерного инструмента..именно радиуса а не радиус скрулления

Share this post


Link to post
Share on other sites
Ug_user

mom_tool_diameter. Пополам. 

Share this post


Link to post
Share on other sites
tikito

спасибо разобрался..только теперь как кол-во знаков уменьшить..

 

Share this post


Link to post
Share on other sites
avd

спасибо разобрался..только теперь как кол-во знаков уменьшить..

Первый вариант (имхо не красивый, по программистки)

MOM_output_text "G90 G10 L12 P1 R[format %1.3lf expr[$mom_tool_diameter/2]] # не проверял

Если будет ошибка, то я бы значения радиуса вычислил в отдельной переменной, а потом туда подставил

 

global radii_tool mom_tool_diameter

set radii_tool expr[$mom_tool_diameter / 2]

MOM_output_text "G90 G10 L12 P1 R[format %1.3lf $radii_tool]"

 

Второй вариант

Настроить BLOCK с необходимыми WORD и на R настроить вывод числа

Share this post


Link to post
Share on other sites
tikito

спасибо второй вариант сработал

Share this post


Link to post
Share on other sites
tikito

что обозначают эти буквы

 set output [format "%-10s %-8.3f %-9.1f %-3d"

Share this post


Link to post
Share on other sites
avd

что обозначают эти буквы

 set output [format "%-10s %-8.3f %-9.1f %-3d"

f - тип данных с плавающей точкой

d - целое число

s - строка

Подробности ИМХО можно смотреть в описании команды sprintf из С http://ru.cppreference.com/w/cpp/io/c/fprintf

Share this post


Link to post
Share on other sites
avd

теперь другая проблема появилась..на nx 8 все работало. пост синумерик

там пост выводит наименьшую координату по z и потом перемешает её в начало программы.на на nx 9 не перемешает то что нужно в начало программы

проанализировав работу поста я выяснил, что команда set file [open $ptp_file_name a] и последующим seek уже не робит. Я изменил ключ а на a+. seek стал "скакать", то он вставляет символы с заменой существующих. ((

Что-то видимо изменилось в TCL

Поэтому можно воспользоваться старым методом - запись в новый файл и переименовывание

 

Вот вариант он работает на 9-ке (я думаю, что и на любой версии)

set temp_dir [MOM_ask_env_var UGII_TMP_DIR]
set temp_file temp.temp
set f [open "$temp_dir\\$temp_file" w+]
set fcom [open $ptp_file_name r]

# shitivaem pervuyou 2 stroku i zapisivaem v fail up
for {set i 0} {$i < 2} {incr i } {
  gets $fcom inLine
  puts $f "$inLine"
}

# zapisivaem vremya
puts $f  "(MACHINE TIME: $mtime)"
puts $f  "$co----MIN Z..[format "%.2f" $coord_z]---- $ci"
puts $f  "$co TOTAL TIME:[format "%.2f" $mom_machine_time] $ci"

# zapisivaem ostalnuya chast UP
while { [gets $fcom inLine] >=0 } {
    puts $f "$inLine"
}

close $f
close $fcom

file rename -force "$temp_dir\\$temp_file" $ptp_file_name
file delete -force "$temp_dir\\$temp_file"

Минус только в том, что в окне NX немного выглядит не так))

 

Share this post


Link to post
Share on other sites
avd

выкладываю хасовский пост и файл..в нём нужно сделать автоматическую блокировку и разблокировку.

Один из вариантов

global mom_tool_axis_type

#0=None, 1=Fixed Vector, 2=Normal to Part, 3=Swarf Relative to Part Surface(+U), 4=Swarf Relative to Drive Surface(+V), 5=Swarf Relative to Part Surface(-U), 6=Swarf Relative to Drive Surface(-V), 7=Relative to Part Non-Perpendicular, 8=4-Axis Normal to Part, 9=Through or Away from a Point, 10=Towards Point, 11=Away from Line, 12=Towards Line, 13=Surface Ruling, 14=Fan, 15=Same, 16=Normal to Drive Surface, 17=Parallel to Part Surface, 18=Parallel to Drive Surface, 19=Relative to Drive Surface, 20=4-Axis Normal to Drive Surface, 21=4-Axis Relative to Part Surface, 22=4-Axis Relative to Drive Surface, 23=Same as Drive Path, 24=Relative to Vector, 25=Dual 4-Axis or Dual 4-Axis Relative to Part, 26=Dual 4-Axis Relative to Drive, 27=Interpolated Tool Axis, 28 = User Defined to Part, 29 = All
switch $mom_tool_axis_type {
  "0" { MOM_output_literal "mom_tool_axis_type = NONE"}
  "1" { MOM_output_literal "mom_tool_axis_type = Fixed Vector"}
  "2" { MOM_output_literal "mom_tool_axis_type = Normal to Part"}
}

  MOM_output_literal "mom_tool_axis_type = $mom_tool_axis_type"
  MOM_output_literal "M10 (*********************************)"

Здесь в зависимости от типа ориентации оси инструмента вводим блокировку или нет

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

Ограничение такого способа, состоит в том что в старых версия NX (до 9-ки) он всего не будет работать

Share this post


Link to post
Share on other sites
tikito

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

Share this post


Link to post
Share on other sites
avd

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

не уловил что надо сделать

Вот часть УП

%
O1234 ( 4X TEST.prt )
(MACHINE TIME:    4.6 MINUTES)
(----MIN Z..-6.91---- )
( TOTAL TIME:4.57 )
( CONTROL HAAS )
(------------------------------)
(           TOOLS              )
(------------------------------)
( T#    NAME            LENGTH )
(------------------------------)
(------------------------------------)
( DATE: 13/JUN/2014  TIME: 01:10:21  )
( Part File Name: 4X TEST.prt )
N1 G91 G28 Z0.
N2 G91 G28 A0.
N3 G17 G90 G80 G40 G21
N4 M11
N5 (TOOL #1 MILL)
N6 T1 M6
N7 (VARIABLE_CONTOUR)
N8 G0 A0
N9 G90 X50. Y-30. S100 M3
N10 G43 H1 Z18.03 M8

Покажите где надо исправить?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • KorovnikovAV
      Тем временем топ грабкада забит респираторами под 3д печать.  И еще почему то трубками Вентури, надеюсь не для самодельного ИВЛ.
    • Plumber
      Если бы только технику переседатель видимо внимательно перечитал первый вариант и подумал: а на чем же бабло рубить  и тут же решил исправиться. это типа  - найди 10 различий
    • KorovnikovAV
      Естественно имелось ввиду оффлайн
    • Тигр
      Подстава, у пердуна флаг Итальянский на рукаве.
    • SHARit
    • eest
      Привет всем. Кто может помочь с таким вопросом. Перевожу макросы на чешский язык (нужно помочь чешским колегам) и столкнулся с проблемой что не могу использовать диакретические знаки это такие ř č ě ů и т.д., когда ввожу название с этими знаками и нажымаю Enter диакритика пропадает. Но эсли изменять слова прямо в названии как на рисунку ниже, проблем нет, хотя в свойствах название без диакритики.   Когда нужно изменить название например здесь, рисунок ниже, вообще никак нельзя написать как нужно с диакритикой.   Буду рад за помощь.
    • SHARit
      A не вошедшими нельзя? Да легко все торгуется через интернет-магазины.
    • Vengeance
      FANUCPRG.BIN
    • karachun
      @Нумер Вернул обратно глобальный контакт - все фурычит. Правда задача досчиталась только до 0.8 от номинальной нагрузки, Дальше решателю поплохело. До этого вообще без контакта расчет доходил до конца. Упростил модель с помощью осесимметрии. https://fex.net/s/vzn7sab
    • Bot
      Инжиниринговая компания ТЕСИС лицензировала модуль визуализации C3D Vision из набора инструментов разработки инженерного программного обеспечения C3D Toolkit. Он будет использоваться для визуализации расчетных моделей в программном комплексе FlowVision, решающем задачи вычислительной аэро- и гидродинамики (CFD – computational fluid dynamics). Пакет FlowVision моделирует сложные движения жидкости и газа, сопровождаемые дополнительными физическими явлениями, такими как турбулентность, горение, контактные границы раздела, пористость среды, теплоперенос и т. д. Новый визуализатор от C3D Labs будет работать в двух программах, входящих в поставку FlowVision: Пре-Постпроцессоре (отвечает за подготовку расчетного проекта и анализ результатов численного моделирования) и Модуле просмотра результатов. Переход на готовый 3D-движок позволит компании сэкономить ресурсы на разработке существующего графического ядра Пре-Постпроцессора. Андрей Аксенов, [...] View the full article
×
×
  • Create New...