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

Доработка построцессора. Вывод в УП координат оси В.


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

Добрый день.

 

Прошу помочь мне в доработке построцессора. Необходимо обеспечить вывод в программу координаты поворотной оси B.

Файл обработки и используемого построцессора во вложении. Программа должна иметь вид (координаты произвольно составлял, без привязки к детали):

 

"G0 X0 Y300 Z600 B0

G1 Z500 F1000

      Y200

G0 Z600

      B1 Y300

G1 Z500 F1000

      Y200

G0 Z600

      B2 Y300

       ... "

 

P.S. За помощь в долгу не останусь :)

 

Может быть дело не в посте, а в том, что я не правильно задал обработку? Но в если просматривать CLdata файл, то там ось В присутствует...

Фрезерная обработка с повородной осью.zip

Изменено пользователем Iho
Ссылка на сообщение
Поделиться на других сайтах


Добрый день.

 

Прошу помочь мне в доработке построцессора. Необходимо обеспечить вывод в программу координаты поворотной оси B.

Файл обработки и используемого построцессора во вложении. Программа должна иметь вид (координаты произвольно составлял, без привязки к детали):

 

"G0 X0 Y300 Z600 B0

G1 Z500 F1000

      Y200

G0 Z600

      B1 Y300

G1 Z500 F1000

      Y200

G0 Z600

      B2 Y300

       ... "

 

P.S. За помощь в долгу не останусь :)

 

Может быть дело не в посте, а в том, что я не правильно задал обработку? Но в если просматривать CLdata файл, то там ось В присутствует...

Неудачно выбран постпроцессор прототип. Дело в том что вы используете абстрактную схему фрезерного станка с осью B, а постпроцессор взяли от токарно-фрезерного станка у которого нет оси B. Лучше взять пост Siemens  какого нибудь пятиосевого фрезера, на всякий случай заблокировать ось А, может прокатит  

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

По-моему за это отвечает команда МультиГоуту. Вам нужно зайти в егенратор постов и включить там её. Вот тело:

program MultiGoto  
  if INTERP_ > 1 then INTERP_ = 1      ! G1
  if Cmd.Ptr["Axes(AxisXPos)"]<>0 then begin
    X = Cmd.Flt["Axes(AxisXPos).Value"]
  end
  if Cmd.Ptr["Axes(AxisYPos)"]<>0 then begin
    Y = Cmd.Flt["Axes(AxisYPos).Value"]
  end
  if Cmd.Ptr["Axes(AxisZPos)"]<>0 then begin
    Z = Cmd.Flt["Axes(AxisZPos).Value"]
  end
  if Cmd.Ptr["Axes(AxisAPos)"]<>0 then begin
    A = Cmd.Flt["Axes(AxisAPos).Value"]
  end
  if Cmd.Ptr["Axes(AxisBPos)"]<>0 then begin
    B = Cmd.Flt["Axes(AxisBPos).Value"]
  end
  if Cmd.Ptr["Axes(AxisCPos)"]<>0 then begin
    C = Cmd.Flt["Axes(AxisCPos).Value"]
  end
  if (Z<>Z@) and (NeedKorDl<>0) then begin
    KorDl = NeedKorDl; KorDl@ = MaxReal
    H@ = MaxReal
    NeedKorDl = 0
  end
  if (CycleOn=0) and
     ((X<>X@) or (Y<>Y@) or (Z<>Z@) or
      (A<>A@) or (B<>B@) or (C<>C@))
  then begin
    OutBlock    ! output to NC block
     end
  end
  XT_ = X;  YT_ = Y;  ZT_ = Z        ! save current coordinates
end
Ссылка на сообщение
Поделиться на других сайтах

 

По-моему за это отвечает команда МультиГоуту. Вам нужно зайти в егенратор постов и включить там её. Вот тело:

program MultiGoto  
  if INTERP_ > 1 then INTERP_ = 1      ! G1
  if Cmd.Ptr["Axes(AxisXPos)"]<>0 then begin
    X = Cmd.Flt["Axes(AxisXPos).Value"]
  end
  if Cmd.Ptr["Axes(AxisYPos)"]<>0 then begin
    Y = Cmd.Flt["Axes(AxisYPos).Value"]
  end
  if Cmd.Ptr["Axes(AxisZPos)"]<>0 then begin
    Z = Cmd.Flt["Axes(AxisZPos).Value"]
  end
  if Cmd.Ptr["Axes(AxisAPos)"]<>0 then begin
    A = Cmd.Flt["Axes(AxisAPos).Value"]
  end
  if Cmd.Ptr["Axes(AxisBPos)"]<>0 then begin
    B = Cmd.Flt["Axes(AxisBPos).Value"]
  end
  if Cmd.Ptr["Axes(AxisCPos)"]<>0 then begin
    C = Cmd.Flt["Axes(AxisCPos).Value"]
  end
  if (Z<>Z@) and (NeedKorDl<>0) then begin
    KorDl = NeedKorDl; KorDl@ = MaxReal
    H@ = MaxReal
    NeedKorDl = 0
  end
  if (CycleOn=0) and
     ((X<>X@) or (Y<>Y@) or (Z<>Z@) or
      (A<>A@) or (B<>B@) or (C<>C@))
  then begin
    OutBlock    ! output to NC block
     end
  end
  XT_ = X;  YT_ = Y;  ZT_ = Z        ! save current coordinates
end

 

Спасибо Вам за помощь. Кажеться я уже нашел ответы на свои вопросы.

 

Вот полезное и доходчивое видео по разработке постпроцессора:

 

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

Изменено пользователем Iho
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Viktor2004
      Туда вроде наоборот заносится значение какое-то, но не считывается Смотрю чужие программы, там вроде только 8549 используют. При чем у них в программах циклы поболее моих, которыми я круги чертил O4198 ; #500=#8549 ; IF[ #8549 EQ 0 ] THEN ; #10409=0 ; ENDIF ; IF[ #8549 EQ 134 && #10409 EQ 0 && #10422 NE 0 ] THEN ; #10409=1 ; #10422=FIX[#10422 / 10] ; #10427=1 ; ENDIF ; IF[ #8549 EQ 48 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 0 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 49 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 1 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 50 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 2 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 51 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 3 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 52 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 4 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 53 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 5 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 54 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 6 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 55 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 7 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 56 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 8 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 57 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 9 ; #10427=1 ; ENDIF ; IF[ #10422 GT 9999 ] THEN ; #10422=FIX[#10422 / 10] ; ENDIF ; IF[ #500 EQ 249 && #8500 EQ 4170 ] THEN ; #8500=4601 ; M99 ; ENDIF ; IF[ #500 EQ 240 ] THEN ; IF[ #8500 EQ 4174 || #8500 EQ 4173 || #8500 EQ 4177 ] THEN ; #8500=4170 ; M99 ; ENDIF ; IF[ #8500 EQ 4178 ] THEN ; #8500=4170 ; M99 ; ENDIF ; ENDIF ; IF[ #500 EQ 248 && #8500 EQ 4170 && D34.0 NE 0 ] THEN ; #8500=4174 ; M99 ; ENDIF ; IF[ #500 EQ 247 && #8500 EQ 4170 && D30.4 EQ 1 && D29.6 EQ 0 ] THEN ; #8500=4175 ; M99 ; ENDIF ; IF[ #500 EQ 246 && #8500 EQ 4170 && D35.0 EQ 1 && D35.4 EQ 1 ] THEN ; #8500=4178 ; M99 ; ENDIF ; IF[ #8549 EQ 152 && #10409 EQ 0 && #10422 EQ 5656 ] THEN ; #8500=4177 ; M99 ; ENDIF ; M99 ;  
    • nicomed
      Как победить проблему с блокированием сегментов эскиза не знаю. Поэтому пока полумеры... Ввел активацию чертежного листа после разрыва линии. Для разблокирования сегментов после закрытия программы двойным кликом активировать чертежный вид, где надо двигать сегменты эскиза. Добавил настройки. Можно настроить величину генерируемого зазора в  файле options.xml. По толщине и стилю линии, если кто подскажет как прочитать стиль и толщину выбранной кромки ( силуэтной кромки), то тогда можно будет "напосмотреть".   Пару раз натыкался на такой глюк - остается только один сегмент эскиза, грешу на рассинхронизацию работы солида и приложения. EdgeTrim_v3.3.zip
    • si-64
      да, это работает. спасибо. но как то особо не работал со слоями, нужно прямо заморачиваться(
    • nicomed
    • Stanislav
      Фрезеровка и токарка ЧПУ. Территориально Нижний Новгород, отправка в регионы ТК. Фрезеровка Алюминия и его сплавов, Латунь, Текстолиты, Сталь в небольших объемах. Токарка как цветные так и черный металлов и неметаллов. Габариты деталей для фрезеровки порядка 400мм*600мм. Оплата, пока что, наличные или на карту. Чертежи и модели отправлять на почту 0563506@mail.ru там же все согласования и обсуждения.
    • Александр1979
      Можно попробовать код считывать из переменной #8501. В руководстве написано что значение сохраняется в переменной до тех пор, пока не будет произведено чтение из неё.
    • si-64
      Можно ли сделать так чтобы в чертеже все размеры были черные, а в эскизе детали цвета управляемых и управляющих различались? настройка меняет цвет как в чертеже так и в эскизах: Зачем это нужно? В чертеже есть элементы, отличные от черного, поэтому вариант печати (сохранения в PDF) в ч/б не устраивает.
    • Artas28
      Шота получилось. Всё равно. Жду ответа от гуру NX, как сделать фаску красиво в 5 осях, что бы вектор инструмента менялся.  
    • Viktor2004
      Моя программа считывает его лишь тогда, когда в момент нажатия кнопки программа выполняет команду считывания переменной. Во всех остальных случаях код получается не считан
    • gudstartup
      но кто то же этот код считывает из mdi буфера раз его там не оказывается когда ваша программа его опрашивает? 
×
×
  • Создать...