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

постпроцессоры


skimen

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

22 часа назад, Dantist сказал:

Почитал про NexToolNum, его использовать оказалось намного проще, т.к это внутренняя функция самой программы.

Подредактировал фануковский пост, с GFindCld  не стал заморечиваться.  Dantist спасиба

 

program LoadTl
    aaa: array of real
    if Tool<>99 then begin
      output "G91 G0 G28 Z0."
      output "M1"
    end

  number_of_tools = number_of_tools + 1
  output "N"+str(number_of_tools)
  if CycleOn=1 then begin CycleOn=0; Cycle=80 end

  Tool = cld[1]; Tool@ = MaxReal    ! filling Tool register     ! Это я удалил
  M = 06; M@ = M-1

 

  if FirstTool = 0 then begin        ! это вставил
    FirstTool = cld[1]                 
  end
  nttl  = NexToolNum        
  if nttl > 0 then begin
    Tool_ = nttl
  end else begin
    Tool_ =  FirstTool
  end

  Msm=6; Msm@=Maxreal
  Call OutBl

    Msp = 0; Msp@ = Msp;
    S=0; S@=S


  IsFirstMove = 1    ! tool change mark
  X = MaxReal; X@ = MaxReal
  Y = MaxReal; Y@ = MaxReal
  Z = MaxReal; Z@ = MaxReal
end

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


  • 2 недели спустя...

Добрый день.

Дорабатываю стандартный пост под карусель с NC200. Следующие момент пока не смог победить:

1. Как заставить постпроцессор вывести в УП символ кавычек - " ? Этот же символ используется в самом посте, как служебный, для разделения, и соотв. пост воспринимает его как "для внутреннего пользования". Может можно как-то через код аски?

 

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

Может можно как-то через код аски?

Виктор, чувствуется рука мастера!. Хорошо заданный вопрос уже содержит половину ответа, да ? ;)

допустим надо вывести такую строчку в текст УП: (DIS,"Standard")  

cs$ = "(DIS,"+Chr(34)+"Standart"+Chr(34)+")" 

output cs$ 

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

Вот! Я ведь догадывался, чувствовал, можно сказать, что есть путь :). Как когда-то, когда html писался вручную, некоторые символы тоже приходилось обходить.

 

Спасибо! Сейчас попробую. Как раз для DIS-а и надо было, и для меток для безусловного перехода - операторы вручную листают программу по кадру, но мне-то стыдно так делать, если надо с середины запустить :).

Работает. Еще раз спасибо!

 Output "(DIS, "+Chr(34) + CLData$ + Chr(34) +  " )"

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

Можно считать пост для карусели 1Е512/1Е516 с NC200 готовым. Правка, конечно, самая примитивная без использования всех возможностей спрутовского языка постов и среды разработки.

Что удалось/пришлось сделать:

Вывод в начале программы названия файла

закомментированная заготовка безусловного перехода в начале

Выход в станочный ноль G79X0Z0 в начале, конце программы и перед каждой сменой инстурмента

М0 перед каждой сменой инструмента(по-хорошему надо М01, но на этих стойках нет отдельной кнопки типа OptionStop, а трехбуквенные коды - операторы ладно хоть REL знают)

Смена инструмента в формате нц-эшки(Т2.2 М6)

Перед каждой сменой - метка безусловного перехода в формате Т+номер инструмента

Ограничение оборотов жестко забито 150/мин, такие станки(опять же по-хорошему это надо определять в проекте спурта и чтобы оттуда автоматом цеплялось в УП, но я пошел по самому простому пути).

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

Так же тупо вручную жестко при каждой смене прописаны подготовительные G-коды 90,97,95,40

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

Вывод подачи в каждый кадр с рабочим перемещением - для запуска "вручную" с середины программы.

Смена круговой интерполяции от стандарта - вместо G2 - G3 и наоборот. Это можно в стойке поправить, но уже имеется не один десяток программ, и все уже привыкли.

 

По трудо- и мозгоемкости примерно сравнимо с правкой фануковского поста солида для той же нц-эшки. Спрутовская среда разработки конечно помогла, но не сильно, т.к. изучать ее досконально некогда, а без этого пользы от нее не сильно много. Солидовский пост просто в блокноте правил. Ну и конечно без инструкций ничего бы вообще не вышло.

 

Кстати, так и не нашел в приложении описания структуры

массива <CLD>, может опять торопился и не там смотрел...

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

Кстати, так и не нашел в приложении описания структуры

массива <CLD>, может опять торопился и не там смотрел...

Возможно, действительно не удалось найти сразу, она была в справке (F1 - в окне генератора постов),  либо дублируется на сайте  https://www.sprut.ru/files/Inp11/documentation/html_thecldatadictionary.htm

Описание команд доступно в разделе 

5bacc7b20c423__cldata.thumb.PNG.4832e7217d7babae2c0685de72013c0b.PNG

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

Это технологические команды самого языка, а структура массива, через который спрут в пост данные передает?

CLD[1/2/5/34/58] - это что? А где там номер инструмента? Где переключение с рабочего хода на ускоренный?

Кое-что можно "выловить" из текста поста, к чему-то обратиться через глобальные переменные, а остальное - тайна, покрытая мраком...

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

Это технологические команды самого языка, а структура массива, через который спрут в пост данные передает?

Виктор, не разочаровывайте меня... Для Человека тыка - Вы слишком сразу как-то сдались :)

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

CLD[1/2/5/34/58] - это что?

как бы здесь по-проще сказать..

файл CLData, которую формирует SprutCAM содержит набор технологических команд.

 

Для примера скопировал часть файла CLData сюда:

1. STRUCTURE  ON(71), TYPE "HeaderSection", Comment "$Header$"
2. STRUCTURE  ON(71), TYPE "String", Comment "Начало"
3. PPFUN      TECHINFO(58), 250, -204.944, -13.335, -5, 327.5, 212.176, 417, 10, 0, -5, 0, -12.5, -12.5, -335.5, 12.5, 12.5, 1, 3, 0, 0.05, 0.02, 0, 0, 0, 8, 3.3, 16.5, 0, 0, 8, 0, 0, 0, 2, 1929.151, 10000, 100, 100, 100, 100, 100, 300, 1933.38, 1.073, 4.4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0
4. COMMENT    "Черновая послойная"
5. ORIGIN     X 0, Y 0, Z 120, PPFUN 0, N 54, A 0, B 0, C 0
6. LOADTL     N 8, X 0, Y 0, Z 20, D 3.3, M -8, K 8, L 16.5, P 0, A 0, R 0, H 0, RC 0, PLANE XY(33), Dur 60, HID 8, NX 0, NY 0, NZ 1, NW 0, RevolverID AxisT
7. COMMENT    "@3mm EndMill"
8. PLANE      XY
9. SPINDL     ON(71), NO 1929.151, K 0, MODE RPM(0)
10. CUTCOM     ON(71), LENGTH(9)8, X 0, Y 0, Z 0, N 0, 

 

Во-время обработки, генератор постпроцессоров разбирает каждую команду, для этого есть обработчики этих команд (ну это итак я думаю было ясно).

Так вот, находясь в любом обработчике (допусти возьмем команду Spindl) попробуем ее разобрать : 

  SPINDL     ON(71), NO 1929.151, K 0, MODE RPM(0)

 

Откроем ссылку на описание этой команды  https://www.sprut.ru/files/Inp11/documentation/html_spindle.htm

CLD_spindl.thumb.PNG.ca6d655946bedf94553c31bdc528c24a.PNG

Получается, что в команде Spindel - передается часть информации касающаяся:

 cld[1]  - это включение/выключение шпинделя,

В нашем примере cld[1] равно 71, т.е шпиндель включается, значение оборотов (cld[2]) будет выведено в текст УП  1929.151, cld[4] =0 - значит в об/мин 

 

У каждой команды, набор параметров различен, поэтому в каждом обработчике значение CLD[1]  - разное как по смыслу, так и по значению.

Открываю описание каждой команды - можно понять, что передается в ней (какие параметры за что отвечают)

 

Есть одно исключение: команда PPFUN - она содержит в себе параметры из разных команд, и из нее можно "выудить" предварительную информацию

https://www.sprut.ru/files/Inp11/documentation/ppfuntechinfocommand.htm

 

4 часа назад, VicktorVR сказал:

А где там номер инструмента?

Номер инструмента - в команде LoadTL (либо 26й параметр cld[26] в PPFUN)

 

4 часа назад, VicktorVR сказал:

Где переключение с рабочего хода на ускоренный?

2 команды в CLData отвечают за подачи: RAPID и Feedrat 

 

Ссылка на сообщение
Поделиться на других сайтах
В 27.09.2018 в 13:41, VicktorVR сказал:

Кстати, так и не нашел в приложении описания структуры

массива <CLD>, может опять торопился и не там смотрел...

Для начала рекомендую посмотреть этот ролик. Ролик старый, но для понимания принципов разработки постов в SprutCAM - самое то.

 

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Здравствуйте, подскажите, пожалуйста где и куда чего надо дописать, что бы подправить постпроцессор.

Необходимо воткнуть одну строку перед сменой инструмента

 

как сейчас 

39 L X-4.386Y+27.652 R0
40 L Z+5. R0
41 L Z+10. R0 F MAX
42 TOOL CALL 8Y S3150
43 L X+0.Y+21.8 R0 F MAX
44 L Z+2.5 R0 F MAX
45 L Z-5. R0 F300 M13
46 CC X+0.Y+20.4

 

как надо

39 L X-4.386Y+27.652 R0
40 L Z+5. R0
41 L Z+10. R0 F MAX
43 Z+200. R0 M06
45 TOOL CALL 8Z S3150
46 L X+0.Y+21.8 R0 F MAX
47 L Z+2.5 R0 F MAX
48 L Z-5. R0 F300 M13

Ссылка на сообщение
Поделиться на других сайтах
В 08.11.2018 в 16:11, Meler сказал:

Необходимо воткнуть одну строку перед сменой инструмента

Добрый день, @Meler

В 08.11.2018 в 16:11, Meler сказал:

43 Z+200. R0 M06

возможно, эта строка появится в результате настроек самого проекта (правила подводов/отводов)

 

Отличие в этой строчке? Насколько я заметил, еще в строке вызова TOOL CALL есть отличия (Y S3150 в первом блоке, а должно быть Z S3150)

Если это тоже надо менять, то возможно дело в имени регистра. Надо в посте найти регистр с таким именем (Y S), и заменить его на Z S.

 

 

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

Добрый день, @Meler

возможно, эта строка появится в результате настроек самого проекта (правила подводов/отводов)

 

Отличие в этой строчке? Насколько я заметил, еще в строке вызова TOOL CALL есть отличия (Y S3150 в первом блоке, а должно быть Z S3150)

Если это тоже надо менять, то возможно дело в имени регистра. Надо в посте найти регистр с таким именем (Y S), и заменить его на Z S.

 

 

Спасибо. Уже решили проблему в посте.

Правда времени заняло кучу.

Изменено пользователем Meler
не все дописал, что следовало
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
  • 8 месяцев спустя...

Доброго времени суток. Не можете подсказать, где можно найти постпроцессоры и сами 3D модели станков Doosan Puma 240 (i стойка), Doosan lynx 220 (Oi-TC стойка), Doosan lynx (i стойка) для SprutCAM 12

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...
В 10/21/2019 в 09:43, epsxe сказал:

Здравствуйте. Требуется пост на токарный станок для SprutCam. Стойка Sinumerik 802D sl

Посмотрите этот, может подойдет

Sinumerik 828.zip

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Здравствуйте.

Из 12ой версии убрали Окуму. Может у кого из 10й версии остались посты на OKUMA Genos, OKUMA LB, OKUMA Multus? Спасибо заранее.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
В 12/5/2019 в 06:52, Dmitriiy сказал:

Из 12ой версии убрали Окуму. Может у кого из 10й версии остались посты на OKUMA Genos, OKUMA LB, OKUMA Multus? Спасибо заранее.

Если для SprutCAM то посмотри этот. Только надо проверять, ни каких гарантий.

Multus.sppx

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Jenny
      Ну что поделать. Оптические сборки они такие. Соединители(2шт)+заглушка+провода а в спецификацию летит 1 строкой. При этом для сборщиков необходимо указывать как проложить провод. Вот и извращаемся как можем. Благодарю!
    • Павлуха
      Поставите сюда галочку и будет Вам счастье.    
    • Бестолковый
      Так вот, осваивая потихоньку SW пришёл к созданию собственных таблиц свойств. Тех самых которые Custom Properly Table, для детали, сборки чертежа детали и чертежа сборки соответственно. Создал таблицы (синхронно создав заготовки для каждого типа вышеуказанных документов, переписал переменные и сложил в отдельную папочку, прописав в свойствах SW пути к ней. Так, чтобы при создании нового документа всё открывалось правильно.   Начитавшись форумов всяко-разных профильных (включая этот) и мануалов пришёл к выводу, что можно "скармливать" в таблицу текстовый или Excel файл с необходимыми данными, как то данные для заполнения штампа и прочее. Иерархия такова: Есть конкретный неизменяемый диск, на нём папки всех проектов, в каждой из них, кроме самих файлов SW кладу этот самый файл гордо именуемый "Код_проекта_db.txt" имя которого меняется, равно как и путь. Всё бы ничего, но когда у тебя один проект - всё гуд, делаешь второй проект - при открытии панельки справа - SW автоматом "подтягивает" файлик из первого проекта, приходится открывать Properly Table Builder и переназначать путь к файлу с необходимыми для второго проекта данными.   Сопсна - сам вопрос к Многоуважаемому Сообществу: Продолжать перезаписывать пути каждый раз или есть какой-то другой выход из сложившейся моими шаловливыми ручонками ситуации?   Заранее признателен за адекватный развёрнутый ответ!  
    • igor555
      Но почему-то на других станках в цехе этого нет и не тупим...хотим придти к единому знаменателю
    • mrVladimir
    • Vengeance
      https://t.me/bBqcc5UzY2E6 заходи в гости, там есть все ^_^
    • Давид
      Доброго времени. Можете поделиться русификатором пожалуйста. ambdavids@gmail.com
    • Александр1979
      В диагностике параметр 0000 смотрите.
    • the Devil incarnate
      сделайте связь "параллельно" со смещением 5мм и будет вам счастье.
    • mrVladimir
      Здравствуйте. Система 0i Mate-TD. При нарезании резьбы зависает между проходами. Есть предположение, что нет нуль-метки. Датчик подключен по схеме к JA7A. Можно как-то проверить приход нуль-метки не снимая датчика прямо на системе? Может в диагностике есть что-то подобное. Сами обороты (в минуту имеется ввиду) отображаются. В программе так: S800 Z3. X37. G76 P10060 Q50 R50 G76 X33.35 Z-35.5 R0 P1000 Q50 F2.  -вот здесь зависает Z3. X350 но зависает не окончательно - постоит-постоит и может дальше пойти. Есть еще предположение - рассогласование по осям превышает установленный порог. Но никак не могу сообразить - где посмотреть...
×
×
  • Создать...