Skip to content

Commit

Permalink
CAM: Simulator: A fix for Issue FreeCAD#14369: Wrong drill operation …
Browse files Browse the repository at this point in the history
…simulation (FreeCAD#14401)

* remove redundant code

* Fix G8x drill sequence bug.  issue FreeCAD#14369

* fix bad simulation artifacts under Linux and QT. Issue FreeCAD#14369
  • Loading branch information
shaise committed Jun 3, 2024
1 parent d4325a6 commit fc71493
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 20 deletions.
9 changes: 2 additions & 7 deletions src/Mod/CAM/PathSimulator/AppGL/DlgCAMSimulator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down
8 changes: 4 additions & 4 deletions src/Mod/CAM/PathSimulator/AppGL/DlgCAMSimulator.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@

#include <QWindow>
#include <QOpenGLExtraFunctions>

#include <QtGui/qpainter.h>
#include <QPainter>


#include <QExposeEvent>
#include <QResizeEvent>
#include <QMouseEvent>
#include <QOpenGLContext>

namespace MillSim
{
Expand Down
3 changes: 0 additions & 3 deletions src/Mod/CAM/PathSimulator/AppGL/GCodeParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
12 changes: 6 additions & 6 deletions src/Mod/CAM/PathSimulator/AppGL/MillSimulation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions src/Mod/CAM/PathSimulator/AppGL/OpenGlWrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit fc71493

Please sign in to comment.