1 006 сообщений в этой теме
Тема создана для более быстрого поиска ответов по постпроцессорам в 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 пользователей

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



  • Реклама

  • Сообщения

    • s_liam
      TRANS отменяет ROT и наоборот! Будьте внимательны. Можно пользоваться командой AROT. Тогда AROT не отменит TRANS. Но последующий TRANS или ROT отменит ATRANS или AROT. Но в данном случае в этом нет необходимости. В вашем случае вместо команды ROT у вас работает поворот стола по координате B и паз встанет параллельно инструменту. Поворачивать систему координат необходимости нет. Вам нужно правильно вычислить смещение нулевой точки после поворота. По методике вроде как все верно, но я не уверен в правильность в формулах. Я подобное через ATAN2 высчитывал. Мне попроще - я симулятор использую для проверки подобных расчетов. В нем можно отловить ошибки в формулах, знаках. Я вот такое использую. Указываю угол поворота стола, на который нужно развернуть. Постпроцессор сам рассчитывает смещение нулевой точки. Из G54 пересчитываю в G57 и при повороте в ней обрабатываю. Можно, конечно, вместо этого использовать TRANS по осям в плоскости поворота. G54 B=DC(359.141)
      ;*******START COMPUTING TRANSLATIONS ON G57*******
      R31=$P_UIFR[1,X,TR]
      R32=$P_UIFR[1,Z,TR]
      R33=$P_UIFR[1,Y,TR]
      R34=$P_UIFR[1,B,TR]
      R29=359.141 ; TABLE ANGLE VALUE
      R30=SQRT(POT(R31)+POT(R32))
      R37=ATAN2(R32,-R31)
      R38=R37-R29
      R35=R30*COS(R38)
      R36=R30*SIN(R38)
      $P_UIFR[4,X,TR]=-R35
      $P_UIFR[4,Z,TR]=R36
      $P_UIFR[4,Y,TR]=R33
      $P_UIFR[4,B,TR]=R34
      G57
      ;*******G57 IS ACTIVE*******
      ;*******END COMPUTING TRANSLATIONS ON G57*******
    • Игорь Цветков
    • don108
      @aleksej799  https://yadi.sk/d/IFuwAV14trZW_Q   SW 2018 
    • Liudmila-Lar
      сборка (рама пластины).x_t @soklakov Это нормально, что у меня каждый раз зависимости слетают? В архиве файл сборка(рама пластины), папка рольганг.
    • vasyam
      применять ГКМ (горизонтально ковочная машина) для такой детали нет смысла, они применяются для деталей типа полуосей где есть длинная часть которая не деформируется, а деформация сосредоточена на конце. КГШП (кривошипный горяче штамповочный пресс) самое то, экономия металла и хорошая структура (волокна будут вытянуты, а не перерезаны) по сравнению с прокатом, хорошая структура по сравнению с литьем. Из недостатков требуется дорогая штамповая оснастка, и оборудование. Можно кстати и на молоте заготовку делать, но там уклоны и кузнечные напуски больше чем при штамповке на КГШП, расход металла будет больше.
    • Liudmila-Lar
      сборка (рама пластины).x_t @soklakov Это нормально, что у меня каждый раз зависимости слетают?
    • Badek
      Еще вопрос. При моделировании раздутия стенка профиля утоньшается. Это можно отследить в результатах перемещения. Т.е. % утоньшения стенки от первоначальной величины должен косвенно подтверждать % относительного удлинения при разрыве из спецификации на РК (не должен превышать)? 
    • Bot
      КОМПАС-3D v18 уже больше месяца доступен для скачивания. За это время АСКОН представил новую версию решения почти в трех десятках городов в рамках «Дня машиностроителя», а также провел презентацию КОМПАС-3D v18 на форуме «РазвИТие» в Москве. Традиционно запуску версии предшествовало масштабное бета-тестирование, участие в котором мог принять любой желающий. В материале ниже — итоги тестирования с цифрами, отзывы первых пользователей и их пожелания. А также анонс новинок по просьбам бета-тестеров. В этом году бета-тестирование КОМПАС-3D проходило под лозунгом «Я не ожидал, что он так может». Ведь концепция новой версии — увеличение скорости работы со сборками любой сложности. Речь и об ускорении большого числа имеющихся команд, и о повышении эффективности за счет ресурсов многоядерного процессора и видеокарты, и о сокращении итераций на выполнение повседневных задач за счет новых функций. Первые отзывы о КОМПАС-3D v18 Артём Мишенин, Донецкий национальный технический [...] View the full article
    • Bot
      КОМПАС-3D v18 уже больше месяца доступен для скачивания. За это время АСКОН представил новую версию решения почти в трех десятках городов в рамках «Дня машиностроителя», а также провел презентацию КОМПАС-3D v18 на форуме «РазвИТие» в Москве. Традиционно запуску версии предшествовало масштабное бета-тестирование, участие в котором мог принять любой желающий. В материале ниже — итоги тестирования с цифрами, отзывы первых пользователей и их пожелания. А также анонс новинок по просьбам бета-тестеров. В этом году бета-тестирование КОМПАС-3D проходило под лозунгом «Я не ожидал, что он так может». Ведь концепция новой версии — увеличение скорости работы со сборками любой сложности. Речь и об ускорении большого числа имеющихся команд, и о повышении эффективности за счет ресурсов многоядерного процессора и видеокарты, и о сокращении итераций на выполнение повседневных задач за счет новых функций. Первые отзывы о КОМПАС-3D v18 Артём Мишенин, Донецкий национальный технический [...] View the full article
    • Badek
      @karachun Руководствуясь верхней ссылкой модуль упругости для Шор А     =EXP((Shore-A Durometer)*0.0235-0.6403) в МПа. Тогда из резинового компаунда берем низший предел твердости по Шор А =57 ед. ( http://ooo-komed.ru/upload/docs/specific_VMQ-60_55631.pdf) Значит модуль упругости для 57 ед. твердости по Шора А =2МПа. Значит ли это, что при этом модуле упругости, в модели,  при симуляции раздутия напряжения должны быть меньше прочности при растяжении из спецификации РК-56631? Т.е. если напряжения больше или равны выбираем материал с большей твердостью по Шору?