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

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 пользователей

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




  • Сообщения

    • lem_on
      Поздравляю. Но замена подшипников на таком шпинделе тот ещё квест. Нужно название шпинделя, там наклейка на борту и по нему искать чертеж. Подшипники скорее всего керамические. Сначала найти чертеж, а потом разбирать. А если нет опыта то лучше отдать тем кто умеет. Балансировку обязательно и стразу пакет тарельчатых пружин со всеми уплотнениями перетрясти. 
    • Ветерок
      Зачем это нажимать? Лучше нажать проецировать кривую. Как выяснилось :) такая функция есть. @mannul даже файл выложил - бери и смотри/повторяй.
    • Stanislav
      Относительно POP and PUP в фале постпроцессора вот такое нашел для POP прослеживается возростающая закономерность, а вот для  PUP не ясно почему прыгает значение. # POP and PUP functions for initialization. H parameters are used to  # # get the correct POP and PUP values. If the thickness of the sheet   # # is between the minimum and maximum thickness, the postprocessor     # # will use POP and PUP parameters to write them in the PS file.       # # Example: H000 0.0 1.0 30000 25000                                   # #                                                                     # #     Minimum      Maximum       POP        PUP                       # #    Thickness    Thickness     Value      Value                      # #---------------------------------------------------------------------# H001    0.0          0.5        14000      9000 H002    0.51         1.0        14500      9000 H003    1.01         1.5        15000      9000 H004    1.51         2.0        15500      9000 H005    2.01         2.5        16000      8500 H006    2.51         3.0        16500      8000 H007    3.01         3.5        17000      8000 H008    3.51         4.0        17500      8000 H009    4.01         4.5        18000      9000 H010    4.51         5.0        18500      8000 H011    5.01         5.5        19000      9000 H012    5.51         6.0        19500      8000
    • Krusnik
      Да там же ничего сложного.   Делаете вашу спираль.   Потом делаете эскиз. В эскизе нажимаете Преобразование объектов и тыкаете на созданную спираль.   Нажимаете поверхность вытянуть и выбираете только что созданный эскиз. В опциях вытягивание ставите "До поверхности". И вытягиваете спиральку до вашего купола.   И последний шаг - вырез по траектории. Думаю с этим вы без моих советов справитесь.   Лишнее скрываете и вуаля.  
    • IgP
      Это, конечно, да, не хорошо ... Но и конструктор не бог чтобы всё знать ... Для этого есть и д.б. этап "технологическая проработка", со всеми вытекающими.
    • arsenev
      Спасибо за ответ. Нет, в видео он говорит, что это такая стратегия. Пробовал использовать шаблон и обрабатывать его со смещением, получается не то (именно, когда нужно обработать цилиндрическое отверстие). Лучше отводится стружка и не мешает резанию. (см. видео, где-то с 18 минуты).
    • scrimline
      Если ещё нужна информация, fanuc oi-tf станок akira-seiki, М14 на опускание руки, для привязки и М15 для поднятия
    • Богоманшин Игорь
      Эта проблема от незнания некоторыми конструкторами технологических особенностей порошковой окраски. Максимум на чертеже научатся указывать РАЛ и толщину слоя. А необходимо предусмотреть места подвеса, можно туда шпильки или гайки запрессовать в нужных местах.
    • MagicNight
      Добрый день! Обратил внимание, что стал шуметь (свистеть) шпиндель станка, причём на всех режимах. Я так понимаю, что полетели подшипники. Хотим найти их, но не знаем как они называются, может у кого-то было подобное? Ну и отремонтировать своими силами. Станок швейцарский Mikron UCP-710 пятиосевой.  
    • maxx2000
      это не одно и тоже что и создать шаблон? А если мне нужен будет документ без зон?
×
×
  • Создать...