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

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


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

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




  • Сообщения

    • Zergus
      Выкладывайте сюда свои "чудеса", может по модели получится понять, что в ней не так. А если есть возможность писать в техподдержку - кидайте им свой файл, думаю разберутся.
    • Богоманшин Игорь
      А есть подтверждение в каких либо нормативных документах? Или только из соображений "максимально минимальная себестоимость"?
    • ANT0N1DZE
      Это не поможет ответить на этот вопрос конкретными числами. Судя по всему, там металлические частички внутри материала. Подобные эластомеры существуют и применяются. 
    • gudstartup
      как перевести шпиндель снова первоначальный режим управления скоростью когда ему пофиг число импульсов на оборот? резьбу пока резать не будут а в подпрограмму смены можно что нить добавить или в реализацию m19  чтобы чпу из режима контроля позиционного кодера вышло?
    • gudstartup
    • mactepnew
      Вот я тоже так думал, пока не столкнулся с обратным) Как еще столкнусь, пришлю скриншот. Хаос еще в том, что порядок в дереве построения весьма условный. операция, которая стоит перед групой, имеет бОльший timestamp(пардон, не знаю как это в переводе), чем эта группа, и выполняется позже. При этом все операции в группе имеют timestamp на пару сотен меньше и выполняются раньше, чем две группы, стоящие перед ней. Логика?  Если в эскизе все элементы определены, то можно поставить еще один размер (хочешь переопределить эскиз - да пожалста!), изменить его - и NX самостоятельно выберет, какой размер или ограничение отпустить и весь эскиз летит к чертям. Это ли не хаос?   Назовете хоть один CAD, которым можно пользоваться так? Любой из встреченных мной имеет много неочевидных нюансов, которые конечно не проявляются при выполнении университетского или базового курса. В Creo я на протяжении 5 лет находил всё новые фишки, которые не прописаны в документации. Огромная благодарность Ruslan за пояснения тонкостей. Даже Компас и Solidworks, которые считаются самыми дружественными, оказалось непросто обуздать, когда проходил собеседования и делал тестовые. А ведь университетский курс знал на отлично!   Возвращаясь к NX - вот сегодняшний пример. Утром деталь была оранжевая, единая. Изменил пару уклонов и толщин, стала желтая с элементами оранжевого и частично твердотельной, частично листовой. Я даже не знаю, как сформулировать вопрос в поддержку. 
    • Mikhail_Podgornyj
      Добрый день, кто может поделиться SKF Bearing V1.6 (ANSYS App)? Заранее благодарен!
    • kkk
      Короче, как сделать автоматом не нашел. Раскрасил нужные грани нужными цветами. Затем на вкладке с цветом модели можно выбирать нужный цвет, тогда в модели выбираются грани, покрашенные этим цветом. Можно еще сохранить выбор этих граней, но смысла не вижу, т.к. все легко выбирается по цвету. Затем либо в инструменте Измерить смотрим площадь и как-то ее используем, либо можно макросом (что выкладывал Kir95 ) внести площадь в свойства (на вкладку Конфигурации). Можно еще внести выбранные грани в датчики, но как использовать их в свойствах не нашел.    Макрос прикрепляю.     Площадь выбранных граней в свойства.swp
    • IgnatvKudrin
      Для нашего производства требуются постоянно инструментальные пружины для штампов. Сейчас заказы обрабатываются довольно долго - до 2-х месяцев. А у нас сроки на штампы 1-2 месяца с испытанием, доработкой и т.п. Хотелось бы найти поставщика, у которого уже есть склад с данными пружинами или кто может доставить за 1 месяц.   Пружины стандартные по ISO, но на всякий случай приложил каталог. Вот список пружин, которые нужны очень срочно:   LR 32 x 44 - 1 шт. LR 25 x 51 - 2 шт. LB 63 x 89 - 7 шт. LB 32 x 102 - 10 шт. LB 32 x 89 - 20 шт. LB 32 x 76 - 12 шт. LB 32 x 51 - 6 шт. LB 25 x 127 - 9 шт.   Готов выслушать все предложения. Возможно даже есть те, кто сможет изготовить подобные пружины с такими же параметрами. 20231101.pdf
    • bubblyk
      Знатоки форума, подскажите, как смоделировать простую (на первый взгляд) задачу термомеханики в упругой постановке.   Есть брусок правильный формы ака кирпич, в котором генерируется НЕРАВНОМЕРНОЕ удельное тепловыделение (HGEN). Задняя и передняя поверхности конвективно охлаждаются с известными (но различными) коэффициентами теплоотдачи и температурами жидкости/газа. Свойства кирпича (теплофизика + механика) принимаются зависящими от температуры. Постановка - стационарная Собственно вопрос : как грамотно смоделировать температурное поле в кирпиче с учетом температурного расширения?   Исходный код приложил.     Надеюсь на коллективный разум и опыт! EPTH2D.mac p.s.   Если есть опыт решения этой задачи в Ansys WB, тоже можно сюда приложить командные вставки.
×
×
  • Создать...