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

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

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




  • Сообщения

    • maxx2000
    • vladimir.songin
      То есть отключаю аналоговую обратную связь от аналогового входа, и подключаю вместо энкодера? Так не делал но сомнения у меня: Вход энкодера может  быть 12 или 5 вольт. У нас 12. Два пина питание, два пина Каналы A B соответственно, один пин REF (непонятно что он означает и как работает). Остальные соеденены вместе. На какие из них подавать аналаговый вход обратной связи дефлектора.  сигналы от энкодера приходят, проверял осцилографом на самом разьёме непосредственно на входе DM02, и некое значение уже могло бы отобразиться в поле энкодера при отключенном аналаговом входе.  Если отключить аналоговый вход, то видим единичку в обоих полях, но уже писал об этом.  
    • Алексей 1977
      Кто знает подскажите как отключить этот ненужный набор букв и символов в готовой УП? Я так думаю надо редактировать постпроцессор? Заранее спасибо ( Общая длина: 130.0) ( Заготовка:) ( MIN X: -10.970) ( MIN Y: -10.970) ( MIN Z: -6.500) ( MAX X: 10.970) ( MAX Y: 10.970) ( MAX Z: 0.000) ( COORDINATE SYSTEM: Глобальная СК) ( Кончик инструмента:) (   X: -0.000) (   Y: 0.000) (   Z: 10.000) ( Рекомендованная длина: 50.000) ( Количество кромок: 4) ( Инструмент:   Концевая фреза) ( DIAMETER: 10.000) ( Безопасность:) ( Рабочие ходы инструмента: Безопасная БЕЗ зарезов) ( Подводы инструмента: Безопасная БЕЗ зарезов) ( Переходы инструмента: Безопасная БЕЗ зарезов) ( Рабочие ходы патрона: Столкновения НЕ проверялись) ( Подводы патрона: Столкновения НЕ проверялись) ( Переходы патрона: Столкновения НЕ проверялись) ( Траектория: Шаблон) ( STEPOVER: 5.000) ( ДОПУСК:0.100) ( THICKNESS:0.000) ( Статистика:) ( LENGTH: 95.318)( LIFTS: ( TIME: 0/00/05) 1) G0X0Y0 G43Z10.H13 X4.75Y-8.227 Z5. G1Z0F500 X9.5Y-5.485F1000 Y5.485 X0Y10.97 X-9.5Y5.485 Y-5.485 X0Y-10.97 X4.75Y-8.227 G0Z10.
    • gudstartup
      считывание происходит при помощи вх\вых сигналов контроллера plc 
    • gudstartup
      @Maks Horhe так все таки скиньте бэкап эмулируем ваше чпу в cncguide и посмотрим куда поедет?  можете снять видео с фиксацией координатных позиций после каждого кадра. Выложу вашу программу пусть программисты посмотрят все ли в ней ок. %O0002 G40 G17 G94 G90 G49 G80 N1 G91 G28 Z0.0 N2 G91 G28 X0.0 Y0.0 N3 G91 G28 B0.0 C0.0 N4 M03 S200 N5 G90 G0 G53 B0.0 C0.0 N6 G54 N7 X0.0 Y0.0 N8 G90 G43 H01 N9 G90 G0 X0.0 Y0.0 N10 G90 G0 Z200.0 N11 G01 Z10.0 F1500. N12 M00 N13 G00 Z200.0 N14 G40 G49 G69 N15 G00 G53 Z0.0 N16 G00 G54 B0.0 C0.0 N17 G68.2 X0.0 Y0.0 Z0.0 1135. J39.2044 K-129.2315 N18 G53.1 N19 G01 X0.0 Y0.0 F1500 N20 G90 G43 H01 N21 G90 G01 X0.0 Y0.0 F1500 N22 G90 G01 Z200. F1500 N24 M00 N25 G00 Z200. N26 G40 G49 G69 N27 G91 G28 Z0.0 N28 G28 X0.0 Y0.0 N29 G91 G28 B0.0 C0.0 N30 M5 N31 M30
    • gudstartup
      @karlf 530 считывает ключ по специальному протоколу при помощи plc и получает его серийный номер а из него определяет возможные режимы доступа. там нет драйвера а есть plc модуль или несколько эти модули написаны на питоне  надпись smartkey исчезает с экрана при запуске чпу??
    • ДОБРЯК
      Для того, чтобы получить правильные высшие) формы при виртуальном эксперименте, нужно сделать грамотную КЭ модель. От разговора на эту тему вы постоянно уклоняетесь.  То нет компьютера под рукой, сделать простейший тест, то теряете интерес. :=) Сходимости энергии деформации при расчетах статики, недостаточно для точного определения высших собственных форм и частот.  Для того, чтобы грамотно использовать метод конечных элементов, нужно сделать много-много тестов в статике, динамике и ... Одной кнопки и двух конечных элементов в 3Д программе недостаточно для определения высших собственных форм...  У вас в качестве инструмента всего два конечных элемента, шести узловая несовместная оболочка Тимошенко и десяти узловой тетраэдр. И еще контакты при решении задачи на собственные числа. Вам ли говорить про правильность определения высших собственных форм для сложных изделий... :=)    
    • vad0000
      Покажите схему с разрешением на движение
    • vad0000
      Вход, а не выход Вытащить Аналоговый вход и все, как будто туда ничего не подключено И если мы подключим сигнал к энкодеру оси Х, то он стнтет одинаковый с аналоговым входом, который не подключен?
    • Snake 60
      @waze4534  Посмотрите вверх и прочитайте текст на красной полоске...
×
×
  • Создать...