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

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

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




  • Сообщения

    • DuS
      поищите в справке или на ютубе граничная рамка.
    • plm-ural
      О вебинаре Уважаемые коллеги! Приглашаем Вас на вебинар, посвященный обзору возможностей программы Логос Прочность. Это высокоточный отечественный инструмент для численного решения широкого спектра задач статического и динамического упругопластического деформирования и разрушения конструкций, а также вибрационного анализа и широкополосной случайной вибрации при проектировании высокотехнологичных промышленных изделий.   Дата проведения: 24 апреля 2024 12:00 (МСК)   Регистрация на вебинар   Программа вебинара:   1.    Общая характеристика решения Логос Прочность 2.    Перечень основных решаемых задач (статические расчеты прочности, вибрационный динамический анализ, динамические расчеты во временной области) 3.    Демонстрация решения задач     Логос Прочность обладает достаточно удобным пре/постпроцессором, позволяющим корректировать и создавать геометрию, строить сетку конечных элементов, формировать необходимые условия задачи, а также производить обработку результатов. Решение разрабатывается с учетом требований отечественных предприятий для решения реальных задач в различных отраслях промышленности, включая обычные вооружения, атомную энергетику, авиастроение, транспортное и военное машиностроение и многие другие.   Вебинар будет интересен специалистам, занимающимся прочностными расчетами.   Спикер  — Сергей Хрулев, руководитель бригады прочности ГК «ПЛМ Урал».   Участие в вебинаре бесплатное. Необходима регистрация. Если по каким-либо причинам у вас не получится присоединиться к вебинару, мы обязательно отправим видеозапись при условии пройденной регистрации. Направляйте свои вопросы и пожелания на почту info@plm-ural.ru. Будем рады видеть Вас в качестве участников!   Регистрация на вебинар  
    • plm-ural
      О вебинаре Приглашаем Вас на вебинар, посвященный сравнительному анализу российской системы компьютерного моделирования литейных процессов ПолигонСофт и ПО ProCAST от ESI Group. Сравнение систем будет проведено на примере решения актуальной задачи литья лопатки для газотурбинных двигателей. Дата проведения: 25 апреля 2024 12:00 (МСК)   Регистрация на вебинар   Программа вебинара:   сравнение решаемых задач; сравнение возможностей ПО в плане подготовки расчетной модели; сравнение постановки задачи; сравнение и анализ полученных результатов и т.д.  ответы на вопросы.   Сравнение систем будет проведено на примере решения актуальной задачи литья лопатки для газотурбинных двигателей. Лопатки для двигателестроения являются одними из самых сложных в технологическом плане отливок и, в то же время, одними из самых ответственных деталей в агрегате. К ним предъявляются высокие требования к качеству (наличие дефектов и структура зерна), так как отливки работают в тяжелых эксплуатационных условиях.  Для их изготовления применяются дорогостоящие сплавы и, следовательно, получение не качественной отливки обходится предприятиям очень дорого как в материальном плане, так и в плане репутации.    Компьютерное моделирование изготовления таких отливок поможет избежать грубых ошибок в технологии на этапе разработки, снизить себестоимость изделия за счет минимизации брака и сократить время запуска технологии в производство.   Ведущий: Максим Ведерников, инженер технической поддержки ГК "ПЛМ Урал".   Участие в вебинаре бесплатное. Необходима регистрация. Если по каким-либо причинам у вас не получится присоединиться к вебинару, мы обязательно отправим видеозапись при условии пройденной регистрации. Направляйте свои вопросы и пожелания на почту info@plm-ural.ru.   Будем рады видеть Вас в качестве участников!   Регистрация на вебинар
    • ZVUM
      Здравствуйте, помогите пожалуйста с советом.. Хочу упростить работу в спецификациях убрав функцию прописывания размеров деталей. Что я хочу? А именно, сделать шаблон детали, чтобы при создании детали и моделировании чего-либо, не важно - бобышкой или гнутые, хочу чтобы в примечаниях автоматически указывались габаритные размеры "Длина" "Ширина" "Толщина", возможно ли как-то в переменных вписать определение размера и чтобы прописывались в суммарной информации? По типу 'RD1@Примечания@Деталь.moPart_c'. Спасибо!
    • Killerchik
      Эх, текстовый файл, я тогда так не умел :( Нет, измерял по одной точке и фоткал с экрана соответствующие переменные #1хх. Сейчас бы конечно применил команду dprnt или как там её, для записи результатов в файл на стойке. Единственно что, последний раз когда надо было обмерить какой-то кривой ужас, писал точки в переменные #600-#999 и потом фоткал все разом с экрана. Хотя бы УП измерения была одна единая.
    • Kosi27
      Здравствуйте! При попытке выполнить программу фрезерования на токарно-фрезерном станке возникает ошибка при моделировании #61102 "Направление шпинделя не запрограммировано". Обнаружил, что меню выбора направления обработки урезано, вместо "торец C, Бок.пов С, Торец Y, Бок.пов Y" есть только пункт "Торец, Бок.пов".   Фото меню моделирования с ошибкой  Фото меню со стойки машины Скриншот меню из sinutrain   Приводные блоки через меню TSM запускаются.  Машина Headman T65M/750, стойка Siemens 828D.  Подскажите пожалуйста, кто сталкивался с такой проблемой и как её решить? Поставщик оборудования очень тяжело идет на контакт, а инструменты неосевой обработки необходимы как никогда. HELP:(
    • Говорящий Огурец
      Лучше, чем это сделал OpenMind, у меня вряд ли получится :) Полно инфы как в текстовом формате, так и видосов на Трубе
    • ak762
      @Killerchik а как вы точки касания в текстовый файл записывали, руками с экрана или использовали станочную команду?
    • Umkach
      Ну про дверцу согласен. А когда он фрезерным шпинделем об контр шпиндель стукнулся - тут ему прощения не было и его от работы на этом станке освободили (это было последней каплей)
    • Viktor2004
      там был косяк японцев. Если вызвать тот инструмент, который уже в шпинделе, шпиндель едет в дверцу, которая не успевает открыться. На другом станке заметили. Надо в ладдере убрать вот этот контакт  
×
×
  • Создать...