ЧПУ для начинающих. Параметрическое программирование.
Не все задачи можно решить с помощью 3D моделирование или специализированного софта. Иногда приходится встряхнуть опилки в голове.
По этому поводу задачка (с подсказкой) для начинающих. Здесь же, кто не знает, можно глянуть, как отрабатывать подпрограммы в CimkoEdit и как настроить симку под свой станок.
Итак, задачка:
Насверлить отверстий в трубе. В одном случае отверстия расположены в шахматном порядке, в другом типа как по многозаходной резьбе. Решение для линейно расположенных отверстий я приведу в конце поста. Обработка на четырёхосевом станке(!)
Вот настройки Симки для приведенного ниже решения:
Собственно прорисовка для линейно расположенных отверстий:
Ну и код решения для линейного расположения. В нём легко понять, как подцеплена подпрограмма:
G90G54G0 G43H1 Z100
X0 Y0 A0
Z24
M3S1200
G0Z10
WHILE [#130LT359.992]DO1
A#130
G0Z10
N10 G1X#100 Y0 F4000
Z3
Z-1.5 F100
Z3 F4000
#100=#100+7
IF[#100GE75.5]GOTO20
GOTO10
N20 G0G40Z10M9
#100=5.5
#130=#130+21.176
END1
G0G40Z300M9
M98P0002
G91G28Y0
M30
%
O0002
(CENTROBKA 2)
#100=9(Z 0)
#130=10.588
G90G54G0 G43H1 Z100
X0 Y0 A0
Z24
M3S1200
G0Z10
WHILE [#130LT370.58]DO1
A#130
G0Z10
N10 G1X#100 Y0 F4000
Z3
Z-1.5 F100
Z3 F4000
#100=#100+7
IF[#100GE72]GOTO20
GOTO10
N20 G0G40Z10M9
#100=9
#130=#130+21.176
END1
G0G40Z300M9
G91G28Y0
M99
Не то что бы я хочу, чтобы у Вас кукуха слетела))) Хороший наладчик - это наладчик с развитым мышлением. Это задачка на развитие мышления.
Я технолог на предприятии, два станка на участке HAAS VF-2SS и ФП-27ТС. Составляю и обработку и операторскую работу делаю и небольшие наладочные. Мне конечно интересно читать как коллеги тут делятся работами своими и уже порядком накипело! Блин авторы подобных тем пожалуйста делайте свои посты читабельными и интересными. Этот извините, но полное г...о! " Обработка на четырёхосевом станке(!) " - это что? Вариаций компоновок несколько. " Не все задачи можно решить с помощью 3D моделирование или специализированного софта " - почему это данную задачу нельзя решить с помощью CAD/CAM? "В одном случае отверстия расположены в шахматном порядке, в другом типа как по многозаходной резьбе." - в другом типо как, типо как, серьезно? Вы кто там на производстве типо как инженер или типо как оператор? Ваш пример в G-кодах, вы вообще для кого его писали? G-код и так не очень читаемый, а тут не пояснений ничего. Где е...т коментарии??? Вы сами то вспомните через пару месяцев за что отвечает параметр 100 или 130? А если другой сотрудник придет он как должен понимать вашу программу??? Если вы хотите делиться опытом, делайте это нормально. Чтобы ваши посты можно нормально понимать и читать, и может использовать в своем рабочем процессе. А это полный отстой что вы написали, даже мне человеку работающим с ЧПУ становится не интересно после первого предложения, а "обывателям" вообще ничего не понятно будет! Может вы себя считаете и хорошим наладчиком. Но единственное от чего кукуха слетет - от отвратительного качества вашего разъяснения в этом посту! Уважаемые коллеги пишите нормально! От меня минус, и пардон за грамматику!
Как технолог по ЧПУ обработке (серийное производство автомобильных деталей) полностью поддерживаю. Пост ни о чём.
Фирма занимается производством металлорежущего инструмента (фрезы, сверла, пластины). Было несколько заказов не связанных с основной деятельностью, но как то все заглохло, на цене вроде не сошлись. Скажите что конкретно вас интересует.
Ну скорее всего врятли помогут. 99% того что пресс-форму разрабатывать у нас не станут. А так даже посоветовать сложно кого. В инстаграме подписан на одного товарища он вроде что то похожее делает. Могу скинуть ссылку.
Скиньте пожалуйста, был бы очень благодарен.
www.instagram.com/makar_cnc_mill/
Самая шикарная работа) эта пресс-форма дооолго вырезается)
С интересом почитаю твои посты. Я всегда рад новым знаниям!
Сам бы что-то написал, опытом поделился.
А он не умеет)
Кстати, мы не знакомы, но я тебе должен коньяк. Куда можно отправить?
Я уже 4 года, с тех пор, как дочка родилась, не пью спиртное вообще. Просто это у меня такой жизненный принцип. Так что подари коньяк хорошему другу)))
Я сам себе пообещал, что за этот пост Как стать ЧПУшником. Продолжение.
Который изменил мою профессиональную ориентацию я обязательно должен проставиться. Если не алкоголь, то что-то иное. Только вопрос, куда-кому можно отправить из Ростова-на-Дону.
Так ты стал ЧПУшником? Поздравляю! В нашем полку прибыло) Тогда рассказывай, как у тебя это получилось)
Пошел учиться, слегка завода на мультиканальной симке, обучение в сименс мск на симку HL, практика на токарно/фрезерных DMG. Море параметрического кода, свои циклы. Обучение в академии DMG, теперь полная 5осевка на DMU50 со стойки, начинаю делать свои посты.
Академия DMG.... Охуеть... Мы в Сибири слов-то таких не знаем(
У меня вся учёба по книжкам к станку. Спросить не у кого. Всё изучается методом научной отпизды.
Теперь твоя очередь обучать пикабушников))))
А я на лазере деградировать буду( Тут хоть платят.
В Красноярске и Новосибе на базе профтех училищ есть центры компетенций WorldSkillsRussia по токарно-фрезерным работам на ЧПУ. Они по-любому учат и оборудование у них, любой завод обзавидуется и умрет от оргазма. Пусть эколайны, но с полным фаршем по лицензиям на стойке и срадствам измерения-привязки. https://worldskills.ru/assets/docs//179/spisok-akkreditovann...
Тоже хочу учиться)
ТС, вы очень весёлый человек. Какой на этом ресурсе процент людей знающих что такое G-код? Если вас не затруднит, сделайте пожалуйста расшифровку кодов. Какой и за что отвечает (вкратце).
Уже +1 как минимум знающий - Я)). ТС молодец.
+1 Но у меня мало опыта. Работал некоторое время в рекламной компании на простеньком ЧПУ фрезере.
Код же ооочень простой. Наличие опытного наставника и время и ты ты профи. Я думаю желание и 1-2 мес экспериментов. Тут же не ООП ))
Код и вправду простой. Я работал только с 3d принтерами и то особо в gcode не лез, но тут все понятно и без справочника. Основные команды знаю, остальное можно догадаться исходя из задачи
ООП легче (Пробовал в качестве хобби освоить С#, но, без учителя это сложно). И немного писал скрипты для игры Skyrim - там тоже используются принципы ООП. И это куда легче.
А с G-кодом сложнее. Все станки разные и стандартизации никакой - так что значения команд надо учить для каждого отдельно. И код используется не только на фрезере. Что на фрезере может запускать вращение шпинделя, то на 3D принтере может запускать подогрев стола - пойди разбери, что эти китайцы наворотили в прошивке.
Вы просто ООП плохо знаете.
Передо мной сейчас реальный продающийся код на С#, сможете сказать что он значит?
или такое:var grouping = calc_points.GroupBy(cp => new Tuple<long, long, long>(cp.ID_GROUP, cp.ID_WORK, cp.ID_DEPARTMENT));
А с G кодом относительно просто - меняешь позицию, "головки" + простые циклы, вот и весь код. Надо хорошо знать только геометрию и предметную область.
Но так этот код ничего не делает, кроме как описывает класс какими-то функциями в первом случае и присваевает какую-то ерунду переменной во второй. Не пугайте новичков страшными длинными названиями функций)
Это первое чему надо учить :) А то приходят с универов и давай от а до я именовать, а потом цифровые приписывать. И всему этому 0,0 комментариев.Это все чтоб быстрее код писать, через год по итогу 2 недели убить на оптимизацию этого говна т.к. уже не помнить что к чему написал.
Какие-то говенные у вас универы
дело не в универах ни разу.
А в чем?
В каждом конкретном человеке. Кто-то удобства ради начинает именовать, кто-то какие стандарты читает, кто-то просто решает быстро писать код, особо не думая что однажды ему через год-два придется сюда вернуться. В любом случае большинство подгоняется под истинно православный стиль написания кода проекта/компании, как и везде.
Ну я тоже понял, что это "имена собственные". А уж узнать, что делает код, глядя лишь на имена - я не ясновидящий.
Я спросил что означает код, а не что делает.
Вот человек кратко и точно описал.
#comment_153927960
На 10% правильно рассказал )). Из правильного class - это да, объявление класса и "=" это оператор присваивания, остальное неверно.
Функция во всём коде только одна "GroupBy"
Сдается вы и сами не совсем понимаете что он делает. По факту здесь только слово class и = имеют отношение с C#, остальное выдумки ваших погромистов. Даром представлять функционал объектов по способу их вызова я не обладаю)))
Не туда ответил: #comment_153924810
Комбо из сериализуемого дженерика с указанием ограничений по используемым классам которые можно скормить сабжу, а далее тема сисек не раскрыта.
Последнее группировка значений calc_points через Linq по 3 типам, эдакий аналог ДБшной GROUP BY.
Это вы ещё в крестах не видели шаблона шаблона шаблона :)
Смотрю минусов у тебя в постах много. Часто осмеливаешься адекватную точку зрения на Пикабу высказывать?
Интернет - единственное где пока так можно делать, не опасаясь :)
Если у меня есть мнение, то я его высказываю, рейтинг побоку в большинстве случаев.
Чаще всего тут эффект толпы.
Сразу видно специалиста, а не @WirelessMan и @FeyfolkenKM у которых всё просто ))
На С++ я тоже пишу, видел и даже создавал. Делал указатель на указатель на указатель шаблона шаблона )) Весело конечно ))
А я и не говорил, что хорошо знаю.
Что по примеру - вообще не знаю. Даже не знаю, какой это язык. Как писал выше - я только c# поверхностно смотрел.
Это C#, и он не легче, вы же утверждаете, что легче. Это ровно наоборот. Также и с ассемблером - сам язык предельно простой..., сложности в предметной области и наличии опыта.
Собственно тут ничего нового. Надо как отче наш знать основною таблицу G-кодов с привязкой к внутренней кодовой базе конкретного процессора (макросы например готовые) + доп. коды конкретного оборудования, если таковые процессор предоставляет.
Я тимлид этого коммерческого проекта (откуда код)
1я часть кода - это объявление Дженерика (класса обобщения). Т.е. класса который работает с заранее неизвестными типами данных.
В данном случае таких типов 3: CHL, CHN, CHP, к каждому из этих типов мы предъявили требования, например:
where CHL : ASMPropertiesCommonChargesLinkBase, IASMPropertiesCommonChargesLink, new()
Тип CHL должен быть наследником от ASMPropertiesCommonChargesLinkBase, реализовывать интерфейс IASMPropertiesCommonChargesLink и иметь конструктор без параметров.
2я часть кода просто делит список объектов по значениям свойств ID_GROUP, ID_WORK, ID_DEPARTMENT или другими словами осуществляется группировка, которая попадает в переменную grouping.
В памяти (той, в которую ты ешь)) нужно держать примерно 20 строчек текста. Этого хватит на подавляющее большинство станков. 20 строчек сможешь наизусть выучить? :)
Ну, повсеместно распространенные всякие go и home можно и выучить. А вот, допустим, щуп для стола 3D принтера - что с ним делать? Вешать на какую-нибудь свободную команду? Или же пилить в прошивке новую? Вот я как раз про это.
Ну, на всех чпушках, которые мне попадались, программки для щупов уже были. Даже если щупов не было. В прошивке ничего пилить не надо. Это такая же программка в g-кодах, только с использованием параметров.
Ладно, другая ситуация - на YouTube видел обзор необычного на сегодняшний день 3D принтера, он печатает двумя видами пластика. Но у него два не неподвижных экструдера, а закреплены они на поворотном блоке, который вращается сервоприводом. Вот куда прикажете всю это лабуду цеплять - сам сервопривод и два шаговых двигателя в экструдере?
И как заставить это работать? Это я про то, что прога, которая готовит G-код из модели, должна знать что и за какую команду отвечает. Так-то да - повезло, что производитель там довольно крупный и адекватный, поэтому наладил контакт с разработчиками популярных слайсеров, дал им документацию и теперь этот принтер есть по умолчанию в списке слайсеров.
А если какой-нибудь китайский no-name?
Я не силён в 3Д принтерах. Как-то больше по металлообработке. А там всё более менее стандартизировано. Хотя попадаются китайские уёбища, сделанные не пойми как. На последний две недели ушло, чтобы запустить. Причем сам производитель помочь ни как не мог.
Вот я как раз и говорю - что не везде всё стандартизировано.
А я на ГФе работал, с перфолентой...
90-92-й)
Процент, я думаю, большой. По крайней мере, продвинутые владельцы тридэпринтеров должны знать G-код. А с учетом того ,что принтеры все китайские, в основном, то эти владельцы еще и конструкторы-наладчики :)
Ну вот я свой принтер собрал с нуля, но в G-коде знаю только холостой/рабочий ход и автонастройку PID с сохранением в EEPROM. Принтерам он особо не нужен (при исправной машине от вас требуется выбрать файл и он сам прекрасно сделает заебись), а в те полотна на сотню тысяч строчек, которые выдает слайсер, имеет смысл лезть только для проверки целостности, или при задании кастомных кодов. Но кастомники можно задать и в слайсере, он их сам в код вставит. И нет, ручное программирование не катит вообще - могу потом показать схему ходов из слайсера для какой-нибудь лодочки.
Да это понятно, что простыни никто руками писать не будет. Там же координаты отрезков, в основном, которые слайсер пишет гораздо быстрее и точнее :) Но есть нюансы, как говорится :) Например, любимая кура стала косячить в последнее время. Устанавливает температуры другие. Мне надо 195, а там 230 и не знаю, почему. Выяснять особо некогда, поэтому просто правлю код. Или нужно разрешить принтеру использовать данные сетки калибровки при старте печати. Это тоже только вручную. Ладно хоть можно сразу задать в стартовом коде слайсера. Или вот нашел я такую штуку интересную - прикручиваешь карандаш к каретке и оно рисует G-код на бумажке. Там вообще без контроля кода никак. Кривой плагин к инкскейп+мои кривые руки = все стекло исцарапано :)
Я не говорю ,что все команды надо знать, как отче наш. Но вот взять и проверить, если что-то идет не так, бывает очень полезно.
Может, профиль материала или машины не тот выбран? Кстати, и Кура, и марлин прекрасно знают, что такое кривые, и при слайсинге КАД-файлов кривыми и пишут. Размер простыни уменьшается на порядки. Ну а плоттер - ставьте прижимающий пружинный зажим, чтобы гасить такие косяки, и будет вам щщастье.
Да, я тоже думаю про профиль. Но я же ручками прописываю в настройках все, то есть, по идее ручные установки должны быть главнее. А вот про кривые можно подробнее? У меня что-то не получается куру заставить слайсить кривыми. Ткните, где почитать ,если не трудно
а зачем вообще писать со стойки? почти любой софт умеет (не уверен что компас умеет в 3+1)
Как я уже объяснял бесчисленному количеству людей - а если компа нет?
У меня два случая было. Когда компа не было вообще (пришлось покупать ноут), и когда монитор был шопездец (тоже рабочий ноут принёс).
Второе: на стойке у меня вбито море самодельных циклов, описывающих почти все задачи. Остаётся только вбить траекторию. Это для сдельщика это огромная экономия времени.
Да и само умение эффективно програмить это плюсик в карму. У меня сын в 14лет програмил Хайденхайн со стойки. Сейчас работает в Simens NX. Но мелкие простые детали делает со стойки (так быстрее).
В предыдющих постах я приводил примеры.
Мне близка данная тема, вот и решил поделиться своим мнением (ХЗ, как и что здесь комментировать, поэтому не обессудьте, если не в ту, не туда или не тем)...
На мой взгляд, программа составлена не очень толково, тем более её качество страдает, если пытаться причислить её к параметризированным программам. Ещё хуже дело будет обстоять, если пытаться использовать её на разном оборудовании без соответствующей адаптации. Если кто знаком со стойкой Sinumerik и одним из многих её замечательных модулей - ShopMill/ShopTurn, наверняка поймут, к чему я клоню. Если коротко, то адаптивные циклы вышеназванного модуля учитывают особенности функционирования того оборудования, на котором они запущены. В данной же УП нет даже так называемой "шапки безопасности". Что же касается параметрического программирования, то все или почти все технологические параметры должны быть определены через переменные либо как вводные значения, либо как расчётные. В противном случае лучше использовать CAD/CAM для формирования УП.
ShopTurn/Mill не имеют никакого отношения к параметрическому программированию. Визарды для разовых простых деталек.
Cam тоже нельзя запускать без ревизии кода и довключения что там забыли и выключения, что лишнее.
И не бывает универсальных программ. Два одинаковых станка будут иметь различия, пусть даже в области машинных данных, но это влияет на поведение оборудования.
Это я к чему, изучайте систему, на которой работаете, ЧПУ не прощает некомпетентность, но не исключает удачливость.
Как же я пи№дил своих техников за программы без точек после целых чисел...
Требование точки после целых чисел отключается в параметрах стойки. Точка, сука, бесит. Точка, сука, неудобно. Точка, сука, заебала. Заебал Фанук со своей точкой))))
Отключи её и будет тебе счастье)))
мухаблятский.......)
мухОблятский!
Что посоветуете почитать про Gкод? (это Gкод?)
Просто гуглишь "параметрическое программирование". Первой ссылью тебе вывалится планета кам. Это, плюс инструкция у станку - вполне достаточно. Остальное приходит с опытом. Кстати, у Сименса параметрическое программирование поинтереснее и полегче фануку.
А если совсем начинающий и интересует пока тлько G-код, то это инструкция по программимимированию к станку и любая инфа из инета. Хороший софт для обучения есть у HAAS, но я его ломануть так и не смог. Там флешка с HASP ключём.
G-man и его G-code
Спасибо. Вот я поебался с такой задачкой полгода назад. Пришлось по изучать параметрическое программирование.
Каждый диалект g-code уебищен по-своему. Для EMC я предпочитаю циклы со сдвигом на REPEAT и G92
Не скажи. Я щщщетаю фанук - он особо уёбищен! Я года два на токарных, токарно-фрезерных и фрезерных фануках провёл. Не знаю, как в дурку не заехал)))
Чисто для себя, а что у вас ЧПУшников с доходами?
Был как-то интерес переучиться, но низкая зп отпугнула.
Все сильно зависит от региона и конкретного предприятия, а соответственно нагрузки. Ты можешь быть оператором на десять станков, но там нужно будет только кнопку нажать и деталь снять потом, а можешь на одном станке с утра до вечера еб"ться с наладкой. Плюс есть варианты где не надо считать программы, а только детали ставить забирать, а есть варианты где только считать программы и не трогать детали. Можно за 30 в месяц в носу ковырять, а можно с жопой в мыле за 20...
А нормальных зарплат нет что-ли?
Зарплаты в 70-100 реальны, но не в регионах. Плюс далеко не на всех предприятиях. Там где выше зарплата и обязанностей выше. Если на условном заводе в Ульяновске работу по выпуску детали будут делать четыре человека: технолог, программист, наладчик и контролер, то в большинстве современных предприятий эту же работу директор взваливает на одного человека. технолог-программист-наладчик-оператор-контролер. Но и зарплата соответственно выше само собой.
Суть в том что в этой сфере нет какого-то стандарта зарплат.
Ясно, спасибо, значит пока рано менять профиль :)
Ну, на сделке нормально зарабатывают. Но я ленив. Я на окладе. У меня 75К.
А не подскажешь, как войти в сферу ЧПУ? Образование инженер-технолог по сборке. Трехмерное мышление развитое, CAD программы знаю. С чего начать, чтобы войти в профессию "инженер-программист ЧПУ"? А то везде тоска - образования, разряды и стопицот лет опыта. Спасибо
Так и входить... Начинать с универсальных станков за 30тр, когда руками научишься работать, и думать что делаешь, идти на ЧПУ от 50тр набирается опыта года 3 минимум если с головой все ок. дальше выбор прост до 100тр за 8 часов или жить на заводе и получать больше. А так то в любой сфере чтоб зарабатывать а не получать - опыт нужен. Без опыта никто платить не будет.
Вот только умоляю, не надо становиться инженером - программистом ЧПУ))) А то потом будешь убегать от наладчика, который за тобой с куском трубы гоняется)))) Я пересрался с технологами, которые спускали программы в виде простыней не 30 тысяч кадров. И которые невозможно править или запустить с нужного места или нужной глуюины с нужным шагом.
Становись наладчиком. Наладчик сам себе програмер, оператор, механик, технолог, конструктор и всё остальное. Он ни от кого не зависит.
Мефодий Багров. Вконтакте.
Лучшие технологи программисты на чпу - те которые раньше работали ручками на станках. А так солид+мастерам рулят.
Только проще)))
@Enot22rus, можете подсказать, получится ли сделать расфрезеровку конуса по винту, задавая угол конуса через параметрическое программирование?
Угол по оси Z делается через тангенс. Я так фаски делаю. Проход по Z - вывод инструмента - опуститься по Z - заехать в пересчитанную через тангенс координату.
Либо по спирали. Я пример в каком-то посте приводил.
я немного тупенький и доконца додумать не могу, сделать ступенькой легко, но как сделать спираль никак сообразить не могу, ступенькой примерно как то так получается:
#502=20. (KOORD. NACHALA X)
#503=20. (KOORD. NACHALA Y)
#520=45. (UGOL NAKLONA)
#511=10. (RADIUS NACHALA KONUSA)
#505=0. (KOORD. NACHALA OBR-KI PO Z)
#506=5. (GLUBINA OBR-KI PO Z)
#507=1. (SHAG OBR-KI PO Z KRATNO #506 )
(VYCHISLJAEMYE PARAMETRY)
#521=#511 (TEKUSHAJA KOORD. X)
#522=#505 (TEKUSHAJA KOORD. Z)
#523=#506 (SCHETCHIK)
G0G90G54 X#502 Y#503
S2000 M3
G43H1Z100.
M8
G1Z#505.F2000
N100G1X[#502-[-#521]]F100
G3 I-#521
G1 X#502 Y#503
Z#522
#522=#522-#507 (Z)
#521=#521-TAN[#520]*#507 (X)
#523=#523-#507
IF[#523 GE 0] GOTO100
G1X[#502-[-#521]]F100
G3 I-#521
G1 X#502 Y#503
с первым проходом только косяк, но это я еще смогу додумать, а вот спираль чот никак
Дык я ж приводил пример спирали. Там формула элементарная.
Только заглубление по спирали лучше не фрезеровать. Слишком большая нагрузка на фрезу по оси Z. Рискуешь сломать фрезу, если паршиво заточена, даже если она плунжерная. Лучше: отфрезеровал плоскость ХУ - вывел фрезу в точку входа/выхода - опустился по Z - повторил с меньшим радиусом конуса и так далее.
часто по винту расфрезеровываем отверстия с заглублением 0.5 на оборот двухперой фрезой по такой программе
T4M6( FREZA )
G21G17G40G49G80G69G94
T1
G0G90G54X05.Y0.
S3000M3
G43H4Z50.M8
(FREZA 20 D53+0.74 )
#1=. (CENTR PO X)
#2=.(CENTR PO Y)
#3=.(RADIUS OTV.)
#4=.(NACHALO PO Z)
#5=.(SHAG PRIRASH. Z)
#6=.(GLUBINA PO Z)
G0X#1.Y#2.
G1Z9.F2000
G41X[#1-[-#3]]D4F1600
N2G3I-#3Z#4
#4=#4-#5
IF[#4GE#6]GOTO2
G3I-#3
G1G40X#1Y#2
G0Z50.
думал что конусное отверстие можно будет сделать так же легко и просто , а выплыли свои нюансы, я спираль добавил из вашего примера, принцип работы понял, но не до конца... пока что как то так получается:
#502=0. (KOORD. NACHALA X)
#503=0. (KOORD. NACHALA Y)
#520=45. (UGOL NAKLONA)
#511=10. (RADIUS NACHALA KONUSA)
#505=0. (KOORD. NACHALA OBR-KI PO Z)
#506=6. (GLUBINA OBR-KI PO Z)
#507=1. (SHAG OBR-KI PO Z KRATNO #506 )
(VYCHISLJAEMYE PARAMETRY)
#521=#511 (TEKUSHAJA KOORD. X)
#522=#505 (TEKUSHAJA KOORD. Z)
#523=#506 (SCHETCHIK)
G0G90G54 X#502 Y#503
S2000 M3
G43H1Z100.
M8
G1Z#505.F2000
N100
#100=10.(NACHAL RADIUS)
#101=0. (NACHAL UGOL)
#102=1. (SHAG RADIUSA)
#103=9. (RADIUS OTVERSTIA)
#150=180.
G16
WHILE[#100GE#103] DO1
G3 X#521 Y#101 R#521 Z#522
#100=#100-#102
#101=#101+#150
END1
G15
#522=#522-#507 (Z)
#521=#521-TAN[#520]*#507 (X)
#523=#523-#507
IF[#523 GE 0] GOTO100
но получается пока что как то так, пробовал делить спираль по 180 градусов, но все равно пока не получил что хотел((
Вот я щас на вскидку не помню, я с фанука бухоблятского уже полгода, как на сименс переехал. Но смысл такой был: в полярных координатах заглубление было на длину сектора спирали. Типа спираль приращивалась секторами и каждый сектор заглублялся на сколько-то. Причем сектора можно хоть по 45, хоть по 5 градусов делать. И тангенс я там вообще не использовал. Я пороюсь на винте, поищу пример.
Кароч, нифига не нашел, я навскидку написал пример. Радиус тоже можно через параметр делать, но смысла не вижу. Как-то так. У меня 5 утра и я только что наконец-то завалил серых стражей, которые пытались оживить какого-то древнего псевдо попа. Короче соображаю плохо.
#100=5
#101=2
#102=0.1
#103=20
#150=0
#155=0.2
G0 Z0
X0 Y0
G16
WHILE[#100LE#103] DO1
Z#150
G3 X#100 Y#101 R20
#150=#150+#155
#100=#100+#102
#101=#101+#150
END 1
G15
т.е. конус меняется радиусом начальным и радиусом конечным?
а есть примеры параметрического программирования для нарезки конической резьбы?
Циклы в стойках - они все параметрами описаны. Распотроши цикл, много полезного узнаешь). А смысла писать цикл на коническую резьбу нет. Он и родной неплохой. В токарке вообще макропрограммирование применять почти нет смысла. Я только цикл прерывистого сверления с задержкой на дне без вывода сверла писал. Потому что этот цикл не купили. А времени и нервов он экономит много. Получаем стружку заданной длины и экономию времени раза в четыре, что сдельщику очень вкусно.
А к ЧПУ токарке я не лезу, там наладчики сами работают и говорят нелезти к ним))
"технолог..... стараюсь делать программы максимально простыми и гибкими"
А это на какой планете?🤣
Доступ есть. Мы переписывали программу смены инструмента. А то станок заебал при смене ездить в ноль каждой из четырёх осей. Просто почитай, где в стойке единички прописать надо, чтоб доступ получить.
Кстати, приходилось работать на Fanuc'е 31-й серии... Даже NC-210 гораздо приятнее юзать. :) Хотя... Если всё-таки достаточно серьёзно углубиться в её изучении, то, возможно, моё мнение на счёт этой стойки может измениться... Но! Пока что я кайфую от Sinumerik'а, поэтому на данный момент не испытываю ни малейшего желания заниматься Fanuc'ом...
Думаю, можно ещё кое-чем поделиться...
Для реализации задач, подобных описанной в главном посте, в Sinumerik'е используются специальные G-коды, например, TRANSMIT, TRAANG, TRACYL. Кстати, последний код (TRACYL) как раз и подойдёт для решения описанной выше задачи. Естественно, кое-какие вычисления всё-таки необходимо произвести, но в целом, задача сильно упрощена за счёт использования возможностей стойки Sinumerik. Что же касается Fanuc'а, то здесь придётся хорошенько потрудиться, чтобы создать адаптивную подпрограмму (цикл) на примере тех же самых циклов из Sinumerik'а.
Кстати, может кто подскажет, на Fanuc'е есть возможность обращаться в режиме чтение/запись через УП к системным переменным стойки? Чтобы было понятно, поясню на примере Sinumerik'а. Например, требуется получить значение оси X грубо из системы ENS для G54.
Код(УСЛОВНЫЙ):
N10 R0=$P_UIFR[1,TR,X]
N20 MSG(<<R0)
N30 M30
Что-то подобное можно сделать на Fanuc'е?
Для решения таких задач не нужны трансформации координат. Программируется быстрее, чем на хаасе/фануке.
Расковыряй програмку работы ренишау. Там есть эти обращения.
Да, можно. Для этого нужно проставить соответствующие разрешения в параметрах стойки.
Понятно, что сименс лучше. По этой причине я обосновал покупку 808D на новой работе. Но фанук тоже со счетов сбрасывать не стоит. После него сименс - это как глоток прекрасного токайского вина, после технического спирта)
Ужасно выглядит код. Неужели в ЧПУ нет языков повыше уровнем? Читается отвратительно. За goto ещё в 70 в нормальных языках ноги вырывали.
в чпу есть любые языки программирования.
в случае стандартных языков iso используется g-code и его различные интерпретации в зависимости от производителя чпу оборудования.
в случае самописа автор кода сам решает, как его детище общается с железной частью станка, сам занимается интерпретированием и выводом кода в сигнальные уровни.
А там нет нихера, кроме goto и while. Бейсик и тот сложнее.
Наш завод купил три токарника и фрезер, которые не имеют графического программирования. Тут вопрос цены. Покупать стойку за 2 миллиона или за 120 тысяч.
Насчёт Q и прочих параметров в циклах. Циклы "прошиты" в стойку. А с помощью макропрограммирования и волшебного G68 я могу создавать собственные циклы. Например в стойке тупо нет цикла прерывистого сверления. Которое БЕЗ вывода сверла. Я пишу цикл с задержкой сверла на дне отверстия на N миллисекунд и оставляю в стойке. Потом тупа вызываю его через G68. Сверление с задержкой, вместо вывода охуенно! Оно экономит кучу времени и позволяет делать стружку любой длины.
Мой муж начальник на производстве (какую-то хрень его рабочие изготавливают на заводе на станках , в т.ч. и на таких вроде) =) Пойду удивлю его новыми знаниями, а то кококко ничего не понимаешь!...
Есть, если собрать на искре от амперки)
Круто конечно. Кросавчег) Я тоже когда был маленький, извращался. А сейчас лень мозг напрягать, модельку закинул в САМ, скомпилил и погнали. Лень двигатель прогресса)
Имхо, САМ решает. В коды лезть смысл есть только для оптимизации автоматического. Иногда генерятся лишние маршруты. Чаще всего это не критично.
В данном случае модель рисовать дольше, чем прогу писать. САМ не решает. САМ позволяет филонить) Ну и раз он решает, приведи решение этой задачи в САМ системе.)))
Согласен с Basferrrr. Ты крут, шаришь в коде, пусть и не самым оптимальным путем. Но зачем?:) Скомпилил и немного подправил, если очень хочется сэкономить машиновремя!)
Тут ключевое слово "задача". Это пост для тех, кто хочет освоить G-код. И, да, если к станку не прилагается комп, то рисовать и компилить будет затруднительно.
Да не, цилиндр и массив. 3 минуты. Потом перекинул в САМ и компиль и похер на возможно кривые перемещения, главное результат. И думать не надо)
Регнулся только чтоб минус поставить зазнайке который несёт хрень. Молодчинка, конечно что в параметрах научился писать, но ты несёшь полнейший бред называя программу задачей. Хочешь показаться умным? Не вышло. Хочешь доказать что ты умеешь читать макропрограммы? Разбери по полочкам цикл привязки ренишоу, любой. Напиши пост по этому и полезно и покажешь свой скилл. И что же нельзя в каме написать? Эту хрень? Сейчас ЧПУ программисты ухахатываются над твоим постом. Ты не наладчик, а понтовщик. Называешься наладчиком, а сам поди и Кука не видел в живую. Ты оператор левла так третьего)
Почитал комменты, согласен с теми кто писал что пост не развернутый. Но охренел с тех кто пишет типо что они в этой сфере и при этом типо нафиг уметь руками писать если есть cam ... вот из таких дебилов и состоит наша промышленность. На предприятии есть у нас такой дебил, без солида лыску снять не может, зато пальцы гнет... и брак фигачит, потому что кроме g01 и g00 в голове нефига. Профессионал тем и отличается от делитанта, что профессионалу достаточно головы и рук, а делетитант работает на шару.
А теперь касаемо параметрического программирования...
Если быть объективным, то параметрическое программирование в том или ином виде присутствует практически в любом цифровом продукте (приложении, программе). Та же CAM-программа работает с теми или иными параметрами в целях создания УП согласно конкретным ТУк для конкретной детали на конкретном оборудовании. Только вот в подобных УП повлиять на технологическую составляющую мехобработки довольно проблематично. Например, мне нужна высокая точность размеров детали после мехобработки. Как этого достичь, если на этот фактор влияет, например, геометрия режущего инструмента - фактический диаметр? Сформированная CAM-программой УП априори не может учесть фактическую геометрию инструмента. Хорошо хоть, что сама стойка может учитывать и компенсировать фактическую длину инструмента. А как быть с фактическим диаметром инструмента. Как раз для решения такой проблемы и следует использовать параметрическое программирование. Естественно, параметрическое программирование в УП помогает решать гораздо более широкий спектр проблем и задач. Я, например, использую ПП (параметрическое программирование) для фрезерования однотипных деталей с учётом их количества отдельно по строкам и столбцам, объединённых одной областью обработки. Т.е. из одной заготовки могут вырезаться разные однотипные детали в заданном количестве. Так же учитываются: зазоры между однотипными деталями и их областями, толщины заготовок, угловые и линейные положения деталей относительно заготовки, пространственное положение самой заготовки, фактическая геометрия режущего инструмента. Сейчас работаю над созданием более продвинутой программы, которая позволит обрабатывать детали поуровнево (по оси Z) с различными режимами обработки: позиционирование деталей с определенным зазором с учётом угла поворота, разнонаправленная и разнопоследовательная обработка деталей на разных уровнях по оси Z... Скажу честно: создание такой программы идёт довольно медленно, но при толковой реализации она существенно облегчит мою работу. Почему? Да потому что созданная CAM-программой УП априори не может учесть все те факторы, которые влияют на точность и скорость фрезерования деталей.
Как же мне нравятся технические посты на Пикабу, все что-то обсуждают, никто не минусит друг друга. В споре аргументированные ответы и контраргументы. Люблю технарей ))