Программа mach3 для чего

Покупка фрезерного станка с ЧПУ – важный шаг для оптимизации производственного процесса. Это актуально как для больших предприятий, так и для работы в домашних условиях. Современные станки с ЧПУ обеспечивают высокую точность обработки, а также существенный рост производительности. Эффективность оборудования, оснащенного ЧПУ, в разы выше по сравнению со станками предыдущих поколений.

С появлением ЧПУ существенные изменения претерпела роль оператора в управлении станками. Теперь они должны разбираться не только в «механике», но и в программном обеспечении, с помощью которого работает станок. Программное обеспечение является связующим звеном между фрезерным станком (координатным станком ЧПУ), оператором станка и компьютером.

Одной из наиболее популярных программ такого рода является Mach3. Это специально разработанный программный пакет с удобным интерфейсом. Mach3 заточен под работу с операционной системой Windows. Mach3 по праву считается оптимальным для большинства фрезерных станков. В частности, для большинства находящихся в продаже граверов по металлу и по дереву.

Урок №1 по Mach3. Обучающее видео, Основные функции, Интерфейс.


Также следует отметить, что сегодня у покупателя широкий выбор систем линейного перемещения высокого качества.

Поделиться
Поделиться
Информация
Личный Кабинет

  • Валы для станков
  • Алюминиевые профили для ЧПУ станка
  • Цанги ER
  • Корпусные подшипники
  • Подшипниковые узлы
  • Винты для ЧПУ станка

ВКонтакте Facebook Twitter Youtube Google+

191176, Санкт-Петербург, Уткин проспект, 4И.

Источник: zaxis.ru

ЧПУ в хоббийной мастерской (часть 3)

Изначально, планировал ограничиться двумя постами (раз, два) про мои ЧПУшные эксперименты. Но, тема оказалась многим интересной, поэтому, немного ее еще пораскрываю. В этом посте пойдет речь про написание самодельного софта для управления любительским ЧПУ.

Предисловие

Собравшись с силами, на выходных навел что-то отдаленно напоминающее порядок и сделал, наконец, 2 вещи которые собирался сделать еще пол-года назад.

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

Может кому пригодится лайфхак: новый стол сделал из пластиковой террасной доски (продается в Кастораме):

Доски болтами прикрутил прямо к алюминиевому родному столу. Бонусом получились удобные пазы для фиксаторов заготовки и быстрого монтажа присадочного стола. На все про все ушло пара часов и ~1100р.

И во-вторых, наконец, написал более-менее юзабильный софт для управления нестандартными функциями ЧПУ. Про это и будет основной рассказ.

Постановка задачи

G-code для операций, которые описаны во второй части простейший. Тем не менее, сам процесс наладки нельзя назвать быстрым.

Читайте также:
Формат wav что это такое в какой программе

Как это происходило

Например, для присадки нужно было: зная ширину панели посчитать сколько должно быть отверстий, рассчитать точное расстояние между ними, создать файл, написать g-code, загрузить его в Mach3. Все это занимает, в лучшем случае, минут 15 — 20. В этом свете, преимущества цифрового станка значительно меркнут по сравнению с ручным инструментом, которым за это же время можно навертеть целую кучу дырок.

Что хотелось получить

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

Поиск решения

Первое что пришло в голову было написание автономной программы, которая напрямую бы взаимодействовала с параллельным портом. Беглый гуглинг показал, что задача записи в lpt вполне решаемая, но черт, как известно, прячется в деталях. При дальнейшем изучении вопроса я понял, что застрять тут можно всерьез и надолго. К тому же, такое решение было бы не гибким: для другого станка, например с USB, оно не работало бы.

Оставался вариант разобраться с SDK Mach3. В процессе сбора информации про создание mach-плагинов я натолкнулся на интересное решение. В нем описывалось как используя OLE-механизмы можно дергать Mach3 из стороннего приложения. Я не эксперт в технологиях Microsoft, но после просмотра по диагонали мануала по SDK Mach3, если я правильно уловил основную идею, никакой серебренной пули не существует, плагины используют те же публичные методы COM-объектов Mach3. Перекраивать интерфейс Mach3 я не собирался, таким образом, разница для пользователя между плагином и standalon приложением получалась только в том, что плагин доступен из меню Mach3, а приложение — через иконку на рабочем столе XP.

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

Берем в руки шашку

Последний раз нативное десктопное приложение для Windows мне приходилось писать году, эдак, в 2006 и было оно на Delphi. С тех пор веб-технологии с их Линуксом окончательно поглотили меня. Поэтому, сейчас особых предпочтений на каком языке ваять windows-программу у меня не было. Найденный простенький пример был написан на C#, этот язык и был выбран в качестве подопытного кролика.

Я не буду здесь выкладывать весь код получившегося приложения (при желании можете его найти на github по ссылке внизу поста). Поясню основные вещи. Все эксперименты я проделывал на виртуалке с WinXP SP3, VS 2003 и Mach3 Version R3.043.062. Для тех кто считает, что лучше один раз увидеть ссылка на ролик в Youtube по которому разбирался я. Ниже расшифровка основных моментов.

Читайте также:
Программа метасток что это

Подготовка

  1. Чтобы Visual Studio нормально подхватила компонент Mach3 нужно чтобы он корректно был прописан в реестре. Для этого качаем файл Mach3Registry.reg
  2. Запускаем Mach3Registry.reg
  3. Запускаем VS, создаем проект оконного приложения на C#
  4. В блоке Solution Explorer правый клик по References, в меню выбираем Add Reference. В открывшимся окне нажимаем Browse и ищем Mach3.exe

Взаимодействие с Mach3

Подключаем нужные библиотеки, объявляем переменные (Form1.cs)

. using System.Runtime.InteropServices; using Mach4; // Подключаем компонент Mach namespace Cnc < public class Form1 : System.Windows.Forms.Form < private IMach4 _mach; private IMyScriptObject _mInst; . // получение ссылки на запущенный экземпляр Mach3 private void GetMachInstance() < try < _mach = (IMach4) Marshal.GetActiveObject(«Mach4.Document»); _mInst = (IMyScriptObject) _mach.GetScriptDispatch(); >catch < _mach = null; _mInst = null; >> .
GetMachInstance(); // if(_mInst != null) < _mInst.DoOEMButton(1003); // Нажатие на кнопку Stop в Mach3 _mInst.Code(«G00 X100»); // Выполнение G-code _mInst.GetOEMDRO(800); // Получить текущее значение координаты X >

Коды кнопок и значений параметров можно посмотреть в вики: OEM_DROs и OEM_Buttons (Wiki у них подглючивает, значения параметров в таблице не выводится, я смотрел на вкладке «View source»).

Первая версия программы работала так: по установленным параметрам генерировался g-code который покадрово (т.е. построчно) выполнялся методом _mInst.Code. И это было моей ошибкой. В отладочной среде на виртуалке все прекрасно работало. В Mach3 бежали правильные цифры в координатах. Но при переносе на станочный компьютер возникли проблемы.

Каретка перемещалась правильно, но шпиндель не включался.

Похоже, что управление роутером и шпинделем в Mach работает в разных потоках. Получалась ситуация, что команды перемещений (G. ) выполнялись последовательно как они поступали в метод _mInst.Code в одном потоке, а команды управления шпинделем (M3, M5), не зависимо от первых, выполнялись в другом потоке. В результате, шпиндель включался (M3) и тут же выключался (M5), при этом перемещение каретки шло своим чередом.

Я пробовал разные варианты, подключал задержки, пробовал загнать весь управляющий g-code в одну строку и отправлять одним куском в _mInst.Code. В результате, остановился на решении «в лоб»: просто загоняю сгенерированный код в файл, этот файл программно открываю в Mach3 и там же программно нажимаю кнопку «Старт». Фрагмент работающего кода:

_mInst.LoadFile(«C:\tmp\gcode.txt»); System.Threading.Thread.Sleep(2000); _mInst.DoOEMButton(1000);

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

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

Что в итоге получилось

Далее, в двух словах о получившемся приложении. Отдельно расскажу о UI для каждой операции.

Раскрой

Тут все достаточно прозрачно. Параметр S нужен для компенсации размера L если заготовка закреплена не в нулевой точке по Х (или по Y при распиле вдоль).

Присадка

Для присадки возможны 2 конфигурации оснастки. Первая с болгаркой для сверления торцевых отверстий. И вторая с обычным шпинделем для сверления в плоскости щита (почему-то я назвал ее «Присадка фронтальная»).

Читайте также:
Программа checking что это

Присадка торцевая

При торцевой присадке важно точно выставить ноль в правом нижнем углу заготовки (у меня там находится угол бокового упора и стола). Со сверлом по дереву это сделать не сложно — там есть острый наконечник которым и надо попасть в этот угол. Закрепляя заготовку на столе я просто упираю ее в сверло.

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

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

Присадка фронтальная

Оснастка для фронтальной — это обычный шпиндель. Этот вид присадки используется когда нужно насверлить отверстий в горизонтальной поверхности не только по краям но и где-то посередине. Например, если в шкафе несколько отделений и кроме боковых стенок есть внутренние. Если длина панели больше длины станка, присадку можно сделать в 2 подхода с разворотом детали на 180 градусов. В этом случае, так же пригодится параметр X.

Токарная обработка

Для меня основной сложностью при подготовке g-code с токарной траекторией было не переборщить с максимальной глубиной погружения диска. Дело в том, что на выходе из Inkscape получается одна линия и точение происходит в один проход. Из-за этого, мне приходилось делать отдельный код для цилиндрования заготовки и только после этого запускался основной проход создающий форму.

И были некоторые ограничения на эту форму. В частности, нужно было следить, чтобы траектория не уходила слишком глубоко. Я старался не выходить за рамки 10 — 15мм от уровня первоначального цилиндра.

Все перечисленные проблемы удалось решить в новой программе. Работает это так: загружаем «сырой» g-code полученный из Inkscape, задаем размер стороны бруска заготовки и указываем максимальную глубину обработки за 1 проход (чем тверже деревяшка, тем меньше эта глубина). На базе исходного g-code и параметров программка посчитает безопасную траекторию и отправит ее в ЧПУ.

Планы на будущее

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

Ссылки

→ Mach3Registry.reg
→ Mach3 SDK и другие программы
→ Репозиторий проекта на Github (заранее прошу прощения у шарповиков за архитектурные косяки — это моя первая программа на С#).

Источник: habr.com

Mach3 R3.043.067

Mach3

Mach3 — это программа, при помощи которой с компьютера или ноутбука, работающего на базе Microsoft Windows, мы можем управлять практически любым ЧПУ-станком.

Описание программы

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru