Comments
В ближайшее время только мелкие исправления. |
кроме того, отказ от дизайна все в одном заметно облегчает отладку, конфигурирование, обновление. сразу предлагаю вам помощь. |
Мысли и направление то верное, но вы говорите совсем про другую программу. |
При запуске программы, добавь установку скорости G1 Fххх, хотя-бы равную 100, т.к. попытка ручного управления, или выполнение файла, где нет первоначальной установки скорости, некоторых пользователей вводит в ступор. |
хм. не за, не против, просто соображения.
кстати, пример того что можно оперативно решать встроив скрипты:
|
Не думаю, что программа может решать за пользователя, какую скорость обработки выбрать, если она не была указана явно. |
Хотелось бы увидеть архитектуру программы с системой плагинов. Как насчет Qt Script движка? Есть ли у lua значительные преимущества. Ведь JavaScript сегодня знает чуть ли не каждый. |
При фрезеровке когда траектория очень большая, в вуализаторе такая каша, может подумать о возможности скрывать выполненную траекторию? |
В настройках можно задать цвет выполненной траектории. Меню “Сервис” > “Настройки” > “Цвета” > “Траектория” > “Выполненная”. |
Принято, будет добавлена опция “Действие при ошибке”: “Прервать отправку”/”Игнорировать”. |
@selenur |
С кабелем там всё нормально, просто траектория фрезеровки была очень большой, более 4-х часов, и примерно на половине кода КАМ модуль программы fusion360, вставил команду которая grbl не поддерживается, и дальнейшее выполнение траектории началось в непредсказуемых направлениях, в результате выполнение прервал. |
@selenur дада, есть такая проблема. после сбоя или все сначала или вручную в блокноте. в bCNC есть простенький векторный редактор. можно удалить часть треков, можно изменить часть треков, повернуть, подвинуть. если б не тормоза бо все-на-питоне был бы идеалом. куда развивать? – в сторону бцнц, но все что тормозит должно быть на с(++). и не питон. не смотря на всю красоту и мощь питон громоздок и не очень быстрый |
Вектрик кроме того что платный,так ещё и поддерживает лишь 2.5d. |
В будущем было-бы хорошо добавить поддержку лазерного выжигания, т.к. сейчас это невозможно сделать в этой программе, т.к. 3д просмотр нужно делать абсолютно иначе. В связи с чем знакомый сейчас делает альтернативный сендер для выжигания рисунков. |
Есть такая команда $C которая включает режим проверки g-кода, в этом режиме при посылке “?” получаем такую строку: “Check,MPos:5.529,0.560,7.000,WPos:1.529,-5.440,-0.000”, что означает активирован режим “симуляции”, при котором парсер G-кода не отправляет команды на драйвера моторов, и шпиндель. Но отвечает “ok” если команда нормально распознана, и “error …” если что не понравилось. Повторная посылка $C отключает этот режим. |
Мощность лазера определяется z-координатой?
Эта команда используется флагом “Проверка” в программе, но, при возникновении ошибок, сообщений не выводится. Приходится вручную пролистывать таблицу со списком команд и смотреть на ответы. |
В моем случае при использовании лазера Z-координата не используется, а используется один из вариантов:
Про 3д, и иначе, я имел ввиду следующее: |
Для этого была введена опция “Упростить геометрию” в группе “Визуализатор” настроек программы. |
Весь код для выжигания состоит из команд: перейти в точку, включить лазер с нужной мощностью, либо задержкой, выключить лазер, перейти на новую точку, и т.д. Но к сожалению проверить твой вариант, пока невозможно, т.к. при загрузке файла, программа завершается с ошибкой. |
Файл нет возможности передать на проверку? |
Конечно есть, напиши мне на zheigurov @ gmail.com и в ответ вышлю |
Да, для файлов построенных по типу растровых, а не векторных, необходимо реализовать другой алгоритм визуализации. Проблема с вылетом при загрузке больших файлов временно решаема, но, в перспективе, нужно делать поточную загрузку файла небольшими частями. |
прошу прощения за задержку
бинарный парсер гкода подключаемый к луа могу предложить уже сейчас (к луа несложно пишутся С расширения) вот, хорошая книжка – https://www.lua.org/pil/contents.html . про старую версию, но изменений не так много и они не принципиальны. разные туториалы редакторы/иде еще луа понимают сцинтилла/скайте и все на ней основанное, нотепад++ и в принципе, большинство прогредакторов. попробуйте ради интереса собрать https://www.lua.org/source/5.3/ это очень просто. |
в целом, может я даже сделаю макет и покажу. архитектура обычная. в центре скрипт, а все остальные части, как бинарные, так и скриптовые – плугины. например, папка – машины. в ней папки – грбл, тиниг, тикап, репетир. в каждой из них скрипты – инит, фини, сенд, еррор итд. в таком стиле. гуй и прочее также. и никакой путаницы |
Спасибо, посмотрю.
Я имел ввиду не монолитные бинарники, а модульные программы, но написанные полностью без скриптов.
Имеется ввиду скриптовый движок (интерпретатор)? Посыл то такой: а надо ли реализовывать плагины на скриптовом языке? |
@Denvi сперва стартует интерпретатор, и по скриптам подгружает нужные модули, бинарные или скриптовые, неважно. строит интерфейс, учитывая, например, пользовательские установки: просто сендер, сендер с редактором, сендер под лазер, под 3д принтер итд. грузится обвязка под текущий контроллер станка. они на 90% одинаковые, но не полностью. плагины можно писать и на луа и на с/с++. луа умеет грузить обычные длл/со. токо интерфейс описать. это просто. статья: тоесть в бинарной со/длл либе “myDll.so” при загрузке из луа первой будет вызвана функция “int luaopen_myDll (lua_State *L); int luaopen_myDll (lua_State *L) {
luaL_openlib(L, "myDll", myDll, 0);
return 1; //это число результатов возвращаемых в интерпретатор
}
интерфейсы с-луа этого модуля тут передаются через список myDll вида: struct luaL_reg myDll [] = {
{"название функции или переменной для луа", название_соотв_С_функции},
....
....
{NULL, NULL} // конец списка
};
можно и по другому. вобщем, скрипт это +. особенно, если не писать абсолютно все на скрипте и не писать абсолютно все на С. |
Спасибо за информацию. Буду изучать. |
днями набросал макет что работает (за образец интерфейса брался bCNC. иконки оттуда же):
остальное пока не реализовано или не подключено все скрипты кроме bld/init.lua находятся в папке bld/conf и разбиты по функциям/вкладкам интерфейса. парсер (gcode-parser) написан на coco/r (C++/unicode форк). точнее, переделан из питон варианта. артефакты присутствуют. окошки и потоки – tekUI, |
Будем посмотреть. |
Решил пока остановиться на плагинах Qt, скрипты под большим вопросом, скрипт в основе – однозначно нет. Сложно для меня собирать приложение из такого большого набора современных технологий… |
@Denvi давно не отвечал бо решил довести мой скрипто-сендер макет до чегото более понятного. счас работает много конечно и недоделок. например, не сохраняется измененный г-код, даже не начинал плугинный интерфейс, но это когда закончится основа. визуализатор пока не идеален. но, по моему, как минимум, хороший пример что можно сделать за месяц разбив на модули и используя скрипты для интерфейса и вспомогательной логики и некритичных к скорости модулей. |
@Denvi
все, включая скомпилированые бинари, бинарные модули, скрипты, шрифты и картинки (которые, видимо, не понадобятся и их можно удалить) весят 4мб. разве может быть лучший довод в пользу модульности и использования где надо скриптов? |
Закрыто до следующего года. |
Denvi, когда ожидается новый релиз, какие изменения ждать.