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

Постпроцессор.


RaSKaT

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

в NC код вставлялись коментарии с именем инструмента.

А также возможно ли чтобы и размеры заготовки чтобы заносились в NC код автоматически ???

примерно так

BEGIN PGM MM

BLK FORM 0.1 Z X-123. Y-123. Z-36.

BLK FORM 0.2 X123. Y123. Z0.0

; Freza 16 (имя инструмента из библиотеки инструмента)

TOOL CALL 1 Z S2000

Если можно, то подскажите как

Заранее сенькс всем откликнувшимся

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


  • 2 года спустя...

какая интересная ветка!

Словно участники оной расположены на расстоянии

по меньшей мере нескольких световых месяцев.

Чтобы не нарушать традицию, мне бы следовало ответить

как минимум через полгода. Но осмелюсь нарушить

естественный ход....

Итак, параметры инструмента хранятся в переменных

mom_operation_type

mom_tool_diameter

mom_tool_corner1_radius

........ (и много еще переменных)......

Чтобы в момент смены инструмента выводить в УП

информацию о новом инструменте, необходимо

задать обработчики

MOM_start_of_path

MOM_tool_change

возможно, еще какие-нибудь...

Что касается информации о заготовке, то, IMHO,

ее в постпроцессоре не получить, т.к. в UG

заготовка вообще отсутствует. Есть система

машинных координат для привязки на станке.

А заготовка в реальности, когда дойдет дело

до обработки на станке, может оказать не

совсем такой как предполагалось.

Но если такая информация необходима, то ее

можно внести посредством вставки операторов

INSERT/

и их обрабатывать в построцессоре.

либо посредством вставки операторов

PPRINT/

Хотя, повторяю, всех тонкостей я не знаю, и,

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

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

Для FFF - нужна информация не о заготовке (кстати, она может присутствовать в UG), а о размерах параллелепипеда, в который вписана деталь, чтоб затем вывести две строки BLK FORM в управляющую программу для визуализации процесса съема материала непосредственно на станке. Сделать это можно, пишете небольшую dll, она запускается из TCL-постпроцессора, и все что нужно - ткнуть в обрабатываемую деталь, чтоб снять с нее тот самый part box (делал, работает).

Еще маленькое замечание (для Heidenhain) - информация о кубике заготовки полезна только для трех-осевой обработки. При повороте столов-голов визуализатор станка начнет такие "розочки" рисовать, что вы сами эти две строки BLK FORM затрете, толку с них никакого.

Удачи!

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

Ребята подскажите пожалуйста. Как в постпроцессоре указать, каким образом выводить радиусные перемещения? Выводится вот так

X-100.

Y-10.

G02 X-90. Y0.0 I-90. J-10.

(т.е. центр радиуса в абсолютных координатах)

а нужно вот так ( центр радиуса относительно)

X-100.

Y-10.

G2 X-90. Y0.0 I10. J0.0

И ещё как переделать пост чтобы выдавался Nc код в мм, а не в дюймах. Можно указывать, конечно, и при генерации в меню, чтобы не использовал Post defined, а использовал Metric. Но тогда ругается, что могут быть ошибки.

Заранее спасибо за ответы.

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

to Ug_user

Сделать это можно, пишете небольшую dll, она запускается из TCL-постпроцессора, и все что нужно - ткнуть в обрабатываемую деталь, чтоб снять с нее тот самый part box (делал, работает).

А как организовать вывод этих данных в начале УП? И желательно чтобы это выполнялось автоматически :surrender: .

to RaSkat

В самом построцессоре Вы не поправите круговые перемещения. Это можно сделать с помощью Post Builder'a. Открываете событие Circular Move и внизу находите опцию IJK Definition. Там 4 варианта - один из них должен подойти.

Для перевода единиц измерения из дюймов в мм, необходимо в файле *.tcl поправить переменные mom_kin_output_unit и mom_kin_post_data_unit с "IN" на соответсвенно "MM"

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

переменные mom_kin_output_unit и mom_kin_post_data_unit с "IN" на соответсвенно "MM"

Я это делал, но выдаёт ошибку.

Error received in do_event. Event name: MOM_before_motion.

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

тогда надо еще поправить процедуру в tcl следующим образом:

# Adjust feedrate format per Post output unit again.

global mom_kin_output_unit

if { $mom_kin_output_unit == "MM" } {

switch $feed_mode {

MMPM {

set feed_mode "MMPM"

CATCH_WARNING "Feedrate mode MMPM changed to IPM"

}

MMPR {

set feed_mode "MMPR"

CATCH_WARNING "Feedrate mode MMPR changed to IPR"

}

}

} else {

switch $feed_mode {

IPM {

set feed_mode "MMPM"

CATCH_WARNING "Feedrate mode IPM changed to MMPM"

}

IPR {

set feed_mode "MMPR"

CATCH_WARNING "Feedrate mode IPR changed to MMPR"

}

}

}

После этого все заработало.

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

Да, заработало. СПАСИБО :clap_1:

Странно, я создавал новый постпроцессор через постбилдер и ничего там не делал, кроме указания создать пост в метрической системе. Так вот там этот фрагмент .tcl файла выглядит так же как и в файле с дюймовой системой

# Adjust feedrate format per Post output unit again.

global mom_kin_output_unit

if { $mom_kin_output_unit == "IN" } {

switch $feed_mode {

MMPM {

set feed_mode "IPM"

CATCH_WARNING "Feedrate mode MMPM changed to IPM"

}

MMPR {

set feed_mode "IPR"

CATCH_WARNING "Feedrate mode MMPR changed to IPR"

}

}

} else {

switch $feed_mode {

IPM {

set feed_mode "MMPM"

CATCH_WARNING "Feedrate mode IPM changed to MMPM"

}

IPR {

set feed_mode "MMPR"

CATCH_WARNING "Feedrate mode IPR changed to MMPR"

}

}

}

а эти переменные были так

mom_kin_output_unit "MM"

mom_kin_post_data_unit "MM"

меня это сбило с толку :blink: подумал что не надо тут ничего править :)

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

Ок, одну поблему решили.

А как все-таки организовать вывод этих данных в начале УП? И желательно чтобы это выполнялось автоматически :surrender:

BEGIN PGM MM

BLK FORM 0.1 Z X-123. Y-123. Z-36.

BLK FORM 0.2 X123. Y123. Z0.0

; Freza 16 (имя инструмента из библиотеки инструмента)

TOOL CALL 1 Z S2000

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

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

BEGIN PGM MM

BLK FORM 0.1 Z X-123. Y-123. Z-36.

BLK FORM 0.2 X123. Y123. Z0.0

а вот с комментарием перед сменой инструмента где написано имя фрезы и её параметры мне сделали (продавец ЮГ давно ещё, как прогу купили ) вот так:

;( LOAD TOOL {Mill 16}: D=16.00, R1=0.00, ANGLE=0.00 )

TOOL CALL 16 Z S1000

в .tcl вроде бы вот это вот

#=============================================================

proc MOM_start_of_path { } {

#=============================================================

global first_linear_move ; set first_linear_move 0

TOOL_SET MOM_start_of_path

global PI

global mom_tool_catalog_number mom_tool_taper_angle mom_tool_diameter mom_tool_corner1_radius

if {[hiset mom_tool_taper_angle]} {

set ang_grad [expr round($mom_tool_taper_angle * 180.0 / $PI) ]

} else {

set ang_grad 0.0

}

MOM_output_text ";( LOAD TOOL {$mom_tool_catalog_number}: [format {D=%.2f, R1=%.2f, ANGLE=%.2f} $mom_tool_diameter $mom_tool_corner1_radius $ang_grad ] )"

if [llength [info commands PB_CMD_kin_start_of_path] ] {

PB_CMD_kin_start_of_path

}

}

ты напиши, если этого мало , то я пришлю тебе свой постпроцессор. Ты там уже сам разберёшься наверное, а то я не особо рублю в этом. Ну, а если разберёшься, то уже опишешь нам тут как это делается :)

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

вот этого достаточно , щас проверил на другом постпроцессоре. Вставил в .tcl в

proc MOM_start_of_path

вот это

global PI

global mom_tool_catalog_number mom_tool_taper_angle mom_tool_diameter mom_tool_corner1_radius

if {[hiset mom_tool_taper_angle]} {

set ang_grad [expr round($mom_tool_taper_angle * 180.0 / $PI) ]

} else {

set ang_grad 0.0

}

MOM_output_text ";( LOAD TOOL {$mom_tool_catalog_number}: [format {D=%.2f, R1=%.2f, ANGLE=%.2f} $mom_tool_diameter $mom_tool_corner1_radius $ang_grad ] )"

пишет название инструмента и его параметры

С BLK FORM такая вроде бы ситуёвина

в файле .def дописываем в

############ BLOCK TEMPLATE DECLARATIONS #############

следующее

BLOCK_TEMPLATE blank_form_1

{

Text[bLK FORM 0.1 Z]

X[-123]

Y[-123]

Z[-36]

}

BLOCK_TEMPLATE blank_form_2

{

Text[bLK FORM 0.2]

X[123]

Y[123]

Z[0]

}

далее, в файле .pui должно быть вот такая запись

## SEQUENCE START

#Program Start Sequence Start

{Start of Program} {MOM_set_seq_off PB_CMD_post_name PB_CMD_start_character blank_form_1 blank_form_2} {Start of Program}

#Program Start Sequence End

далее, в файле .tcl должно быть вот так

############## EVENT HANDLING SECTION ################

#=============================================================

proc PB_start_of_program { } {

#=============================================================

if [llength [info commands PB_CMD_kin_start_of_program] ] {

PB_CMD_kin_start_of_program

}

MOM_set_seq_off

PB_CMD_post_name

PB_CMD_start_character

MOM_do_template blank_form_1

MOM_do_template blank_form_2

}

Изменено пользователем RaSKaT
Ссылка на сообщение
Поделиться на других сайтах
  • 5 месяцев спустя...

Подскажите кто знает, как исправить в посте такой вывод УП:

N0800 G1 X-14.024 Y-2.249

N0810 X-14.084 Y-1.996

N0820 Z-2.99

N0830 X-14.164 Y-1.305

N0840 Z-3.051

В такой:

N0800 G1 X-14.024 Y-2.249

N0810 X-14.084 Y-1.996 Z-2.99

N0820 X-14.164 Y-1.305 Z-3.051

Сначало все было хорошо в стандартном постпроцессоре, переделал его на вывод в мм, исправил вывод круговых проходов и еще некоторые строчки в начале и в конце. А в итоге... :wallbash:

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

Ребята подскажите пожалуйста. Как в постпроцессоре указать, каким образом выводить радиусные перемещения? Выводится вот так

X-100.

Y-10.

G02 X-90. Y0.0 I-90. J-10.

(т.е. центр радиуса в абсолютных координатах)

а нужно вот так ( центр радиуса относительно)

X-100.

Y-10.

G2 X-90. Y0.0 I10. J0.0

И ещё как переделать пост чтобы выдавался Nc код в мм, а не в дюймах. Можно указывать, конечно, и при генерации в меню, чтобы не использовал Post defined, а использовал Metric. Но тогда ругается, что могут быть ошибки.

Заранее спасибо за ответы.

Если ещё интересует. попробуй в посте с расширением .def в блоке "BLOCK_TEMPLATE circular_move" посмотреть следующее и сравнить:

I[$mom_pos_arc_center(0) - $mom_prev_pos(0)]

J[$mom_pos_arc_center(1) - $mom_prev_pos(1)]

K[$mom_pos_arc_center(2) - $mom_prev_pos(2)]

а в файле .pui, сравните свою запись с этой:

{I} \

{"$mom_pos_arc_center(0) - $mom_prev_pos(0)" "" "Arc Start To Center"}

{J} \

{"$mom_pos_arc_center(1) - $mom_prev_pos(1)" "" "Arc Start To Center"}

{K} \

{"$mom_pos_arc_center(2) - $mom_prev_pos(2)" "" "Arc Start To Center"}

Искренне надеюсь, что помогло.

С уважением,

Ю.

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

Неужели никто не знает и не сталкивался с этим? Как же координату Z прицепить к координатам XY в одну строку? В постбилдере сравнил набор элементов линейных перемещений в блоке "linear_move" "своего" постпроцессора с исходным, там все одинаково.

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

Как не ответить на этот крик души?!

Родной, кроме закладочки "Linear Move" в разделе Programm & Toolpath есть закладочка "Rapid Move", внимательно посмотрев на которую увидишь, что там - действительно! - разнесены перемещения по XY и Z. Скорее всего, у тебя и выводятся перемещения не с подачей G1, а с G00......

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

Приспичило мне, чтобы в BLK FORM были "живые" значения заготовки. Почитал тему, так и не ответили как это сделать. Может кто-то подскажет? :rolleyes:

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

Для одного из Заказчиков я делал автоматический замер габаритов заготовки  и их вывод в BLK FORM. Вариантов исполнения - несколько. Один из - при процессировании запускаем DLL, которая при помощи UF_MODL_ask_bounding_box_exac вычисляет габариты заготовки и - постпроцессор выводит их в УП после разумного округления. 

Можно проще - делаешь UDE и вешаешь на группу программ этот UDE с один раз записанными габаритами. Изменилась заготовка - поменяй один раз значения в UDE.

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

C UDE вариант, но хочется автоматизацию. В одном из постпроцессоров видел, что в BLK выводились координаты параллелограмма, в который вписывалась обработка.

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...