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

Поворотная ось, индексная - как программировать?


Rionet

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

Работаю в Mach3 в трех осях.

Есть детали для которых была бы удобна обработка с автоповоротом. Синхронно 4 оси не требуются.

Если мы ставим поворотную ось по типу делительного приспособления, с фиксированными положениями, допустим через 15 градусов.

То управляться она будет макросами, верно понимаю? (шаг+, шаг-, зажим, отжим?)

 

Как в таком случае писать программы?

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

И также делать трансформации программ по углу?

Что будет если я выберу неправильный угол?

 

Каким образом солидкам будет преобразовывать угловой поворот оси в макросы?

 

Перерыл все справки и видео, нашел только установку "indexable" для "порядка осей" в редакторе станка "vmid", и больше ничего.

Как это работает?

 

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


11 час назад, Rionet сказал:

То управляться она будет макросами, верно понимаю? (шаг+, шаг-, зажим, отжим?)

 

Нет, не обязательно

11 час назад, Rionet сказал:

Как в таком случае писать программы?

Как и для 3х осей только с добавлением еще одной оси А или В смотря как она у вас будет называться

11 час назад, Rionet сказал:

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

индексная ось не об\зательно должна с чем то совпадать, она должна поворачиваться на тот угол который вы ей укажите в УП и оставаться на нем до тех пор пока в программе не появится другой угол

11 час назад, Rionet сказал:

И также делать трансформации программ по углу?

Да

11 час назад, Rionet сказал:

Что будет если я выберу неправильный угол?

 Что бы такого не случилось перед тем как делать вывод УП надо сделать симуляцию и посмотреть все ли правильно и без зарезов отрабатывается, а только потом делать вывод УП, а дальше уже дело за постпроцессором, если он правильно настроен то и на станке все будет хорошо ! 

11 час назад, Rionet сказал:

Каким образом солидкам будет преобразовывать угловой поворот оси в макросы?

Это зависит от того как у вас написан постпроцессор, способен ли он выводить макросы или нет и сможет ли ваш мач3 их прочитать )

11 час назад, Rionet сказал:

Перерыл все справки и видео, нашел только установку "indexable" для "порядка осей" в редакторе станка "vmid", и больше ничего.

Как это работает?

Если вы не используете траектории многоосевой обработки, то ось поворота по умолчанию будет работать как индексная 

Изменено пользователем CNC_SKILL
Ссылка на сообщение
Поделиться на других сайтах
В 14.10.2019 в 08:30, CNC_SKILL сказал:
В 13.10.2019 в 21:13, Rionet сказал:

То управляться она будет макросами, верно понимаю? (шаг+, шаг-, зажим, отжим?)

 

Нет, не обязательно

 

В 14.10.2019 в 08:30, CNC_SKILL сказал:
В 13.10.2019 в 21:13, Rionet сказал:

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

индексная ось не об\зательно должна с чем то совпадать, она должна поворачиваться на тот угол который вы ей укажите в УП и оставаться на нем до тех пор пока в программе не появится другой угол

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

В таком случае ось может управляться обычной командой поворота G0 Axx как непрерывная, а тормоз может отрабатываться самой стойкой.

 

Я рассматриваю ось, которая имеет фиксированные положения и никакие другие.

Пример - http://www.ckd.co.jp/kiki/en/digitalcatalog/standard/Index/HTML5/pc.html#/page/52

 

В таком случае мне непонятно как объяснить солидкаму эту механику?

В 14.10.2019 в 08:30, CNC_SKILL сказал:
В 13.10.2019 в 21:13, Rionet сказал:

Что будет если я выберу неправильный угол?

 Что бы такого не случилось перед тем как делать вывод УП надо сделать симуляцию и посмотреть все ли правильно и без зарезов отрабатывается, а только потом делать вывод УП, а дальше уже дело за постпроцессором, если он правильно настроен то и на станке все будет хорошо ! 

И это тоже непонятно, т.к. неясно как он отсимулирует то что ось имеет только фиксированные положения?

 

В 14.10.2019 в 08:30, CNC_SKILL сказал:
В 13.10.2019 в 21:13, Rionet сказал:

Перерыл все справки и видео, нашел только установку "indexable" для "порядка осей" в редакторе станка "vmid", и больше ничего.

Как это работает?

Если вы не используете траектории многоосевой обработки, то ось поворота по умолчанию будет работать как индексная 

У нас видимо разное понимание понятия "индексная". В моем случае это предполагает набор фиксированных положений. В вашем (и в солидкаме также?) ось, которая поворачивается произвольно и не двигается в ходе обработки. (на мой взгляд сам корень index предполагает отсчет положений..) Буду признателен за подробный ответ на исходные вопросы.

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Rionet сказал:

Буду признателен за подробный ответ на исходные вопросы.

Пиши  в личку )

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

Все у тебя отработает нормально, если ты собираешься делать трехосевую обработку на указанных углах поворота. Т. е. у тебя в программе появится А0. , А15. , А30. и т. д.

Дальше все зависит от постпроцессора. Он автоматом выведет тебе эти углы.

Тебе надо выставить систему координат по оси вращения. Дальше стандартная трехосевая обработка.

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

 

Ссылка на сообщение
Поделиться на других сайтах
15 часов назад, Rionet сказал:

У нас видимо разное понимание понятия "индексная". В моем случае это предполагает набор фиксированных положений. В вашем (и в солидкаме также?) ось, которая поворачивается произвольно и не двигается в ходе обработки. (на мой взгляд сам корень index предполагает отсчет положений..) Буду признателен за подробный ответ на исходные вопросы.

Нужно для МАС1 создавать дополнительные Позиции с номерами 2,3 ну т.д., если постпроцессор поддерживает позиционирование для таких поворотов. Концентрирую - Позиции. В матчасти это описывалось.

 

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

для себя я сделал вот так для вращения осиY, для себя можешь сделать что то подобное. это я лично придумал для себя. КАК СДЕЛАТЬ ПО ДРУГОМУ Я НЕ ЗНАЮ.

 

;       {nb,'A'(rotate_angle_x) ' B'(rotate_angle_y) ' C'(rotate_angle_z)}


      global numeric rot_b rot_b2 rot_b3  
      rot_b =(rotate_angle_x+rotate_angle_y*-1)
      rot_b2 =(-rotate_angle_x+rotate_angle_y)
      rot_b3 =(rotate_angle_x+rotate_angle_y)

 

 

;                                  Поворот стола B (от 0 до 180) и (от 0 до -179)  

   ;     if machine_plane eq XY
 ;     if rot_b >180 and rot_b <270                                  ;*-
 ;     {nb,'G0',' B'(-rotate_angle_x+rotate_angle_y*-1)}     ;--
 ;     endif

 

 ;     if rot_b2 >= -90 and rot_b2 <0                               ;--
 ;     {nb,'G0',' B'(-rotate_angle_x+rotate_angle_y)}        ;*-
 ;     endif
 
 ;     if rot_b3 >=0  and rot_b3  <=90                            ;--
 ;    {nb,'G0',' B'(-rotate_angle_x+rotate_angle_y)}         ;-*
 ;     endif
 
 ;     if rot_b3 >=180  and rot_b3  <=269                        ;-*
 ;     {nb,'G0',' B'(rotate_angle_x+rotate_angle_y*-1)}      ;--
 ;    endif
  ;       endif
; --------------------------------------------------------------------------------------------

 

;                                     Поворот стола B РЕВЕРС (от 0 до -180) и (от 0 до 179)

 

          if machine_plane eq XY

        if rot_b >180 and rot_b <270                                     ;*-
        {nb,'G0',' B'(rotate_angle_x+rotate_angle_y)}              ;--
        endif

 

        if rot_b2 >= -90 and rot_b2 <0                                  ;--
        {nb,'G0',' B'(rotate_angle_y*-1)}                                ;*-
        endif

 

        if rot_b3 eq 0                                                          ;- -
        {nb,'G0',' B'(rotate_angle_y)}                                   ;-*-
        endif

 

        if rot_b3 eq 180                                                      ;-*-
        {nb,'G0',' B'(rotate_angle_x)}                                    ;- -
        endif

 

        if rot_b3 >180  and rot_b3  <=269                            ;-*
        {nb,'G0',' B'(-rotate_angle_x+rotate_angle_y)}            ;--
        endif


         if rot_b3 >0  and rot_b3  <=90                                ;--
        {nb,'G0',' B'(rotate_angle_y*-1)}                               ;-*
        endif
      
          endif
 
; --------------------------------------------------------------------------------------------
; --------------------------------------------------------------------------------------------
;                                 Поворот стола B (от 0 до 359)

 ;   rot_b =(-rotate_angle_x+rotate_angle_y)

    ;  if machine_plane eq XY   
 ;   if rot_b <-90                                                             ;**
 ;   {nb,'G0',' B'(rotate_angle_x+rotate_angle_y*-1)}         ;--
 ;   endif

 

 ;   if rot_b >=0 and rot_b <=90                                    ;--
 ;   {nb,'G0',' B'(-rotate_angle_x+rotate_angle_y)}           ;-*
 ;   endif

 

 ;   if rot_b >=-90 and rot_b <0                                     ;--
 ;   {nb,'G0',' B'(360+rotate_angle_y)}                            ;*-
 ;   endif
    ;   endif
; --------------------------------------------------------------------------------------------

;                                 Поворот стола РЕВЕРС B (от 0 до -359)

  ;   rot_b =(-rotate_angle_x+rotate_angle_y)
  ;   rot_b3 =(rotate_angle_x+rotate_angle_y)
 
    ;  if machine_plane eq XY    
  ;  if rot_b <-90                                                            ;**
  ;  {nb,'G0',' B'(-rotate_angle_x+rotate_angle_y)}           ;--
  ;  endif

 

  ;  if rot_b >0 and rot_b <=90                                       ;--
  ;  {nb,'G0',' B'(rotate_angle_y*-1)}                                ;-*
  ;  endif

 

  ;  if rot_b >=-90 and rot_b <0                                      ;--
  ;  {nb,'G0',' B'(-360+rotate_angle_y*-1)}                       ;*-
  ;  endif

 

  ;  if rot_b3 eq 0                                                         ;- -
  ;  {nb,'G0',' B'(rotate_angle_y)}                                  ;-*-
  ;  endif
     ;  endif
; --------------------------------------------------------------------------------------------

 

Изменено пользователем orfey90
Ссылка на сообщение
Поделиться на других сайтах
В 16.10.2019 в 03:25, maxems сказал:

Все у тебя отработает нормально, если ты собираешься делать трехосевую обработку на указанных углах поворота. Т. е. у тебя в программе появится А0. , А15. , А30. и т. д.

Я вас понял, такой вариант я делал когда у меня была непрерывная ось вращения. Соответственно G0 A15 и т.д. отрабатывается станком нативным образом.

А вот на индексной оси с фиксированными положениями я ранее не работал, там нужно чтобы станок шаги делал и как я понимаю делается это макросами (шаг+, шаг-).  Соответственно в коде должно появиться нужное число шагов поворота. Вот этот момент я пока не могу понять.

 

В 16.10.2019 в 16:36, sennik53 сказал:

Нужно для МАС1 создавать дополнительные Позиции с номерами 2,3 ну т.д., если постпроцессор поддерживает позиционирование для таких поворотов. Концентрирую - Позиции. В матчасти это описывалось.

Суть понятна. Соответственно позиции я назначаю по углам как считаю нужным а уже за их соответствием возможностям станка следит постпроцессор?

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

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Rionet сказал:

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

если в постпроцессоре есть поворот по оси, т.е. он должен быть 4-х осевой или 3+1.

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

Еще раз для последнего ряда.

Позиции/трансформации я назначаю по углам как считаю нужным а уже за их соответствием возможностям станка следит постпроцессор?

Т.е. если выбранные углы не совпадут с возможностями индексатора должна быть выдана ошибка при генерации G-кода?

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

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

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

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

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

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

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

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

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

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

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




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