WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
vtgmfg
Мастер
Сообщения: 302
Зарегистрирован: 23 июн 2022, 14:13
Репутация: 11
Настоящее имя: Максим
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение vtgmfg »

wldev писал(а): vtgmfg писал(а): ↑
MACHINE.setTruPositionDrive(0,1)
MACHINE.setTruPositionDrive("X",1)
MACHINE.setTruPositionDrive("Y",1)
блин. ну вот уже дышать легче))
А может там где то есть и функция чтобы кнопку "вкл" нажать?
vtgmfg
Мастер
Сообщения: 302
Зарегистрирован: 23 июн 2022, 14:13
Репутация: 11
Настоящее имя: Максим
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение vtgmfg »

var drive_state=MACHINE.isActivDrive("X")
//var drive_state=MACHINE.isDriveActiv("X") //неправильная в доке//
SCRIPT.console("drive_state = "+drive_state)

false все равно

MACHINE.goDriveFind("X")
так тоже ничего не происходит
vtgmfg
Мастер
Сообщения: 302
Зарегистрирован: 23 июн 2022, 14:13
Репутация: 11
Настоящее имя: Максим
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение vtgmfg »

добавляю в config.ini
например строку
WLMPath=FILE.curPath()
и пытаюсь ее считать
qwerty=FILE.loadValue(FILE.curPath()+"/wlmillconfig/config.ini","Program/WLMPath",qwerty)
SCRIPT.console(qwerty)
она считывается - но перестает быть функцией..
qwerty=FILE.curPath()
SCRIPT.console(qwerty)
на вид вроде одно и то же по правую сторону от "=".
что надо сделать чтобы то что считано из файла стало функцией?
Аватара пользователя
wldev
Мастер
Сообщения: 1521
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 497
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

vtgmfg писал(а): 24 ноя 2022, 18:27 var drive_state=MACHINE.isActivDrive("X")
//var drive_state=MACHINE.isDriveActiv("X") //неправильная в доке//
SCRIPT.console("drive_state = "+drive_state)

false все равно

MACHINE.goDriveFind("X")
так тоже ничего не происходит
поправил
Новости: https://t.me/wldevruch
Аватара пользователя
wldev
Мастер
Сообщения: 1521
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 497
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

vtgmfg писал(а): 25 ноя 2022, 09:59 добавляю в config.ini
например строку
WLMPath=FILE.curPath()
и пытаюсь ее считать
qwerty=FILE.loadValue(FILE.curPath()+"/wlmillconfig/config.ini","Program/WLMPath",qwerty)
SCRIPT.console(qwerty)
она считывается - но перестает быть функцией..
qwerty=FILE.curPath()
SCRIPT.console(qwerty)
на вид вроде одно и то же по правую сторону от "=".
что надо сделать чтобы то что считано из файла стало функцией?
Покажите ини файл
Новости: https://t.me/wldevruch
vtgmfg
Мастер
Сообщения: 302
Зарегистрирован: 23 июн 2022, 14:13
Репутация: 11
Настоящее имя: Максим
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение vtgmfg »

[General]
minuteLife=136441

[View]
maxShowPoint=1000000
zoomDir=false
clearColor=#587187

[Program]
file=clear.ncc
iLastElement=0
WLMPath=FILE.curPath()

[Tools]
showColumn="index,Type,H,D,Diam,Fmax,Smax"

[SC]
showColumn="index,X,Y,Z,GCode,Comments,waste"
Последний раз редактировалось vtgmfg 25 ноя 2022, 12:03, всего редактировалось 1 раз.
vtgmfg
Мастер
Сообщения: 302
Зарегистрирован: 23 июн 2022, 14:13
Репутация: 11
Настоящее имя: Максим
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение vtgmfg »

это в качестве примера . на самом деле мне нужно назначить путь на папку с УП..
вообще говоря в доке сказано что тут числа должны быть . но тут явно не только числа. и все параметры с маленькой буквы почему то.

а так там должно было вот это быть.
//путь к папке Gcode на одном уровне с папкой WLMill:
GcodePath_1=FILE.curPath().slice(0,(FILE.curPath().lastIndexOf("/")+1))+"Gcode/"
vtgmfg
Мастер
Сообщения: 302
Зарегистрирован: 23 июн 2022, 14:13
Репутация: 11
Настоящее имя: Максим
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение vtgmfg »

wldev писал(а): MACHINE.goDriveFind("X")
работает!
wldev писал(а): var drive_state=MACHINE.isActivDrive("X")
SCRIPT.console("drive_state = "+drive_state)
работает для ручных перемещений с экранных клавиш мышью, клавиатуры и джойстика. в сенсорный экран попасть не представляется возможным из-за мелкости..
mdi - не работает.. авто УП - не проверял но наверное тоже
правда пока и необходимости нет
vtgmfg
Мастер
Сообщения: 302
Зарегистрирован: 23 июн 2022, 14:13
Репутация: 11
Настоящее имя: Максим
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение vtgmfg »

vtgmfg писал(а): работает!
но после например
MACHINE.runGCode("G53G90G0 X5 Y5")
поиск
MACHINE.goDriveFind("Z")
уже молчит. Даже если было движение по другим осям.
while(MACHINE.isActiv()) SCRIPT.process() между - ничего не меняет.
Аватара пользователя
wldev
Мастер
Сообщения: 1521
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 497
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

vtgmfg писал(а): [Program]
file=clear.ncc
iLastElement=0
WLMPath=FILE.curPath()
Так конечно не будет. Есть переменная а есть текст программы...
vtgmfg писал(а): это в качестве примера . на самом деле мне нужно назначить путь на папку с УП..
относительно чего то?
У меня опять 3 вопроса
1. Что хотели? 2.Что делали? 3 Что получили?
vtgmfg писал(а): но после например
MACHINE.runGCode("G53G90G0 X5 Y5")
поиск
MACHINE.goDriveFind("Z")
уже молчит. Даже если было движение по другим осям.
while(MACHINE.isActiv()) SCRIPT.process() между - ничего не меняет.
Вернуться к началу
Посмотрю...
Новости: https://t.me/wldevruch
vtgmfg
Мастер
Сообщения: 302
Зарегистрирован: 23 июн 2022, 14:13
Репутация: 11
Настоящее имя: Максим
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение vtgmfg »

wldev писал(а): относительно чего то?
У меня опять 3 вопроса
1. Что хотели? 2.Что делали? 3 Что получили?
назначить в файле типа ини путь на папку, которая не внутри папки WLMill, но относительно нее.
в скрипте я могу это сделать. да не сильно актуально. можно обойтись

гораздо интереснее все таки с назначением activ и lastmov ну и управление кнопкой on\off
keeperius
Новичок
Сообщения: 2
Зарегистрирован: 16 ноя 2021, 17:41
Репутация: 1
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение keeperius »

Добрый день.
Первый раз настраиваю поворотную ось, появились несколько дилетантских вопросов.
Правильно ли я понимаю, что для обработки на поворотной оси по спирали пределы оси А выставлять не нужно?
Посмотрел видео про то, что поворот больше 180 градусов в G-коде встречаться не должен, написал простенький код для проверки оси
A90
A180
A270
A360
Таких блоков подряд 111. Т.е. ось должна сделать 111 оборотов. Сделала 106 вроде, в конце несколько оборотов было в обратную сторону. С чем это может быть связано?
И такой еще вопрос. Как я понимаю, для выполнения условия не больше 180 градусов нужно править постпроцессор. Не подскажите, в PM как это правильно сделать, или есть уже готовые оптимизированные под WLMill постпроцессоры для того же PM?
Аватара пользователя
wldev
Мастер
Сообщения: 1521
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 497
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

keeperius писал(а): Таких блоков подряд 111. Т.е. ось должна сделать 111 оборотов. Сделала 106 вроде, в конце несколько оборотов было в обратную сторону. С чем это может быть связано?
Нужно проверить. Пришлите вашу папку wlmillconfig архивом и программу для эксперимента. wldev@mail.ru
keeperius писал(а): И такой еще вопрос. Как я понимаю, для выполнения условия не больше 180 градусов нужно править постпроцессор. Не подскажите, в PM как это правильно сделать, или есть уже готовые оптимизированные под WLMill постпроцессоры для того же PM?
Неподскажу. Знаю что только в SprutCam человек делает спиральную обработку. С PM у него неполучилось.
Новости: https://t.me/wldevruch
Аватара пользователя
wldev
Мастер
Сообщения: 1521
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 497
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

wldev писал(а): Нужно проверить. Пришлите вашу папку wlmillconfig архивом и программу для эксперимента. wldev@mail.ru
Обновитe WLMill.exe - недавно были исправление в этом блоке. Сделали тест, на 110 оборотов. Всё работает.
Прошу повторить ваш тест...
Новости: https://t.me/wldevruch
keeperius
Новичок
Сообщения: 2
Зарегистрирован: 16 ноя 2021, 17:41
Репутация: 1
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение keeperius »

wldev писал(а): Обновитe WLMill.exe - недавно были исправление в этом блоке. Сделали тест, на 110 оборотов. Всё работает.
Прошу повторить ваш тест...
Добрался до станка, обновил, тест повторил, теперь все отлично.

Сергей, еще такой вопрос, про начало выполнения программы с определенного места. Ось Z едет вверх. Я читал, что проблема известна, но как скоро эта проблема будет решена?
Аватара пользователя
wldev
Мастер
Сообщения: 1521
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 497
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

keeperius писал(а): Сергей, еще такой вопрос, про начало выполнения программы с определенного места. Ось Z едет вверх. Я читал, что проблема известна, но как скоро эта проблема будет решена?
Проблемы нет. Было непонимание...

При выполнение программы с середины. Используется Z точки G28.
То есть если текущая высота (Z) меньше чем G28.z то мы поднимаем шпиндель на G28.z и далее едем по XY. Далее опускаемся к началу обработки.

Раньше если G28 была за пределами рабочей зоны (была неверно определена) то был подъём с остановка. Сейчас добавлена проверка. Если G28.z за пределами рабочей зоны Z то подъём происходит до максимума Z.
Новости: https://t.me/wldevruch
Аватара пользователя
wldev
Мастер
Сообщения: 1521
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 497
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

vtgmfg писал(а): 25 ноя 2022, 17:01
vtgmfg писал(а): работает!
но после например
MACHINE.runGCode("G53G90G0 X5 Y5")
поиск
MACHINE.goDriveFind("Z")
уже молчит. Даже если было движение по другим осям.
while(MACHINE.isActiv()) SCRIPT.process() между - ничего не меняет.
Пока неможем обойти. Думаем.
vtgmfg писал(а): гораздо интереснее все таки с назначением activ и lastmov ну и управление кнопкой on\off
"activ и lastmov"
lastmov приходит с контроллера
activ - добавили MACHINE.setActivElementGProgram(index)

Не получится c ON. Так как ON запускает скрипт >>> и закольцовка
Новости: https://t.me/wldevruch
vtgmfg
Мастер
Сообщения: 302
Зарегистрирован: 23 июн 2022, 14:13
Репутация: 11
Настоящее имя: Максим
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение vtgmfg »

wldev писал(а): Не получится c ON. Так как ON запускает скрипт >>> и закольцовка
Понял. что если так?

0. загрузилась сама программа WLMill
1. выполняем mscript сходу. в самом начале в нем считать config.ini - там пусть будет ключ Manual/Auto. Если Manual - ждем состояние "вкл" клавиши ВКЛ (нужна новая функция типа getCNC_State), чтобы пройти дальше. Если ключ=Auto, то сразу идем дальше - включаем клавишу ВКЛ (новой функцией setCNC_State). Этот кусок в начале mscript я бы осилил сам
2. выполняем функцию загрузки УП по существующему сценарию - который бы как раз бы я и хотел развить до "многозадачности".. выполняем разные прочие команды и функции - все как обычно.
3. вызываем функцию init подцепляя скрипты. вызывать лучше из mscript - так понятнее
4. разрешаем работу станка, лучше в mscript - так понятнее. Вызываем функцию ON() с каким то добавочным функционалом или пустую.

При нажатии ВЫКЛ (*а токже кнопок save в меню правка) - выключить все как обычно, выполнить функцию OFF() с добавочным функционалом куда бы лучше все по максимуму и перенести для понятности + записываем в config.ini ключ manual/Auto =Manual (тоже бы сам осилил).
B cтартуем mscript, там сразу и застрянем на ожидании состояния "вкл".

Чтобы следующий запуск программы был в режиме авто можно сделать отдельный скрипт с кнопкой. или диалог в скрипте выключения. или вручную в config.ini поставить. или в скрипт выключения добавить. тогда всегда будет Auto по запуску программы и Manual после первого "выкл". или добавить еще один ключ в config.ini . (тоже бы сам осилил).

То есть с кнопки ВКЛ надо убрать запуск скрипта mscript (что как раз соответствует документации)
а так же хорошо было бы убрать блокировку меню * "Правка".

И все вроде становится гораздо прозрачнее и логичнее..
и двойные загрузки и инициализации убираются.
что с lscript - при таком алгоритме не смотрел.. да должно решаться
vtgmfg
Мастер
Сообщения: 302
Зарегистрирован: 23 июн 2022, 14:13
Репутация: 11
Настоящее имя: Максим
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение vtgmfg »

wldev писал(а): lastmov приходит с контроллера
а кто его обнуляет по окончании УП?
vtgmfg
Мастер
Сообщения: 302
Зарегистрирован: 23 июн 2022, 14:13
Репутация: 11
Настоящее имя: Максим
Контактная информация:

Re: WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Сообщение vtgmfg »

в общем логика работы при загрузке программы WLMill остается непонятной
wldev писал(а): Не получится c ON. Так как ON запускает скрипт >>> и закольцовка
то что ВКЛ запускает mscript как раз и не написано в доке. это-то я уже экспериментально выяснил, а написано вот это:
"Функция (ON()) вызывается при нажатии на кнопку “On” в программе. *"
зачем запускается скрипт - не совсем понятно. то есть чисто экспериментально сейчас последовательность такая:
при запуске программы
1) кроме прочего загружается старая УП от которой потом остаются артефакты при загрузке в дальнейшем уже новой УП да и вообще непонятно зачем она грузится тут
2)из WLMill запускается скрипт mscript в котором может быть все, а может ничего не быть кроме функции init
3)из WLMill запускается функция init в которой подключаются дополнительные скрипты.
Но можно вытащить из init все подключения скриптов вставив их в тело в mscript и оставить init пустой.
Наверное тут какая то гибкость обеспечивается. Но почему не вызывать init() прямо из скрипта? так и понятнее и гибче - видно что за чем происходит и можно управлять последовательностью.

Далее ждем нажатия кнопки ВКЛ(((

При нажатии кнопки ВКЛ повторяются пункты:
2)из WLMill запускается скрипт mscript
3)из WLMill запускается функция init
далее:
4)Из WLMill вызывается функция ON() которая может быть, может не быть или быть но быть пустой.
Проблема в том что все разрешительные функции кнопки ВКЛ находятся в WLMill, функция ON() вызывается факультативно. Поэтому то что я хочу никак не реализуется - даже если бы и не циклилось.
то есть если добавить
ON()
{
Init()
}
LoadGCode() //вот это не выполнится все равно

В общем может распутать этот узел? сделать все последовательно и с возможностью работы и с кнопкой ВКЛ и автоматической. Полно задач где до работы нужно проделать какие то действия. например прогреть или компрессор включить или вытяжку.. я выше там предложил вариант.. но ни ответа ни привета.

можно наверное найти стороннюю программу которая будет находить на интерфейсе кнопку ВКЛ и юзерскую кнопку "Старт" с нужным скриптом - но это же треш какой то?

PS - еще Lscript не забыть
Ответить

Вернуться в «Windows / Mach»