Jump to content

FAQ/Unigraphics/POST


Fixidea

Recommended Posts

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

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

Link to post
Share on other sites


dan.soloviev

 

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

 

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

Link to post
Share on other sites

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
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
Link to post
Share on other sites
vicebear

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

Link to post
Share on other sites

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

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

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

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

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

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

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

Edited by o_nix
Link to post
Share on other sites
vicebear

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

  • Нравится 1
Link to post
Share on other sites

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

 

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

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

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

 

но версия другая из 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"
}
}
Link to post
Share on other sites
Bully
pui созданные в более новой версии постбилдера не открываются 
А, я не так понял просто. Sorry
Link to post
Share on other sites

собственно 

POSTBUILDER_VERSION=2007.0.3.0

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

Edited by o_nix
Link to post
Share on other sites
vicebear

собственно 

POSTBUILDER_VERSION=2007.0.3.0

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

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

Link to post
Share on other sites

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

 

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

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

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

Link to post
Share on other sites

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

 

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

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

 

Про это?

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

Link to post
Share on other sites

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

 

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

 

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

Link to post
Share on other sites

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

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

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

 

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

 

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. Так что от событий у тебя вряд ли уйти получится. Ну либо отслеживать тип операции. Если пятиосевая, то не выводить блокировку, иначе - выводить

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

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

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

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

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

 

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

 

Link to post
Share on other sites

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

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

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 настроить вывод числа

Link to post
Share on other sites

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

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

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

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

s - строка

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

Link to post
Share on other sites

теперь другая проблема появилась..на 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 немного выглядит не так))

 

Link to post
Share on other sites

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

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

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-ки) он всего не будет работать

Link to post
Share on other sites

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

Link to post
Share on other sites

кстати в том примере с минимальным 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

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

Link to post
Share on other sites
  • SHARit pinned this topic

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

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.



  • Сообщения

    • soklakov
      ага:   к слову... после "закалки" ему не светит остывание ниже 1000 С, а то потрескается из-за разности ктр кристобалита и стекла. так что возврат с орбиты так себе операция. следующим предложением должно быть: так надо весь стакан в кристобалит переделать, но это уже не слишком рентабельно. собстно, как и возить на орбиту и обратно. можно было бы даже без орбиты весь стакан кристобалитным делать... долго просто, недели и месяцы. а надо быстро, часы и дни. время - деньги. ну... у меня даже для осесимметрии аналитика есть, полученная студентом питерского политеха. эпическая сага про штурм Лиувиля с функциями Крылова. тут ключевое слово "студентом", четырехэтажные интегралы хоть и красиво, но некоторые повороты сюжета вызывают сомнения, а переделывать лень.
    • Maik812
      Есть макросы занесения свойств. Напишите там что угодно макрос внесет в деталь.
    • A_1
      Добрый день. Программирование станков Haas и станков с системой управления Fanuc очень схоже. Важнее убедиться, что на Вашем станке присутствует опция макропрограммирования. В качестве литературы использовать можно инструкцию по программированию на Fanuc.
    • Sturmann
      Здравствуйте коллеги.  Занялся вопросом о передаче компьютеру ещё одной операции : проверка и занесение значения покраски.  Идея в следующем: открываю сборку изделия, нажимаю кнопку и программа сама либо заносит либо предлагает выбрать из списка значения которые нужно добавить к компонентам сборки. Неважно что это будет: порошок или эмаль.  Можно пойти и дальше и в те же свойства занести сопутствующие операции ( шлифовка грунтовка полировка и пр).  У кого какие есть идеи или хотя бы похожий пример - чтобы было от чего оттолкнуться.    Думаю для многих такая идея покажется дикой и невыполнимой. Но уверен её можно реализовать.  И у конструктора станет ещё одной головной болью меньше, а производство получит более полную документацию с меньшим количеством затрат на её формирование. 
    • IgorNN
      Обижаться не надо. Я на ихнее "поле залез", а они и ухом не ведут. Они же здесь присутствуют и довольно активно...., хочется верить. Здесь написал, надеясь на коллективный разум, а не только на абаметовский.
    • omid
      большое спасибо от иранского пользователя
    • Sturmann
      Вы ошибаетесь коллега.  Есть способ, что его описал в пояснении к этой теме. Операция просходит автоматически нужно только открыть сборку и нажать кнопку. Программа сама подсчитает сколько чего в этой сборке есть.  Зачем тогда спрашиваю "как"?  Может быть мой алгоритм не самый оптимальный вот и ищу возможность его улучшить.    Берём из спецификации - не понял что значит берём.  Мне нужно её сохранить в экселе?  Или распечатать на бумаге?  А как эти объединённые значения попадут на деталировочные чертежи?  Не понял ваших философских рассуждений.  Какая материя?  Какая энергия?  Или вы не прочитали пояснения к теме ? У меня есть программа которая считает количество. Без моего участия. От меня открыть сборку и нажать кнопка. Всё остальное она проверит и подсчитает сама. Подозреваю только что её алгоритм не самый лучший. Поэтому и ищу способ его улучшить.   
    • AlexKaz
      Общая тематика у меня - прикладная механика, мехатроника, программинг. Не сильно там чего сложное, уровня начинающий док-постдок, т.е. готовый кандидат наук. Лет 7 наверное как такое читаю и применяю. Иначе мне тупо платить не будут. Честно говоря, уже за*бало т.к. все мозги иссушает искать крупицы инфы в десятках -сотнях источниках еженедельно/ежемесячно смотря по нагрузке и задаче. Хоть бы молоко за вредность выдавали, но нет - поэтому нахер ухожу. Видимо, я чем-то не тем занят, если за такое платят с каждым годом меньше и меньше.   Зарубежные журналы по механике, материалам, мехатронике постоянно-периодически, самые разные, открытые-закрытые, с doi, без doi, просто некие отчёты, до журналов не доходящие, open access, close access, военные и гражданские, диссертации, хэлпы, мануалы - всё до чего дотягивается Инет, и т.п., включая даже форумы типа ардуинщиков, где годнота попадается. Российские довольно редко, даже крайне редко, разве что когда надо найти свойства специфических сталей-сплавов. Поскольку глаз за годы уже намётаный, часто виден тупорылый плагиат в дебильных студенческих пописках. Но такое сразу в мусор отправляется. Без шуток, я годами пишу и говорю, если чувачки что-то делают по готовой методичке - это не наука. Это сразу в мусор. Пишы там себе курсач, а дальше не прыгай с таким. Также за годы уже примерно знаю, если именитый автор публикует одинаковое гуано годами, с изменением каких-то элементарных величин, предложений, акцентов - значит оно тоже оправляется в мусорку. В лучшем случае, из статьи извлекаются ссылки на источники. Потом итерации с извлечением может продолжаться дальше "пока мне всё не станет ясно.   Хожу ли в библиотеку за российскими техническими журналами? Нет. Я не знаю, зачем они мне нужны в бумажном виде. В библио хожу за советской литературой. Довольно долго скупал советскую литературу по механике. Современную российскую литературу на мой взгляд покупать не имеет смысла. А в условно 99% случаев даже читать не стоит. Там в массе тупорылые переписки советских книжек. Соответственно, отставание от "забугра" лет 50.   Какие тенденции а-ля "не всё потяряно" наблюдать не хочется, т.к. пром и экономика падают 8 лет к ряду. Да, не всё потеряно. Но искать в дурно пахнущей куче алмазы не хочется вообще. Проще нагуглить нормальные работы на английском.   И потом, механика и физика почему-то развиваются. Публикуются новые работы, ставятся новые задачи. Вот этим интересно заниматься и тратить на это свой моск. А на 100500 раз обсосаное старьё чё-та уже не встаёт.
    • миталник
      Те же реборды и ролик снаружи...
    • Bot
      На Всемирной выставке «Экспо-2020» в Дубае 23 января состоялась деловая сессия «Прорывные российские цифровые решения для государственного сектора и промышленности». Участниками сессии, организованной в рамках тематической недели Госкорпорации «Росатом», стали лидеры российских ИТ-компаний, в том числе генеральный директор компании «Топ Системы» Сергей Анатольевич Кураксин. В ходе сессии участники обсудили темы экспортного потенциала и перспективы развития российских ИТ-технологий, а также стратегии международного сотрудничества в индустрии цифровых решений. Сергей Анатольевич Кураксин выступил с презентацией о решениях в области управления ЖЦИ и организации деятельности предприятий, представив в сотрудничестве с Росатомом отечественный комплекс T-FLEX PLM. Компании «Топ Системы» в январе текущего года исполнилось 30 лет. В настоящее время пользователями комплекса T-FLEX PLM являются более 4500 предприятий в России и за рубежом, куда [...] View the full article
×
×
  • Create New...