Skip to content

Commit

Permalink
Settings updated
Browse files Browse the repository at this point in the history
  • Loading branch information
Denvi committed Oct 20, 2016
1 parent 1b8a2f2 commit 94f20c5
Showing 6 changed files with 171 additions and 287 deletions.
79 changes: 64 additions & 15 deletions src/drawers/gcodedrawer.cpp
Original file line number Diff line number Diff line change
@@ -7,9 +7,11 @@ GcodeDrawer::GcodeDrawer() : QObject()
{
m_geometryUpdated = false;
m_pointSize = 6;
m_ignoreZ = true;
m_colorizeSegments = true;
m_colorizeType = GcodeDrawer::S;
m_ignoreZ = false;
m_grayscaleSegments = false;
m_grayscaleCode = GcodeDrawer::S;
m_grayscaleMin = 0;
m_grayscaleMax = 255;

connect(&m_timerVertexUpdate, SIGNAL(timeout()), SLOT(onTimerVertexUpdate()));
m_timerVertexUpdate.start(100);
@@ -48,7 +50,7 @@ bool GcodeDrawer::updateData()
for (int i = 0; i < list->count(); i++) {

if (qIsNaN(list->at(i)->getEnd().z())) {
qDebug() << "nan point" << list->at(i)->getEnd();
// qDebug() << "nan point" << list->at(i)->getEnd();
continue;
}

@@ -60,6 +62,7 @@ bool GcodeDrawer::updateData()
// Draw first toolpath point
vertex.color = Util::colorToVector(m_colorStart);
vertex.position = list->at(i)->getEnd();
if (m_ignoreZ) vertex.position.setZ(0);
vertex.start = QVector3D(sNan, sNan, m_pointSize);
m_points.append(vertex);

@@ -100,16 +103,19 @@ bool GcodeDrawer::updateData()

// Line start
vertex.position = list->at(j)->getStart();
if (m_ignoreZ) vertex.position.setZ(0);
m_lines.append(vertex);

// Line end
vertex.position = list->at(i)->getEnd();
if (m_ignoreZ) vertex.position.setZ(0);
m_lines.append(vertex);

// Draw last toolpath point
if (i == list->count() - 1) {
vertex.color = Util::colorToVector(m_colorEnd);
vertex.position = list->at(i)->getEnd();
if (m_ignoreZ) vertex.position.setZ(0);
vertex.start = QVector3D(sNan, sNan, m_pointSize);
m_points.append(vertex);
}
@@ -128,7 +134,7 @@ bool GcodeDrawer::updateData()
int vertexIndexLast = qMax(list.at(*mm.second)->vertexIndex(), 0);
int vertexCount = (vertexIndexLast - vertexIndexFirst) + 2;

qDebug() << "updating vertices" << vertexIndexFirst << vertexIndexLast << vertexCount;
// qDebug() << "updating vertices" << vertexIndexFirst << vertexIndexLast << vertexCount;

// Allocate buffer
VertexData *data = (VertexData*)malloc(vertexCount * sizeof(VertexData));
@@ -174,14 +180,11 @@ QVector3D GcodeDrawer::getSegmentColor(LineSegment *segment)
else if (segment->isHightlight()) return Util::colorToVector(m_colorHighlight);//QVector3D(0.57, 0.51, 0.9);
else if (segment->isFastTraverse()) return Util::colorToVector(m_colorNormal);// QVector3D(0.0, 0.0, 0.0);
else if (segment->isZMovement()) return Util::colorToVector(m_colorZMovement);//QVector3D(1.0, 0.0, 0.0);
else if (m_colorizeSegments) switch (m_colorizeType) {
case ColorizeType::S:
return Util::colorToVector(QColor::fromHsl(0, 0, 255 - segment->getSpindleSpeed()));
case ColorizeType::Z:
return Util::colorToVector(QColor::fromHsl(0, 0, 255 - segment->getStart().z()));
case ColorizeType::P:
return Util::colorToVector(QColor::fromHsl(0, 0, 255 - segment->getDwell()));
break;
else if (m_grayscaleSegments) switch (m_grayscaleCode) {
case GrayscaleCode::S:
return Util::colorToVector(QColor::fromHsl(0, 0, qBound<int>(0, 255 - 255 / (m_grayscaleMax - m_grayscaleMin) * segment->getSpindleSpeed(), 255)));
case GrayscaleCode::Z:
return Util::colorToVector(QColor::fromHsl(0, 0, qBound<int>(0, 255 - 255 / (m_grayscaleMax - m_grayscaleMin) * segment->getStart().z(), 255)));
}
return Util::colorToVector(m_colorNormal);//QVector3D(0.0, 0.0, 0.0);
}
@@ -201,12 +204,18 @@ QVector3D GcodeDrawer::getSizes()

QVector3D GcodeDrawer::getMinimumExtremes()
{
return m_viewParser->getMinimumExtremes();;
QVector3D v = m_viewParser->getMinimumExtremes();
if (m_ignoreZ) v.setZ(0);

return v;
}

QVector3D GcodeDrawer::getMaximumExtremes()
{
return m_viewParser->getMaximumExtremes();;
QVector3D v = m_viewParser->getMaximumExtremes();
if (m_ignoreZ) v.setZ(0);

return v;
}

void GcodeDrawer::setViewParser(GcodeViewParse* viewParser)
@@ -313,6 +322,46 @@ void GcodeDrawer::onTimerVertexUpdate()
if (!m_indexes.isEmpty()) ShaderDrawable::update();
}

int GcodeDrawer::grayscaleMax() const
{
return m_grayscaleMax;
}

void GcodeDrawer::setGrayscaleMax(int grayscaleMax)
{
m_grayscaleMax = grayscaleMax;
}

int GcodeDrawer::grayscaleMin() const
{
return m_grayscaleMin;
}

void GcodeDrawer::setGrayscaleMin(int grayscaleMin)
{
m_grayscaleMin = grayscaleMin;
}

GcodeDrawer::GrayscaleCode GcodeDrawer::grayscaleCode() const
{
return m_grayscaleCode;
}

void GcodeDrawer::setGrayscaleCode(const GrayscaleCode &grayscaleCode)
{
m_grayscaleCode = grayscaleCode;
}

bool GcodeDrawer::getGrayscaleSegments() const
{
return m_grayscaleSegments;
}

void GcodeDrawer::setGrayscaleSegments(bool grayscaleSegments)
{
m_grayscaleSegments = grayscaleSegments;
}




20 changes: 17 additions & 3 deletions src/drawers/gcodedrawer.h
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ class GcodeDrawer : public QObject, public ShaderDrawable
{
Q_OBJECT
public:
enum ColorizeType { S, Z, P };
enum GrayscaleCode { S, Z };

explicit GcodeDrawer();

@@ -58,6 +58,18 @@ class GcodeDrawer : public QObject, public ShaderDrawable
bool getIgnoreZ() const;
void setIgnoreZ(bool ignoreZ);

bool getGrayscaleSegments() const;
void setGrayscaleSegments(bool grayscaleSegments);

GrayscaleCode grayscaleCode() const;
void setGrayscaleCode(const GrayscaleCode &grayscaleCode);

int grayscaleMin() const;
void setGrayscaleMin(int grayscaleMin);

int grayscaleMax() const;
void setGrayscaleMax(int grayscaleMax);

signals:

public slots:
@@ -71,8 +83,10 @@ private slots:
double m_simplifyPrecision;

bool m_ignoreZ;
bool m_colorizeSegments;
ColorizeType m_colorizeType;
bool m_grayscaleSegments;
GrayscaleCode m_grayscaleCode;
int m_grayscaleMin;
int m_grayscaleMax;

bool m_geometryUpdated;

19 changes: 17 additions & 2 deletions src/frmmain.cpp
Original file line number Diff line number Diff line change
@@ -239,6 +239,9 @@ void frmMain::loadSettings()
m_settings.setZBuffer(set.value("zBuffer", false).toBool());
m_settings.setSimplify(set.value("simplify", false).toBool());
m_settings.setSimplifyPrecision(set.value("simplifyPrecision", 0).toDouble());
m_settings.setGrayscaleSegments(set.value("grayscaleSegments", false).toBool());
m_settings.setGrayscaleSCode(set.value("grayscaleSCode", true).toBool());
m_settings.setIgnoreZ(set.value("ignoreZ", false).toBool());
ui->txtJogStep->setValue(set.value("jogStep", 1).toDouble());
m_programSpeed = true;
ui->sliSpindleSpeed->setValue(set.value("spindleSpeed", 0).toInt());
@@ -253,6 +256,8 @@ void frmMain::loadSettings()
m_settings.setShowUICommands(set.value("showUICommands", 0).toBool());
m_settings.setSpindleSpeedMin(set.value("spindleSpeedMin", 0).toInt());
m_settings.setSpindleSpeedMax(set.value("spindleSpeedMax", 100).toInt());
m_settings.setLaserPowerMin(set.value("laserPowerMin", 0).toInt());
m_settings.setLaserPowerMax(set.value("laserPowerMax", 100).toInt());
m_settings.setRapidSpeed(set.value("rapidSpeed", 0).toInt());
m_settings.setHeightmapProbingFeed(set.value("heightmapProbingFeed", 0).toInt());
m_settings.setAcceleration(set.value("acceleration", 10).toInt());
@@ -357,6 +362,9 @@ void frmMain::saveSettings()
set.setValue("zBuffer", m_settings.zBuffer());
set.setValue("simplify", m_settings.simplify());
set.setValue("simplifyPrecision", m_settings.simplifyPrecision());
set.setValue("grayscaleSegments", m_settings.grayscaleSegments());
set.setValue("grayscaleSCode", m_settings.grayscaleSCode());
set.setValue("ignoreZ", m_settings.ignoreZ());
set.setValue("jogStep", ui->txtJogStep->value());
set.setValue("spindleSpeed", ui->txtSpindleSpeed->text());
set.setValue("lineWidth", m_settings.lineWidth());
@@ -367,6 +375,8 @@ void frmMain::saveSettings()
set.setValue("showUICommands", m_settings.showUICommands());
set.setValue("spindleSpeedMin", m_settings.spindleSpeedMin());
set.setValue("spindleSpeedMax", m_settings.spindleSpeedMax());
set.setValue("laserPowerMin", m_settings.laserPowerMin());
set.setValue("laserPowerMax", m_settings.laserPowerMax());
set.setValue("moveOnRestore", m_settings.moveOnRestore());
set.setValue("restoreMode", m_settings.restoreMode());
set.setValue("rapidSpeed", m_settings.rapidSpeed());
@@ -1576,8 +1586,8 @@ QTime frmMain::updateProgramEstimatedTime(QList<LineSegment*> lines)
// ? (ls->getSpeed() * ui->txtFeed->value() / 100) : ls->getSpeed())
// << time;

if (qIsNaN(length)) qDebug() << "length nan:" << i << ls->getLineNumber() << ls->getStart() << ls->getEnd();
if (qIsNaN(ls->getSpeed())) qDebug() << "speed nan:" << ls->getSpeed();
// if (qIsNaN(length)) qDebug() << "length nan:" << i << ls->getLineNumber() << ls->getStart() << ls->getEnd();
// if (qIsNaN(ls->getSpeed())) qDebug() << "speed nan:" << ls->getSpeed();
}

time *= 60;
@@ -1870,6 +1880,11 @@ void frmMain::applySettings() {
m_codeDrawer->setColorZMovement(m_settings.colors("ToolpathZMovement"));
m_codeDrawer->setColorStart(m_settings.colors("ToolpathStart"));
m_codeDrawer->setColorEnd(m_settings.colors("ToolpathEnd"));
m_codeDrawer->setIgnoreZ(m_settings.ignoreZ());
m_codeDrawer->setGrayscaleSegments(m_settings.grayscaleSegments());
m_codeDrawer->setGrayscaleCode(m_settings.grayscaleSCode() ? GcodeDrawer::S : GcodeDrawer::Z);
m_codeDrawer->setGrayscaleMin(m_settings.laserPowerMin());
m_codeDrawer->setGrayscaleMax(m_settings.laserPowerMax());
m_codeDrawer->update();

// Adapt visualizer buttons colors
58 changes: 57 additions & 1 deletion src/frmsettings.cpp
Original file line number Diff line number Diff line change
@@ -290,6 +290,26 @@ void frmSettings::setSpindleSpeedMax(int speed)
ui->txtSpindleSpeedMax->setValue(speed);
}

int frmSettings::laserPowerMin()
{
return ui->txtLaserPowerMin->value();
}

void frmSettings::setLaserPowerMin(int value)
{
ui->txtLaserPowerMin->setValue(value);
}

int frmSettings::laserPowerMax()
{
return ui->txtLaserPowerMax->value();
}

void frmSettings::setLaserPowerMax(int value)
{
ui->txtLaserPowerMax->setValue(value);
}

int frmSettings::rapidSpeed()
{
return ui->txtRapidSpeed->value();
@@ -491,6 +511,37 @@ void frmSettings::setFontSize(int fontSize)
ui->cboFontSize->setCurrentText(QString::number(fontSize));
}

bool frmSettings::grayscaleSegments()
{
return ui->chkGrayscale->isChecked();
}

void frmSettings::setGrayscaleSegments(bool value)
{
ui->chkGrayscale->setChecked(value);
}

bool frmSettings::grayscaleSCode()
{
return ui->radGrayscaleS->isChecked();
}

void frmSettings::setGrayscaleSCode(bool value)
{
ui->radGrayscaleS->setChecked(value);
ui->radGrayscaleZ->setChecked(!value);
}

bool frmSettings::ignoreZ()
{
return ui->chkIgnoreZ->isChecked();
}

void frmSettings::setIgnoreZ(bool value)
{
ui->chkIgnoreZ->setChecked(value);
}

void frmSettings::showEvent(QShowEvent *se)
{
Q_UNUSED(se)
@@ -542,6 +593,8 @@ void frmSettings::on_cmdDefaults_clicked()
setAcceleration(100);
setSpindleSpeedMin(0);
setSpindleSpeedMax(10000);
setLaserPowerMin(0);
setLaserPowerMax(100);
setTouchCommand("G21G91G38.2Z-30F100; G0Z1; G38.2Z-2F10");
setSafePositionCommand("G21G90; G53G0Z0");
setMoveOnRestore(false);
@@ -560,6 +613,9 @@ void frmSettings::on_cmdDefaults_clicked()
setSimplifyPrecision(0.0);
setFps(60);
setZBuffer(false);
setGrayscaleSegments(false);
setGrayscaleSCode(true);
setIgnoreZ(false);

setToolType(1);
setToolAngle(15.0);
@@ -572,7 +628,7 @@ void frmSettings::on_cmdDefaults_clicked()
setPanelFeed(true);
setPanelHeightmap(true);
setPanelJog(true);
setPanelSpindle(true);
setPanelSpindle(true);

ui->clpTool->setColor(QColor(255, 153, 0));

10 changes: 10 additions & 0 deletions src/frmsettings.h
Original file line number Diff line number Diff line change
@@ -59,6 +59,10 @@ class frmSettings : public QDialog
void setSpindleSpeedMin(int speed);
int spindleSpeedMax();
void setSpindleSpeedMax(int speed);
int laserPowerMin();
void setLaserPowerMin(int value);
int laserPowerMax();
void setLaserPowerMax(int value);
int rapidSpeed();
void setRapidSpeed(int rapidSpeed);
int heightmapProbingFeed();
@@ -99,6 +103,12 @@ class frmSettings : public QDialog
QColor colors(QString name);
int fontSize();
void setFontSize(int fontSize);
bool grayscaleSegments();
void setGrayscaleSegments(bool value);
bool grayscaleSCode();
void setGrayscaleSCode(bool value);
bool ignoreZ();
void setIgnoreZ(bool value);

protected:
void showEvent(QShowEvent *se);
Loading

0 comments on commit 94f20c5

Please sign in to comment.