mirror of
https://github.com/QIDITECH/QIDISlicer.git
synced 2026-01-30 15:38:43 +03:00
update
This commit is contained in:
@@ -13,8 +13,8 @@
|
|||||||
"SLIC3R_ENC_CHECK": false,
|
"SLIC3R_ENC_CHECK": false,
|
||||||
"SLIC3R_PCH": true,
|
"SLIC3R_PCH": true,
|
||||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/build-default/dist",
|
"CMAKE_INSTALL_PREFIX": "${sourceDir}/build-default/dist",
|
||||||
"PrusaSlicer_DEPS_PRESET": "default",
|
"QIDISlicer_DEPS_PRESET": "default",
|
||||||
"PrusaSlicer_DEPS_OUTPUT_QUIET": false
|
"QIDISlicer_DEPS_OUTPUT_QUIET": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# PrusaSlicer: this is a direct copy of the UsewxWidgets.cmake module
|
# QIDISlicer: this is a direct copy of the UsewxWidgets.cmake module
|
||||||
# within the original CMake 3.27 distribution
|
# within the original CMake 3.27 distribution
|
||||||
|
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||||
|
|||||||
2
deps/CMakePresets.json
vendored
2
deps/CMakePresets.json
vendored
@@ -24,7 +24,7 @@
|
|||||||
"inherits": "default",
|
"inherits": "default",
|
||||||
"binaryDir": "${sourceDir}/build-no-occt",
|
"binaryDir": "${sourceDir}/build-no-occt",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"PrusaSlicer_deps_PACKAGE_EXCLUDES": "OCCT"
|
"QIDISlicer_deps_PACKAGE_EXCLUDES": "OCCT"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -232,7 +232,7 @@ text = Fullscreen mode\nDid you know that you can switch QIDISlicer to fullscree
|
|||||||
enabled_tags = Windows
|
enabled_tags = Windows
|
||||||
|
|
||||||
[hint:Printables integration]
|
[hint:Printables integration]
|
||||||
text = Printables.com integration\nDid you know that when you are browsing Printables.com, you can send 3D model files to PrusaSlicer with a single click? Learn more in the documentation.
|
text = Printables.com integration\nDid you know that when you are browsing Printables.com, you can send 3D model files to QIDISlicer with a single click? Learn more in the documentation.
|
||||||
documentation_link = https://help.qidi3d.com/article/prusaslicer-printables-com-integration_399198
|
documentation_link = https://help.qidi3d.com/article/prusaslicer-printables-com-integration_399198
|
||||||
weight = 3
|
weight = 3
|
||||||
|
|
||||||
|
|||||||
@@ -4,4 +4,4 @@ https://github.com/martinus/unordered_dense
|
|||||||
unordered_dense 3.1.1 10782bfc651c2bb75b11bf90491f50da122e5432
|
unordered_dense 3.1.1 10782bfc651c2bb75b11bf90491f50da122e5432
|
||||||
SOURCE DISTRIBUTION.
|
SOURCE DISTRIBUTION.
|
||||||
|
|
||||||
THIS IS NOT THE COMPLETE unordered_dense DISTRIBUTION. ONLY FILES NEEDED FOR COMPILING PRUSASLICER WERE PUT INTO THE PRUSASLICER SOURCE DISTRIBUTION.
|
THIS IS NOT THE COMPLETE unordered_dense DISTRIBUTION. ONLY FILES NEEDED FOR COMPILING QIDISLICER WERE PUT INTO THE QIDISLICER SOURCE DISTRIBUTION.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
THIS IS A PRUSA3D BRANCH, WORKING AROUND A SPECIFIC PROBLEM
|
THIS IS A QIDI3D BRANCH, WORKING AROUND A SPECIFIC PROBLEM
|
||||||
IN THE EARLY I3 MK2 USB COMMUNICATION CHIPS.
|
IN THE EARLY I3 MK2 USB COMMUNICATION CHIPS.
|
||||||
|
|
||||||
Some of the early QIDI3D i3 MK2 printers were shipped with a buggy
|
Some of the early QIDI3D i3 MK2 printers were shipped with a buggy
|
||||||
@@ -12,7 +12,7 @@ https://github.com/arduino/Arduino-stk500v2-bootloader
|
|||||||
|
|
||||||
The avrdude binary modified by QIDI3D could replace the avrdude bianary
|
The avrdude binary modified by QIDI3D could replace the avrdude bianary
|
||||||
of arduino to program the RAMBo board. In that case the modified binary
|
of arduino to program the RAMBo board. In that case the modified binary
|
||||||
is identified by a "-prusa3d" suffix to the version information.
|
is identified by a "-qidi3d" suffix to the version information.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -4808,7 +4808,7 @@ void stk500v2_jtag3_initpgm(PROGRAMMER * pgm)
|
|||||||
void stk500v2_set_upload_size(PROGRAMMER * pgm, int size)
|
void stk500v2_set_upload_size(PROGRAMMER * pgm, int size)
|
||||||
{
|
{
|
||||||
unsigned char buf[16];
|
unsigned char buf[16];
|
||||||
buf[0] = CMD_SET_UPLOAD_SIZE_PRUSA3D;
|
buf[0] = CMD_SET_UPLOAD_SIZE_QIDI3D;
|
||||||
buf[1] = size & 0xff;
|
buf[1] = size & 0xff;
|
||||||
buf[2] = size >> 8;
|
buf[2] = size >> 8;
|
||||||
buf[3] = size >> 16;
|
buf[3] = size >> 16;
|
||||||
|
|||||||
@@ -93,7 +93,7 @@
|
|||||||
|
|
||||||
// *****************[ STK QIDI3D specific command constants ]*****************
|
// *****************[ STK QIDI3D specific command constants ]*****************
|
||||||
|
|
||||||
#define CMD_SET_UPLOAD_SIZE_PRUSA3D 0x71
|
#define CMD_SET_UPLOAD_SIZE_QIDI3D 0x71
|
||||||
|
|
||||||
|
|
||||||
// *** AVR32 JTAG Programming command ***
|
// *** AVR32 JTAG Programming command ***
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ int main(int argc, char* argv[])
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
path_to_ini = boost::filesystem::canonical(boost::filesystem::path(argv[1])).parent_path() / "resources" / "data" / "hints.ini";
|
path_to_ini = boost::filesystem::canonical(boost::filesystem::path(argv[1])).parent_path() / "resources" / "data" / "hints.ini";
|
||||||
path_to_pot = boost::filesystem::canonical(boost::filesystem::path(argv[2])).parent_path() / "localization" /"PrusaSlicer.pot";
|
path_to_pot = boost::filesystem::canonical(boost::filesystem::path(argv[2])).parent_path() / "localization" /"QIDISlicer.pot";
|
||||||
} catch (std::exception&) {
|
} catch (std::exception&) {
|
||||||
std::cout << "HINTS_TO_POT FAILED: BOOST CANNONICAL" << std::endl;
|
std::cout << "HINTS_TO_POT FAILED: BOOST CANNONICAL" << std::endl;
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@@ -1237,7 +1237,7 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct
|
|||||||
for (const auto& [key, value] : slicer_metadata_block.raw_data) {
|
for (const auto& [key, value] : slicer_metadata_block.raw_data) {
|
||||||
str += key + " = " + value + "\n";
|
str += key + " = " + value + "\n";
|
||||||
}
|
}
|
||||||
// Silently substitute unknown values by new ones for loading configurations from PrusaSlicer's own G-code.
|
// Silently substitute unknown values by new ones for loading configurations from QIDISlicer's own G-code.
|
||||||
// Showing substitution log or errors may make sense, but we are not really reading many values from the G-code config,
|
// Showing substitution log or errors may make sense, but we are not really reading many values from the G-code config,
|
||||||
// thus a probability of incorrect substitution is low and the G-code viewer is a consumer-only anyways.
|
// thus a probability of incorrect substitution is low and the G-code viewer is a consumer-only anyways.
|
||||||
config.load_from_ini_string(str, ForwardCompatibilitySubstitutionRule::EnableSilent);
|
config.load_from_ini_string(str, ForwardCompatibilitySubstitutionRule::EnableSilent);
|
||||||
|
|||||||
@@ -2455,7 +2455,7 @@ void PrintConfigDef::init_fff_params()
|
|||||||
|
|
||||||
def = this->add("travel_lift_before_obstacle", coBools);
|
def = this->add("travel_lift_before_obstacle", coBools);
|
||||||
def->label = L("Steeper ramp before obstacles");
|
def->label = L("Steeper ramp before obstacles");
|
||||||
def->tooltip = L("If enabled, PrusaSlicer detects obstacles along the travel path and makes the slope steeper "
|
def->tooltip = L("If enabled, QIDISlicer detects obstacles along the travel path and makes the slope steeper "
|
||||||
"in case an obstacle might be hit during the initial phase of the travel.");
|
"in case an obstacle might be hit during the initial phase of the travel.");
|
||||||
def->mode = comExpert;
|
def->mode = comExpert;
|
||||||
def->set_default_value(new ConfigOptionBools{false});
|
def->set_default_value(new ConfigOptionBools{false});
|
||||||
@@ -4544,7 +4544,6 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va
|
|||||||
value = value == "1" ? "enabled" : "disabled";
|
value = value == "1" ? "enabled" : "disabled";
|
||||||
} else if (opt_key == "gcode_label_objects" && (value == "1" || value == "0")) {
|
} else if (opt_key == "gcode_label_objects" && (value == "1" || value == "0")) {
|
||||||
// gcode_label_objects used to be a bool (the behavior was nothing or "octoprint"), it is
|
// gcode_label_objects used to be a bool (the behavior was nothing or "octoprint"), it is
|
||||||
// and enum since PrusaSlicer 2.6.2.
|
|
||||||
value = value == "1" ? "octoprint" : "disabled";
|
value = value == "1" ? "octoprint" : "disabled";
|
||||||
} else if (opt_key == "octoprint_host") {
|
} else if (opt_key == "octoprint_host") {
|
||||||
opt_key = "print_host";
|
opt_key = "print_host";
|
||||||
@@ -5274,12 +5273,12 @@ ReadWriteSlicingStatesConfigDef::ReadWriteSlicingStatesConfigDef()
|
|||||||
def = this->add("position", coFloats);
|
def = this->add("position", coFloats);
|
||||||
def->label = L("Position");
|
def->label = L("Position");
|
||||||
def->tooltip = L("Position of the extruder at the beginning of the custom G-code block. If the custom G-code travels somewhere else, "
|
def->tooltip = L("Position of the extruder at the beginning of the custom G-code block. If the custom G-code travels somewhere else, "
|
||||||
"it should write to this variable so PrusaSlicer knows where it travels from when it gets control back.");
|
"it should write to this variable so QIDISlicer knows where it travels from when it gets control back.");
|
||||||
|
|
||||||
def = this->add("e_retracted", coFloats);
|
def = this->add("e_retracted", coFloats);
|
||||||
def->label = L("Retraction");
|
def->label = L("Retraction");
|
||||||
def->tooltip = L("Retraction state at the beginning of the custom G-code block. If the custom G-code moves the extruder axis, "
|
def->tooltip = L("Retraction state at the beginning of the custom G-code block. If the custom G-code moves the extruder axis, "
|
||||||
"it should write to this variable so PrusaSlicer deretracts correctly when it gets control back.");
|
"it should write to this variable so QIDISlicer deretracts correctly when it gets control back.");
|
||||||
|
|
||||||
def = this->add("e_restart_extra", coFloats);
|
def = this->add("e_restart_extra", coFloats);
|
||||||
def->label = L("Extra deretraction");
|
def->label = L("Extra deretraction");
|
||||||
@@ -5611,7 +5610,7 @@ std::string get_sla_suptree_prefix(const DynamicPrintConfig &config)
|
|||||||
|
|
||||||
static bool is_XL_printer(const std::string& printer_notes)
|
static bool is_XL_printer(const std::string& printer_notes)
|
||||||
{
|
{
|
||||||
return boost::algorithm::contains(printer_notes, "PRINTER_VENDOR_PRUSA3D")
|
return boost::algorithm::contains(printer_notes, "PRINTER_VENDOR_QIDI3D")
|
||||||
&& boost::algorithm::contains(printer_notes, "PRINTER_MODEL_XL");
|
&& boost::algorithm::contains(printer_notes, "PRINTER_MODEL_XL");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,4 +56,4 @@
|
|||||||
#define ENABLE_BINARIZED_GCODE_DEBUG_WINDOW 0
|
#define ENABLE_BINARIZED_GCODE_DEBUG_WINDOW 0
|
||||||
|
|
||||||
|
|
||||||
#endif // _prusaslicer_technologies_h_
|
#endif // _qidislicer_technologies_h_
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ PRODUCTVERSION @SLIC3R_RC_VERSION@
|
|||||||
VALUE "ProductVersion", "@SLIC3R_BUILD_ID@"
|
VALUE "ProductVersion", "@SLIC3R_BUILD_ID@"
|
||||||
VALUE "InternalName", "@SLIC3R_APP_NAME@ G-code Viewer"
|
VALUE "InternalName", "@SLIC3R_APP_NAME@ G-code Viewer"
|
||||||
VALUE "LegalCopyright", "Copyright \251 2016-2023 QIDI Research, \251 2011-2018 Alessandro Ranellucci"
|
VALUE "LegalCopyright", "Copyright \251 2016-2023 QIDI Research, \251 2011-2018 Alessandro Ranellucci"
|
||||||
VALUE "OriginalFilename", "prusa-gcodeviewer.exe"
|
VALUE "OriginalFilename", "qidi-gcodeviewer.exe"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ PRODUCTVERSION @SLIC3R_RC_VERSION@
|
|||||||
VALUE "ProductVersion", "@SLIC3R_BUILD_ID@"
|
VALUE "ProductVersion", "@SLIC3R_BUILD_ID@"
|
||||||
VALUE "InternalName", "@SLIC3R_APP_NAME@"
|
VALUE "InternalName", "@SLIC3R_APP_NAME@"
|
||||||
VALUE "LegalCopyright", "Copyright \251 2016-2023 QIDI Research, \251 2011-2018 Alessandro Ranellucci"
|
VALUE "LegalCopyright", "Copyright \251 2016-2023 QIDI Research, \251 2011-2018 Alessandro Ranellucci"
|
||||||
VALUE "OriginalFilename", "prusa-slicer.exe"
|
VALUE "OriginalFilename", "qidi-slicer.exe"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>@SLIC3R_APP_NAME@ @SLIC3R_BUILD_ID@</string>
|
<string>@SLIC3R_APP_NAME@ @SLIC3R_BUILD_ID@</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>com.prusa3d.slic3r/</string>
|
<string>com.qidi3d.slic3r/</string>
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
<string>QIDISlicer Downloads</string>
|
<string>QIDISlicer Downloads</string>
|
||||||
<key>CFBundleURLSchemes</key>
|
<key>CFBundleURLSchemes</key>
|
||||||
<array>
|
<array>
|
||||||
<string>prusaslicer</string>
|
<string>qidislicer</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Name=QIDI GCode viewer
|
Name=QIDI GCode viewer
|
||||||
Exec=prusa-slicer --gcodeviewer %F
|
Exec=qidi-slicer --gcodeviewer %F
|
||||||
Icon=QIDISlicer-gcodeviewer
|
Icon=QIDISlicer-gcodeviewer
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
Name=QIDISlicer
|
Name=QIDISlicer
|
||||||
GenericName=3D Printing Software
|
GenericName=3D Printing Software
|
||||||
Icon=QIDISlicer
|
Icon=QIDISlicer
|
||||||
Exec=prusa-slicer %F
|
Exec=qidi-slicer %F
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
MimeType=model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;application/x-amf;
|
MimeType=model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;application/x-amf;
|
||||||
Categories=Graphics;3DGraphics;Engineering;
|
Categories=Graphics;3DGraphics;Engineering;
|
||||||
Keywords=3D;Printing;Slicer;slice;3D;printer;convert;gcode;stl;obj;amf;SLA
|
Keywords=3D;Printing;Slicer;slice;3D;printer;convert;gcode;stl;obj;amf;SLA
|
||||||
StartupNotify=false
|
StartupNotify=false
|
||||||
StartupWMClass=prusa-slicer
|
StartupWMClass=qidi-slicer
|
||||||
|
|||||||
@@ -276,7 +276,7 @@ AboutDialog::AboutDialog()
|
|||||||
const wxString s_url_str = _L("Shopify : https://qidi3d.com/");
|
const wxString s_url_str = _L("Shopify : https://qidi3d.com/");
|
||||||
const wxString is_lecensed_str = _L("is licensed under the");
|
const wxString is_lecensed_str = _L("is licensed under the");
|
||||||
const wxString license_str = _L("GNU Affero General Public License, version 3");
|
const wxString license_str = _L("GNU Affero General Public License, version 3");
|
||||||
const wxString version_str = std::string(SLIC3R_APP_NAME) + " " + std::string(SLIC3R_VERSION) + _L(" is based on PrusaSlicer.");
|
const wxString version_str = std::string(SLIC3R_APP_NAME) + " " + std::string(SLIC3R_VERSION) + _L(" is based on QIDISlicer.");
|
||||||
const wxString based_on_str = _L("QIDISlicer is based on Slic3r by Alessandro Ranellucci and the RepRap community.");
|
const wxString based_on_str = _L("QIDISlicer is based on Slic3r by Alessandro Ranellucci and the RepRap community.");
|
||||||
const wxString contributors_str = _L("QIDISlicer has made targeted adjustment and adaptation to QIDITech 3D printers, so that QIDITech 3D printers are more friendly to novices. It is recommended to use QIDITech 3D printers.");
|
const wxString contributors_str = _L("QIDISlicer has made targeted adjustment and adaptation to QIDITech 3D printers, so that QIDITech 3D printers are more friendly to novices. It is recommended to use QIDITech 3D printers.");
|
||||||
const auto text = format_wxstr(
|
const auto text = format_wxstr(
|
||||||
@@ -289,7 +289,7 @@ AboutDialog::AboutDialog()
|
|||||||
"<a href=\"https://qidi3d.com/\">%6%</a>"
|
"<a href=\"https://qidi3d.com/\">%6%</a>"
|
||||||
"<br /><br />"
|
"<br /><br />"
|
||||||
"%7%<br />"
|
"%7%<br />"
|
||||||
"%8% © 2016-2023 Prusa Research. <br />"
|
"%8% © 2016-2023 QIDI Research. <br />"
|
||||||
"%9% © 2011-2018 Alessandro Ranellucci. <br />"
|
"%9% © 2011-2018 Alessandro Ranellucci. <br />"
|
||||||
"<a href=\"http://slic3r.org/\">Slic3r</a> %10% "
|
"<a href=\"http://slic3r.org/\">Slic3r</a> %10% "
|
||||||
"<a href=\"http://www.gnu.org/licenses/agpl-3.0.html\">%11%</a>."
|
"<a href=\"http://www.gnu.org/licenses/agpl-3.0.html\">%11%</a>."
|
||||||
|
|||||||
@@ -1489,7 +1489,7 @@ PageDownloader::PageDownloader(ConfigWizard* parent)
|
|||||||
|
|
||||||
const wxString link = format_wxstr("<a href = \"%1%\">%1%</a>", "printables.com");
|
const wxString link = format_wxstr("<a href = \"%1%\">%1%</a>", "printables.com");
|
||||||
|
|
||||||
// TRN ConfigWizard : Downloader : %1% = "printables.com", %2% = "PrusaSlicer"
|
// TRN ConfigWizard : Downloader : %1% = "printables.com", %2% = "QIDISlicer"
|
||||||
const wxString main_text = format_wxstr(_L("If enabled, you will be able to open models from the %1% "
|
const wxString main_text = format_wxstr(_L("If enabled, you will be able to open models from the %1% "
|
||||||
"online database with a single click (using a %2% logo button)."
|
"online database with a single click (using a %2% logo button)."
|
||||||
), link, SLIC3R_APP_NAME);
|
), link, SLIC3R_APP_NAME);
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ EditGCodeDialog::EditGCodeDialog(wxWindow* parent, const std::string& key, const
|
|||||||
const auto text_clr_str = encode_color(ColorRGB(text_clr.Red(), text_clr.Green(), text_clr.Blue()));
|
const auto text_clr_str = encode_color(ColorRGB(text_clr.Red(), text_clr.Green(), text_clr.Blue()));
|
||||||
|
|
||||||
//TRN this word-combination is a part of phraze "For more information about placeholders and its use visit our help page"
|
//TRN this word-combination is a part of phraze "For more information about placeholders and its use visit our help page"
|
||||||
const wxString link = format_wxstr("<a href = \"%1%\">%2%</a>", "help.prusa3d.com/article/macros_1775", _L("help page"));
|
const wxString link = format_wxstr("<a href = \"%1%\">%2%</a>", "help.qidi3d.com/article/macros_1775", _L("help page"));
|
||||||
|
|
||||||
// TRN ConfigWizard : Downloader : %1% = "help page"
|
// TRN ConfigWizard : Downloader : %1% = "help page"
|
||||||
const wxString main_text = format_wxstr(_L("For more information about placeholders and its use visit our %1%."), link);
|
const wxString main_text = format_wxstr(_L("For more information about placeholders and its use visit our %1%."), link);
|
||||||
|
|||||||
@@ -3274,7 +3274,7 @@ static void check_objects_after_cut(const ModelObjectPtrs& objects)
|
|||||||
names += ", " + from_u8(err_objects_names[i]);
|
names += ", " + from_u8(err_objects_names[i]);
|
||||||
WarningDialog(wxGetApp().plater(), format_wxstr("Objects(%1%) have duplicated connectors. "
|
WarningDialog(wxGetApp().plater(), format_wxstr("Objects(%1%) have duplicated connectors. "
|
||||||
"Some connectors may be missing in slicing result.\n"
|
"Some connectors may be missing in slicing result.\n"
|
||||||
"Please report to PrusaSlicer team in which scenario this issue happened.\n"
|
"Please report to QIDISlicer team in which scenario this issue happened.\n"
|
||||||
"Thank you.", names)).ShowModal();
|
"Thank you.", names)).ShowModal();
|
||||||
}
|
}
|
||||||
void synchronize_model_after_cut(Model& model, const CutObjectBase& cut_id)
|
void synchronize_model_after_cut(Model& model, const CutObjectBase& cut_id)
|
||||||
|
|||||||
@@ -488,7 +488,7 @@ void PhysicalPrinterDialog::update(bool printer_change)
|
|||||||
const auto opt = m_config->option<ConfigOptionEnum<PrintHostType>>("host_type");
|
const auto opt = m_config->option<ConfigOptionEnum<PrintHostType>>("host_type");
|
||||||
m_optgroup->show_field("host_type");
|
m_optgroup->show_field("host_type");
|
||||||
|
|
||||||
if (opt->value == htQIDILink) { // PrusaConnect does NOT allow http digest
|
if (opt->value == htQIDILink) { // QIDIConnect does NOT allow http digest
|
||||||
m_optgroup->show_field("printhost_authorization_type");
|
m_optgroup->show_field("printhost_authorization_type");
|
||||||
AuthorizationType auth_type = m_config->option<ConfigOptionEnum<AuthorizationType>>("printhost_authorization_type")->value;
|
AuthorizationType auth_type = m_config->option<ConfigOptionEnum<AuthorizationType>>("printhost_authorization_type")->value;
|
||||||
m_optgroup->show_field("printhost_apikey", auth_type == AuthorizationType::atKeyPassword);
|
m_optgroup->show_field("printhost_apikey", auth_type == AuthorizationType::atKeyPassword);
|
||||||
|
|||||||
@@ -2300,7 +2300,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
|
|||||||
notification_manager->device_ejected();
|
notification_manager->device_ejected();
|
||||||
});
|
});
|
||||||
this->q->Bind(EVT_REMOVABLE_DRIVE_ADDED, [this](wxCommandEvent& evt) {
|
this->q->Bind(EVT_REMOVABLE_DRIVE_ADDED, [this](wxCommandEvent& evt) {
|
||||||
if (!fs::exists(fs::path(evt.GetString().utf8_string()) / "prusa_printer_settings.ini"))
|
if (!fs::exists(fs::path(evt.GetString().utf8_string()) / "qidi_printer_settings.ini"))
|
||||||
return;
|
return;
|
||||||
if (evt.GetInt() == 0) { // not at startup, show dialog
|
if (evt.GetInt() == 0) { // not at startup, show dialog
|
||||||
wxGetApp().open_wifi_config_dialog(false, evt.GetString());
|
wxGetApp().open_wifi_config_dialog(false, evt.GetString());
|
||||||
@@ -2484,8 +2484,8 @@ void Plater::notify_about_installed_presets()
|
|||||||
|
|
||||||
// show notification about temporarily installed presets
|
// show notification about temporarily installed presets
|
||||||
if (!names.empty()) {
|
if (!names.empty()) {
|
||||||
std::string notif_text = into_u8(_L_PLURAL("The preset below was temporarily installed on the active instance of PrusaSlicer",
|
std::string notif_text = into_u8(_L_PLURAL("The preset below was temporarily installed on the active instance of QIDISlicer",
|
||||||
"The presets below were temporarily installed on the active instance of PrusaSlicer", names.size())) + ":";
|
"The presets below were temporarily installed on the active instance of QIDISlicer", names.size())) + ":";
|
||||||
for (const std::string& name : names)
|
for (const std::string& name : names)
|
||||||
notif_text += "\n - " + name;
|
notif_text += "\n - " + name;
|
||||||
get_notification_manager()->push_notification(NotificationType::CustomNotification,
|
get_notification_manager()->push_notification(NotificationType::CustomNotification,
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "libslic3r/GCode.hpp"
|
#include "libslic3r/GCode.hpp"
|
||||||
#include "libslic3r/Gcode/GCodeWriter.hpp"
|
// #include "libslic3r/Gcode/GCodeWriter.hpp"
|
||||||
#include "libslic3r/PrintConfig.hpp"
|
#include "libslic3r/PrintConfig.hpp"
|
||||||
|
|
||||||
class wxButton;
|
class wxButton;
|
||||||
|
|||||||
@@ -399,8 +399,8 @@ void PreferencesDialog::build()
|
|||||||
L("If enabled, sets QIDISlicer G-code Viewer as default application to open .gcode files."),
|
L("If enabled, sets QIDISlicer G-code Viewer as default application to open .gcode files."),
|
||||||
app_config->get_bool("associate_gcode"));
|
app_config->get_bool("associate_gcode"));
|
||||||
append_bool_option(m_optgroup_general, "associate_bgcode",
|
append_bool_option(m_optgroup_general, "associate_bgcode",
|
||||||
L("Associate .bgcode files to PrusaSlicer G-code Viewer"),
|
L("Associate .bgcode files to QIDISlicer G-code Viewer"),
|
||||||
L("If enabled, sets PrusaSlicer G-code Viewer as default application to open .bgcode files."),
|
L("If enabled, sets QIDISlicer G-code Viewer as default application to open .bgcode files."),
|
||||||
app_config->get_bool("associate_bgcode"));
|
app_config->get_bool("associate_bgcode"));
|
||||||
}
|
}
|
||||||
#endif // _WIN32
|
#endif // _WIN32
|
||||||
|
|||||||
@@ -180,12 +180,12 @@ wxWebView *WebView::CreateWebView(wxWindow *parent, wxString const &url)
|
|||||||
if (webView) {
|
if (webView) {
|
||||||
//webView->SetBackgroundColour(StateColor::darkModeColorFor(*wxWHITE));
|
//webView->SetBackgroundColour(StateColor::darkModeColorFor(*wxWHITE));
|
||||||
#ifdef __WIN32__
|
#ifdef __WIN32__
|
||||||
webView->SetUserAgent(wxString::Format("BBL-Slicer/v%s (%s) Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
|
webView->SetUserAgent(wxString::Format("QIDI-Slicer/v%s (%s) Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
|
||||||
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.52",
|
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.52",
|
||||||
SLIC3R_VERSION, Slic3r::GUI::wxGetApp().dark_mode() ? "dark" : "light"));
|
SLIC3R_VERSION, Slic3r::GUI::wxGetApp().dark_mode() ? "dark" : "light"));
|
||||||
webView->Create(parent, wxID_ANY, url2, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE);
|
webView->Create(parent, wxID_ANY, url2, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE);
|
||||||
// We register the wxfs:// protocol for testing purposes
|
// We register the wxfs:// protocol for testing purposes
|
||||||
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewArchiveHandler("bbl")));
|
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewArchiveHandler("qidi")));
|
||||||
// And the memory: file system
|
// And the memory: file system
|
||||||
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewFSHandler("memory")));
|
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewFSHandler("memory")));
|
||||||
#else
|
#else
|
||||||
@@ -195,7 +195,7 @@ wxWebView *WebView::CreateWebView(wxWindow *parent, wxString const &url)
|
|||||||
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewFSHandler("memory")));
|
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewFSHandler("memory")));
|
||||||
webView->Create(parent, wxID_ANY, url2, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE);
|
webView->Create(parent, wxID_ANY, url2, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE);
|
||||||
webView->SetUserAgent(
|
webView->SetUserAgent(
|
||||||
wxString::Format("BBL-Slicer/v%s (%s) Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko)",
|
wxString::Format("QIDI-Slicer/v%s (%s) Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko)",
|
||||||
SLIC3R_VERSION, Slic3r::GUI::wxGetApp().dark_mode() ? "dark" : "light"));
|
SLIC3R_VERSION, Slic3r::GUI::wxGetApp().dark_mode() ? "dark" : "light"));
|
||||||
#endif
|
#endif
|
||||||
#ifdef __WXMAC__
|
#ifdef __WXMAC__
|
||||||
@@ -291,7 +291,7 @@ void WebView::RecreateAll()
|
|||||||
{
|
{
|
||||||
for (auto webView : g_webviews) {
|
for (auto webView : g_webviews) {
|
||||||
webView->SetUserAgent(
|
webView->SetUserAgent(
|
||||||
wxString::Format("BBL-Slicer/v%s (%s) Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko)",
|
wxString::Format("QIDI-Slicer/v%s (%s) Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko)",
|
||||||
SLIC3R_VERSION, Slic3r::GUI::wxGetApp().dark_mode() ? "dark" : "light"));
|
SLIC3R_VERSION, Slic3r::GUI::wxGetApp().dark_mode() ? "dark" : "light"));
|
||||||
webView->Reload();
|
webView->Reload();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
namespace Slic3r {
|
namespace Slic3r {
|
||||||
namespace GUI {
|
namespace GUI {
|
||||||
|
|
||||||
const char* WIFI_CONFIGFILE_NAME = "prusa_printer_settings.ini";
|
const char* WIFI_CONFIGFILE_NAME = "qidi_printer_settings.ini";
|
||||||
|
|
||||||
WifiConfigDialog::WifiConfigDialog(wxWindow* parent, std::string& file_path, RemovableDriveManager* removable_manager, const wxString& preffered_drive)
|
WifiConfigDialog::WifiConfigDialog(wxWindow* parent, std::string& file_path, RemovableDriveManager* removable_manager, const wxString& preffered_drive)
|
||||||
// TRN: This is the dialog title.
|
// TRN: This is the dialog title.
|
||||||
|
|||||||
@@ -190,7 +190,7 @@ physical_printer_settings_id =
|
|||||||
post_process =
|
post_process =
|
||||||
print_settings_id = 0.20mm QUALITY @MK3
|
print_settings_id = 0.20mm QUALITY @MK3
|
||||||
printer_model = MK3
|
printer_model = MK3
|
||||||
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n
|
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_QIDI3D\nPRINTER_MODEL_MK3\n
|
||||||
printer_settings_id = Original QIDI i3 MK3
|
printer_settings_id = Original QIDI i3 MK3
|
||||||
printer_technology = FFF
|
printer_technology = FFF
|
||||||
printer_variant = 0.4
|
printer_variant = 0.4
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "prusaparts.hpp"
|
#include "prusaparts.hpp"
|
||||||
|
|
||||||
const TestData PRUSA_PART_POLYGONS =
|
const TestData QIDI_PART_POLYGONS =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
{-5000000, 8954050},
|
{-5000000, 8954050},
|
||||||
@@ -594,7 +594,7 @@ const TestData PRUSA_PART_POLYGONS =
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const TestData PRUSA_STEGOSAUR_POLYGONS =
|
const TestData QIDI_STEGOSAUR_POLYGONS =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
{113210205, 107034095},
|
{113210205, 107034095},
|
||||||
@@ -2540,7 +2540,7 @@ struct MyPoly {
|
|||||||
operator ExPolygon () { return poly; }
|
operator ExPolygon () { return poly; }
|
||||||
};
|
};
|
||||||
|
|
||||||
const TestDataEx PRUSA_PART_POLYGONS_EX = {
|
const TestDataEx QIDI_PART_POLYGONS_EX = {
|
||||||
ExPolygons{
|
ExPolygons{
|
||||||
// "x-carriage.stl":
|
// "x-carriage.stl":
|
||||||
MyPoly{{
|
MyPoly{{
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
using TestData = std::vector<Slic3r::Polygon>;
|
using TestData = std::vector<Slic3r::Polygon>;
|
||||||
using TestDataEx = std::vector<Slic3r::ExPolygons>;
|
using TestDataEx = std::vector<Slic3r::ExPolygons>;
|
||||||
|
|
||||||
extern const TestData PRUSA_PART_POLYGONS;
|
extern const TestData QIDI_PART_POLYGONS;
|
||||||
extern const TestData PRUSA_STEGOSAUR_POLYGONS;
|
extern const TestData QIDI_STEGOSAUR_POLYGONS;
|
||||||
extern const TestDataEx PRUSA_PART_POLYGONS_EX;
|
extern const TestDataEx QIDI_PART_POLYGONS_EX;
|
||||||
|
|
||||||
#endif // PRUSAPARTS_H
|
#endif // PRUSAPARTS_H
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ SCENARIO("Placeholder parser scripting", "[PlaceholderParser]") {
|
|||||||
auto config = DynamicPrintConfig::full_print_config();
|
auto config = DynamicPrintConfig::full_print_config();
|
||||||
|
|
||||||
config.set_deserialize_strict( {
|
config.set_deserialize_strict( {
|
||||||
{ "printer_notes", " PRINTER_VENDOR_PRUSA3D PRINTER_MODEL_MK2 " },
|
{ "printer_notes", " PRINTER_VENDOR_QIDI3D PRINTER_MODEL_MK2 " },
|
||||||
{ "nozzle_diameter", "0.6;0.6;0.6;0.6" },
|
{ "nozzle_diameter", "0.6;0.6;0.6;0.6" },
|
||||||
{ "temperature", "357;359;363;378" }
|
{ "temperature", "357;359;363;378" }
|
||||||
});
|
});
|
||||||
@@ -158,9 +158,9 @@ SCENARIO("Placeholder parser scripting", "[PlaceholderParser]") {
|
|||||||
SECTION("boolean expression parser: one_of(\"abcdef\", ~\".*f.*\", ~\".*c.*\")") { REQUIRE(boolean_expression("one_of(\"abcdef\", ~\".*f.*\", ~\".*c.*\")")); }
|
SECTION("boolean expression parser: one_of(\"abcdef\", ~\".*f.*\", ~\".*c.*\")") { REQUIRE(boolean_expression("one_of(\"abcdef\", ~\".*f.*\", ~\".*c.*\")")); }
|
||||||
SECTION("boolean expression parser: one_of(\"ghij\", /.*f.*/, /.*c.*/)") { REQUIRE(! boolean_expression("one_of(\"ghij\", /.*f.*/, /.*c.*/)")); }
|
SECTION("boolean expression parser: one_of(\"ghij\", /.*f.*/, /.*c.*/)") { REQUIRE(! boolean_expression("one_of(\"ghij\", /.*f.*/, /.*c.*/)")); }
|
||||||
SECTION("boolean expression parser: one_of(\"ghij\", ~\".*f.*\", ~\".*c.*\")") { REQUIRE(! boolean_expression("one_of(\"ghij\", ~\".*f.*\", ~\".*c.*\")")); }
|
SECTION("boolean expression parser: one_of(\"ghij\", ~\".*f.*\", ~\".*c.*\")") { REQUIRE(! boolean_expression("one_of(\"ghij\", ~\".*f.*\", ~\".*c.*\")")); }
|
||||||
SECTION("complex expression") { REQUIRE(boolean_expression("printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 and num_extruders>1")); }
|
SECTION("complex expression") { REQUIRE(boolean_expression("printer_notes=~/.*PRINTER_VENDOR_QIDI3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 and num_extruders>1")); }
|
||||||
SECTION("complex expression2") { REQUIRE(boolean_expression("printer_notes=~/.*PRINTER_VEwerfNDOR_PRUSA3D.*/ or printer_notes=~/.*PRINTertER_MODEL_MK2.*/ or (nozzle_diameter[0]==0.6 and num_extruders>1)")); }
|
SECTION("complex expression2") { REQUIRE(boolean_expression("printer_notes=~/.*PRINTER_VEwerfNDOR_QIDI3D.*/ or printer_notes=~/.*PRINTertER_MODEL_MK2.*/ or (nozzle_diameter[0]==0.6 and num_extruders>1)")); }
|
||||||
SECTION("complex expression3") { REQUIRE(! boolean_expression("printer_notes=~/.*PRINTER_VEwerfNDOR_PRUSA3D.*/ or printer_notes=~/.*PRINTertER_MODEL_MK2.*/ or (nozzle_diameter[0]==0.3 and num_extruders>1)")); }
|
SECTION("complex expression3") { REQUIRE(! boolean_expression("printer_notes=~/.*PRINTER_VEwerfNDOR_QIDI3D.*/ or printer_notes=~/.*PRINTertER_MODEL_MK2.*/ or (nozzle_diameter[0]==0.3 and num_extruders>1)")); }
|
||||||
SECTION("enum expression") { REQUIRE(boolean_expression("gcode_flavor == \"marlin\"")); }
|
SECTION("enum expression") { REQUIRE(boolean_expression("gcode_flavor == \"marlin\"")); }
|
||||||
|
|
||||||
SECTION("write to a scalar variable") {
|
SECTION("write to a scalar variable") {
|
||||||
|
|||||||
Reference in New Issue
Block a user