BaZuZu

Вывод координат

Доброго времени суток... 

 

Подскажите пожалуйста как мне принудительно выводить X Y Z ну или любую координату. Прикрепляю картинку. Может не там капаю ? 

 

Смысл таков:

N3 T01 G43 H1 M06
N4 T04
N7 G00 G90 X6. Y-20
N8 Z10.
N9 S600 M03
N10 M08
N11 G81 G98 Z1. R.5 F60. 

N12 X7. Y-15.
N13 G80
N14 G00 G53 Z0.

(-----------------------------)


N17 G81 G98 Z1. R.5 F50.

N18 X6. Y-20
N19 G80
N20 M05
N21 M09

N22 M01

 

Без смены инструмента он должен придти в ту же координату... А он ее не выводит... Как сделать чтобы он один раз принудительно выводил повторяющиеся координаты а потом опять не выводил ))))

 

Как смог объяснил... 

 

 

 

1.jpg

Поделиться сообщением


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

кто же тебя принудил спрутом заняться, антихристы...

Поделиться сообщением


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

кто же тебя принудил спрутом заняться, антихристы...

импортозамещение ))))))

Поделиться сообщением


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

ну ты попал чувак, конкретно...

Поделиться сообщением


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

ну ты попал чувак, конкретно...

Ну а что делать... будем копать ))) Неужели там все так сложно ? 

Поделиться сообщением


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

наоборот, веселуха только начинается.

 

а почему у тебя аглицкий язык на скриншотах ?

чё веселуха уже началась? 

Поделиться сообщением


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

Если я правильно понял вопрос. 
В Генераторе постпроцессоров открываешь программу LoadTL
Там есть присвоение переменной ToolSm значения 1 если инструмент меняется и 0 если не меняется.
вот в то место где инструмент не меняется вставляем строчку X@=maxreal;  Y@=maxreal

Смысл сделанного: Если смены инструмента не было, то старому значению  X и Y присваивается значение 99999999 и по принципу модальности их  значения выведутся принудительно.
Если, например, необходимо, независимо от того была ли смена инструмента или не было, всегда в этот момент выводить значения X и Y тогда эту строку можно вставить перед строкой Mc=9 

Post.png

Поделиться сообщением


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

Ну а что делать... будем копать ))) Неужели там все так сложно ? 

Все просто.
Любой в переход в постпроцессоре начинается с команды PPFUN.

Вот в ней пишем три строчки

Только что, ququshka сказал:

Все просто.
Любой в переход в постпроцессоре начинается с команды PPFUN.

Вот в ней пишем три строчки

 

 if cld[1]=58 then begin
  ! ******* ДЛЯ ОБЯЗАТЕЛЬНОГО ВЫВОДА XYZ  ДОБАВИТЬ ТРИ СТРОЧКИ  ******
      X = MaxReal ; X@ = MaxReal
      Y = MaxReal ; Y@ = MaxReal
      Z = MaxReal ; Z@ = MaxReal
      !********
  end

Поделиться сообщением


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

а так здесь оказывается 2 похожих темы..

я тут изложил свое видение решение вопроса: http://cccp3d.ru/topic/84352-вывод-координат/?do=findComment&comment=798041

 

8 минут назад, SNick сказал:

В Генераторе постпроцессоров открываешь программу LoadTL

мне кажется, что тут потенциальная засада... что если смены инструмента в операции нет, то и данная команда в CLD не попадет..

Поделиться сообщением


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

 if cld[1]=58 then begin
  ! ******* ДЛЯ ОБЯЗАТЕЛЬНОГО ВЫВОДА XYZ  ДОБАВИТЬ ТРИ СТРОЧКИ  ******
      X = MaxReal ; X@ = MaxReal
      Y = MaxReal ; Y@ = MaxReal
      Z = MaxReal ; Z@ = MaxReal
      !********
  end

А для чего здесь X = MaxReal ? Мне кажется достаточно старым значениям присвоить maxreal. Это может быть опасно

Поделиться сообщением


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

А для чего здесь X = MaxReal?

Да, кстати. Это очень правильно Вы заметили. Ведь если 

 

3 часа назад, BaZuZu сказал:

он должен придти в ту же координату...

То такой сброс основного значения в MaxReal просто может испортить значения текущих координат. мне тоже верится, что сброса старых (которые с @ должно быть достаточно)

 

Поделиться сообщением


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

А не согласен я. С обоими Ни с Троцким, ни с Каутским!

Если исправить только старое значение регистра, а сам регистр не трогать, ТО:

- на первой же команде OUTBLOCK все три регистра (XYZ) появятся в кадре хотя их там не ждали. Хорошо это, или плохо - ХЗ.
Скажем идет команда комментария - и на тебе - еще влепит в кадр XYZ

 

А так постпроцессор доходит до команды перемещения (а в переходе без смены инструмента координаты перемещений всегда дублированы), и только в этом

месте выдается перемещения (повтор) в координаты.

Логично?

Поделиться сообщением


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

наоборот, веселуха только начинается.

 

а почему у тебя аглицкий язык на скриншотах ?

чё веселуха уже началась? 

 

Вот такой постбилдер... с NaXom как то попроще было.... или я просто не помню как там начинал с азов ))))

Завтра буду пробовать все варианты....

 

Я почему затеял эту тему... Имеется пятикоординатный станок HAAS. Стол С и В. И вот если сверлить или центровать на кубике на разных гранях но отверстия находятся на одних координатах....

 

ТО примерно получается так:

 

T1 M6 G43 H6

B90 C0

G254 - это чтобы он пересчитывал относительно нуля...

X10 Y0 - координаты выдуманы только что...

Z10 

G81 - цикл

G80 

G53 Z0

G255 - отменяем пересчет чтобы он мог повернуться....

 

B90 C90

G254

И он сразу начинает с цикла...

G81

 

потому что отверстие находится на другой грани в координате X10 Y0

ну ладно тут может выдать ошибку уже стойка или он не туда пойдет....

но хуже всего что он не выводит Z10 ...и он естественно в деталь центрует до победного )))))

если я в проекте спрута меняю плоскость отхода на второй операции 11 то конечно он выведет Z11... Ну это же фигня...  возиться запоминать что надо поменять плоскость....

 

И вот задумался о том чтобы один раз при первом перемещении принудительно выводить и X и Y и в следующем кадре выводить Z ...

 

 

уффф... вот это я что-то расписался на ночь глядя...!!

 

 

 

 

Поделиться сообщением


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

 

1 час назад, ququshka сказал:

а в переходе без смены инструмента координаты перемещений всегда дублированы

Если так, то ты, возможно, прав. Нужно все это в генераторе проделать, а то сплошная теория

 

17 минут назад, BaZuZu сказал:

Вот такой постбилдер... с NaXom как то попроще было.... или я просто не помню как там начинал с азов ))))

обычно начинают не с постпроцессора, его получают готовым.... В любом случае скиньте в личку пост, которым вы пользуетесь, подправим, дело 3 минут
 

Поделиться сообщением


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

 

Если так, то ты, возможно, прав. Нужно все это в генераторе проделать, а то сплошная теория

 

обычно начинают не с постпроцессора, его получают готовым.... В любом случае скиньте в личку пост, которым вы пользуетесь, подправим, дело 3 минут
 

Завтра скину... Но смысл ни в том чтобы просто исправить... Хочется самому разобраться Что за что отвечает....

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

Поделиться сообщением


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

Хочется самому разобраться Что за что отвечает.

Понял. Ну тогда будем править с комментариями

Поделиться сообщением


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

Понял. Ну тогда будем править с комментариями

 

Хорошо ;) А потом можно будет некоторые скриншоты выложить в этой ветке... Думаю многим будет интересно... Особенно новичкам. Завтра как будет возможность в личку скину пост.

 

А какой спрут у вас ? У нас десятка стоит и пост под десятку... 

Поделиться сообщением


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

А какой спрут у вас ? У нас десятка стоит и пост под десятку... 

Без проблем десятка так десятка

 

Поделиться сообщением


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

@BaZuZu  а что книжки по постпроцессору нет? в PDF формате. Руководство пользователя Генератор постпроцессоров называется.

Поделиться сообщением


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

@BaZuZu  а что книжки по постпроцессору нет? в PDF формате. Руководство пользователя Генератор постпроцессоров называется.

Да где то есть... Ну там как всегда все общими словами... 

А что то конкретное можно и спросить... форум часто выручает... Можно много мнений услышать... 

 

Поделиться сообщением


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

Вот здесь кое что о Генераторе постпроцессоров и основы разработки постов

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 19.04.2017 в 17:01, Dantist сказал:

а так здесь оказывается 2 похожих темы..

я тут изложил свое видение решение вопроса: http://cccp3d.ru/topic/84352-вывод-координат/?do=findComment&comment=798041

 

мне кажется, что тут потенциальная засада... что если смены инструмента в операции нет, то и данная команда в CLD не попадет..

 

Попробовал я по вашему видению темы...

В COMMON вставил isFirstCoord: Real

 

В AbsMov вставил 

 if isFirstCoord = 0 then begin

   Z@ = Z -1     ! т.е старые значения нужной координаты (Z@) принудительно надо сбросить в любой значение, которое не совпадает с текущим

                       ! в этом блоке указать какие именно значения должны будут выводиться

                       ! допусти в одном кадре будет идти Z, а в следующем X и Y, тогда будет так

   outblock

   X@ = X -1; Y@ = Y -1

   outblock

 ! чтобы все эти команды выводили только 1 раз надо сбросить isFirstCoord в другое значение

   isFirstCoord = 1

 end

 

А в MultiGoto вставил , если вставлять в PPFun то он позиционируется перед поворот стола....

58: begin ! TechInfo
< внутри что-то может быть уже добавлено>
      isFirstCoord = 0
    end;

 

 

и вот что получилось:

N1 G90 G80 G40

N2 G54

(2D Kоntur)

(-----------------------------)

(FREZA_D8 D8 - L35)

N3 T02 G43 H2 M06

N4 T02

N5 B90. C-90.

N6 G254

N7 G00 G90 X-30. Y0

N8 Z60.

N9 S200 M03

N10 G01 X-30. Y0 Z60. M08 F200.

N11 Z50.

N12 G41 Y5 D2

N13 G03 X-30. Y5 I0. J-5.

N14 G01 G40 Y0

N15 G00 Z60.

N16 G53 Z0.

N17 G255

(2D Kоntur)

(-----------------------------)

N18 C90.

N19 G254

N20 G01 X-30. Y0 Z60.       // Желательно чтобы он позиционировался по G0 и не по трем координатам

N21 Z50.                           // А опускался уже на рабочей

N22 G41 Y-5

N23 G03 X-30. Y-5 I0. J5.

N24 G01 G40 Y0

N25 G00 Z60.

N26 M09

N27 G53 Z0.

N28 G255

N29 M05

N30 M30

 

Как мне теперь победить, чтобы он позиционировался по G0 и не по трем координатам ? А опускался уже на рабочей подаче...

 

 

Изменено пользователем BaZuZu

Поделиться сообщением


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

Если нужно:
N18 C90.

N19 G254

N20 G01 X-30. Y0 Z60.       // Желательно чтобы он позиционировался по G0 и не по трем координатам

N21 Z50.                           // А опускался уже на рабочей

 

 

Может:

 

В AbsMov вставил      ! - Может такой блок вставить и в MultiGoto ???

 if isFirstCoord = 0 then begin

   X@ = X -1; Y@ = Y -1     ! Обеспечим вывод ХУ

   Z@=Z                            ! и вырубаем Z

   Interp_=0; Interp_@=1   !Обеспечиваем G00 в кадре

   outblock   !  выводим кадр

   Z@ = Z -1     ! т.е старые значения нужной координаты (Z@) принудительно надо сбросить в любой значение, которое не совпадает с текущим

                       ! в этом блоке указать какие именно значения должны будут выводиться

                       ! допусти в одном кадре будет идти Z, а в следующем X и Y, тогда будет так

   outblock  ! Выводим кадр с осью Z

 ! чтобы все эти команды выводили только 1 раз надо сбросить isFirstCoord в другое значение

   isFirstCoord = 1

 end

1 пользователю понравилось это

Поделиться сообщением


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

Если нужно:
N18 C90.

N19 G254

N20 G01 X-30. Y0 Z60.       // Желательно чтобы он позиционировался по G0 и не по трем координатам

N21 Z50.                           // А опускался уже на рабочей

 

 

Может:

 

В AbsMov вставил      ! - Может такой блок вставить и в MultiGoto ???

 if isFirstCoord = 0 then begin

   X@ = X -1; Y@ = Y -1     ! Обеспечим вывод ХУ

   Z@=Z                            ! и вырубаем Z

   Interp_=0; Interp_@=1   !Обеспечиваем G00 в кадре

   outblock   !  выводим кадр

   Z@ = Z -1     ! т.е старые значения нужной координаты (Z@) принудительно надо сбросить в любой значение, которое не совпадает с текущим

                       ! в этом блоке указать какие именно значения должны будут выводиться

                       ! допусти в одном кадре будет идти Z, а в следующем X и Y, тогда будет так

   outblock  ! Выводим кадр с осью Z

 ! чтобы все эти команды выводили только 1 раз надо сбросить isFirstCoord в другое значение

   isFirstCoord = 1

 end

Спасибо в понедельник попробую....

 

Хоть чуть доходить начало... и не малую роль видосик съиграл который до этого постили....

Поделиться сообщением


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

Господа, а не будет ли у вас вся эта шелупонь информация,  выводится еще и в тех случаях, когда есть смена инструмента? должна ли она там быть?

Сравнения с существующим номером инструмента то нигде нет... Как и самое главное где ее добавить надо (и надо ли)? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 21.04.2017 в 17:40, ququshka сказал:

В AbsMov вставил      ! - Может такой блок вставить и в MultiGoto ???

 if isFirstCoord = 0 then begin

   X@ = X -1; Y@ = Y -1     ! Обеспечим вывод ХУ

   Z@=Z                            ! и вырубаем Z

   Interp_=0; Interp_@=1   !Обеспечиваем G00 в кадре

   outblock   !  выводим кадр

   Z@ = Z -1     ! т.е старые значения нужной координаты (Z@) принудительно надо сбросить в любой значение, которое не совпадает с текущим

                       ! в этом блоке указать какие именно значения должны будут выводиться

                       ! допусти в одном кадре будет идти Z, а в следующем X и Y, тогда будет так

   outblock  ! Выводим кадр с осью Z

 ! чтобы все эти команды выводили только 1 раз надо сбросить isFirstCoord в другое значение

   isFirstCoord = 1

 end

 

 

(2D Kоntur)
(-----------------------------)
(FREZA_D8 D8 - L35)
N3 T02 G43 H2 M06
N4 T02
N5 B90. C-90.    
N6 G254
N7 G00 G90 X-30. Y0           // позиционирование
N8 Z60.
N9 S200 M03
N10 G00 X-30. Y0 M08 F200.  // повтор позиционирование
N11 Z60.
N12 G01 Z50.
N13 G41 Y5 D2
N14 G03 X-30. Y5 I0. J-5.
N15 G01 G40 Y0
N16 G00 Z60.
N17 G53 Z0.
N18 G255
(2D Kоntur)
(-----------------------------)
N19 C90.
N20 G254
N21 G00 X-30. Y0
N22 Z60.
N23 G01 Z50.
N24 G41 Y-5

 

 

А куда вставить и как сделать проверку:

 

если была смена инструмента  то isFirstCoord = 1 и он не будет повторять координаты....

 

 

Поделиться сообщением


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

А куда вставить и как сделать проверку:

если была смена инструмента  то isFirstCoord = 1 и он не будет повторять координаты....

а что должно быть в этом случае??

Лучше всего удобнее делать этот анализ в PPFUN (практически все основные параметры операции доступны в ней, а команда PPFun как бы обозначает начало новой операции)

чтобы сравнить номер инструмента в текущей операции, и существующий номер инструмента, то в секции PPFUN я бы добавил такой блок 

этот фрагмент надо ставить внутрь условия

 

if cld[1]=58 then begin

..... 

  if CLD[26] = <регистр, отвечающий за № инструмента>  then begin ! чаще всего - это TOOL, или различные вариации (кто как называет)

    ! совпадают

    IsFirstCoord = 1    ! если инструмент совпадает - значит запускаем в работу наш блок (про который выше шла речь)

  end else begin

    ! разнятся

    IsFirstCoord = 0   ! в этом случае надо уточнить, как должен вести себя генератор, и что мы хотим, чтобы выводилось..

  end

  ..... 

end

Генератор_НумИнстр.PNG

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

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

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

  • реклама

  • Реклама

  • Ближайшие события

    Предстоящих событий не найдено
  • Дни рождения сегодня

    1. barbos
      barbos
      (43 года)
    2. cnc_expert
      cnc_expert
      (28 лет)
    3. Fraser
      Fraser
      (50 лет)
    4. Grom1
      Grom1
      (37 лет)
    5. Kord77
      Kord77
      (40 лет)
    Просмотреть все