Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
# the repo. Unless a later match takes precedence,
# all of these owners will be required for
# review when a pull request is opened.
* @aroschli @cadkin @liamnwhite1 @mborish @AshGannon
* @aroschli @cadkin @liamnwhite1 @AshGannon
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Slicer-2

<img align="left" width="100" height="100" src="doc/assets/slicer-2_logo.png" alt="Slicer-2 Logo" />
<img align="left" width="100" height="100" src="resources/icons/slicer-2_logo.png" alt="Slicer-2 Logo" />

Slicer-2 is an open‑source toolpath planning and slicing framework developed at Oak Ridge National Laboratory (ORNL) for additive manufacturing processes. It provides advanced algorithms for generating efficient, reliable toolpaths for technologies such as Fused Deposition Modeling (FDM) and Directed Energy Deposition (DED), with an emphasis on print quality, process optimization, and extensibility.

Expand Down Expand Up @@ -45,7 +45,7 @@ Before opening a new issue, please search existing ones to avoid duplicates.

### User Guide

Slicer-2 includes a comprehensive [user guide](https://github.com/ORNLSlicer/Slicer-2/blob/master/doc/assets/slicer-2_user_guide.pdf) This guide details the operation of Slicer-2 as well as explanations of every setting and its impact on the slicing process. The user guide also describes the command line mode and includes examples.
Slicer-2 includes a comprehensive [User Guide](https://github.com/ORNLSlicer/Slicer-2/blob/Master/doc/slicer-2_user_guide.pdf). This guide details the operation of Slicer-2 as well as explanations of every setting and its impact on the slicing process. The user guide also describes the command line mode and includes examples.

<!-- TODO(Liam White, 2025-11-21): API Documentation -->

Expand Down Expand Up @@ -80,12 +80,12 @@ Development has benefited from numerous research partners and many interns whose

## Contact

General inquiries: `slicer@ornl.gov`
General inquiries: [slicer@ornl.gov](mailto:slicer@ornl.gov)

---

## Share

Use the QR code below to quickly share or access the repository (also available in `doc/assets/`).
Use the QR code below to quickly share or access the repository.

![Share/Connect](doc/assets/slicer-2_qr.png)
![Share/Connect](resources/icons/slicer-2_qr.png)
3 changes: 0 additions & 3 deletions doc/assets/slicer-2_logo.png

This file was deleted.

2 changes: 1 addition & 1 deletion flake.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
description = "ORNL Slicer 2 - An advanced object slicer";
description = "ORNL Slicer-2 - An advanced slicing application for Additive Manufacturing";

inputs = {
nixpkgs.url = gitlab:mdf/nixpkgs/slicer2?host=code.ornl.gov;
Expand Down
2 changes: 1 addition & 1 deletion include/graphics/objects/cube_object.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace ORNL {
*
* \note
* QVector<QImage> text = {
* QImage(":/icons/slicer2.png"),
* QImage(":/icons/slicer-2_logo.png"),
* QImage(":/icons/3d_chart.png"),
* QImage(":/icons/3d_graph.png"),
* QImage(":/icons/arrow.png"),
Expand Down
2 changes: 1 addition & 1 deletion include/slicing/buffered_slicer.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class BufferedSlicer {
//! \param ranges the ranges the apply settings along
//! \param previous_buffer the number of past slices to track
//! \param future_buffer the numer of future slices to buffer
//! \param use_cgal_cross_section use cgal cross-sectioning in place of ORNL slicer 2's
//! \param use_cgal_cross_section use cgal cross-sectioning in place of ORNL Slicer-2's
BufferedSlicer(const QSharedPointer<MeshBase>& mesh, const QSharedPointer<SettingsBase>& settings,
QVector<QSharedPointer<Part>> settings_parts,
QMap<uint, QSharedPointer<SettingsRange>> ranges = QMap<uint, QSharedPointer<SettingsRange>>(),
Expand Down
4 changes: 2 additions & 2 deletions include/utilities/enums.h
Original file line number Diff line number Diff line change
Expand Up @@ -711,7 +711,7 @@ inline QString VisualizationColorsName(VisualizationColors color) {

default:
QMessageBox::critical(
Q_NULLPTR, "ORNL Slicer 2",
Q_NULLPTR, "ORNL Slicer-2",
"Unimplemented corosponding visualization colors string.\n"
"With a new enum entry for color, a corrosponding name (in VisualizationColorsName) and\n"
"default color value (in VisualizationColorsDefaults) needs to be created.",
Expand Down Expand Up @@ -779,7 +779,7 @@ inline constexpr const QColor VisualizationColorsDefaults(VisualizationColors co

default:
QMessageBox::critical(
Q_NULLPTR, "ORNL Slicer 2",
Q_NULLPTR, "ORNL Slicer-2",
"Unimplemented corosponding visualization default color.\n"
"With a new enum entry for color, a corrosponding name (in VisualizationColorsName) and\n"
"default color value (in VisualizationColorsDefaults) needs to be created.",
Expand Down
4 changes: 2 additions & 2 deletions resources/icons/icons.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -348,8 +348,8 @@
<file>align.png</file>
<file>location_marker.png</file>
<file>support_overhang.png</file>
<file>slicer2.ico</file>
<file>slicer2.png</file>
<file>slicer-2_logo.ico</file>
<file>slicer-2_logo.png</file>
<file>hybrid_logo.png</file>
<file>name_black.png</file>
<file>name_white.png</file>
Expand Down
3 changes: 3 additions & 0 deletions resources/icons/slicer-2_logo.ico
Git LFS file not shown
3 changes: 3 additions & 0 deletions resources/icons/slicer-2_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
3 changes: 0 additions & 3 deletions resources/icons/slicer2.ico

This file was deleted.

3 changes: 0 additions & 3 deletions resources/icons/slicer2.png

This file was deleted.

12 changes: 6 additions & 6 deletions scripts/installer.nsi
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Unicode true
!define APPLICATION "slicer2"

!define HUMAN_ORG "ORNL"
!define HUMAN_APPLICATION "ORNL Slicer 2"
!define HUMAN_APPLICATION "ORNL Slicer-2"

;!tempfile VER_TEMP
;!system 'echo "!define VERSION_MAJOR $(jq -j .major ../version.json)" >> ${VER_TEMP}'
Expand All @@ -23,10 +23,10 @@ Unicode true
;!define VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}+${VERSION_SUFFIX}"
!system "echo ${APPLICATION} version: ${VERSION}"

!define ICON "../resources/icons/slicer2.ico"
!define ICON "../resources/icons/slicer-2_logo.ico"

; Info
Name "ORNL Slicer 2"
Name "ORNL Slicer-2"
LicenseData "../LICENSE.md"
Icon "${ICON}"
UninstallIcon "${ICON}"
Expand Down Expand Up @@ -58,7 +58,7 @@ Section "${HUMAN_APPLICATION}"

; Generate uninstaller
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPLICATION}" "DisplayName" "${HUMAN_APPLICATION}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPLICATION}" "DisplayIcon" "$INSTDIR\slicer2.ico"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPLICATION}" "DisplayIcon" "$INSTDIR\slicer-2_logo.ico"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPLICATION}" "Publisher" "Oak Ridge National Lab"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPLICATION}" "InstallLocation" "$INSTDIR"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPLICATION}" "DisplayVersion" "${VERSION}"
Expand All @@ -82,8 +82,8 @@ Section "Start Menu Shortcuts"
SetShellVarContext all

CreateDirectory "$SMPROGRAMS\${HUMAN_ORG}\${HUMAN_APPLICATION}"
CreateShortcut "$SMPROGRAMS\${HUMAN_ORG}\${HUMAN_APPLICATION}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\slicer2.ico" 0
CreateShortcut "$SMPROGRAMS\${HUMAN_ORG}\${HUMAN_APPLICATION}\${HUMAN_APPLICATION}.lnk" "$INSTDIR\bin\${APPLICATION}.exe" "" "$INSTDIR\slicer2.ico" 0
CreateShortcut "$SMPROGRAMS\${HUMAN_ORG}\${HUMAN_APPLICATION}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\slicer-2_logo.ico" 0
CreateShortcut "$SMPROGRAMS\${HUMAN_ORG}\${HUMAN_APPLICATION}\${HUMAN_APPLICATION}.lnk" "$INSTDIR\bin\${APPLICATION}.exe" "" "$INSTDIR\slicer-2_logo.ico" 0
SectionEnd

Section "Uninstall"
Expand Down
4 changes: 2 additions & 2 deletions src/console/command_line_processor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ void CommandLineConverter::setupCommandLineParser(QCommandLineParser& parser) {

// custom options needed for loading/slicing
parser.addOption({Constants::ConsoleOptionStrings::kInputProjectFile,
"Run Slicer 2 using project file at <directory>.", "directory", ""});
"Run Slicer-2 using project file at <directory>.", "directory", ""});
parser.addOption({Constants::ConsoleOptionStrings::kInputStlFiles,
"List of STLs to load for slicing. Parameter can be specified multiple times.", "file-list", ""});
parser.addOption({Constants::ConsoleOptionStrings::kInputSupportStlFiles,
Expand Down Expand Up @@ -107,7 +107,7 @@ void CommandLineConverter::setupCommandLineParser(QCommandLineParser& parser) {
"List of layer numbers to slice in lieu of slicing the entire object. Mutually exclusive to "
"single_slice_height. Parameter can be specified multiple times.",
"layer-list", ""});
parser.addOption({Constants::ConsoleOptionStrings::kVersion, "Current Slicer 2 Version"});
parser.addOption({Constants::ConsoleOptionStrings::kVersion, "Current Slicer-2 Version"});
}

bool CommandLineConverter::checkRequiredSettings(QCommandLineParser& parser, QSharedPointer<SettingsBase> options) {
Expand Down
2 changes: 1 addition & 1 deletion src/gcode/writers/writer_base.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ QString WriterBase::writeSlicerHeader(const QString& syntax) {
else if (syntax == PRS::SyntaxString::kMeltio)
rv += "%\n";

rv += commentLine(QString("G-Code generated by ORNL Slicer 2 " BOOST_PP_STRINGIZE(SLICER2_VERSION))) %
rv += commentLine(QString("G-Code generated by ORNL Slicer-2 " BOOST_PP_STRINGIZE(SLICER2_VERSION))) %
commentLine(QString("Copyright " % QString::number(QDate::currentDate().year()) % " ORNL")) %
commentLine(QString("G-Code Syntax: ") % syntax) % commentLine(QString("Filename: ")) % m_newline;

Expand Down
2 changes: 1 addition & 1 deletion src/managers/settings/settings_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ int SettingsManager::checkVersion(QString filename, fifojson& settings_data, boo
int ret = m_yes_to_all_update;
if (!ret)
ret = QMessageBox::warning(
nullptr, "ORNL Slicer 2",
nullptr, "ORNL Slicer-2",
filename + "is outdated. Do you want to update this template to the newest compatible version? "
"Failure to do so may result in program instability.",
QMessageBox::Yes | QMessageBox::YesToAll | QMessageBox::No);
Expand Down
2 changes: 1 addition & 1 deletion src/managers/settings/settings_version_control.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ void SettingsVersionControl::rollSettingsForward(double& version, fifojson& sett
void SettingsVersionControl::formatSettings(double version, fifojson& settings) {
QString dt = QDateTime::currentDateTime().toString();
fifojson new_format;
new_format[Constants::SettingFileStrings::kHeader][Constants::SettingFileStrings::kCreatedBy] = "ORNL Slicer 2";
new_format[Constants::SettingFileStrings::kHeader][Constants::SettingFileStrings::kCreatedBy] = "ORNL Slicer-2";
new_format[Constants::SettingFileStrings::kHeader][Constants::SettingFileStrings::kCreatedOn] = dt.toStdString();
new_format[Constants::SettingFileStrings::kHeader][Constants::SettingFileStrings::kLastModified] = dt.toStdString();
new_format[Constants::SettingFileStrings::kHeader][Constants::SettingFileStrings::kVersion] = version;
Expand Down
2 changes: 1 addition & 1 deletion src/threading/gcode_tormach_saver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ void GCodeTormachSaver::run() {
file.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text);
QTextStream out(&file);

out << "$$ ORNL SLICER 2" % newline;
out << "$$ ORNL SLICER-2" % newline;
out << "$$*" % newline;
out << "$$ -> MFGNO" % newline;
out << "PARTNO / CF HY-80 3 x 1 1 1 CF HY-80 3 x 1" % newline;
Expand Down
2 changes: 1 addition & 1 deletion src/widgets/gcode_info_control.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ void GCodeInfoControl::setupHeaderWidget() {
hlayout->setContentsMargins(0, 0, 0, 0);

QLabel* picture = new QLabel;
picture->setPixmap((new QIcon(":/icons/slicer2.png"))->pixmap(QSize(28, 28), QIcon::Normal, QIcon::On));
picture->setPixmap((new QIcon(":/icons/slicer-2_logo.png"))->pixmap(QSize(28, 28), QIcon::Normal, QIcon::On));

QFrame* line = new QFrame;
line->setFrameShape(QFrame::VLine);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ void PartControlTreeItem::updateToolTip() {

if (!m_is_mesh_closed)
tooltip.append(
"\nThis model contains errors and is not a closed volume. Some Slicer 2 features may be unavailable.");
"\nThis model contains errors and is not a closed volume. Some Slicer-2 features may be unavailable.");

if (!m_is_mesh_inside_volume)
tooltip.append("\nThis model is outside the print volume.");
Expand Down Expand Up @@ -95,7 +95,7 @@ PartControlTreeItem::Container::Container(QString name, bool closed, QWidget* pa
auto error_label = new QLabel(this);
error_label->setAttribute(Qt::WA_TranslucentBackground);
error_label->setToolTip(
"This model contains errors is not a closed volume. Some Slicer 2 features may be unavailable.");
"This model contains errors is not a closed volume. Some Slicer-2 features may be unavailable.");
error_label->setPixmap(error_icon.pixmap(QSize(20, 20)));
layout->addWidget(error_label);

Expand Down
2 changes: 1 addition & 1 deletion src/widgets/settings/setting_bar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ void SettingBar::barTabWarning(int count, QString pane) {
SettingTab* SettingBar::getTab(QString major, QString minor) {
SettingTab* tab = this->getPane(major)->getTab(minor);
if (tab == nullptr)
tab = this->getPane(major)->newTab(minor, QIcon(":/icons/slicer2.png"),
tab = this->getPane(major)->newTab(minor, QIcon(":/icons/slicer-2_logo.png"),
PreferencesManager::getInstance()->isSettingHidden(major, minor));

return tab;
Expand Down
2 changes: 1 addition & 1 deletion src/widgets/settings/setting_tab.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ void SettingTab::headerWarning(int count) {
m_header->setIcon(QIcon(":/icons/warning.png"));
}
else {
m_header->setIcon(QIcon(":/icons/slicer2.png"));
m_header->setIcon(QIcon(":/icons/slicer-2_logo.png"));
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/windows/about.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ AboutWindow::AboutWindow(QWidget* parent) : QWidget() {
// windows
setWindowModality(Qt::ApplicationModal);

setWindowTitle("About ORNL Slicer 2");
setWindowIcon(QIcon(":/icons/slicer2.png"));
setWindowTitle("About ORNL Slicer-2");
setWindowIcon(QIcon(":/icons/slicer-2_logo.png"));

QGridLayout* layout = new QGridLayout();

Expand Down
2 changes: 1 addition & 1 deletion src/windows/dialogs/template_save.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ void TemplateSaveDialog::fileDialog() {
QFileDialog save_dialog;
save_dialog.setWindowTitle("Save Template Location");
save_dialog.setAcceptMode(QFileDialog::AcceptSave);
save_dialog.setNameFilters(QStringList() << "Slicer 2 Configuration/Template File (*.s2c)" << "Any Files (*)");
save_dialog.setNameFilters(QStringList() << "Slicer-2 Configuration/Template File (*.s2c)" << "Any Files (*)");
save_dialog.setDirectory(m_filename);
save_dialog.setDefaultSuffix("s2c");

Expand Down
2 changes: 1 addition & 1 deletion src/windows/external_file_window.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
namespace ORNL {
ExternalFileWindow::ExternalFileWindow(QWidget* parent) {
QIcon icon;
icon.addFile(QStringLiteral(":/icons/slicer2.png"), QSize(), QIcon::Normal, QIcon::Off);
icon.addFile(QStringLiteral(":/icons/slicer-2_logo.png"), QSize(), QIcon::Normal, QIcon::Off);
setWindowIcon(icon);

m_layout = new QGridLayout();
Expand Down
2 changes: 1 addition & 1 deletion src/windows/flowratecalc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ FlowrateCalcWindow::FlowrateCalcWindow(QWidget* parent) : QWidget() {
// setFixedSize(420,260);
setWindowTitle("Slicer-2: Flowrate Calculator");
QIcon icon;
icon.addFile(QStringLiteral(":/icons/slicer2.png"), QSize(), QIcon::Normal, QIcon::Off);
icon.addFile(QStringLiteral(":/icons/slicer-2_logo.png"), QSize(), QIcon::Normal, QIcon::Off);
setWindowIcon(icon);

m_layout = new QGridLayout();
Expand Down
4 changes: 2 additions & 2 deletions src/windows/gcode_export.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@
namespace ORNL {

GcodeExport::GcodeExport(QWidget* parent) {
setWindowTitle("Slicer 2: G-Code/Project Export");
setWindowTitle("Slicer-2: G-Code/Project Export");

QIcon icon;
icon.addFile(QStringLiteral(":/icons/slicer2.png"), QSize(), QIcon::Normal, QIcon::Off);
icon.addFile(QStringLiteral(":/icons/slicer-2_logo.png"), QSize(), QIcon::Normal, QIcon::Off);
setWindowIcon(icon);

m_layout = new QVBoxLayout();
Expand Down
2 changes: 1 addition & 1 deletion src/windows/layer_times_window.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
namespace ORNL {
LayerTimesWindow::LayerTimesWindow(QWidget* parent) {
QIcon icon;
icon.addFile(QStringLiteral(":/icons/slicer2.png"), QSize(), QIcon::Normal, QIcon::Off);
icon.addFile(QStringLiteral(":/icons/slicer-2_logo.png"), QSize(), QIcon::Normal, QIcon::Off);
setWindowIcon(icon);

m_layout = new QGridLayout();
Expand Down
Loading