Текст новой процедуры PLC заменяет текст последней старой

mycnc
Posts: 788
Joined: Thu May 10, 2018 2:42 pm
Location: Ottawa, Canada
Contact:

Re: Текст новой процедуры PLC заменяет текст последней старой

Post by mycnc »

Подмену текста PLC при добавлении новой процедуры поправили. На след. неделе выложим версию.

SUN
Posts: 34
Joined: Tue Feb 18, 2020 3:41 pm

Re: Текст новой процедуры PLC заменяет текст последней старой

Post by SUN »

Отлично! Ждем...

Не по заглавной теме....
myCNC.
Да, не внимательно читал.
Я намеренно не задавал вопрос "как решить" или почему "так происходит". Считаю, что если пользователь что-то делает логично, умышленно и получает коллизию в программе, то это ошибка программы.
В отношении политики функционирования программных проектов, у меня имеется такое правило: "Пользователь всегда корректен".
Ладно, это моя личная философия.
1.
Хочу дополнить новый вариант моего решения проблемы, из-за которой у меня не появлялись иконки.
В winNT операционных системах, по умолчанию, "Рабочим" каталогом считается расположение исполняемого файла.
Все файлы из "C:\MyCNC64\bin", я перенес в "Рабочую папку": "C:\MyCNC64".
Рекомендую попробовать всем у кого ошибки с иконками сделать так же.(необходимо будет редактировать ссылки: "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\MyCNC64")

2.
В тему: "закрытости проекта". В плане рекламы и популяризации вашего проекта вы бы могли сделать что-нибудь полезное тем, кто потенциально может стать покупателем ваших продуктов и услуг.
То-самое окно, где исчезали иконки может быть полезно в программе симулятора, как бесплатный генератор управляющих G-кодов, в том числе и, для популярных контроллеров. "Полезным" ваш симулятор станет, если сделать мастер генерирования G-кодов примитивов для сторонних/"стандартных" контроллеров, например: LinuxCNC, "Mach"...
Вот, например, есть той же функциональности ресурс: [[удалено]]
Ну и реклама! (ваших или сторонних продуктов)

mycnc
Posts: 788
Joined: Thu May 10, 2018 2:42 pm
Location: Ottawa, Canada
Contact:

Re: Текст новой процедуры PLC заменяет текст последней старой

Post by mycnc »

То самое окно мы называем "Библиотекой деталей" или Shapes Library. Иконки в нем не исчезают, если для запуска софта пользоваться Shortcut или Start меню, которые создаются при инсталляции софта для удобства пользователя.
Так вот, эта Библиотека деталей доступна для всех пользователей, они могут совершенно бесплатно генерить там G-коды для этих деталей.

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

Функции поворота, зеркалирования, размножения деталей также доступны для всех.

Все это сделано несколько лет назад.

SUN
Posts: 34
Joined: Tue Feb 18, 2020 3:41 pm

Re: Текст новой процедуры PLC заменяет текст последней старой

Post by SUN »

Случайно увидел, что модератор форума удалил ссылку в моём предыдущем тексте сообщения. Я понял. На этом форуме подобная ссылка - что-то вроде запрещённой рекламы.
Извините!

mycnc.
Спасибо за Ваш комментарий.
Я хорошо знаком с вашей программой в режиме симулятора и давно и всегда видел, что всё что вы перечислили есть в программе, и есть бесплатно. Но речь шла не о "бесплатности" и не об отступлении от ваших правил запуска приложения myCNC.
Сожалею, что не сумел объяснить мою мысль. Ваши правила не нужны и то, что есть, увы, тоже.
Впрочем и это Ваше упорное утверждения справедливо в отношение вашего проекта, Вы творец его - вам и "казнить".
Соглашусь, что неприемлемо для проекта myCNC создавать удобства пользователю - складывать в рабочую папку исполняемые файлы новых версий и запускать без каких-либо проблем, любым стандартным способом, любую версию программы myCNC в windows и, при этом, не иметь совершенно никаких затруднений с вопросами к техподдержке.

Ждал вашего комментария. Несколько дней как приготовил этот пост.
После прочитанного решил выкинуть из поста "ненужное" вашему проекту.
Здесь кратко текст моего опыта устранения одной из множества ошибок в проекте myCNC, единственной не по вине оплошностей самого проекта, но прямо влияющий на его качество в windows версии программы.
Возможно будет интересно мой опыт для новичков как я.
Я бы за такой опыт и сэкономленное моё время был бы благодарен.

Программа myCNC. Общее. выдержка дневника. кратко.
...
6. Поиск причины, почему не выводятся некоторые иконки формата "SVG" в win64, в программе myCNC.
Я обнаружил, что на закладке паркинга "Р", в программе myCNC Win64, нет картинок иконок "parking--02.svg", "parking--03.svg" и ещё некоторые пустые места.
Ищу как исправить. Тема настроек экрана моего профиля: "xp", стиль: "x".
6.1 Попробовал изменить в файле "x-parking.xml", в строке: "...image="parking/parking--02" заменил на "...image="paring/parking--01...". Запустил myCNC. На месте второй кнопки появилась картинка первой - ожидаемо, корректно. Значит проблема не в коде исполняемой программы myCNC.exe.
6.2 Предполагаю, что код изображения иконки находится в исполняемом файле, так как обновления всегда только для одного файла: "myCNC.exe". Думаю, что если в myCNC.exe нет какого-нибудь ресурса (иконки), то программа попытается искать в "C:\MyCNC64\art\".
Чтобы такое проверить переименовываю в файле "x-parking.xml", в строке: "...image="parking/parking--02" на "parking--12" (такого номера не должно быть в myCNC.exe), а в файл: "C:\MyCNC64\art\buttons-no-theme\xp\parking\parking--01.svg", копирую как: "parking--12.svg".
Проверяю. В myCNC на месте иконки второй кнопки парковки картинка иконки первой кнопки парковки (первая - это картинка которая выводится корректно на своём месте) выводиться корректно и на втором месте парковки. То есть, пользователь может нарисовать собственные картинки и подменить стандартные или исправленные на свои в своём профиле своим уникальным именем.
Значит коллизия не отображения иконок в том, что файл "SVG" не отображается именно в windows приложениях.
Ошибку ищу в структуре файла картинки.
Смотрю фал "parking--03.svg". Создан inkscape:version="0.92.3 (2405546, 2018-03-11)". Сохранён как простой SVG.
Ошибку нашёл быстро в структуре "SVG", файла "parking--03.SVG". Действительно, в windows версии некоторые теги XML-структуры файла "SVG" обрабатываются некорректно, это так называемый "потоковый текст" (flowed text).
Все такие теги в файлах с расширением: "*.SVG", массово удалил программой (ссылку на программу для форума удалил сам) "Notepad++" из ресурса: "C:\MyCNC64\art", так:
Сделал копию ресурсов папки: "C:\MyCNC64\art";
Из программы "Notepad++", вызвал окно: "Найти в файлах"(CTR+H,CTR+F);
Выбрал закладку: "Найти в файлах";
В поле: "Найти", вставил (без кавычек): "<flowRoot.*?><\/flowRoot>";
В поле: "Заменить на" - оставить пустым;
В поле: "Фильтры", установить (без кавычек): "*.SVG"
В папке: "Папка:" (без кавычек): "C:\MyCNC64\art";
Отметил флаг: "Во всех подпапках";
Выбрал переключателем-радиокно́пка: "Регуляр. выражения";
Выполняю, отменить нельзя...;
Всего 1268 совпадений;
Готово.
Так изменены (исправлены) установочные ресурсы, но не ресурсы "SVG-кодов иконок" в исполняемом файле. Такое исправление, нормально должен сделать сам разработчик.
В профиле "1280M5", сделал вывод всех картинок для окна Паркинг. Описывать не буду, но похвалю, Красиво!
То есть, теперь все файлы "*.SVG" исправны для windows (в Linux без этого корректно обрабатывает такие теги), но приоритет выбора ресурсов в программе myCNC отдан не файлам в пользовательских ресурсах, а в самом исполняемом файле (видимо это так - не проверял), поэтому в конфигурационных "XML" файлах профилей, нужно изменить имена на такие, которых нет в исполняемом файле myCNC.exe. Хлопотно. Как это делать описал выше.
6.3 Win64 у меня нет картинок-иконок на закладке "Помощник генерации макро". Надо так понимать, что это иконки из папки: "\probing".
Определил, что у меня, например, не выводится картинка похожая по рисунку на: "center-round-int-ref.svg".
Эта не пользовательская страница настроек программы, и исправление в ресурсах файла иконки ничего не даёт. Нужно исправить ссылку на файл иконки, а соответствующий XML я не нашёл, может его и нет для доступности пользователю.
И здесь так же нужен "патч другого уровня".
...
Прочие описания коллизий касательно проекта не в тему этой ветки форума, да и писать не буду, чтобы не сердить техподдержку.

to mycnc.
После дополнительной и неудобной манипуляцией с именами, все возможные пользовательские картинки в WIN64 myCNC теперь у меня (и нескольких других windows) сейчас выводятся корректно.
Не знаю, уместно ли мне советовать вашей Высоте, но попробуйте мой совет. Возможно, Вам удастся окончательно решить проблему исчезновения иконок в windows вашей программы, в том числе и на стадии разработки проектов под windows.
1. Перед сохранением в inkscape, преобразовывайте "потоковый текст", в "обычный текст" версии "SVG 1.1"(menu: "Text" -> "Flow into Frame").("SVG 1.2" http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html , ссылку не удалял намеренно)
2. Так же, перед сохранением картинки, выбирайте: inkscape->Правка->Редактор XML. Удаляйте теги: "flowRoot".
Извините, если я ошибся.

Что за проблема с обрезкой, о которой Вы писали, я не понял и не сумел сделать так чтобы "запредельные точки не обрезались в windows". Впрочем, это, как я понял, уже не критично.
Желаю, чтобы Вам окончательно удалось решить проблему с исчезновением иконок в windows и сделать ещё более привлекательным Ваш проект!

SUN
Posts: 34
Joined: Tue Feb 18, 2020 3:41 pm

Re: Текст новой процедуры PLC заменяет текст последней старой

Post by SUN »

Уточняю фильтр для поля: "Найти:": "<flowRoot.*?<\/flowRoot>"
примерно 2300 тегов будет удалено .

SUN
Posts: 34
Joined: Tue Feb 18, 2020 3:41 pm

Re: Текст новой процедуры PLC заменяет текст последней старой

Post by SUN »

В профиле X1366ME для win64 редактировал такие ресурсы.
"parking/move-to-0.svg" -> "parking/move-to-0_" и, соответственно, в: "x-mill.xml", строку: "...image="parking/move-to-0_..." так появится кнопка: "RUN FROM HERE"
Подобное с иконками:
"parking/move-to-0";
"parking/parking--02";
"parking/parking--03";
"parking/parking-move-v2";
"parking/parking-save-v2";

p.s
Недоволен я решением - отказаться от версии формата 1.2 SVG в пользу 1.1 и не использовать потоковый текст.
Как бы коллизия с иконками локализуется в частном случае, но объективная причина в каком ресурсе операционной системы windows проблема, я не установил.
По-этому решил ещё немного поискать решение и всё проверить. Хочу найти, как надёжно и полноценно использовать в windows, формат файла SVG версии 1.2. Вдруг пригодится...
Самому создать коллизию картинки мне не удалось, но удалось в ресурсах myCNC найти два файла, видимо о проблеме в которых и упоминал mycnc: "...например сделано размывание, которое уходит во вне, или у градиента или сплайна точка...".
Пока проблему нашёл, исправил, но хочу всё проверить.

mycnc
Posts: 788
Joined: Thu May 10, 2018 2:42 pm
Location: Ottawa, Canada
Contact:

Re: Текст новой процедуры PLC заменяет текст последней старой

Post by mycnc »

SUN wrote:
Thu Apr 16, 2020 4:19 pm
Уточняю фильтр для поля: "Найти:": "<flowRoot.*?<\/flowRoot>"
примерно 2300 тегов будет удалено .
Такие теги есть и в других картинках, которые нормально показываются под Windows.
Но, спасибо за наводку, посмотрим по возможности.

Если не жалко, присылайте исправленные картинки, внедрим их в исполняемый файл.

Post Reply