Перейти к публикации

FAQ/Unigraphics/POST


Рекомендованные сообщения



А вы до смены инструмента массив читаете или после?

И до и после пробовал. Не катит.

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

Хорошо. Буду благодарен

 

Не нашел я тот пост. А человек, который писал его, уже у нас не работает.

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

Доброго времени суток!

Столкнулся с моментом, что при подгруженном станке выполняя симуляцию по машинному коду пост не следует своим лимитам оси вращения... при чем местами.

Подскажите, в каком случае и каким образом пост забирает данные об оси из кинематической модели станка? NX9.

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

День добрый. Столкнулся с проблемой, в пост добавляю например такую фичу 

 

global mom_tool_axis

 

 

MOM_output_text "$mom_tool_axis(0)"

MOM_output_text "$mom_tool_axis(1)"

MOM_output_text "$mom_tool_axis(2)"

 

выдает can't read "mom_tool_axis(0)": variable isn't array. Суть конечно не в том, почему не работает именно эта фича. Фича для примера. Просто он мне мозг насилует с этим isn't array. Особенно обидно когда убираешь координаты массива со скобками он начинает выдавать ошибку  can't read "mom_tool_axis": variable is array.

В NX\Post Review Tool переменные массива отображает.

Кто сталкивался с таким? В чем может быть проблема?

Уважаемый, все в порядке - Вы тут не при чем (особенно удивляют комменты мэтров - про кривость поста и.т.п. и.т.д.)... Совет простой. Напишите Вашу фичу, как вы хотели, но закомментив все. Например так:

#global mom_tool_axis

#MOM_output_text "$mom_tool_axis(0)"

#MOM_output_text "$mom_tool_axis(1)"

#MOM_output_text "$mom_tool_axis(2)"

 

Сохраните пост. Закройте PB. Откройте TCL-й файл в редакторе текстовом. Раскомментарьте. Сохраните. Имейте счастье и да пребудет с Вами сила! Ну и да - забыл - теперь смело можно открыть пост в PB и никакой ругани не будет отныне.

 

А ну да... Разумеется это будет работать только при условии, что данные переменные есть... Ну то есть что то типа

if [info exist mom_tool_axis(0)] и.т.д. и.т.п.

 

 

ЗЫ... И чего это я такой добрый ныне, даже странно ))))

 

2ЗЫ - только мб не MOM_output_text, а может все таки MOM_output_literal?

Ссылка на сообщение
Поделиться на других сайтах
Уважаемый, все в порядке - Вы тут не при чем (особенно удивляют комменты мэтров - про кривость поста и.т.п. и.т.д.)... Совет простой. Напишите Вашу фичу, как вы хотели, но закомментив все. Например так: #global mom_tool_axis #MOM_output_text "$mom_tool_axis(0)" #MOM_output_text "$mom_tool_axis(1)" #MOM_output_text "$mom_tool_axis(2)"   Сохраните пост. Закройте PB. Откройте TCL-й файл в редакторе текстовом. Раскомментарьте. Сохраните. Имейте счастье и да пребудет с Вами сила! Ну и да - забыл - теперь смело можно открыть пост в PB и никакой ругани не будет отныне.   А ну да... Разумеется это будет работать только при условии, что данные переменные есть... Ну то есть что то типа if [info exist mom_tool_axis(0)] и.т.д. и.т.п.     ЗЫ... И чего это я такой добрый ныне, даже странно ))))   2ЗЫ - только мб не MOM_output_text, а может все таки MOM_output_literal?

 

В 6 версии PB такого глюка не замечал.

Поэтому предположил что этих переменных и нет вовсе в посте

Это скорее в PB версии 8 такой глюк?

 

 

Доброго времени суток! Столкнулся с моментом, что при подгруженном станке выполняя симуляцию по машинному коду пост не следует своим лимитам оси вращения... при чем местами. Подскажите, в каком случае и каким образом пост забирает данные об оси из кинематической модели станка? NX9.

 

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

Попробуйте следующее:

Найдите в посте процедуры стандартные

PB_CMD_reload_iks_parameters

PB_CMD_reverse_rotation_vector

 

В самом начале процедур поставьте команду return

После этого пост должен работать одинаково как при загруженной isv модели так и без нее

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

Vladislav-dobrynin,

спс за наводку, действительно дело в PB_CMD_reload_iks_parameters, а точнее в команде MOM_reload_iks_parameters. Жаль только о ней нет инфы ни в доке, ни самого кода в посте и базовой tcl-ке не нашел. Ну, чтобы знать, чем может аукнуться ее погашение)

Ссылка на сообщение
Поделиться на других сайтах
Ну, чтобы знать, чем может аукнуться ее погашение)

 

Все от того как постпроцессор написан зависит. Подозреваю (могу ошибаться не проверял) если пост разработан под использование множества локальных систем координат, устанавливаемых в отдельности на каждую наклонную грань, то при погрузке ISV нужны эти процедуры.

Ну а в наших постах не "аукнулось" ни разу.

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

Уважаемый, все в порядке - Вы тут не при чем (особенно удивляют комменты мэтров - про кривость поста и.т.п. и.т.д.)... Совет простой. Напишите Вашу фичу, как вы хотели, но закомментив все. Например так:

#global mom_tool_axis

#MOM_output_text "$mom_tool_axis(0)"

#MOM_output_text "$mom_tool_axis(1)"

#MOM_output_text "$mom_tool_axis(2)"

 

Сохраните пост. Закройте PB. Откройте TCL-й файл в редакторе текстовом. Раскомментарьте. Сохраните. Имейте счастье и да пребудет с Вами сила! Ну и да - забыл - теперь смело можно открыть пост в PB и никакой ругани не будет отныне.

 

А ну да... Разумеется это будет работать только при условии, что данные переменные есть... Ну то есть что то типа

if [info exist mom_tool_axis(0)] и.т.д. и.т.п.

 

 

ЗЫ... И чего это я такой добрый ныне, даже странно ))))

 

2ЗЫ - только мб не MOM_output_text, а может все таки MOM_output_literal?

Спасибо! Попробую, только до NX доберусь.

Вся идея в том, чтоб менять Initial axis в токарно-фрезерном посте на ходу, в начале операции.

А принципиальная разница между текст и литерал помимо того, что текс отключает нумерацию, еще какая то есть?

В 6 версии PB такого глюка не замечал.

Поэтому предположил что этих переменных и нет вовсе в посте

Это скорее в PB версии 8 такой глюк?

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

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

возникла проблема со сверлением когда отверстия находятся на разной высоте. НХ красиво ресует переход от отверстия к отверстию на безопасной высоте.

но вот пост выдаёт другое.

не могу понять где это исправить. надо чтоб просверлил первое отверстие потом поднялся на безопасную высоту перешёл на следующее отверстия 

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

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

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

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

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

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

 

 

Причем здесь синумерик вообще? Просто NX плохо знаете. Сделайте маневрирование от отверстия к отверстию по плоскости безопасности. После выбора группы обрабатываемых отверстий, все в том же меню выбора геометрии "от точки к точке", выбираете вкладку маневрирование, выбираете пару отверстий и задаете или "по плоскости безопасности" или "на заданном расстоянии".

 

Это делается всегда при обработке отверстий расположенных на различной высоте, независимо от того какая стойка, какие циклы и как написан постпроцессор. Любой постпроцессор выведет это в виде маневрирования по G0 при переходе от одного отверстия к другому.

post-27263-0-30621800-1441220325.jpg

Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...
  • 2 недели спустя...
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
 

 

Собственно вопрос всё о том же

спустя более чем год я опять вернулся к необходимости избавиться от старого постпроцессора dll который работает только на WinXP 32bit (и который не работает на win7 64bit, а исходников нет)

Хочу таки написать пост в нативном pui и переехать на новое железо и os

 

Суть вот в чём, старый dll постпроцессор обрамляет ставит G08P1 перед каждым замкнутым контуром обработки.

 

Пример

%
O0111
( 42 op - 3 )
N9901 T11 M06
N1 G21 G17 G90 G94
N2 S1700 M03
N3 G54
N4 G00 X120.283 Y.001
N5 G43 Z62. M08 H11
N6 G01 Z49. F5000.
N7 Z47. F300.
N8 G08P1
N9 X103.263
N10 Y38.048 F500.
N11 G03 X97.783 Y43.528 I-5.48 J0
N12 G01 X-11.65
N13 G03 X-14.539 Y42.76 I.001 J-5.823
N14 G01 X-14.543 Y42.757
N15 X-14.548 Y42.755
N16 G03 X-17.298 Y38.04 I2.694 J-4.73
N17 G01 Y-38.043
N18 G03 X-15.214 Y-42.303 I5.419 J.01
N19 X-11.651 Y-43.528 I3.563 J4.572
N20 G01 X97.783
N21 G03 X103.263 Y-38.048 I0 J5.48
N22 G01 Y.001
N23 G08P1
N24 X96.243
N25 Y36.508
N26 X-10.278
N27 Y-36.508
N28 X96.243
N29 Y.001
N30 G08P1
N31 X89.223
N32 Y29.488
N33 X-3.258
N34 Y-29.488
N35 X89.223
N36 Y.001
N37 G08P1
N38 X82.203
N39 Y22.468
N40 X3.762
N41 Y-22.468
N42 X82.203
N43 Y.001
N44 G08P1
N45 X75.183
N46 Y15.448
N47 X10.782
N48 Y-15.448
N49 X75.183
N50 Y.001
N51 G08P1
N52 X68.163
N53 Y8.428
N54 X17.802
N55 Y-8.428
N56 X68.163
N57 Y.001
N58 G08P1
N59 X61.143
N60 Y1.408
N61 X24.822
N62 Y-1.408
N63 X61.143
N64 Y.001
N65 Z49.
N66 G08P0
N67 Z62. F5000.
N68 X120.283
N69 Z45.
N70 Z43. F300.
N71 G08P1
N72 X103.263

 

Те G08P1 не чередуется с G08P0

G08P0 - выводится только перед перемещением по Z и G00, а также в том случае если дале идёт трёхмерная обработка с перемещением сразу по 3м осям.

N3387 G08P1
N3388 X-37.63
N3389 Y-19.226
N3390 X-36.302
N3391 Y-39.934
N3392 X-37.63
N3393 Y-29.58
N3394 Y-24.58
N3395 G03 X-41.13 Y-21.08 I-3.5 J0
N3396 G08P0
N3397 G01 Z62. F5000.
N3398 X-34.006 Y11.685
N3399 Z-16.908
N3400 X-29.89 Z-17.196 F250.
N3401 X-29.871 Y11.965 Z-17.215
N3402 X-29.868 Y12.245 Z-17.235
N3403 Y46.914 Z-19.659
N3404 X-29.872 Y47.195 Z-19.679
N3405 X-29.891 Y47.475 Z-19.699
N3406 X-44.691 Z-20.733
N3407 X-44.864 Y47.422 Z-20.746
N3408 X-45.012 Y47.316 Z-20.759
N3409 X-45.118 Y47.168 Z-20.772
N3410 X-45.171 Y46.995 Z-20.784
N3411 Y29.58 Z-22.002
N3412 G08P1
N3413 X-46.171
N3414 Y46.92 F400.
N3415 G02 X-44.616 Y48.475 I1.555 J0
N3416 G01 X-29.316
N3417 G02 X-28.99 Y48.44 I0 J-1.555
N3418 X-28.868 Y46.92 I-11.121 J-1.656
N3419 G01 Y12.24
N3420 G02 X-28.989 Y10.72 I-11.014 J.108
N3421 X-29.316 Y10.685 I-.327 J1.52
N3422 G01 X-44.616
N3423 G02 X-46.171 Y12.24 I0 J1.555
N3424 G01 Y29.58
N3425 G08P1
N3426 X-43.171
N3427 Y45.475

 

Вопросы:

1. Для fanuc 0i-mc действительно необходима простановка G08P1 на каждый замкнутый контур обработки ? или достаточно в самом начале только один раз вывести G08P1 и она далее будет действовать на все контура.

 

2. Если обязательно нужно на каждый замкнутый контур отдельно то каким образом это можно проконтролировать в постпроцессоре и вывести нужную строку G08P1 ??

 

Из за этого одного единственного допотопного постпроцессора до сих пор сижу за старым компом.

winXP 32bit стал как необходимость (даже памяти не добавить) .... ((

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

вроде как G08 - действует до отключения или перезагрузки, те вывода на каждый контур по отдельности не требует

 

P1 : Включите режим управления с предварительным просмотром.
P0 : Отключите режим управления с предварительным просмотром.

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

 

Но в постпроцессоре предоставленном поставщиком станка G08P1 выводится именно на каждый контур ...

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

Помогите понять: в Heidenhain-посте для станков в поставке NX9 есть команда PB_CMD_check_plane_change_in_rapid_move. Если в определенном месте ставлю прерывание, то оно не срабатывает.

 
#=============================================================
# Check for the tool axis change during rapid move using AUTO_3D function
#
# 06-18-2012 Jason - Initial version
# 10-18-2013 Jason - Behavior change: table axis will not return to zero if the tool vector turn to be along Z axis in rapid move.


  global mom_kin_machine_type
  global save_mom_kin_machine_type
  global mom_pos mom_mcs_goto
  global mom_cycle_spindle_axis
  global dpp_ge
  global seq
  global mom_out_angle_pos mom_prev_out_angle_pos
  global coord_rot_angle
  global dpp_TNC_plane_change_in_rapid ;#This variable is used to record the plane change status in rapid move.
  global mom_result
  global mom_tool_axis


  if { ![string match "*5_axis*" $mom_kin_machine_type] } {
return
  }


  if { $dpp_ge(toolpath_axis_num)=="5" } {
return
  }


  set dpp_ge(coord_rot) [DPP_GE_COOR_ROT "ZYX" coord_rot_angle coord_offset pos]


  if { $dpp_ge(coord_rot) == "NONE" } {
     if {![info exists mom_prev_out_angle_pos(0)] || ![info exists mom_prev_out_angle_pos(1)]} {
return
     }


     if {![EQ_is_equal $mom_out_angle_pos(0) $mom_prev_out_angle_pos(0)] || ![EQ_is_equal $mom_out_angle_pos(1) $mom_prev_out_angle_pos(1)]} {
        MOM_output_literal "PLANE RESET STAY"
        MOM_abort "Something wrong!" # <------------------------------------------------------------------------------------------------------- HERE


        # if it's not auto3d condition, restore the kinematics and recalculate mom_pos
        DPP_GE_RESTORE_KINEMATICS


        if {"1" == [MOM_convert_point mom_mcs_goto mom_tool_axis]} {
           set i 0
           foreach value $mom_result {
              set mom_pos($i) $value
              incr i
           }
        }


        MOM_reload_variable -a mom_pos
        MOM_force Once fourth_axis fifth_axis
        MOM_enable_address fourth_axis fifth_axis
        MOM_force Once fourth_axis fifth_axis
        MOM_do_template rapid_rotary
     }
return
  }
  if {![EQ_is_equal $dpp_ge(prev_coord_rot_angle,0)  $coord_rot_angle(2)] || ![EQ_is_equal $dpp_ge(prev_coord_rot_angle,1)  $coord_rot_angle(1)] || ![EQ_is_equal $dpp_ge(prev_coord_rot_angle,2)  $coord_rot_angle(0)]} {
     set dpp_ge(coord_rot_angle,0) $coord_rot_angle(2)
     set dpp_ge(coord_rot_angle,1) $coord_rot_angle(1)
     set dpp_ge(coord_rot_angle,2) $coord_rot_angle(0)
     set dpp_ge(prev_coord_rot_angle,0)  $coord_rot_angle(2)
     set dpp_ge(prev_coord_rot_angle,1)  $coord_rot_angle(1)
     set dpp_ge(prev_coord_rot_angle,2)  $coord_rot_angle(0)
     VMOV 3  pos mom_pos


     if {[EQ_is_lt $mom_out_angle_pos(0) 0]} {
           set seq "SEQ-"
     } else {
           set seq "SEQ+"
     }
     MOM_do_template plane_spatial_move
     MOM_disable_address fourth_axis fifth_axis


     set dpp_TNC_plane_change_in_rapid 1
  }

Причем если условие сравнение текущих углов наклона с предыдущими заменить на что-то более явное, то все работает как надо...

Так в чем тут нюанс? Совсем не улавливаю...(

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

Ув. Ug_user!

Возможно ли в Postbuilder задать вывод подобных кадров?
Проведен базовый курс NX и Postbuilder.
Препод сходу ответить не смог.

$P_UIFR[11]=CTRANS(X,0,Y,0,Z,0,B,0)

G0 SUPA G40 G90 Z=$AA_SOFTENDP[MA_Z]-1 D0 M40 - выход в 0 по Z для смены инструмента и палеты
CS_UHEAD("H") - цикл станка, голова в 0 по С, горизонтально


CS_TOOL("") - цикл станка, смена инструмента, между "" код инструм.

Ссылка на сообщение
Поделиться на других сайтах
  • SHARit закрепил это тему

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

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

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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




  • Сообщения

    • eljer0n
      Большое спасибо! Посмотрю. Но, судя по всему, даже если удастся заставить его сохранять чертеж с трехзначным исполнением, видимо, в той же спецификации правильного отображения не добиться. У Леона с товарищем был об этом разговор, что солид вроде как не воспринимает исполнения дальше двузначного. Хотя, может и я неправильно понял. Вернусь к этому вопросу чуть позже. Еще раз спасибо за совет.
    • mrVladimir
      @gudstartup @Viktor2004 спасибо Вам за такое участие.  Я вот тоже в maintenance manual заглянул (наконец-то ). А вот фраза "при замене FROM/SRAM необходимо ..." (под пунктом 3 во вложении) не подразумевает, что появление ps5523 произойдет только если мы решим на нашей чпу поменять именно FROM/SRAM. А при замене других печатных плат (в том числе и материнской ) необходимо только как написано в пункте 2 восстановить данные памяти SRAM и, при необходимости, файлы пользователя. Нет?
    • maxx2000
      @davidovka это же очевидно. Вдруг нужного размера не окажется  как в анекдоте  
    • davidovka
      А для чего и сотни исполнений в таблице и гибкость одновременно?
    • ak762
      в СВ есть встроенный калькулятор для расчета балок при различных сценариях нагружения если ваш профиль монорельса совпадает с предопределенными профилями то можно прикинуть поведение монорелься без анализа на картинке 2 расчета двутавровой балки в качестве теста    
    • Viktor2004
      @mrVladimir не спешите отчаиваться. Вопрос спорный Я завел новую тему в которой мы это выясним  
    • Viktor2004
      Уважаемые специалисты. У кого был опыт замены фануковских плат? Именно на ЧПУ. Пожалуйста напишите какое ЧПУ и какую плату меняли И результат. Подошла или не подошла  
    • gudstartup
      @mrVladimir к сожалению с вашей платой все не так просто вам придется приобрести ее клон то есть она должна быть подготовлена продавцом и в нее должен быть записан серийный номер вашей старой платы он на штрихкоде а так готовить умеют не все или готовьтесь к сертификации опций также есть еще один аппаратный вариант но не каждый будет на новую плату м\сх перепаивать с риском превратить ее в кирпич.   если бы у вас был отдельный модуль процессора то вы бы просто переставили его в новую плату и все а с этой платой из-за ее не модульности намучаешься
    • SAPRonOff
      в окне состава изделия снять замочки у колонки позиция, тогда генератор колонки состава изделия не будет им присваивать свои значения автоматически, а запомнит то - что вы поставили или стояло до изменений проекта: 
    • Kelny
      Смотреть надо процедуру main, почти в самом конце: Слева от этих строк на сером поле ставите красные точки (клик мышкой) и запускаете макрос, когда макрос дойдёт до обозначенных строк можно будет наводить мышку на перменные, например, sPathName и смотреть значения, что бы определить где сбой: Для продолжения выполнения макроса нажимаем зелёный треугольничек (как кнопка Play).      
×
×
  • Создать...