Быстрый вариант генерации G-кода для простой траектории

Остальные вопросы по работе с операционной системой Windows
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Быстрый вариант генерации G-кода для простой траектории

Сообщение selenur »

Иногда бывает нужно получить очень простую траекторию движения, по быстрому, и тут нашел вот такой способ, установим программу если не стоит "Windows PowerShell ISE".
После запуска программы можно легко писать скрипты:
2017-02-08_091549.jpg (7919 просмотров) <a class='original' href='./download/file.php?id=102517&sid=c007bb65b8dac62ddaf0fa27d1d598ab&mode=view' target=_blank>Загрузить оригинал (133.71 КБ)</a>

Код: Выделить всё

$p1 = ""

$s = 10;

for ($y = 0; $y -lt 10; $y++)
{ 

    $p1 += "G0 X0 Y"+$y + [char]13 + [char]10

    $p1 += "G1 X20 Y"+$y + " S" + $s + [char]13 + [char]10

    $s += 10

}

$p1

# Сохранение в файл
$p1 > d:\out.txt
Данный пример генерирует полоски для выжигания лазером, длиной 20 мм по оси Х, с шагом по оси Y с шагом 1 мм. И каждая линия содержит параметр S, который увеличивается на 10, с каждой новой линией.
2017-02-08_091603.jpg (7919 просмотров) <a class='original' href='./download/file.php?id=102518&sid=c007bb65b8dac62ddaf0fa27d1d598ab&mode=view' target=_blank>Загрузить оригинал (104.9 КБ)</a>
Или периодически на форуме появляется вопрос как по быстрому сгенерировать выборку прямоугольную, в данном случае легко:
Скорректировав всего пару значений, получаем:
2017-02-08_092530.jpg (7919 просмотров) <a class='original' href='./download/file.php?id=102520&sid=c007bb65b8dac62ddaf0fa27d1d598ab&mode=view' target=_blank>Загрузить оригинал (221.92 КБ)</a>
А вот сам код:

Код: Выделить всё

$strOut = ""

[bool]$directRight = $true

for ($y = 0; $y -lt 10; $y+=2)
{ 
    if ($directRight -eq $true)
    {

        $strOut += "G0 X0 Y"+$y + [char]13 + [char]10

        $strOut += "G1 X20 Y"+$y + [char]13 + [char]10

        $directRight = $false
    }
    else
    {
       $strOut += "G0 X20 Y"+$y + [char]13 + [char]10

       $strOut += "G1 X0 Y"+$y + [char]13 + [char]10

       $directRight = $true
    }

}

$strOut

# Сохранение в файл
$strOut > d:\out.txt
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Быстрый вариант генерации G-кода для простой траектории

Сообщение AndyBig »

Думаю, что тому, кто умеет скрипты, не составит труда и несложный G-код накидать :)
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6191
Откуда: Казахстан.
Контактная информация:

Re: Быстрый вариант генерации G-кода для простой траектории

Сообщение aftaev »

selenur, для таких дел есть O-Code http://www.cnc-club.ru/wiki/index.php/% ... 0%BE%D0%B4
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Быстрый вариант генерации G-кода для простой траектории

Сообщение selenur »

aftaev писал(а):selenur, для таких дел есть O-Code http://www.cnc-club.ru/wiki/index.php/% ... 0%BE%D0%B4
Об этом я знаю, я когда немного изучал LinuxCNC смотрел это: http://linuxcnc.org/docs/html/gcode/o-code.html

Но я пока использую ардуино контроллер, у которого нет поддержки О кодов :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Immortal88
Опытный
Сообщения: 126
Зарегистрирован: 04 окт 2016, 13:38
Репутация: 1
Контактная информация:

Re: Быстрый вариант генерации G-кода для простой траектории

Сообщение Immortal88 »

Есть готовый файл г-кода детали, нужно размножить его на лист материала, допустим, 3х2. Проблема в том что материалы у меня разных размеров, тоесть переменные "3" и "2" будут меняться часто и нужно это дело автоматизировать.
Какие могут быть способы решения такой проблеммы?

1. Есть ли готовые скрипты, которые делают то что мне нужно?
2. Подскажите примерный алгоритм действий как написать самописный скрипт. Я хорошо умею программировать на Python, но в г-кодах новичек поэтому мне не совсем понятно как правильно приплюсовать смещения траекторий по X и Y. В идеале нужен парсер/библиотека для перевода в абсолютные координаты
Ответить

Вернуться в «Прочие вопросы Windows»