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

FAQ/Unigraphics/POST


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



как реализовать в постпроцессоре вывод инструмента в УП  T0202,  сейчас выводит просто Т02.. а то так  станок не хавает

Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, ssuss1 сказал:

как реализовать в постпроцессоре вывод инструмента в УП  T0202,  сейчас выводит просто Т02.. а то так  станок не хавает

 

Заведите дополнительный адрес корректора с пустым значением Leader, с форматом вывода Tcode. Далее в блок где стоит адрес T добавьте адрес корректора со значением $mom_tool_number. Далее, на адрес T поставьте настройку No Word Seperator

 

23 часа назад, HD Gluk сказал:

А как это можно реализовать?

 

Следующим вопросом будет - "а готовые варианты есть?"

Вы средствами tcl языка пользоваться умеете? Имеет смысл рассказывать как это можно реализовать?

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

Есть проблема с выводом координат в токарной обработкt. Вообщем, инструмент-  резец с квадратной пластиной, делается торцовка сначала потом обработка конуса. Для корректного вывода траекторий приходится менять точки трассировки на пластине, для торцевой обработки точку ставлю в крайнюю левую вершину, для обработки самого конуса в нижнюю вершину пластины, все ок , но у меня резец привязан на станке по нижней кромке (X,Z). Соответственно при торцевой обработке в УП должно выводиться значение Z со смещением на половину диагонали пластины, то есть не Z0. Как и  где мне в обработке поставить смещение , что бы корректно в уп выводилось? Можно делать через редактор траекторий, но не удобно, при каждой генерации надо менять опять( 

%
G54 G40 G99 G90
(FACING_S)
T0202
S400 M03
G00 X157.2 Z10.
X137.2 Z0.       <----
G01 X101.6 F.6
G00 X157.2 Z10.
X280.
Z140.
(ROUGH_TURN_OD)
X139.096 Z17.475
X119.096 Z7.475
G01 Z6.675 F.6
G00 Z0.8
X119.743 Z0.453
X122.928 Z-2.962
X127.6 Z-75.987
G01 X128.731 Z-75.422 F1.
G00 X139.096 Z17.475
X280.
Z140.
M30
%

2021-06-03 (1).png

2021-06-03 (2).png

2021-06-03 (3).png

D127.prt

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, ssuss1 сказал:

Есть проблема с выводом координат в токарной обработкt. Вообщем, инструмент-  резец с квадратной пластиной, делается торцовка сначала потом обработка конуса. Для корректного вывода траекторий приходится менять точки трассировки на пластине, для торцевой обработки точку ставлю в крайнюю левую вершину, для обработки самого конуса в нижнюю вершину пластины, все ок , но у меня резец привязан на станке по нижней кромке (X,Z). Соответственно при торцевой обработке в УП должно выводиться значение Z со смещением на половину диагонали пластины, то есть не Z0. Как и  где мне в обработке поставить смещение , что бы корректно в уп выводилось? Можно делать через редактор траекторий, но не удобно, при каждой генерации надо менять опять( 

 

Если Вы работаете с двумя точками трассировки - вы должны работать с двумя корректорами на станке.

Привязываете нижнюю кромку в корректор 02, левую кромку например в 22, и в каждой операции вызываете соответственно: Т0202 и Т0222. Никакого смещения "на половину диагонали" в координатах здесь быть не должно, она будет учтена в разности привязки корректоров на станке. Это в случае как у Вас на прикрепленных рисунках показано.

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

 

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

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

Изменено пользователем Vladislav-dobrynin
Ссылка на сообщение
Поделиться на других сайтах

@Vladislav-dobrynin я понял, спасибо. вообще  я менял точку трассировки на боковую кромку для того что бы получить нормальную траекторию , а то при  нижней кромке  получается какая то хрень)  вот как на скрине:

image.png

Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, ssuss1 сказал:

@Vladislav-dobrynin я понял, спасибо. вообще  я менял точку трассировки на боковую кромку для того что бы получить нормальную траекторию , а то при  нижней кромке  получается какая то хрень)  вот как на скрине:

image.png

 

Проблема в ограничениях регионов обработки скорее всего. У меня NX19 сейчас не установлен, посмотреть не могу.

Ссылка на сообщение
Поделиться на других сайтах
59 минут назад, ssuss1 сказал:

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

Использование нейтрального резца - принципиально? Почему вы не возьмете обычный проходной левый резец, при этом данный контур с подрезкой торца можно изготовить используя пластину с любым углом. 

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

Изменено пользователем Vladislav-dobrynin
Ссылка на сообщение
Поделиться на других сайтах
02.06.2021 в 16:19, HD Gluk сказал:

А как это можно реализовать?

Если не через постбилдер, то с помощью функции MOM_run_postprocess можно собрать вю информацию по инструменту из программы, а потом добавить ее в шапку.

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

@dimsond88 Т.е. через MOM_run_postprocess постишь собирая информацию, а потом постишь снова ту же траекторию, но в основной файл? Не сталкивался просто, можно подробнее? Я инфу об инструменте собираю функцией на основе PB_CMD_create_tool_list или просто в процессе постпроцессирования с последующей дозаписью собранной инфы в шапку УП по метке.

Ссылка на сообщение
Поделиться на других сайтах
44 минуты назад, mr_Voden сказал:

Я инфу об инструменте собираю функцией на основе PB_CMD_create_tool_list или просто в процессе постпроцессирования с последующей дозаписью собранной инфы в шапку УП по метке.

 

На самом деле, есть два метода формирования информации в начале УП:

 

1. Произвести запись во временный файл, открыть новый файл, сформировать в нем шапку и перезаписать все тело УП из временного файла, затем удалив его.

 

2. Метод очистки буфера вывода, о котором я уже писал ранее. Записываем каждый кадр как строку в массив переменных, очищаем буфера вывода - в конце вывода имеем накопленный массив кадров всей УП и пустой файл. Далее формируем шапку и при помощи цикла распечатываем массив строк всей УП

Изменено пользователем Vladislav-dobrynin
Ссылка на сообщение
Поделиться на других сайтах

@Vladislav-dobrynin NX хорош тем, что одного и того же результата можно добиться разными способами. Не спорю насчет буферов, временных файлов и пр. - делал и так и так. Но, возможно, есть 3-й способ, раз PB_CMD_create_tool_list работает. Загляните в "Папка с NX\POSTBUILD\pblib\custom_command\pb_cmd_tool_list.tcl", она довольно любопытно устроена. Я не имею в виду вывод списка инструмента, а именно получение данных. Ей удобно пользоваться, чтобы ДО запуска постпроцессирования знать в какой операции какой тип инструмента применяется для автоматического переключения между линкованными постами (токарный/фрезерный).

Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, mr_Voden сказал:

@dimsond88 Т.е. через MOM_run_postprocess постишь собирая информацию, а потом постишь снова ту же траекторию, но в основной файл? Не сталкивался просто, можно подробнее? Я инфу об инструменте собираю функцией на основе PB_CMD_create_tool_list или просто в процессе постпроцессирования с последующей дозаписью собранной инфы в шапку УП по метке.

Да, все верно. С помощью MOM_run_postprocess запускаю пост который выводит только название инструмента например в файл tools.txt, а основным постом уже открываю этот файл и кидаю все в шапку УП.

Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, ssuss1 сказал:

@tm-ares не работает так, пробывал, в уп так же зет нольвыводит

У меня работает. Набросал на скорую руку обработку в NX 12 (см. вложение). Дело всё-таки в постпроцессоре. Из стандартного набора lathe_tool_tip выдаёт Z0. А lathe_turret_ref – как нужно вам Z10.2752.

Скрытый текст

%
N0010 G94 G90 G20
N0020 G50 X0.0 Z0.0
:0030 T00 H00 M06
N0040 G97 S0 M03
N0050 G94 G00 X70.2752 Z15.2752
N0060 Z10.2752
N0070 X35.6807
N0080 G92 S0
N0090 G96 M03
N0100 G95 G01 X34.8807 F.004
N0110 X10.2752
N0120 X9.4752 F.7
N0130 G94 G00 Z15.2752
N0140 X70.2752
N0150 G97 S0 M03
N0160 X60. Z5.
N0170 Z3.0614
N0180 X19.5912
N0190 G95 G02 X19.5122 Z.8 I1.0912 K-1.1702 F.004
N0200 G92 S0
N0210 G96 M03
N0220 G01 X19.8236 Z.4661
N0230 G03 X19.965 Z.275 I-.7679 K-.7161
N0240 G01 X39.8593 Z-34.183
N0250 G03 X40. Z-34.708 I-.9093 K-.525
N0260 G01 Z-99.75
N0270 G03 X39.7179 Z-100.4661 I-1.05 K0.0
N0280 G01 X38.474 Z-101.8
N0290 G02 X38.553 Z-104.0614 I1.1702 K-1.0912 F.7
N0300 G94 G00 X60.
N0310 Z5.
N0320 M02
%

 

Точки трассировки.prt

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

@tm-ares осталось понять как постпроцессор делает этот вывод:k05106: Сравнил их, явных отличий не нашел:boxed:

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

@ssuss1 Отличие в MOM_before_motion.

При lathe_tool_tip

Скрытый текст

#=============================================================
proc MOM_before_motion { } {
#=============================================================
  global mom_motion_event mom_motion_type

   FEEDRATE_SET


   switch $mom_motion_type {
      ENGAGE   { PB_engage_move }
      APPROACH { PB_approach_move }
      FIRSTCUT { catch {PB_first_cut} }
      RETRACT  { PB_retract_move }
      RETURN   { catch {PB_return_move} }
      default  {}
   }

   if { [llength [info commands PB_CMD_kin_before_motion] ] } { PB_CMD_kin_before_motion }
   if { [llength [info commands PB_CMD_before_motion] ] }     { PB_CMD_before_motion }
}

 

При lathe_turret_ref

Скрытый текст

#=============================================================
proc MOM_before_motion { } {
#=============================================================
  global mom_motion_event mom_motion_type

   FEEDRATE_SET

   global mom_pos mom_ref_pos
   set mom_pos(0) $mom_ref_pos(0)
   set mom_pos(1) $mom_ref_pos(1)
   set mom_pos(2) $mom_ref_pos(2)

   switch $mom_motion_event {
      circular_move {
         global mom_ref_pos_arc_center mom_pos_arc_center
         if {[hiset mom_ref_pos_arc_center(0)]} {set mom_pos_arc_center(0) $mom_ref_pos_arc_center(0)}
         if {[hiset mom_ref_pos_arc_center(1)]} {set mom_pos_arc_center(1) $mom_ref_pos_arc_center(1)}
         if {[hiset mom_ref_pos_arc_center(2)]} {set mom_pos_arc_center(2) $mom_ref_pos_arc_center(2)}
      }
      from_move {
         global mom_from_ref_pos mom_from_pos
         if {[hiset mom_from_ref_pos(0)]} {set mom_from_pos(0) $mom_from_ref_pos(0)}
         if {[hiset mom_from_ref_pos(1)]} {set mom_from_pos(1) $mom_from_ref_pos(1)}
         if {[hiset mom_from_ref_pos(2)]} {set mom_from_pos(2) $mom_from_ref_pos(2)}
      }
      gohome_move {
         global mom_gohome_ref_pos mom_gohome_pos
         if {[hiset mom_gohome_ref_pos(0)]} {set mom_gohome_pos(0) $mom_gohome_ref_pos(0)}
         if {[hiset mom_gohome_ref_pos(1)]} {set mom_gohome_pos(1) $mom_gohome_ref_pos(1)}
         if {[hiset mom_gohome_ref_pos(2)]} {set mom_gohome_pos(2) $mom_gohome_ref_pos(2)}
      }
   }

   switch $mom_motion_type {
      ENGAGE   { PB_engage_move }
      APPROACH { PB_approach_move }
      FIRSTCUT { catch {PB_first_cut} }
      RETRACT  { PB_retract_move }
      RETURN   { catch {PB_return_move} }
      default  {}
   }

   if { [llength [info commands PB_CMD_kin_before_motion] ] } { PB_CMD_kin_before_motion }
   if { [llength [info commands PB_CMD_before_motion] ] }     { PB_CMD_before_motion }
}

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Foksmen
      Так вот и хотелось бы посмотреть методики, которые используются для пересчёта с использованием эмпирических формул. Пересчитать то смогу конечно, не проблема )
    • Катугин
      Практически ушел от подетальной разработки, если только не нужно с определенного чертежа повторить деталь. И дальше зачастую её использую для вставки в многотел. Многотел сохраняю сборкой. После чего открываю сборку из неё открываю каждую деталь, и убиваю внешние связи. 
    • maxx2000
      ничего умножать и делить не надо. достаточно в параметрах операции задать глубины нужного размера  
    • Orchestra2603
      Ну, предлагаю такой подход... Не знаю, может это все слишком очевидно, ну хотя бы это по полочкам разложить - тоже полезно.   Вот допустим, есть у вас электродинамический вибровозбудитель. Он как устроен? Есть генератор переменного тока. Он встроен в электрическую цепь, и там есть свои электрические элементы. Но главное, там есть катушка индутивности намонтанная на трубу, а внутри нее подвижная масса. На подвижной массе еще одна катушка, и у той по обмотке течет еще какой-то свой постоянный ток. Когда ток проходит по обмотке трубы, то внутри возникает магнитное поле, а оно действует на ток внутри трубы протекающий по подвижной катушке, и возникает сила Ампера, котоая приводит в движение массу. Сила эта пропорциональна магнитной индукция, а та в свою очередь силе тока (как в подвижной, таки неподвижной катушке, но нас интересует ток в конутре, который переменный). Т.е. ток в контуре, где стоит катушка, выступает в роли внешней возбуждающей силы для подвижной массы. Возможны конечно нюансы и некоторые вариации, но суть вроде как такая.   Если электрическая цепь сложная с кучей контуров, и там натыкано много конденсаторов, резисторов и инудктивностей в каждом контуре, то распределение токов по контурам находится через решение системы линенынх дифференциальных уравнений второго порядка.  Ну, т.е. там по сути тоже куча собственных частот, каждая из которых описывает свой электрический резонансов. Можно также решать задачу на СЗ, и будут собственные вектора, которые описывают соотношения амплитуд и фаз токов в раных контурах, и собственные значения, которые соотвтетсвуют каким-то резонансам. Тогда ЭДС на генераторе выступает в роли внешней силы. В зависимости от распределения элементов и контуров в цепи коэффициент усиления между ЭДС на генераторе и перемещением подвижной массы в трубе в определенном контуре будет меняться. Типа как АЧХ получается, только чисто "электрическая". Это АЧХ чистемы ЭМС, если в вашей терминологии. В параметры этой АЧХ будут входить только параметры электрических элементов схемы.   Можно дальше представить себе, что в каждом контуре цепи воткнут свой генератор, и у каждого своя амплитуда тока и фазовый сдвиг, но всех у всех одна частота. И пускай в каждом контуре есть своя подвижная масса внутри какой-то своей неподвижной катушки. Получается, что есть некоторый вектор правых частей, собранный из ЭДС генераторов в разных контурах, а перемещения подвижных масс в разных контурах - это вектор отклика. Т.е. будет уже матрица частотных харкатеристик (системы ЭМС, если в вашей терминологии), а отклик подвижных масс и внешние возбуждения, будет описываться соотвтетсвующими векторами. В зависимости от того, как распределены амплитуды и фазы ЭДС генераторов по контурам, и какая выбрана частота возбуждения, могут проявляться или не проявляться какие-то резонансы (точно также будет какой-то коэффициент участия, коэффициент динамичности и т.д.). Если в каком-то контуре проявляется резонанс, то в этом контуре на этой частоте будет большой коффициент динамичности по амплитуде тока в этом контуре, и будет пропорционально увеличиваться амплитуда отклика по перемещениям соотвтетсвующей подвижной массы.   Теперь представим, что каждая i-я из этих подвижных масс соединяется с контрукцией - системой МС. Тогда получается так, что да, ток в i-м контуре зависит от электрической АЧХ системы ЭМС, и это влияет на механическую силу, действующую на пожвижную массу в i-м контуре, но вместе с этим свойства механической системы МС могут быть такими, что на этой частоте даже такая увеличенная амплитуда силы в не возбуждает большого механичского оклика (перемещения) в этой конкртеной i-й точке крепления с конструкцией. Т.е. в данном случае, получается, что вы задаете вектор ЭДС генераторво на входе, это все дело умножается на электрическую АЧХ системы ЭМС, и получается вектор механических сил Ампера, действующих на каждую из точек крепления. А дальше этот вектор сил умножается на АЧХ системы МС, чтобы получить вектор отклика конструкции.   Т.е. получается так, что две системы вообще соединяются последвательно: выход из первой служит входом для второй, и их АЧХ разделяются спокойно. В итоге, выходит, что АЧХ можно просто переменожить, чтобы получить итоговую АЧХ суммарной системы ЭМС+МС. Так получается из-за того, что электромагнитное взаимодействие создает механическую силу и влияет на механическое движение, но механическое движение не влиет на электромагнитные взаимодействия в цепи. Так ведь?   Такие, вот, мысли. Сам вообше не спец ни разу по электромагнитизму, так что поправьте, если где-то ошибаюсь.
    • zedowl
      все, разобрался сам, просто поставил глубокое сверление, а не простое, поменял цикл, вместо 81 стал 83, и там Q добавилось, я так понял с размеров диаметра сверла(но это не точно), и в 83 цикле cld17 умножил на 1000
    • gudstartup
      @Malsev прежде чем куда то что то ставить сравнивайте даташит или maininf.txt чтобы понять насколько перед вами аналогичная система.
    • zedowl
      разобрался какой параметр должен поменяться, у меня 81 цикл, но мне нужен другой, как выбрать другой цикл? мне подсказали, что нужно его выбрать в настройках операции, но я не знаю где это  
    • zedowl
      нет, не новость я даже не знаю какой параметр в коде должен меняться, у меня задание, либо из мм в микроны, либо наоборот   как понять какой цикл у меня выводится в программе? я найду этот цикл в EXTCYCLE и добавлю умножение или деление на 1000
    • maxx2000
      для тебя будет новостью что 1 мм это 1000микрон(0,001мм)? Т.е. если у тебя после запятой 3 знака то это уже в микронах.   
    • zedowl
      Я сделал в sprutcam простецкую модель, добавил траекторию сверления и не могу разобраться с циклами. Я совсем в этом не разбираюсь, у меня дипломный проект, помогите пожалуйста) У меня в коде выводится не тот цикл, я не могу найти тот параметр в циклах с 81 по 87
×
×
  • Создать...