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

FAQ/Unigraphics/POST


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

Нет, ошибся.

Команду выводить то он выводит....а вот с профилем по моему беда.

Он выводит команду с параметрами Fanuc, но по типу Siemens. Я, в принципе, в голове примерный план переделки накидал, но всё времени нет заняться.

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


Он выводит команду с параметрами Fanuc, но по типу Siemens
 

Вообщем как бы я ни старался, выводит по G71 ...по G72 вообще никак не хочет. Так то вроде выводит простейшую обработку.

В принципе я даже шар смог обработать циклом, но только с 1 стороны, то есть полшара по факту.


# This command is to detect the rough turning cycle type, calculate the cycle parameters and create a list
# to store the contour datas and start and end tags
#
# 05-30-2013 levi - Initial version
  global dpp_turn_cycle_g_code
  global dpp_turn_cycle_retract
  global dpp_turn_cycle_msg
  global dpp_turn_cycle_cut_feed
  global dpp_turn_cycle_cut_speed
  global dpp_turn_cycle_stock_x
  global dpp_turn_cycle_stock_z
  global mom_level_step_angle
  global mom_clearance_from_diameters
  global mom_clearance_from_faces
  global mom_feed_cut_value
  global mom_spindle_speed
  global mom_stock_part
  global mom_face_stock
  global mom_radial_stock
  global mom_sys_lathe_x_double
  global mom_operation_type
  global dpp_rough_turn_cycle_start
  global dpp_contour_list
  global mom_template_subtype
  global mom_pos
  global mom_cutcom_status
  global dpp_save_cutcom_status
 
# Flag to indicate rough turning cycle contour begin
  set dpp_rough_turn_cycle_start 1
 
# If the operation is finishing, pause postprocessor and output warning message
  if {$mom_operation_type == "Turn Finishing"} {
     PAUSE "Finish operation can't call rough turning cycle"
  }
 
# Set default G motion type for rough turning cycle
  set dpp_turn_cycle_g_code 71
 
# Detect rough turning cycle type according to the step angle
  if { [EQ_is_equal $mom_level_step_angle 270] || [EQ_is_equal $mom_level_step_angle 90] } {
    set dpp_turn_cycle_g_code 72
    set dpp_turn_cycle_retract $mom_clearance_from_faces
    set dpp_turn_cycle_msg "ROUGH FACE CYCLE"
  } elseif { [EQ_is_equal $mom_level_step_angle 180] || [EQ_is_equal $mom_level_step_angle 0] } {
    set dpp_turn_cycle_g_code 71
    set dpp_turn_cycle_retract $mom_clearance_from_diameters
    set dpp_turn_cycle_msg "ROUGH TURN CYCLE"
  } else {
    set msg "**FATAL** canned cycle requested with non-turn/face cut angle"
    MOM_output_text $msg
    MOM_abort $msg
  }
 
# Calculate the parameters for rough turning cycle block and set the
# direction for tool nose radius compensation
  set dpp_turn_cycle_cut_feed $mom_feed_cut_value
  set dpp_turn_cycle_cut_speed $mom_spindle_speed
  set dpp_turn_cycle_stock_x [expr $mom_sys_lathe_x_double * ($mom_stock_part + $mom_radial_stock)]
  set dpp_turn_cycle_stock_z [expr $mom_stock_part + $mom_face_stock]
 
  # Adjust the sign of U and W, output tool nose radius compensation code
  if {[info exists dpp_save_cutcom_status]} {
     if { $dpp_save_cutcom_status == "RIGHT"} {
        if {[EQ_is_equal $mom_level_step_angle 0]} {
           set dpp_turn_cycle_stock_x [expr -$dpp_turn_cycle_stock_x]
           set dpp_turn_cycle_stock_z [expr -$dpp_turn_cycle_stock_z]
        }
        if {[EQ_is_equal $mom_level_step_angle 90]} {
           set dpp_turn_cycle_stock_x [expr -$dpp_turn_cycle_stock_x]
        }
        if {[EQ_is_equal $mom_level_step_angle 270]} {
           set dpp_turn_cycle_stock_z [expr -$dpp_turn_cycle_stock_z]
        }
        set mom_cutcom_status $dpp_save_cutcom_status
        MOM_enable_address G_cutcom; #G_cutcom has been disabled in approach move
        MOM_force once G_cutcom D
        MOM_do_template cutcom_on
     } elseif {$dpp_save_cutcom_status == "LEFT"} {
        if {[EQ_is_equal $mom_level_step_angle 0]} {
           set dpp_turn_cycle_stock_z [expr -$dpp_turn_cycle_stock_z]
        }
        if {[EQ_is_equal $mom_level_step_angle 90]} {
           set dpp_turn_cycle_stock_x [expr -$dpp_turn_cycle_stock_x]
           set dpp_turn_cycle_stock_z [expr -$dpp_turn_cycle_stock_z]
        }
        if {[EQ_is_equal $mom_level_step_angle 180]} {
           set dpp_turn_cycle_stock_x [expr -$dpp_turn_cycle_stock_x]
        }
        set mom_cutcom_status $dpp_save_cutcom_status
        MOM_enable_address G_cutcom
        MOM_force once G_cutcom D
        MOM_do_template cutcom_on
     }
  }
 
# Create a list to store the contour NC codes and start and end tags
  set dpp_contour_list
  # Store the start tag
  set o_buffer [MOM_do_template turn_cycle_start_tag CREATE]
  lappend dpp_contour_list $o_buffer
 

 

 

оно же ведь? Вроде есть команда при повороте угла обработки сделать G72...может я что не так делаю...

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

Подскажите по helix_move.

 

Есть у нас фануки, там вывод круговой интерполяции через I J K ... УП винтовой обработки в симке отрисовывается правильно.

А есть окума, там нужно через R...так вот с винтовой обработкой получается беда. В чем проблема?


G40 G53 G80 G21
G90
G15 H01
GOTO N04
(HOLE_MILLING)
N04
G30 P1
T4 M6 (N4 16.0 MILL16)
M1
M03 S4000
G00 X0.0 Y0.0
G17 G56 Z10. H04 M08
Z.5
G01 X.1 Y-.794 F3000.
G03 X12.75 Y0.0 R6.35
X12.75 Y0.0 Z.3 R12.75
X12.75 Y0.0 Z.1
X12.75 Y0.0 Z-.1
X12.75 Y0.0 Z-.3
X12.75 Y0.0 Z-.5
X12.75 Y0.0 Z-.7
X12.75 Y0.0 Z-.9

 

 

 

 


 
G40 G90 G69 G21
G10 L2 P1 X0.0 Y0.0 Z0.0
(HOLE_MILLING)
G54.1 P1
T4 M6 (T4 16.00000000000000000 MILL16)
T4 M1
M03 S4000
G00 X0.0 Y0.0
G17 G43 Z10. H04 M08
Z.5
G01 X.1 Y-.794 F3000.
G03 X12.75 Y0.0 I6.3 J.794
X12.75 Y0.0 Z.3 I-12.75 J0.0
X12.75 Y0.0 Z.1 I-12.75 J0.0
X12.75 Y0.0 Z-.1 I-12.75 J0.0
X12.75 Y0.0 Z-.3 I-12.75 J0.0
X12.75 Y0.0 Z-.5 I-12.75 J0.0
X12.75 Y0.0 Z-.7 I-12.75 J0.0
X12.75 Y0.0 Z-.9 I-12.75 J0.0

 

 

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

Через R полная окружность не выводится. Если хотите с R, то выводите по квадрантам.

Ссылка на сообщение
Поделиться на других сайтах
Через R полная окружность не выводится. Если хотите с R, то выводите по квадрантам.
 

Это я понимаю...но видимо сам PB_CMD_helix_move не может считать по квадрантам? Не реагирует на галку вывода по квадрантам

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

Подскажите, пожалуйста еще.

На окуме перед сменой инструмента ставится строка N01 и т.д  для быстрого начала программы с любого инструмента. (в начале программы ставится строка GOTO N05, например)

В посте я сделал что букве N присваивается $mom_tool_adjust_register и все устраивало пока не столкнулся с вызовом второй раз одного и того же инструмента.

Получилось что номер после N дублируется. Как сделать так, чтобы при каждой смене инструмента начиная с 01 присваивалось +1 и так далее?

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

Подскажите, пожалуйста еще.

На окуме перед сменой инструмента ставится строка N01 и т.д  для быстрого начала программы с любого инструмента. (в начале программы ставится строка GOTO N05, например)

В посте я сделал что букве N присваивается $mom_tool_adjust_register и все устраивало пока не столкнулся с вызовом второй раз одного и того же инструмента.

Получилось что номер после N дублируется. Как сделать так, чтобы при каждой смене инструмента начиная с 01 присваивалось +1 и так далее?

 

В старт оф програм инициализируешь переменную нулем, а при каждой смене инструмента её увеличиваешь на единицу и выводишь.

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

Подскажите, пожалуйста еще.

На окуме перед сменой инструмента ставится строка N01 и т.д  для быстрого начала программы с любого инструмента. (в начале программы ставится строка GOTO N05, например)

В посте я сделал что букве N присваивается $mom_tool_adjust_register и все устраивало пока не столкнулся с вызовом второй раз одного и того же инструмента.

Получилось что номер после N дублируется. Как сделать так, чтобы при каждой смене инструмента начиная с 01 присваивалось +1 и так далее?

Насколько я понял, при выводе программы кадры у вас не нумеруются. Для удобства вам нужно пронумеровать только кадры со сменой инструмента. У вас в начале постпроцессора должна стоять команда MOM_set_seq_off, она отключает нумерацию кадров. Попробуйте перед сменой инструмента вставить MOM_set_seq_on, а после смены вернуть MOM_set_seq_off. Если всё сделаете правильно, то только кадры смены инструмента будут иметь номер. Это будет правда не 1,2,3,4... и т.д., но может вас это устроит.

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

 

все бы ничего, но я не программист по специальности  :sad:

Все равно спс, будем копать, может чего и выйдет  :biggrin:

vicebear пока именно так и есть...Но мне надо оператору вывести строку после инструмента вот такого вида (N01 Т$mom_tool_number $mom_tool_diameter $mom_tool_name)

Пока что N01 буду ставить вручную...но хочется руками не править  :smile:

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

я вывел через  MOM_output_literal "    "

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

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


я уже даже скачал программирование на tcl\tk....вроде все там просто, но я как ни пытался сделать по совету undrakot, ничего не вышло. руки кривые слишком  :smile:

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

 

Я имел в виду вот такой вариант:
 

я вывел через  MOM_output_literal "    "

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

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

я уже даже скачал программирование на tcl\tk....вроде все там просто, но я как ни пытался сделать по совету undrakot, ничего не вышло. руки кривые слишком  :smile:

 

 

Создаешь процедуру PB_CMD_init_N. В ней пишешь: 

global user_N

set user_N 0

Прикрепляешь это дело к Start of program

 

Далее создаешь процедуру PB_CMD_output_N. В ней пишешь

global user_N

incr user_N
MOM_output_literal "N$user_N:"

И прикрепляешь ее к автоматической смене инструмента. По идее как-то так  :happy:

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

Блин как все просто оказалось  :happy: undrakot спс тебе большущее

я пытался сделать через expr с прибавлением 1

но видно в синтаксисе делал ошибки.

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

Можно как нибудь поместить вывод угла поворотной головы между этими двумя строками? перетаскиванием никак не хочет

post-31824-0-47198800-1406098008_thumb.jpg

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

Можно как нибудь поместить вывод угла поворотной головы между этими двумя строками? перетаскиванием никак не хочет

Да тут магия с этими перемещениям еще та, я тоже в свое время не смог побороть эти rep1, 2, 3.

Попробуйте удалить первых два блока и вставить их руками, т.е. сделать своими блоками (без rep'ов)

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

Не хотят удаляться эти rap 1 и rap 2


Но в принципе работает. rap`ы не дублируются в коде и ладно  :smile:

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

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

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

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

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

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

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

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

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

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

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




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