CAM: Simulator: A fix for Issue #14369: Wrong drill operation simulation (#14401)

* remove redundant code

* Fix G8x drill sequence bug.  issue #14369

* fix bad simulation artifacts under Linux and QT. Issue #14369
This commit is contained in:
Shai Seger
2024-06-03 19:31:35 +03:00
committed by GitHub
parent d4325a6bd8
commit fc714933a7
5 changed files with 15 additions and 20 deletions

View File

@@ -24,17 +24,10 @@
#include "DlgCAMSimulator.h"
#include "MillSimulation.h"
#include <QMatrix4x4>
#include <QScreen>
#include <QDateTime>
#include <QSurfaceFormat>
#include <QMouseEvent>
#include <QWheelEvent>
#include <QPoint>
using namespace CAMSimulator;
using namespace MillSim;
QOpenGLContext* gOpenGlContext;
using namespace MillSim;
@@ -214,6 +207,8 @@ DlgCAMSimulator* DlgCAMSimulator::GetInstance()
QSurfaceFormat format;
format.setSamples(16);
format.setSwapInterval(2);
format.setDepthBufferSize(24);
format.setStencilBufferSize(8);
mInstance = new DlgCAMSimulator();
mInstance->setFormat(format);
mInstance->resize(800, 600);

View File

@@ -25,11 +25,11 @@
#include <QWindow>
#include <QOpenGLExtraFunctions>
#include <QtGui/qpainter.h>
#include <QPainter>
#include <QExposeEvent>
#include <QResizeEvent>
#include <QMouseEvent>
#include <QOpenGLContext>
namespace MillSim
{

View File

@@ -222,9 +222,6 @@ bool GCodeParser::AddLine(const char* ptr)
Operations.push_back(lastState);
lastState.z = rPlane;
Operations.push_back(lastState);
// restore original state
lastState.z = finalDepth;
lastState.cmd = eDril;
}
else {
Operations.push_back(lastState);

View File

@@ -351,12 +351,12 @@ namespace MillSim {
void MillSimulation::ProcessSim(unsigned int time_ms) {
static int ancient = 0;
static int last = 0;
static int msec = 0;
static unsigned int last = 0;
static unsigned int msec = 0xFFFFFFFF;
static int fps = 0;
static int renderTime = 0;
last = msec;
last = msec == 0xFFFFFFFF ? time_ms : msec;
msec = time_ms;
if (mIsRotate) {
mEyeRoration += (msec - last) / 4600.0f;
@@ -447,9 +447,9 @@ namespace MillSim {
{
mEyeRoration += rotStep;
if (mEyeRoration > PI2)
mEyeRoration = PI2;
mEyeRoration -= PI2;
else if (mEyeRoration < 0)
mEyeRoration = 0;
mEyeRoration += PI2;
}
void MillSimulation::MoveEye(float x, float z)
@@ -480,7 +480,7 @@ namespace MillSim {
{
// gray background
glClearColor(0.6f, 0.8f, 1.0f, 1.0f);
mEyeRoration = 0.0;
// use shaders
// standard diffuse shader

View File

@@ -28,6 +28,9 @@
#include "DlgCAMSimulator.h"
extern QOpenGLContext* gOpenGlContext;
#define gSimWindow CAMSimulator::DlgCAMSimulator::GetInstance()
#define glClearColor gSimWindow->glClearColor
#define glBlendFunc gSimWindow->glBlendFunc
#define glClear gSimWindow->glClear
#define glGenBuffers gSimWindow->glGenBuffers
#define glBindBuffer gSimWindow->glBindBuffer
#define glBufferData gSimWindow->glBufferData