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

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

Поделиться сообщением


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

 

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

 

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

Поделиться сообщением


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

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

 

1 пользователю понравилось это

Поделиться сообщением


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

Ещё :

 

Поделиться сообщением


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

ID: 5   Опубликовано: (изменено)

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 редактировать вручную ??

 

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

Изменено пользователем 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 редактировать вручную ??

 

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

 

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

 

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

 

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

1 пользователю понравилось это

Поделиться сообщением


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

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

Поделиться сообщением


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

ID: 8   Опубликовано: (изменено)

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

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

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

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

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

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

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

Изменено пользователем o_nix

Поделиться сообщением


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

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

1 пользователю понравилось это

Поделиться сообщением


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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
жаль только что под NX9, постбилдером из 8ки не открывается pui ... 
 Не понял проблемы, там же все в одном в инсталяшке идет. Галочку поставить только при установке. Вернее даже, не отжимать.

Поделиться сообщением


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

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

 

но версия другая из 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"
}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
pui созданные в более новой версии постбилдера не открываются 
А, я не так понял просто. Sorry

Поделиться сообщением


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

ID: 14   Опубликовано: (изменено)

собственно 

POSTBUILDER_VERSION=2007.0.3.0

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

Изменено пользователем o_nix

Поделиться сообщением


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

собственно 

POSTBUILDER_VERSION=2007.0.3.0

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

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

Поделиться сообщением


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

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

 

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

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

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

Поделиться сообщением


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

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

 

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

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

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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

 

Про это?

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

Поделиться сообщением


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

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

 

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

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

 

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

Поделиться сообщением


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

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

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

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

 

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

 

Поделиться сообщением


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

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

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

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

 

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

 

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

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

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

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

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

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

 

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

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

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

Поделиться сообщением


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

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

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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

mom_tool_diameter. Пополам. 

Поделиться сообщением


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

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

 

Поделиться сообщением


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

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

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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

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

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

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

s - строка

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

Поделиться сообщением


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

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

 

Поделиться сообщением


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

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

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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

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

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

  • реклама

  • Реклама

  • Ближайшие события

    Предстоящих событий не найдено
  • Дни рождения сегодня

    1. 350352011
      350352011
      (27 лет)
    2. AndreyMenov
      AndreyMenov
      (37 лет)
    3. Bin_
      Bin_
      (58 лет)
    4. fotodollar
      fotodollar
      (34 года)
    5. konst
      konst
      (42 года)
    Просмотреть все