Страница 28 из 130
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 17 янв 2017, 12:46
MAX3000
selenur, а ты можешь сделать так чтоб программа открывала растровые рисунки без каких-либо конвертаций?
Дело в том что лишние строки в коде появляются из-за конвертации файла в программе и на границе цветов появляются переходные пиксели, которые размазывают границы (так называемая елочка). Во внешнем графическом редакторе можно подготовить полностью конечный файл для выжигания лазером - установить размер точки, задать нужные размеры, подвигать, покрутить (ну в общем все что угодно), отконвертировать в оттенки серого, сохранить в нужном формате (24 или 8 битный) сохранить с нужным расширением. Затем в программе остается установить такой же размер точки и получим рисунок 1 к 1 как и в редакторе. И не будут появлятся лишние строки в коде, как показывал выше.
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 17 янв 2017, 17:28
selenur
MAX3000 писал(а):selenur, а ты можешь сделать так чтоб программа открывала растровые рисунки без каких-либо конвертаций?
Дело в том что лишние строки в коде появляются из-за конвертации файла в программе и на границе цветов появляются переходные пиксели, которые размазывают границы (так называемая елочка). Во внешнем графическом редакторе можно подготовить полностью конечный файл для выжигания лазером - установить размер точки, задать нужные размеры, подвигать, покрутить (ну в общем все что угодно), отконвертировать в оттенки серого, сохранить в нужном формате (24 или 8 битный) сохранить с нужным расширением. Затем в программе остается установить такой же размер точки и получим рисунок 1 к 1 как и в редакторе. И не будут появлятся лишние строки в коде, как показывал выше.
Такую возможность сделать могу, нужно будет некоторые функции манипуляции с изображением переделать, поэтому по возможности сделаю.
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 17 янв 2017, 18:51
MAX3000
selenur писал(а):MAX3000 писал(а):selenur, а ты можешь сделать так чтоб программа открывала растровые рисунки без каких-либо конвертаций?
Дело в том что лишние строки в коде появляются из-за конвертации файла в программе и на границе цветов появляются переходные пиксели, которые размазывают границы (так называемая елочка). Во внешнем графическом редакторе можно подготовить полностью конечный файл для выжигания лазером - установить размер точки, задать нужные размеры, подвигать, покрутить (ну в общем все что угодно), отконвертировать в оттенки серого, сохранить в нужном формате (24 или 8 битный) сохранить с нужным расширением. Затем в программе остается установить такой же размер точки и получим рисунок 1 к 1 как и в редакторе. И не будут появлятся лишние строки в коде, как показывал выше.
Такую возможность сделать могу, нужно будет некоторые функции манипуляции с изображением переделать, поэтому по возможности сделаю.
Сделай пожалуйста, чем быстрее тем лучше

Можно даже сделать так чтоб программа воспринимала определенный один формат файлов из какого-то графического редактора (любого), сохраненного с определенной битностью.
Есть еще одна идея. Если есть трудности с разработкой функционала преобразования ЯркостиПикселя в S, то может для начала проще сделать следующее:
1. Генерация файла на основе [255-bright] - это остается как оно и есть на данный момент;
2. А дополнительно сделать программу груповой замены символов вида S255, S100, S50 и т.д. в полученном файле, символами S1000, S500, S250 и т.д. по принципу как ты сделал переменные - @param1|Z гравировки|-1,7@, только средний параметр можно убрать и оставить:
@S255|S1000@;
@S100|S500@;
@S50|S250@.
Т.е. для каждой S-ки создать свою замену и прогнать файл, заменив S от 0 до 255 соответствующими значениями S от 0 до 1000.
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 18 янв 2017, 11:03
LOGicBBS
День добрый,
в версии 32 если в системе нет шрифта Aharoni программа падает с ошибкой, продолжить не дает
(для просмотра содержимого нажмите на ссылку)Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.
************** Текст исключения **************
System.ArgumentException: Недопустимый параметр.
в System.Drawing.Drawing2D.GraphicsPath.AddString(String s, FontFamily family, Int32 style, Single emSize, PointF origin, StringFormat format)
в ToolsGenGkode.VectorProcessing.GetVectorFromText(String text, String fontName, Single fontSize, String extFileFont)
в ToolsGenGkode.pages.page02_EnterText.UserActions()
в ToolsGenGkode.pages.page02_EnterText.comboBoxFont_SelectedIndexChanged(Object sender, EventArgs e)
в System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
в System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
в ToolsGenGkode.pages.page02_EnterText..ctor(MainForm mf)
в ToolsGenGkode.MainForm.GetNextPage(Int32 numberPage)
в ToolsGenGkode.MainForm.SetPage(DirectionPage dir)
в ToolsGenGkode.MainForm.btFORWARD_Click(Object sender, EventArgs e)
в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ButtonBase.WndProc(Message& m)
в System.Windows.Forms.Button.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 18 янв 2017, 11:11
MAX3000
LOGicBBS писал(а):День добрый,
в версии 32 если в системе нет шрифта Aharoni программа падает с ошибкой, продолжить не дает
(для просмотра содержимого нажмите на ссылку)Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.
************** Текст исключения **************
System.ArgumentException: Недопустимый параметр.
в System.Drawing.Drawing2D.GraphicsPath.AddString(String s, FontFamily family, Int32 style, Single emSize, PointF origin, StringFormat format)
в ToolsGenGkode.VectorProcessing.GetVectorFromText(String text, String fontName, Single fontSize, String extFileFont)
в ToolsGenGkode.pages.page02_EnterText.UserActions()
в ToolsGenGkode.pages.page02_EnterText.comboBoxFont_SelectedIndexChanged(Object sender, EventArgs e)
в System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
в System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
в ToolsGenGkode.pages.page02_EnterText..ctor(MainForm mf)
в ToolsGenGkode.MainForm.GetNextPage(Int32 numberPage)
в ToolsGenGkode.MainForm.SetPage(DirectionPage dir)
в ToolsGenGkode.MainForm.btFORWARD_Click(Object sender, EventArgs e)
в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ButtonBase.WndProc(Message& m)
в System.Windows.Forms.Button.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Да, проблема

А установить не пробовал?
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 18 янв 2017, 11:46
selenur
LOGicBBS писал(а):День добрый,
в версии 32 если в системе нет шрифта Aharoni программа падает с ошибкой, продолжить не дает
(для просмотра содержимого нажмите на ссылку)Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.
************** Текст исключения **************
System.ArgumentException: Недопустимый параметр.
в System.Drawing.Drawing2D.GraphicsPath.AddString(String s, FontFamily family, Int32 style, Single emSize, PointF origin, StringFormat format)
в ToolsGenGkode.VectorProcessing.GetVectorFromText(String text, String fontName, Single fontSize, String extFileFont)
в ToolsGenGkode.pages.page02_EnterText.UserActions()
в ToolsGenGkode.pages.page02_EnterText.comboBoxFont_SelectedIndexChanged(Object sender, EventArgs e)
в System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
в System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
в ToolsGenGkode.pages.page02_EnterText..ctor(MainForm mf)
в ToolsGenGkode.MainForm.GetNextPage(Int32 numberPage)
в ToolsGenGkode.MainForm.SetPage(DirectionPage dir)
в ToolsGenGkode.MainForm.btFORWARD_Click(Object sender, EventArgs e)
в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ButtonBase.WndProc(Message& m)
в System.Windows.Forms.Button.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Вечером исправлю проблему.
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 19 янв 2017, 00:03
selenur
Релиз 33:
https://github.com/selenur/ToolsGenGkod ... 33/v33.zip
Поправил работу с пользовательским вводом текста, если установленный в операционную систему шрифт имеет ошибку, то переход на страницу с вводом текста будет происходить, но текст не будет отображаться, пока не будет выбран иной шрифт.
Что касается настройки пересчета зависимостей, типа S от brigth, то делаю следующим образом (ещё не готово, в процессе):
Будут собраны файлы в отдельном каталоге, вот с таким содержимым:
Код: Выделить всё
#зависимость S от brigth#
%source:bright%
%destination:S%
0;0
10;30
100;200
200;500
255;800
Где описывается имя переменной от куда брать значение, и имя переменной куда помещать результат.
А далее то самое что настраивается на графике, изменению яркости от 0-10 пропорционально вычисляется мощность от 0 до 30, далее при яркости от 11 до 100, вычисляется мощность от 31 до 200, и т.д.
Т.к. у меня данные хранятся условно, примерно так:
То я добавлю новую страницу, на которую можно переходить с 9-й страницы, в ней можно будет в список добавлять 1 или несколько файлов, которые будут прогоняться по данным.
Т.е. первым файлом на основании яркости вычисляем значение S, а вторым например от значения S вычисляем значение F, или вообще значение Z.
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 19 янв 2017, 00:36
MAX3000
selenur писал(а):Релиз 33:
https://github.com/selenur/ToolsGenGkod ... 33/v33.zip
Поправил работу с пользовательским вводом текста, если установленный в операционную систему шрифт имеет ошибку, то переход на страницу с вводом текста будет происходить, но текст не будет отображаться, пока не будет выбран иной шрифт.
А конвертация еще не готова?
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 19 янв 2017, 06:34
selenur
MAX3000 писал(а):selenur писал(а):Релиз 33:
https://github.com/selenur/ToolsGenGkod ... 33/v33.zip
Поправил работу с пользовательским вводом текста, если установленный в операционную систему шрифт имеет ошибку, то переход на страницу с вводом текста будет происходить, но текст не будет отображаться, пока не будет выбран иной шрифт.
А конвертация еще не готова?
У меня в последние дни аврал на работе, в связи с чем приходя домой я ещё до 2-х ночи сижу доделываю работу, и на эту программу уже не хватает сил...
Пока только продумываю что как сделать, в промежутках ходьбы из дома на работу, и обратно...
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 19 янв 2017, 09:10
ASPtr
Добрый день! Спасибо за Вашу полезную и весьма перспективную программу.
Мучаю крайнюю версию (33). Из того, что заметил:
1. При применении фильтра "получение оттенков серого" вылазят небольшие артефакты на изображении. Проще показать (вверху исходник)
на границах градиента появляются дополнительные переходы. Такое впечатление, что при конвертации используются значения соседних пикселей. Хотя, по идее, яркость можно получить просто из RGB.
На всякий случай исходный градиент

- gradient_420x40.png (1.77 КБ) 1734 просмотра
2. Какая-то путаница при генерации кода по профилю "лазер Bright - S". При движении в прямом и обратном направлении (змейкой) соседние строки выжигаются с разной яркостью (значении S). На примере приложенного градиента первый черный столбец слева направо S247, а справа налево S255. И так на всех столбцах кроме последнего ))
3. Вертикальный переход между строками, можно сделать по G0 или, допустим G1 S0 ?
PS Сочувствую Вашему авралу. Надеюсь разберетесь, когда появится время.
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 19 янв 2017, 10:43
selenur
ASPtr писал(а):Добрый день! Спасибо за Вашу полезную и весьма перспективную программу.
Мучаю крайнюю версию (33). Из того, что заметил:
1. При применении фильтра "получение оттенков серого" вылазят небольшие артефакты на изображении. Проще показать (вверху исходник)
screen.jpg
на границах градиента появляются дополнительные переходы. Такое впечатление, что при конвертации используются значения соседних пикселей. Хотя, по идее, яркость можно получить просто из RGB.
На всякий случай исходный градиент
gradient_420x40.png
2. Какая-то путаница при генерации кода по профилю "лазер Bright - S". При движении в прямом и обратном направлении (змейкой) соседние строки выжигаются с разной яркостью (значении S). На примере приложенного градиента первый черный столбец слева направо S247, а справа налево S255. И так на всех столбцах кроме последнего ))
3. Вертикальный переход между строками, можно сделать по G0 или, допустим G1 S0 ?
PS Сочувствую Вашему авралу. Надеюсь разберетесь, когда появится время.
Спасибо за отзыв, и комментарий, все эти нюансы, я уже знаю, и поправлю

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 19 янв 2017, 15:45
test3210
ASPtr писал(а):
3. Вертикальный переход между строками, можно сделать по G0 или, допустим G1 S0 ?
это реализуется на уровне профиля посмотрите мой там это реализовано
http://www.cnc-club.ru/forum/viewtopic. ... 20#p329627
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 20 янв 2017, 04:12
ASPtr
test3210 писал(а):это реализуется на уровне профиля посмотрите мой там это реализовано
Спасибо. С этим разобрался, нашел доку с описанием синтаксиса скриптов.
Больше интересует второй вопрос. Насколько я могу судить, проблема сейчас в следующем. Допустим есть фрейм:
G1 X10 Y10 S100
т.е. мы рисуем отрезок из текущей точки до точки (10;10) с яркостью 100, но при этом точка (10;10) это координаты начала следующего отрезка, и яркость "100" это, соответственно, яркость СЛЕДУЮЩЕГО отрезка. Таким образом, мы выжигаем текущий отрезок с яркостью последующего. Если я ничего не путаю )) Надо, как бы, сдвинутся на одну ступень.
Можно это исправить на уровне профиля? Пользовательские переменные поддерживаются?
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 20 янв 2017, 09:06
selenur
Версия 43:
https://github.com/selenur/ToolsGenGkod ... 34/v34.zip
На странице №9 поменял алгоритмы изменения изображения, проверяйте

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 20 янв 2017, 10:28
ASPtr
selenur писал(а):На странице №9 поменял алгоритмы изменения изображения, проверяйте
Да как-то не очень ((
Первые два фильтра вообще вылетают с "эксэпшеном", а в третьем путаница с пикселями и миллиметрами. В результате изображение уменьшается. И лишние 30 пикселей откуда-то.
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 20 янв 2017, 14:00
MAX3000
selenur, чето не то, чето при изменении диаметра точки меняется количество точек и код генерируется кривой, но есть и положительный результат - картинка в программе получается, вроде, нормальная.
Вобщем все на скринах.
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 20 янв 2017, 20:49
selenur
Что-то при отправке сообщения, последнее предложение не сохранилось, в итоге всех ввел в заблуждение, извиняюсь.
В последнем релизе, я математику расчета итогового размера не успел сделать, релиз выложил что-бы проверили что при изменении масштаба, не меняется цвет у точек которые находятся рядом с точками другого цвета, т.е. вроде больше нет артефактов.
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 20 янв 2017, 21:05
MAX3000
selenur писал(а):Что-то при отправке сообщения, последнее предложение не сохранилось, в итоге всех ввел в заблуждение, извиняюсь.
В последнем релизе, я математику расчета итогового размера не успел сделать, релиз выложил что-бы проверили что при изменении масштаба, не меняется цвет у точек которые находятся рядом с точками другого цвета, т.е. вроде больше нет артефактов.
Рисунки, вроде, нормально масштабируются, переходы чистые, ровные и без цветовых искажений
Есть некоторая непонятка с пересчетом размеров, но с этим со временем разберемся.
А вот генерацию кода посмотри пожалуйста, а то она стала полностью кривая, а раньше вроде было нормально.
Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 23 янв 2017, 23:05
selenur
На гитхабе пока новый релиз не размещал, т.к. в последнее время из-за больших переделок, много глюков наловил, поэтому для тестов есть 35 релиз:
https://drive.google.com/open?id=0B-Hkc ... lBBNHFuQ1E
Что сделано:
1) Поддерживаются как и раньше BMP, JPG, GIF, PNG изображения, но теперь не только 24-х и 32-х битные, но и 8-ми битные изображения. (Перепробовал все имеющиеся рисунки, вроде не нашел ни одного, которое могло вызвать ошибку, но если найдете поделитесь файлом).
2) Переработан алгоритм 3-го фильта на 9-й странице, убраны некоторые недочеты, раньше было так:
теперь так:
И результат в Candle стал нормально отображаться:
Пересчет размеров вроде поправил, как было в 33 версии, но если что пишите

Re: Генерация G-кода, из текста, рисунка, и файлов PLT, DXF
Добавлено: 23 янв 2017, 23:12
selenur
Скопировал рисунок с заголовка форума, и выбрал профиль яркости + Z, получилось так-же вроде ничё, с заглублением по Z: