Giter Site home page Giter Site logo

xray3d / gerber_x3 Goto Github PK

View Code? Open in Web Editor NEW
186.0 29.0 43.0 71.65 MB

Program for preparing G-code for milling of printed circuit boards on CNC. You can use it as a converter to a PDF file.

C++ 7.48% C 0.13% CMake 0.23% Batchfile 0.01% Shell 0.01% SWIG 92.03% HTML 0.11% CSS 0.01%
cnc gerber-x2 flatcam coopercam pcb rs-274x milling gerber g-code excellon

gerber_x3's Introduction

GGEasy

V0.8.0

Программа для подготовки Г-кода из файлов Gerber (RS-274X Revision 2020.09) для фрезеровки плат на ЧПУ. Частичная поддержка файлов DXF.

Форумы по программе:

Program for preparing G-code from Gerber (RS-274X Revision 2020.09) files for CNC milling. Partial support for DXF files.

Window

Поддержать автора https://boosty.to/x-ray_3d

gerber_x3's People

Contributors

djbios avatar mikelsv avatar mixa3607 avatar ololoshka2871 avatar ronindev avatar xray3d avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gerber_x3's Issues

Перенести "ускорение" в свойства инструмента

На данный момент параметр "ускорение" задаётся в свойствах конкретной процедуры обработки.
При этом фактически, ускорение ограничено самим рабочим инструментом (его весом) и жёсткостью механики станка.
Предлагаю:

  1. Перенести настройку ускорения в свойства рабочего инструмента - т.е. туда же, где находятся остальные скоростные характеристики.
  2. В стартовый/финишный g-code добавить макроподстановку со значением ускорения для текущей УП - для использования M204/M201

при создании "КАРМАН" больше 2мм - закрывается программа

я столкнулся с таким багом под Qt6 последней сборки
сперва думал, кривой DXF создал, грешил на ОС
но перепроверил на разных устройствах - баг есть
описываю
чертим прямоугольник
выбираем его
выбираем КАРМАН В НУТРИ
даем глубину 2 и больше миллиметров
жмем СОЗДАТЬ
и программа вылетает
если выбрать КАРМАН РАСТРОВЫЙ - G код создается

Color theme

Версия: 0.8.0 preview
Дайте пожалуйста возможность вернуться к предыдущей цветовой теме (как в прошлых версиях).
Темные значки на темном фоне - это просто "вырви глаз" какой-то. Очень тяжело работать. Спасибо!

Сделать нарезку ненужной меди на квадратики как альтернативу полной выборки

Свободная незаземленная медь между дорожками может стать причиной паразитных связей. Для ВЧ плат ее просто необходимо убирать, хотя это требует времени и ресурса гравера. Но проблему таких паразитных связей можно решить, нарезав медь на мелкие квадратики наподобие "Copper Thieving". Это значительно ускорит изготовление платы и сохранит ресурс гравера. В принципе, достаточно разрешить устанавливать отступ больше, чем половина диаметра гравера, но специальный режим был бы весьма удобен.

Высота перемещения

Как задать высоту перемещения для каждого инструмента отдельно ? или хотябы для сверловки отдельно
Объясню: При гравировке дорожек высота в 0.3 мм нормально ( так как есть карта высот)
а вот при сверловке или вырезе платы нужно другую высоту ( так как не всегда есть карта высот ) и может одна из плат после вырез приподняться.

Предложения https://www.cnc-club.ru/forum/viewtopic.php?p=601930#p601930

  1. Софтина вылетает при попытке сохранить файл УП. Любой. Сейчас проверю конечно на свежих бетах, но однозначно воспроизводится на конфигурации 0.7.9.0 (build 28/12/2020), Win10 (кстати, нельзя скопировать версию из окошка "O G2G"). Генерит УП нормально - т.е. приходится "показать источник" на УП и копировать текст ручками...
  2. Хотелось бы в "настройки" - "G-код" возможности привязать "формат строки с координатами" к машине (фрезер/лазер). В частности различия вызывает S-параметр с мощностью - для лазера он актуален (а-ля HLDI), для фрезера только мешается.
  3. Хочется уметь задавать позиции ноля координат относительно нижней левой булавки (сейчас задаётся относительно нижнего левого угла полезного содержимого платы). Зачем: на жертвенном столе имеется отверстие под эту булавку с заведомо известными координатами. Булавки же в зависимости от характера платы/зазоров до границ текстолита могут плавать (ну например, плата по X относительно заготовки существенно меньше - я уношу булавки в X, всё равно обрезки останутся. напротив, плата в притык к границам текстолита - булавки уезжают в Y). Соответственно сейчас это пересчитывается и переставляется 0 УП руками, но бывает забываю/ошибаюсь да и в целом кажется что возможность задавать 0 относительно реальных границ реза (а не только границ полезного содержимого) должна быть полезна многим.
  4. Возможность программного управления - процесс изготовления довольно типовой и хотелось бы (скриптами дёргая софтину с командной строки или ещё как) иметь возможность "в один клик" получать набор УП для разных этапов. Да, понимаю, что не для всех, но у меня например процесс очень типовой и даже файлы называю однотипно

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

0.1-Сверловка реперов
0.2-Отрез заготовки
1-Засветка фоторезиста
2-Засветка маски
3.x-Сверление/фрезеровка отверстий (по количеству рабочих инструментов)
4-Отрезка платы

Соответственно, единственное ручное тут - это добавление линии для отреза куска платы от остальной заготовки, остальное - однотипное накликивание.
5. Собственно, возможность обозначать как-то на рабочем поле саму изначальную заготовку (прямоугольный кусок текстолита заведомо известного размера) с возможностью подвигать относительно платы и автоматом сгенерить линии отрезки. Сейчас обхожусь фигурой "прямоугольник", но во-первых задавать его размеры через точки углов совсем не удобно, во-вторых хотелось бы фич авто-позиционирования платы (в идеале - включая поворот, а то я повернуть плату умею только перегенерируя gerber) и авто-генерации линий отреза маленькой заготовки под плату от большой.

PS: Мелочи:
6. Хотелось бы возможность удалить конкретную булавку. Как уже писал выше - я вырезаю из g-кода руками сверловку первой булавки - отверстие под неё уже есть на столе, а на заготовке сверлю ручками.
7. При перемещении булавок мышкой на поле - игнорируется привязка к сетке.
8. Почему-то при установке в "параметры g-кода" значений ноля координат выставляю, скажем, -10 - а после сохранения/открытия - там всё равно -10,010 или -10,025. Видимо, какая-то дискретность и странное округление.

Удаление конкретных булавок

Хотелось бы возможность удалить конкретную булавку. Как уже писал выше - я вырезаю из g-кода руками сверловку первой булавки - отверстие под неё уже есть на столе, а на заготовке сверлю ручками.

From #32

Ошибка при создании УП для лазера

G21 G17 G90
M3
M3
G0X10.286Y9.644S0
G1S255 error 22
X10.309Y9.729F1200
X10.311Y9.738
X10.33Y9.955
Y9.964

And49
Проверил связку: гербер - G2G V 0.7.8.9 - PocketR - *.tap - Candle V 1.1.7 - CNC3018 GRBL V 1.1f. При моделировании УП в программе NC4 всё прошло без замечаний. Но при запуске этой УП в Candle в рабочем режиме и в режиме проверки на 5 строчке возникает ошибка 22. Часть УП с ошибкой в приложении. Причём если нажать кнопку "пропустить" остальная часть УП проходит без ошибок, хоть там и встречаются аналогичные команды. Перерыл форум, но так и не нашёл, где нужно копать.

Shturman
3-я строка повторяет 2-ю... зачем? Error 22 в 5-й строке скорей всего из-за того, что задали рабочее перемещение (G01), а скорости перемещения (F) нет, но зато присутствует скорость шпинделя (S255). И принято задавать вначале обороты, а уже потом включать его (S255 M3), Ошибки не критичные, но...

https://cnc3018.ru/threads/grber2gcode-frezerovka-pechatnyx-plat-na-chpu-izuchaem-delimsja-opytom-i-dostizhenijami.2231/page-17#post-55540

Баг при разбиение Вороного.

Добрый день!

Опять вылез баг при разбиение Вороного.. один пад остался висеть в воздухе, отрезанный от все остальных. Проект не сохранил, т.к. спешил. ((( Использовал тестую версию G2G. Выгружал из диптрейс в весрию Gerber X2

Отверстия какой формат и как фрезеровать?

Загружаю отверстия , если в дюймах то большие получаются, если в мм то размер норма, а вот расстояние между ними большое.
И второй вопрос как их фрезеровать ? тоесть 1 мм врезой вырезать 3мм отверстие, что выбирать ?

Программное управление созданием УП

Возможность программного управления - процесс изготовления довольно типовой и хотелось бы (скриптами дёргая софтину с командной строки или ещё как) иметь возможность "в один клик" получать набор УП для разных этапов. Да, понимаю, что не для всех, но у меня например процесс очень типовой и даже файлы называю однотипно

0.1-Сверловка реперов
0.2-Отрез заготовки
1-Засветка фоторезиста
2-Засветка маски
3.x-Сверление/фрезеровка отверстий (по количеству рабочих инструментов)
4-Отрезка платы

Соответственно, единственное ручное тут - это добавление линии для отреза куска платы от остальной заготовки, остальное - однотипное накликивание.

From #32

Исправления для сборки в linux

Нашел время попробовать собрать новую версию.
И она собирается в Linux с минимальными исправлениями.
Вот патч.

image

---
 G2G/G2G.pro     | 9 ++++++++-
 G2G/project.cpp | 5 ++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/G2G/G2G.pro b/G2G/G2G.pro
index ddd1780..f1c0408 100644
--- a/G2G/G2G.pro
+++ b/G2G/G2G.pro
@@ -21,8 +21,15 @@ msvc* {
 
 gcc* {
     QMAKE_CXXFLAGS += -std=c++1z
-    LIBS += -lsetupapi -lAdvapi32 -lpsapi
     RC_FILE = myapp.rc
+
+    win32 {
+        LIBS += -lsetupapi -lAdvapi32 -lpsapi
+    }
+}
+
+linux* {
+    DEFINES += linux
 }
 
 
diff --git a/G2G/project.cpp b/G2G/project.cpp
index c0d23d6..fc931ef 100644
--- a/G2G/project.cpp
+++ b/G2G/project.cpp
@@ -7,7 +7,10 @@
 //#include <WinNT.h>
 #include <filetree/filemodel.h>
 #include <forms/gcodepropertiesform.h>
+
+#ifndef linux
 #include <qt_windows.h>
+#endif
 
 QMap<int, QSharedPointer<AbstractFile>> Project::m_files;
 bool Project::m_isModified = false;
@@ -263,7 +266,7 @@ bool operator<(const QPair<Tool, Side>& p1, const QPair<Tool, Side>& p2)
 
 void Project::saveSelectedToolpaths()
 {
-    QVector<GCode::File*> files(files<GCode::File>());
+    QVector<GCode::File*> files(Project::files<GCode::File>());
     for (int i = 0; i < files.size(); ++i) {
         if (!files[i]->itemGroup()->isVisible())
             files.remove(i--);
-- 
2.24.0

УП Профиль

УП Профиль с мостами при встречном фрезеровании не упорядочен.
Снимок

Модифицировать логику сохранения УП

https://www.cnc-club.ru/forum/viewtopic.php?p=584190#p584190
Да, за галку настройки куда сохранять - огромное спасибо, так намного удобнее. Но есть еще одно небольшое пожелание к сохранению. Вот я открыл герберы, сохранил проект в папку с герберами, и начинаю сохранять УПшки. Если я хочу УПшки сохранить в другую папку - приходится каждой указывать в какую папку сохранять. Было бы удобнее чтобы при сохранении помнилась последняя папка в которую сохранялась предыдущая УП и сразу предлагало сохранять туда.

Снять константность с полей GraphicObject

Структура struct GraphicObject используется как элемент QList, который в методе QList::node_construct() требует operator=(), однако он недоступен из-за того, что все поля константные.
Патч отменяет константность:

From 576509c1a8a02271e6a4408efaab220a63c570e1 Mon Sep 17 00:00:00 2001
From: ololoshka2871 <[email protected]>
Date: Tue, 14 May 2019 11:03:01 +0300
Subject: [PATCH 1/2] =?UTF-8?q?gerber/gbrvars.h:=20struct=20GraphicObject?=
 =?UTF-8?q?=20=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BA=D0=BE?=
 =?UTF-8?q?=D0=BD=D1=81=D1=82=D1=80=D0=B0=D0=BD=D1=82=D0=BD=D0=BE=D1=81?=
 =?UTF-8?q?=D1=82=D1=8C=20=D1=81=20=D0=BF=D0=BE=D0=BB=D0=B5=D0=B9,=20?=
 =?UTF-8?q?=D1=82=D0=B0=D0=BA=20=D0=BA=D0=B0=D0=BA=20=D1=8D=D1=82=D0=BE=20?=
 =?UTF-8?q?=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8=D1=80=D1=83=D0=B5=D1=82=20=D0=B3?=
 =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D1=8E=20=D0=BE=D0=BF?=
 =?UTF-8?q?=D0=B5=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=B0=20=D0=BF=D1=80=D0=B8?=
 =?UTF-8?q?=D1=81=D0=B2=D0=B0=D0=B8=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BF?=
 =?UTF-8?q?=D0=BE-=D1=83=D0=BC=D0=BE=D0=BB=D1=87=D0=B0=D0=BD=D0=B8=D1=8E,?=
 =?UTF-8?q?=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80=D1=8B=D0=B9=20=D1=82=D1=80?=
 =?UTF-8?q?=D0=B5=D0=B1=D1=83=D0=B5=D1=82=D1=81=D1=8F=20=D0=B4=D0=BB=D1=8F?=
 =?UTF-8?q?=20QList<GraphicObject>::node=5Fconstruct()?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 gerber/gbrvars.h | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/gerber/gbrvars.h b/gerber/gbrvars.h
index 275db9b..4fefc9f 100644
--- a/gerber/gbrvars.h
+++ b/gerber/gbrvars.h
@@ -209,12 +209,17 @@ public:
     inline void setRotating(double rotating) { m_rotating = rotating; }
 };
 
+// QList<GraphicObject>::node_construct() uses operator=()
+// Gerber::GraphicObject& Gerber::GraphicObject::operator=(const Gerber::GraphicObject&)’
+// is implicitly deleted because the default definition would be ill-formed
+// so remove "const" from fields
 struct GraphicObject {
     explicit GraphicObject(
         int id,
         const State& state,
         const Paths& paths,
-        const File* gFile,
+        //const File* gFile, // invalid conversion from ‘const Gerber::File*’ to ‘Gerber::File*’
+        File* gFile,
         const Path& path = Path())
         : id(id)
         , state(state)
@@ -223,11 +228,12 @@ struct GraphicObject {
         , path(path)
     {
     }
-    const int id;
-    const State state;
-    const Paths paths;
-    const File* gFile;
-    const Path path;
+
+    int id;
+    State state;
+    Paths paths;
+    File* gFile;
+    Path path;
 };
 
 } // namespace Gerber
-- 
2.21.0

Ошибки в редактировании базы инструментов

Добрый!

Для релиза 0.8.0 заново заполнял базу инструментов, заметил несколько ошибок:

  • в параметрах резания "Отступ" в численном выражении можно теперь крутить до диаметра инструмента, а проценты так и остаются на 50%;
  • если в панельке "Информация об инструменте" стоит чек-бокс "Скорость погружения", и сделать переход с инструмента типа "Сверло" на инструмент типа "Фреза", то скорость погружения для инструмента считается по "Резу за оборот", а не берётся та, которая была задана при создании инструмента. При переходе между "Фрезой" и "Фрезой" всё нормально;
  • проверку корректности вводимого значения для "Реза за оборот" оооочень бы хотелось видеть какой-то более простой чем сейчас, т.к. невозможно забить значение просто введением на цифровой части клавиатуры последовательности цифр/точки, типа "0,025".

GerberX3 FileFunction,Component AperFunction,ComponentOutline

%TF.FileFunction,Component,L1,Top*%
%TA.AperFunction,ComponentOutline,Body*% <- ???

Некорректный разбор файлов с данными о компонентах от программы TARGET 3001.
В элемент попадает только первый элемент графического описания границ.

В панели параметров инструмента цифры не вводятся с клавиатуры

Не могу внести диаметр инструмента простым вводом цифр в поле "диаметр".
Сначала работают только кнопки инкремента/декремента. После того, как 0.000 сменился на что угодно, ввод уже становится возможным.
Так же ведут себя другие элементы ввода.
Проверено на Win 7 x32 и Win 10 x64

Разметка заготовки текстолита

Возможность обозначать как-то на рабочем поле саму изначальную заготовку (прямоугольный кусок текстолита заведомо известного размера) с возможностью подвигать относительно платы и автоматом сгенерить линии отрезки. Сейчас обхожусь фигурой "прямоугольник", но во-первых задавать его размеры через точки углов совсем не удобно, во-вторых хотелось бы фич авто-позиционирования платы (в идеале - включая поворот, а то я повернуть плату умею только перегенерируя gerber) и авто-генерации линий отреза маленькой заготовки под плату от большой.

From #32

Настойки Г-Кода

Не работает или криво работает настройка вывода инфо о Г-Коде.

Compilation Error (Visual Studio)

Firstly, thank you for producing such great open-source software. This is probably the best user interface I have ever used for a program that generates GCode.

I have made some minor changes to the code outputs specific to my old milling machine, and would like to recompile the changes into a new binary. I am working in Visual Studio (2022), and I think have installed all the necessary dependencies.

The CMake runs fine, but when I try to build a release, I get the following error: Error D8021 invalid numeric argument '/Wno-error=invalid-offsetof'. It may have something to do with clipper and shapes, but I'm not sure what.

The complete build output is shown below.

Regards!

------ Build All started: Project: GERBER_X3-0.8.0, Configuration: x64-Release ------
[1/202] Automatic MOC and UIC for target shape
[2/202] Automatic MOC and UIC for target clipper
[3/202] Building CXX object shape_plugins\shape\CMakeFiles\shape.dir\shape.cpp.obj
FAILED: shape_plugins/shape/CMakeFiles/shape.dir/shape.cpp.obj
C:\PROGRA1\MICROS4\2022\COMMUN1\VC\Tools\MSVC\14301.307\bin\Hostx64\x64\cl.exe /nologo /TP -DCTRE -DMINGW_HAS_SECURE_API=1 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MESSAGELOGCONTEXT -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DSHAPE_LIBRARY -DUNICODE -DWIN32 -DWIN64 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_WIN32_WINNT=0x0601 -D_WIN64 -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\shape_plugins\shape -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\shape_plugins\shape\shape_autogen\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\compile-time-regular-expressions\single-header -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\GGEasy -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\clipper -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\common -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\filetree -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\gerber -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\gi -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\graphicsview -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\thermal -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\tooldatabase -IC:\Qt\6.2.1\mingw81_64\include\QtCore -IC:\Qt\6.2.1\mingw81_64\include -IC:\Qt\6.2.1\mingw81_64\mkspecs\win32-g++ -IC:\Qt\6.2.1\mingw81_64\include\QtGui -IC:\Qt\6.2.1\mingw81_64\include\QtWidgets /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /Zi /O2 /Ob1 /DNDEBUG -Wno-error=invalid-offsetof -std:c++20 /showIncludes /Foshape_plugins\shape\CMakeFiles\shape.dir\shape.cpp.obj /Fdshape_plugins\shape\CMakeFiles\shape.dir\shape.pdb /FS -c C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape\shape.cpp
C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\cl : Command line error D8021: invalid numeric argument '/Wno-error=invalid-offsetof'
[4/202] Building CXX object static_libs\clipper\CMakeFiles\clipper.dir\clipper_autogen\mocs_compilation.cpp.obj
FAILED: static_libs/clipper/CMakeFiles/clipper.dir/clipper_autogen/mocs_compilation.cpp.obj
C:\PROGRA1\MICROS4\2022\COMMUN1\VC\Tools\MSVC\14301.307\bin\Hostx64\x64\cl.exe /nologo /TP -DCLIPPER_LIBRARY -DCTRE -DMINGW_HAS_SECURE_API=1 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MESSAGELOGCONTEXT -DQT_NO_DEBUG -DUNICODE -DWIN32 -DWIN64 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_WIN32_WINNT=0x0601 -D_WIN64 -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\static_libs\clipper -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs\clipper -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\static_libs\clipper\clipper_autogen\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\compile-time-regular-expressions\single-header -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\GGEasy -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\clipper -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\common -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\filetree -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\gerber -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\gi -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\graphicsview -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\thermal -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\tooldatabase -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\shape_plugins\shape -IC:\Qt\6.2.1\mingw81_64\include\QtCore -IC:\Qt\6.2.1\mingw81_64\include -IC:\Qt\6.2.1\mingw81_64\mkspecs\win32-g++ -IC:\Qt\6.2.1\mingw81_64\include\QtGui /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /Zi /O2 /Ob1 /DNDEBUG -Wno-error=invalid-offsetof -std:c++20 /showIncludes /Fostatic_libs\clipper\CMakeFiles\clipper.dir\clipper_autogen\mocs_compilation.cpp.obj /Fdstatic_libs\clipper\CMakeFiles\clipper.dir\clipper.pdb /FS -c C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\static_libs\clipper\clipper_autogen\mocs_compilation.cpp
C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\cl : Command line error D8021: invalid numeric argument '/Wno-error=invalid-offsetof'
[5/202] Building CXX object shape_plugins\shape\CMakeFiles\shape.dir\shape_autogen\mocs_compilation.cpp.obj
FAILED: shape_plugins/shape/CMakeFiles/shape.dir/shape_autogen/mocs_compilation.cpp.obj
C:\PROGRA1\MICROS4\2022\COMMUN1\VC\Tools\MSVC\14301.307\bin\Hostx64\x64\cl.exe /nologo /TP -DCTRE -DMINGW_HAS_SECURE_API=1 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MESSAGELOGCONTEXT -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DSHAPE_LIBRARY -DUNICODE -DWIN32 -DWIN64 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_WIN32_WINNT=0x0601 -D_WIN64 -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\shape_plugins\shape -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\shape_plugins\shape\shape_autogen\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\compile-time-regular-expressions\single-header -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\GGEasy -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\clipper -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\common -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\filetree -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\gerber -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\gi -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\graphicsview -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\thermal -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\tooldatabase -IC:\Qt\6.2.1\mingw81_64\include\QtCore -IC:\Qt\6.2.1\mingw81_64\include -IC:\Qt\6.2.1\mingw81_64\mkspecs\win32-g++ -IC:\Qt\6.2.1\mingw81_64\include\QtGui -IC:\Qt\6.2.1\mingw81_64\include\QtWidgets /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /Zi /O2 /Ob1 /DNDEBUG -Wno-error=invalid-offsetof -std:c++20 /showIncludes /Foshape_plugins\shape\CMakeFiles\shape.dir\shape_autogen\mocs_compilation.cpp.obj /Fdshape_plugins\shape\CMakeFiles\shape.dir\shape.pdb /FS -c C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\shape_plugins\shape\shape_autogen\mocs_compilation.cpp
C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\cl : Command line error D8021: invalid numeric argument '/Wno-error=invalid-offsetof'
[6/202] Building CXX object shape_plugins\shape\CMakeFiles\shape.dir\shnode.cpp.obj
FAILED: shape_plugins/shape/CMakeFiles/shape.dir/shnode.cpp.obj
C:\PROGRA1\MICROS4\2022\COMMUN1\VC\Tools\MSVC\14301.307\bin\Hostx64\x64\cl.exe /nologo /TP -DCTRE -DMINGW_HAS_SECURE_API=1 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MESSAGELOGCONTEXT -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DSHAPE_LIBRARY -DUNICODE -DWIN32 -DWIN64 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_WIN32_WINNT=0x0601 -D_WIN64 -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\shape_plugins\shape -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\shape_plugins\shape\shape_autogen\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\compile-time-regular-expressions\single-header -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\GGEasy -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\clipper -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\common -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\filetree -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\gerber -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\gi -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\graphicsview -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\thermal -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\tooldatabase -IC:\Qt\6.2.1\mingw81_64\include\QtCore -IC:\Qt\6.2.1\mingw81_64\include -IC:\Qt\6.2.1\mingw81_64\mkspecs\win32-g++ -IC:\Qt\6.2.1\mingw81_64\include\QtGui -IC:\Qt\6.2.1\mingw81_64\include\QtWidgets /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /Zi /O2 /Ob1 /DNDEBUG -Wno-error=invalid-offsetof -std:c++20 /showIncludes /Foshape_plugins\shape\CMakeFiles\shape.dir\shnode.cpp.obj /Fdshape_plugins\shape\CMakeFiles\shape.dir\shape.pdb /FS -c C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape\shnode.cpp
C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\cl : Command line error D8021: invalid numeric argument '/Wno-error=invalid-offsetof'
[7/202] Building CXX object shape_plugins\shape\CMakeFiles\shape.dir\shhandler.cpp.obj
FAILED: shape_plugins/shape/CMakeFiles/shape.dir/shhandler.cpp.obj
C:\PROGRA1\MICROS4\2022\COMMUN1\VC\Tools\MSVC\14301.307\bin\Hostx64\x64\cl.exe /nologo /TP -DCTRE -DMINGW_HAS_SECURE_API=1 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MESSAGELOGCONTEXT -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DSHAPE_LIBRARY -DUNICODE -DWIN32 -DWIN64 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_WIN32_WINNT=0x0601 -D_WIN64 -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\shape_plugins\shape -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\shape_plugins\shape\shape_autogen\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\compile-time-regular-expressions\single-header -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\GGEasy -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\clipper -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\common -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\filetree -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\gerber -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\gi -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\graphicsview -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\thermal -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape....\static_libs\tooldatabase -IC:\Qt\6.2.1\mingw81_64\include\QtCore -IC:\Qt\6.2.1\mingw81_64\include -IC:\Qt\6.2.1\mingw81_64\mkspecs\win32-g++ -IC:\Qt\6.2.1\mingw81_64\include\QtGui -IC:\Qt\6.2.1\mingw81_64\include\QtWidgets /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /Zi /O2 /Ob1 /DNDEBUG -Wno-error=invalid-offsetof -std:c++20 /showIncludes /Foshape_plugins\shape\CMakeFiles\shape.dir\shhandler.cpp.obj /Fdshape_plugins\shape\CMakeFiles\shape.dir\shape.pdb /FS -c C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\shape_plugins\shape\shhandler.cpp
C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\cl : Command line error D8021: invalid numeric argument '/Wno-error=invalid-offsetof'
[8/202] Building CXX object static_libs\clipper\CMakeFiles\clipper.dir\clipper.cpp.obj
FAILED: static_libs/clipper/CMakeFiles/clipper.dir/clipper.cpp.obj
C:\PROGRA1\MICROS4\2022\COMMUN1\VC\Tools\MSVC\14301.307\bin\Hostx64\x64\cl.exe /nologo /TP -DCLIPPER_LIBRARY -DCTRE -DMINGW_HAS_SECURE_API=1 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MESSAGELOGCONTEXT -DQT_NO_DEBUG -DUNICODE -DWIN32 -DWIN64 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_WIN32_WINNT=0x0601 -D_WIN64 -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\static_libs\clipper -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs\clipper -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\static_libs\clipper\clipper_autogen\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\compile-time-regular-expressions\single-header -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\GGEasy -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\clipper -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\common -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\filetree -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\gerber -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\gi -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\graphicsview -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\thermal -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\tooldatabase -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\shape_plugins\shape -IC:\Qt\6.2.1\mingw81_64\include\QtCore -IC:\Qt\6.2.1\mingw81_64\include -IC:\Qt\6.2.1\mingw81_64\mkspecs\win32-g++ -IC:\Qt\6.2.1\mingw81_64\include\QtGui /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /Zi /O2 /Ob1 /DNDEBUG -Wno-error=invalid-offsetof -std:c++20 /showIncludes /Fostatic_libs\clipper\CMakeFiles\clipper.dir\clipper.cpp.obj /Fdstatic_libs\clipper\CMakeFiles\clipper.dir\clipper.pdb /FS -c C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs\clipper\clipper.cpp
C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\cl : Command line error D8021: invalid numeric argument '/Wno-error=invalid-offsetof'
[9/202] Building CXX object static_libs\clipper\CMakeFiles\clipper.dir\myclipper.cpp.obj
FAILED: static_libs/clipper/CMakeFiles/clipper.dir/myclipper.cpp.obj
C:\PROGRA1\MICROS4\2022\COMMUN1\VC\Tools\MSVC\14301.307\bin\Hostx64\x64\cl.exe /nologo /TP -DCLIPPER_LIBRARY -DCTRE -DMINGW_HAS_SECURE_API=1 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MESSAGELOGCONTEXT -DQT_NO_DEBUG -DUNICODE -DWIN32 -DWIN64 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_WIN32_WINNT=0x0601 -D_WIN64 -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\static_libs\clipper -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs\clipper -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\static_libs\clipper\clipper_autogen\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\magic_get\include -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\compile-time-regular-expressions\single-header -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\GGEasy -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\clipper -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\common -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\filetree -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\gerber -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\gi -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\graphicsview -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\thermal -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\static_libs\tooldatabase -IC:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs..\shape_plugins\shape -IC:\Qt\6.2.1\mingw81_64\include\QtCore -IC:\Qt\6.2.1\mingw81_64\include -IC:\Qt\6.2.1\mingw81_64\mkspecs\win32-g++ -IC:\Qt\6.2.1\mingw81_64\include\QtGui /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /Zi /O2 /Ob1 /DNDEBUG -Wno-error=invalid-offsetof -std:c++20 /showIncludes /Fostatic_libs\clipper\CMakeFiles\clipper.dir\myclipper.cpp.obj /Fdstatic_libs\clipper\CMakeFiles\clipper.dir\clipper.pdb /FS -c C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\static_libs\clipper\myclipper.cpp
C:\Users\sbart\Documents\Projects\KLG\GERBER_X3-0.8.0.3_Modified\out\build\x64-Release\cl : Command line error D8021: invalid numeric argument '/Wno-error=invalid-offsetof'
[10/202] Automatic MOC and UIC for target gi
[11/202] Automatic MOC and UIC for target thermal
[12/202] Automatic MOC and UIC for target tooldatabase
ninja: build stopped: subcommand failed.

Build All failed.

ошибка в названии меню

Build 0.8.0.0 Mar 14 2021
В английском меню : Viev - должно быть View

не ошибко, но режет глаз - пункт меню Paths - множественное число. Обычно принято использовать единственное число Path
Меню View -> Fit best - Обычно используют Best Fit, или Fit to screen
на булавке чекбокс "Used" - это "использованный" - должно быть "Use" или "In use"

Перевод

В пункте профиль, слово "длинна" с ошибкой (где мосты)

Привязать к типу машины формат строки с координатами

Хотелось бы в "настройки" - "G-код" возможности привязать "формат строки с координатами" к машине (фрезер/лазер). В частности различия вызывает S-параметр с мощностью - для лазера он актуален (а-ля HLDI), для фрезера только мешается.

From #32

Зум колесиком мышки

Нельзя ли сделать, чтобы зум менялся колесиком мышки? Как, например, в Aspire или VCarve.

Не сохраняется G-код операции Theramal

Шаги, чтобы повторить проблему:

  • Загрузить Gerber-файл любой платы
  • Выбрать операцию Thermal и сгенерировать программу обработки. Она появляется в превью и списке Tool Paths
  • ПКМ на элементе Tool Path -> Save Toolpath
  • Выбрать место и имя файла в диалоге сохранения
  • Файл не появляется в указанном месте.

Обнаружил, что в методе void GCodeFile::save(const QString& name) отсутствует case Thermal:, поэтому case завершался по варианту default

Решение case Thermal: аналогично к другим типам траектории:

From 7c994607b69dca49bc69015b761ea133759d024a Mon Sep 17 00:00:00 2001
From: ololoshka2871 <[email protected]>
Date: Tue, 14 May 2019 11:05:26 +0300
Subject: [PATCH 2/2] =?UTF-8?q?G2G/gcode/gcode.cpp:=20210=20=D0=94=D0=BE?=
 =?UTF-8?q?=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=B2=D0=B0=D1=80=D0=B8?=
 =?UTF-8?q?=D0=B0=D0=BD=D1=82=20=D0=B4=D0=BB=D1=8F=20switch,=20=D0=BA?=
 =?UTF-8?q?=D0=BE=D1=82=D0=BE=D1=80=D1=8B=D0=B9=20=D0=BD=D1=83=D0=B6=D0=B5?=
 =?UTF-8?q?=D0=BD=20=D0=B4=D0=BB=D1=8F=20=D1=81=D0=BE=D1=85=D1=80=D0=B0?=
 =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20G-=D0=BA=D0=BE=D0=B4=D0=B0=20?=
 =?UTF-8?q?=D0=BE=D0=BF=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20"Thermal"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 G2G/gcode/gcode.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/G2G/gcode/gcode.cpp b/G2G/gcode/gcode.cpp
index 2b8c671..2772fd8 100644
--- a/G2G/gcode/gcode.cpp
+++ b/G2G/gcode/gcode.cpp
@@ -207,6 +207,7 @@ void GCodeFile::save(const QString& name)
     case Profile:
     case Pocket:
     case Voronoi:
+    case Thermal:
         saveProfilePocket();
         break;
     case Drilling:
@@ -375,4 +376,4 @@ void GCodeFile::save() const
 
 void GCodeFile::open() const
 {
-}
\ No newline at end of file
+}
-- 
2.21.0

Не читает dxf

Подскажите, как и при каких условиях (пример программ, через которые делался экспорт dxf) читается dxf?
Пробовал через корел, разные версии годов, не видит контуров никаких.
Спасибо

Внутренняя фрезеровка

Как можно сделать внутреннюю фрезеровку ?
пример на скриншоте.
Форма этой фрезеровки может быть любая например змейкой.
5555

Несанкционированная фрезеровка контура платы

Импортируемый гербер-файл не содержал контура платы.
От программы не требовалось его обрабатывать,
Но программа все равно сгенерировала Г-код с управляющей траекторией "обхода контура", рассчитав его по граничным точкам, как прямоугольник.

Отменить принудительный рендеринг в режиме PocketR ради ускорения

При выборе шага растра 0.05мм и меньше программа уходит в долгий тайм-аут и не реагирует ни на что, пока не отрисует всё огромное количество линий растра.
Предлагаю сделать рендеринг по запросу пользователя. Т.е. чекбокс на панели фалов не взводить.

0.8.0 preview (GGEasy_x32) и beta 0.8.0

Выделенные элементы ПП с помощью Ctrl и мышки по цвету не отличаются от ещё не выделенных , что затрудняет этот этап работы.

Исправления для возможности сборки в Linux

Попробовал собрать ваш проект под Linux.
Я использую ArchLinux.

  • GCC 8.2.1
  • Qt5 5.12.0-1

Я внес несколько исправлений в код для обхода ошибок компиляции.
В таком виде программа запускается и работает
Снимок экрана от 2019-05-07 09-18-25

Патч:

From a9faa04a242126ba4eef824fb9779358fb5b3831 Mon Sep 17 00:00:00 2001
From: ololoshka2871 <[email protected]>
Date: Tue, 7 May 2019 08:45:01 +0300
Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20=D1=81=D0=B1?=
 =?UTF-8?q?=D0=BE=D1=80=D0=BA=D0=B8=20=D0=B2=20Linux=20(GCC=208.2=20+=20Qt?=
 =?UTF-8?q?=205.12)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 G2G/aboutform.cpp           | 2 ++
 G2G/filetree/fileholder.cpp | 2 +-
 G2G/gcode/toolpathcreator.h | 3 ++-
 G2G/settingsdialog.cpp      | 9 ++++++---
 G2G/settingsdialog.h        | 3 ++-
 excellon/excellondialog.cpp | 1 +
 excellon/exparser.cpp       | 1 +
 excellon/exvars.h           | 6 +++++-
 gerber/gbrfile.h            | 6 ++++--
 voronoi/halfedge.cpp        | 2 ++
 voronoi/voronoi.cpp         | 2 ++
 11 files changed, 28 insertions(+), 9 deletions(-)

diff --git a/G2G/aboutform.cpp b/G2G/aboutform.cpp
index 7f1eeab..a9a9c28 100644
--- a/G2G/aboutform.cpp
+++ b/G2G/aboutform.cpp
@@ -9,6 +9,8 @@ AboutForm::AboutForm(QWidget* parent)
     ui->setupUi(this);
 #ifdef MINGW_DDK_H
     QString str(QString(__TIMESTAMP__).append("<br/>MINGW: ") + QString::number(__MINGW32_MAJOR_VERSION) + "." + QString::number(__MINGW32_MINOR_VERSION));
+#elif __GNUG__ // specific variant for GCC
+    QString str(QString(__TIMESTAMP__).append("<br/>GCC_VER: ") + QString(__VERSION__));
 #else
     QString str(QString(__TIMESTAMP__).append("<br/>MSC_VER: ") + QString::number(_MSC_VER));
 #endif
diff --git a/G2G/filetree/fileholder.cpp b/G2G/filetree/fileholder.cpp
index ac466cb..2f1cd3a 100644
--- a/G2G/filetree/fileholder.cpp
+++ b/G2G/filetree/fileholder.cpp
@@ -1,4 +1,4 @@
-#include "FileHolder.h"
+#include "fileholder.h" // filename case-sensitive
 
 //QMap<int, QSharedPointer<Drill>> FileHolder::m_drlFiles;
 //QMap<int, QSharedPointer<G::File>> FileHolder::m_gerberFiles;
diff --git a/G2G/gcode/toolpathcreator.h b/G2G/gcode/toolpathcreator.h
index cf1858e..3fad987 100644
--- a/G2G/gcode/toolpathcreator.h
+++ b/G2G/gcode/toolpathcreator.h
@@ -31,7 +31,8 @@ void fixBegin(Path& path);
 class ToolPathCreator : public QObject {
     Q_OBJECT
 
-    friend class Clipper;
+    // friend class Clipper; // clipper.c:1619 ‘static void ToolPathCreator::progressOrCancel()’ is private within this context
+    friend class ClipperLib::Clipper;
 
 public:
     static ToolPathCreator* self;
diff --git a/G2G/settingsdialog.cpp b/G2G/settingsdialog.cpp
index 0910fa4..cae4f19 100644
--- a/G2G/settingsdialog.cpp
+++ b/G2G/settingsdialog.cpp
@@ -7,7 +7,8 @@
 
 const int gridColor = 100;
 
-const QColor defaultColor[Colors::Count]{
+//const QColor defaultColor[Colors::Count]{ // size of array ‘defaultColor’ has non-integral type ‘Colors’
+const QColor defaultColor[(size_t)Colors::Count] {
     QColor(), //Background
     QColor(255, 255, 0, 120), //Shtift
     QColor(Qt::gray), //CutArea
@@ -21,7 +22,8 @@ const QColor defaultColor[Colors::Count]{
     QColor(Qt::red) //G0
 };
 
-const QString colorName[Colors::Count]{
+//const QString colorName[Colors::Count]{ // size of array ‘colorName’ has non-integral type ‘Colors’
+const QString colorName[(size_t)Colors::Count]{
     "Background",
     "Shtift",
     "CutArea",
@@ -35,7 +37,8 @@ const QString colorName[Colors::Count]{
     "G0",
 };
 
-QColor SettingsDialog::m_color[Colors::Count]{
+//QColor SettingsDialog::m_color[Colors::Count]{ // size of array ‘SettingsDialog::m_color’ has non-integral type ‘Colors’
+QColor SettingsDialog::m_color[(size_t)Colors::Count]{
     QColor(), //Background
     QColor(255, 255, 0, 120), //Shtift
     QColor(Qt::gray), //CutArea
diff --git a/G2G/settingsdialog.h b/G2G/settingsdialog.h
index 9afb026..bf471b9 100644
--- a/G2G/settingsdialog.h
+++ b/G2G/settingsdialog.h
@@ -43,7 +43,8 @@ private:
     void onScrollBarValueChanged(int value);
     void onListCategoriesCurrentRowChanged(int currentRow);
 
-    static QColor m_color[Colors::Count];
+    //static QColor m_color[Colors::Count]; // size of array ‘m_color’ has non-integral type ‘Colors’
+    static QColor m_color[(size_t)Colors::Count];
 };
 
 #endif // SETTINGSDIALOG_H
diff --git a/excellon/excellondialog.cpp b/excellon/excellondialog.cpp
index a2c57b1..a4d516e 100644
--- a/excellon/excellondialog.cpp
+++ b/excellon/excellondialog.cpp
@@ -3,6 +3,7 @@
 #include "ui_excellondialog.h"
 #include <graphicsview.h>
 #include <scene.h>
+#include <cmath> // pow()
 
 using namespace Excellon;
 
diff --git a/excellon/exparser.cpp b/excellon/exparser.cpp
index 8ec6182..7b7bae2 100644
--- a/excellon/exparser.cpp
+++ b/excellon/exparser.cpp
@@ -2,6 +2,7 @@
 #include "exfile.h"
 
 #include <QFile>
+#include <cmath> // pow()
 
 using namespace Excellon;
 
diff --git a/excellon/exvars.h b/excellon/exvars.h
index 52b30d5..541a706 100644
--- a/excellon/exvars.h
+++ b/excellon/exvars.h
@@ -202,7 +202,11 @@ public:
     {
     }
 
-    const File* const file = nullptr;
+    // QList<T>::node_construct() -> *reinterpret_cast<T*>(n) = t; uses operator=(const Hole&),
+    // but it's deleted, because field "file" is "const",
+    // so, remove "const"
+    //const File* const file = nullptr;
+    File* file = nullptr;
     State state;
     DrillItem* item = nullptr;
 };
diff --git a/gerber/gbrfile.h b/gerber/gbrfile.h
index 0c0a86f..e9a5833 100644
--- a/gerber/gbrfile.h
+++ b/gerber/gbrfile.h
@@ -83,8 +83,10 @@ private:
         }
     }
 };
-
-Q_DECLARE_METATYPE(File)
+// specialization of ‘template<class T> struct QMetaTypeId’ in different namespace
+//Q_DECLARE_METATYPE(Gerber::File)
 }
 
+Q_DECLARE_METATYPE(Gerber::File)
+
 #endif // GFILE_H
diff --git a/voronoi/halfedge.cpp b/voronoi/halfedge.cpp
index d4ed676..3ac5164 100644
--- a/voronoi/halfedge.cpp
+++ b/voronoi/halfedge.cpp
@@ -1,5 +1,7 @@
 #include "halfedge.h"
 #include <QObject>
+#include <cmath> // std::atan2()
+
 namespace Vrn {
 Halfedge::Halfedge(Edge* edge, Vertex* lSite, Vertex* rSite)
 {
diff --git a/voronoi/voronoi.cpp b/voronoi/voronoi.cpp
index 84055b9..e0e84a1 100644
--- a/voronoi/voronoi.cpp
+++ b/voronoi/voronoi.cpp
@@ -1,6 +1,8 @@
 #include "voronoi.h"
 #include <QElapsedTimer>
 #include <QElapsedTimer>
+#include <cmath> // sqrt(), floor()
+
 namespace Vrn {
 Voronoi::Voronoi()
 {
-- 
2.20.1

Зависает на подготовке УП

Screenshot_1

Просто начало зависать на 99%. Ждал, долго - ничего не происходит. Только "отменить" помогает. Было мелкое изменение в плате (дорожки подвигал) и все, экспорт и вот такое вот..

В параметрах инструмента, в блоке "Параметры резания", параметр "Отступ" нельзя сделать равным 0

В параметрах инструмента, в блоке "Параметры резания", параметр "Отступ" нельзя сделать равным 0. Я так понимаю, если его сделать равным нулю, фреза должна делать один проход на данной глубине реза. Сейчас фреза делает два прохода, соответственно уходит в два раза больше времени на вырезание контура платы.

"Сырые вектора"

Здравствуйте,
Скорее всего вопрос глупый, не наблюдаю пункта "сырые вектора", которые были в ранних версиях. Всю программу истыкал, так и не нашел.
Подскажите где они в версии 0.8.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.