From b6ed8e23b25399037e5e900b105ef6a78bd94a6f Mon Sep 17 00:00:00 2001 From: donovan6000 Date: Wed, 22 Jun 2016 20:44:34 -0700 Subject: [PATCH] Changed plugin's name to M33 Fio at the request of M3D --- Changelog | 18 +- README.md | 40 +- images/settings.png | Bin 99273 -> 94306 bytes ...3d-local.rules => 90-micro-3d-local.rules} | 2 +- ....rules => 91-micro-3d-heatbed-local.rules} | 2 +- installers/Linux/install.zip | Bin 1223 -> 1227 bytes installers/Linux/uninstall.zip | Bin 784 -> 786 bytes installers/OS X/install.sh | 16 +- installers/OS X/uninstall.sh | 6 +- installers/Windows/install.zip | Bin 1953 -> 1955 bytes installers/Windows/uninstall.zip | Bin 1005 -> 1006 bytes .../__init__.py | 72 +- .../gcode.py | 0 .../static/css/m33fio.css | 46 +- .../static/files/M3D 2016010812.hex | Bin .../static/files/M3D 2016040401.hex | Bin .../static/files/M3D Mod 2116010812.hex | Bin .../static/files/M3D Mod 2116040401.hex | Bin .../files/QuickBacklash_X_0.0-0.99.gcode | 0 .../files/QuickBacklash_X_0.70-1.69.gcode | 0 .../files/QuickBacklash_Y_0.0-0.99.gcode | 0 .../files/QuickBacklash_Y_0.70-1.69.gcode | 0 .../static/files/iMe 1900000010.hex | Bin .../static/files/printer.stl | Bin .../static/files/test border.gcode | 0 .../static/img/backlash.png | Bin .../static/img/black.png | Bin .../static/img/blue.png | Bin .../static/img/boundaries.png | Bin .../static/img/clear.png | Bin .../static/img/clone.png | Bin .../static/img/cube.png | Bin .../static/img/custom.png | Bin .../static/img/cut.png | Bin .../static/img/delete.png | Bin .../static/img/down-arrow.png | Bin .../static/img/filament.png | Bin .../static/img/fill-density_extra-high.png | Bin .../static/img/fill-density_full.png | Bin .../static/img/fill-density_high.png | Bin .../static/img/fill-density_low.png | Bin .../static/img/fill-density_medium.png | Bin .../static/img/fill-density_thick.png | Bin .../static/img/fill-density_thin.png | Bin .../static/img/fill-pattern_3dhoneycomb.png | Bin .../img/fill-pattern_archimedeanchords.png | Bin .../static/img/fill-pattern_concentric.png | Bin .../static/img/fill-pattern_hilbertcurve.png | Bin .../static/img/fill-pattern_honeycomb.png | Bin .../static/img/fill-pattern_line.png | Bin .../img/fill-pattern_octagramspiral.png | Bin .../static/img/fill-pattern_rectalinear.png | Bin .../static/img/fill-quality_extra-high.png | Bin .../static/img/fill-quality_extra-low.png | Bin .../static/img/fill-quality_high.png | Bin .../static/img/fill-quality_highest.png | Bin .../static/img/fill-quality_low.png | Bin .../static/img/fill-quality_medium.png | Bin .../static/img/graph-background.png | Bin .../static/img/green.png | Bin .../static/img/hengLiXin.png | Bin .../static/img/import.png | Bin .../static/img/listener.png | Bin .../static/img/loading.gif | Bin .../static/img/logo.png | Bin .../static/img/measurements.png | Bin .../static/img/merge.png | Bin .../static/img/orange.png | Bin .../static/img/purple.png | Bin .../static/img/reset.png | Bin .../static/img/rotate.png | Bin .../static/img/scale.png | Bin .../static/img/shenzhew.png | Bin .../static/img/silver.png | Bin .../static/img/snap.png | Bin .../static/img/sphere.png | Bin .../static/img/test-border-good.png | Bin .../static/img/test-border-high.png | Bin .../static/img/test-border-low.png | Bin .../static/img/translate.png | Bin .../static/img/up-arrow.png | Bin .../static/img/white.png | Bin .../static/img/xinyujie.png | Bin .../static/js/AMFLoader.js | 0 .../static/js/ColladaLoader.js | 0 .../static/js/Detector.js | 0 .../static/js/M3DLoader.js | 0 .../static/js/OBJLoader.js | 0 .../static/js/OrbitControls.js | 0 .../static/js/STLBinaryExporter.js | 0 .../static/js/STLLoader.js | 0 .../static/js/ThreeCSG.js | 0 .../static/js/TransformControls.js | 0 .../static/js/VRMLLoader.js | 0 .../static/js/m33fio.js | 768 +++++++++--------- .../static/js/three.min.js | 0 .../libraries/preprocessor_arm1176jzf-s.so | Bin .../static/libraries/preprocessor_arm7.so | Bin .../libraries/preprocessor_arm_cortex-a7.so | Bin .../static/libraries/preprocessor_i386.dll | Bin .../static/libraries/preprocessor_i386.dylib | Bin .../static/libraries/preprocessor_i386.so | Bin .../static/libraries/preprocessor_x86-64.dll | Bin .../libraries/preprocessor_x86-64.dylib | Bin .../static/libraries/preprocessor_x86-64.so | Bin .../static/profiles/Cura/Micro 3D ABS-R.ini | 0 .../static/profiles/Cura/Micro 3D ABS.ini | 0 .../static/profiles/Cura/Micro 3D FLX.ini | 0 .../static/profiles/Cura/Micro 3D HIPS.ini | 0 .../static/profiles/Cura/Micro 3D PLA.ini | 0 .../static/profiles/Cura/Micro 3D TGH.ini | 0 .../static/profiles/Slic3r/Micro 3D ABS-R.ini | 2 +- .../static/profiles/Slic3r/Micro 3D ABS.ini | 2 +- .../static/profiles/Slic3r/Micro 3D FLX.ini | 2 +- .../static/profiles/Slic3r/Micro 3D HIPS.ini | 2 +- .../static/profiles/Slic3r/Micro 3D PLA.ini | 2 +- .../static/profiles/Slic3r/Micro 3D TGH.ini | 2 +- .../templates/m33fio_navbar.jinja2 | 0 .../templates/m33fio_settings.jinja2 | 100 +-- .../vector.py | 0 .../webcam_server.py | 0 setup.py | 8 +- shared library source/Makefile | 4 +- 123 files changed, 553 insertions(+), 541 deletions(-) rename installers/Linux/{90-m3d-local.rules => 90-micro-3d-local.rules} (81%) rename installers/Linux/{91-m3d-heatbed-local.rules => 91-micro-3d-heatbed-local.rules} (79%) rename {octoprint_m3dfio => octoprint_m33fio}/__init__.py (99%) rename {octoprint_m3dfio => octoprint_m33fio}/gcode.py (100%) rename octoprint_m3dfio/static/css/m3dfio.css => octoprint_m33fio/static/css/m33fio.css (95%) rename {octoprint_m3dfio => octoprint_m33fio}/static/files/M3D 2016010812.hex (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/files/M3D 2016040401.hex (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/files/M3D Mod 2116010812.hex (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/files/M3D Mod 2116040401.hex (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/files/QuickBacklash_X_0.0-0.99.gcode (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/files/QuickBacklash_X_0.70-1.69.gcode (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/files/QuickBacklash_Y_0.0-0.99.gcode (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/files/QuickBacklash_Y_0.70-1.69.gcode (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/files/iMe 1900000010.hex (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/files/printer.stl (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/files/test border.gcode (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/backlash.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/black.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/blue.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/boundaries.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/clear.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/clone.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/cube.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/custom.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/cut.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/delete.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/down-arrow.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/filament.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-density_extra-high.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-density_full.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-density_high.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-density_low.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-density_medium.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-density_thick.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-density_thin.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-pattern_3dhoneycomb.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-pattern_archimedeanchords.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-pattern_concentric.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-pattern_hilbertcurve.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-pattern_honeycomb.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-pattern_line.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-pattern_octagramspiral.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-pattern_rectalinear.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-quality_extra-high.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-quality_extra-low.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-quality_high.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-quality_highest.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-quality_low.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/fill-quality_medium.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/graph-background.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/green.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/hengLiXin.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/import.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/listener.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/loading.gif (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/logo.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/measurements.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/merge.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/orange.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/purple.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/reset.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/rotate.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/scale.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/shenzhew.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/silver.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/snap.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/sphere.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/test-border-good.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/test-border-high.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/test-border-low.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/translate.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/up-arrow.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/white.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/img/xinyujie.png (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/js/AMFLoader.js (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/js/ColladaLoader.js (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/js/Detector.js (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/js/M3DLoader.js (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/js/OBJLoader.js (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/js/OrbitControls.js (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/js/STLBinaryExporter.js (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/js/STLLoader.js (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/js/ThreeCSG.js (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/js/TransformControls.js (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/js/VRMLLoader.js (100%) rename octoprint_m3dfio/static/js/m3dfio.js => octoprint_m33fio/static/js/m33fio.js (95%) rename {octoprint_m3dfio => octoprint_m33fio}/static/js/three.min.js (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/libraries/preprocessor_arm1176jzf-s.so (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/libraries/preprocessor_arm7.so (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/libraries/preprocessor_arm_cortex-a7.so (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/libraries/preprocessor_i386.dll (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/libraries/preprocessor_i386.dylib (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/libraries/preprocessor_i386.so (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/libraries/preprocessor_x86-64.dll (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/libraries/preprocessor_x86-64.dylib (100%) rename {octoprint_m3dfio => octoprint_m33fio}/static/libraries/preprocessor_x86-64.so (100%) rename octoprint_m3dfio/static/profiles/Cura/M3D ABS-R.ini => octoprint_m33fio/static/profiles/Cura/Micro 3D ABS-R.ini (100%) rename octoprint_m3dfio/static/profiles/Cura/M3D ABS.ini => octoprint_m33fio/static/profiles/Cura/Micro 3D ABS.ini (100%) rename octoprint_m3dfio/static/profiles/Cura/M3D FLX.ini => octoprint_m33fio/static/profiles/Cura/Micro 3D FLX.ini (100%) rename octoprint_m3dfio/static/profiles/Cura/M3D HIPS.ini => octoprint_m33fio/static/profiles/Cura/Micro 3D HIPS.ini (100%) rename octoprint_m3dfio/static/profiles/Cura/M3D PLA.ini => octoprint_m33fio/static/profiles/Cura/Micro 3D PLA.ini (100%) rename octoprint_m3dfio/static/profiles/Cura/M3D TGH.ini => octoprint_m33fio/static/profiles/Cura/Micro 3D TGH.ini (100%) rename octoprint_m3dfio/static/profiles/Slic3r/M3D TGH.ini => octoprint_m33fio/static/profiles/Slic3r/Micro 3D ABS-R.ini (98%) rename octoprint_m3dfio/static/profiles/Slic3r/M3D ABS.ini => octoprint_m33fio/static/profiles/Slic3r/Micro 3D ABS.ini (98%) rename octoprint_m3dfio/static/profiles/Slic3r/M3D ABS-R.ini => octoprint_m33fio/static/profiles/Slic3r/Micro 3D FLX.ini (98%) rename octoprint_m3dfio/static/profiles/Slic3r/M3D HIPS.ini => octoprint_m33fio/static/profiles/Slic3r/Micro 3D HIPS.ini (98%) rename octoprint_m3dfio/static/profiles/Slic3r/M3D PLA.ini => octoprint_m33fio/static/profiles/Slic3r/Micro 3D PLA.ini (98%) rename octoprint_m3dfio/static/profiles/Slic3r/M3D FLX.ini => octoprint_m33fio/static/profiles/Slic3r/Micro 3D TGH.ini (98%) rename octoprint_m3dfio/templates/m3dfio_navbar.jinja2 => octoprint_m33fio/templates/m33fio_navbar.jinja2 (100%) rename octoprint_m3dfio/templates/m3dfio_settings.jinja2 => octoprint_m33fio/templates/m33fio_settings.jinja2 (84%) rename {octoprint_m3dfio => octoprint_m33fio}/vector.py (100%) rename {octoprint_m3dfio => octoprint_m33fio}/webcam_server.py (100%) diff --git a/Changelog b/Changelog index 7532fba..d883342 100644 --- a/Changelog +++ b/Changelog @@ -1,8 +1,12 @@ Changelog: +V0.35.2 June 22, 2016 + + * Changed plugin's name to M33 Fio at the request of M3D + V0.35.1 June 21, 2016 - * Doesn't set file locations when using a virtual Python environment which should fix the issue people were having M3D Fio trying to use the environmental variables + * Doesn't set file locations when using a virtual Python environment which should fix the issue people were having M33 Fio trying to use the environmental variables * Provides iMe V00.00.00.10 printer firmware V0.35 June 14, 2016 @@ -12,7 +16,7 @@ V0.35 June 14, 2016 * Provides iMe V00.00.00.9 printer firmware * Canceling a print and performing an emergency stop are more reliable * Improved support for OctoPrint's Slic3r plugin. Really big thanks to ra100! - * Fixed issue with updated M3D Fio on Windows + * Fixed issue with updated M33 Fio on Windows * Adds buttons for turning front LED on and off V0.34 May 25, 2016 @@ -44,7 +48,7 @@ V0.31 March 31, 2016 * Canceling print now moves extruder out of the way * Sends multiple M110 commands in a row in case one is lost or ignored by the printer * Complete bed calibration now sets the external bed height - * Improved using M3D Fio with printers other than the Micro 3D + * Improved using M33 Fio with printers other than the Micro 3D * Fixed issue with wave and thermal bonding pre-processor. Thanks ra100! * Provided more printer firmwares @@ -54,7 +58,7 @@ V0.30.2 March 18, 2016 V0.30.1 March 17, 2016 - * Installers will now setup OctoPrint's checkout folder and M3D Fio will set OctoPrint's settings to use it + * Installers will now setup OctoPrint's checkout folder and M33 Fio will set OctoPrint's settings to use it * Dialog messages wont be displayed unless user is logged in V0.30 March 16, 2016 @@ -69,7 +73,7 @@ V0.29 March 11, 2016 * Added raft/brim to model editor * Implemented logging functionality - * Fixed issue where M3D Fio wouldn't work when OctoPrint was being run from a server that directs it to a path other than the root + * Fixed issue where M33 Fio wouldn't work when OctoPrint was being run from a server that directs it to a path other than the root * Increased max temperature to 315 degrees * Fixed setting temperature in OctoPrint's temperature tab when printing * Brim line count can be set in slicer profile editor @@ -131,7 +135,7 @@ V0.25 January 25, 2016 * It'll attempt to disable sleep on Windows, OS X, and Linux while printing, and it'll inform the user if it cannot disable sleep * Allows changing the filament temperature and type right before a print * Fixed creating and terminating OctoPrint instances on Windows, OS X, and Linux - * Added option to allow using M3D Fio with printers other than the Micro 3D printer + * Added option to allow using M33 Fio with printers other than the Micro 3D printer * Made supporting different firmwares for the printer simplier V0.24.3 January 11, 2016 @@ -177,7 +181,7 @@ V0.20 November 25, 2015 * Added EEPROM management * Changed way that messages are shown so that they look more native to OctoPrint - * Implemented the 'first run' stuff from the official software, so now M3D Fio is a complete replacement for the official software + * Implemented the 'first run' stuff from the official software, so now M33 Fio is a complete replacement for the official software V0.19 November 22, 2015 diff --git a/README.md b/README.md index d22e0b3..8475f81 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,18 @@ -# M3D Fio +# M33 Fio OctoPrint plugin that provides the world's first platform independent software solution for the Micro 3D printer. © 2015-2016 Exploit Kings. All rights reserved. -M3D Fio has been discontinued on June 21st, 2016. I no longer feel like developing software for a product created by a company like M3D. +M33 Fio has been discontinued on June 21st, 2016. I no longer feel like developing software for a product created by a company like M3D. ### Description -M3D Fio is a plugin for [OctoPrint](http://octoprint.org/) that extends its capabilities to make it fully compatible with the Micro 3D printer. Both OctoPrint and M3D Fio can run on Windows, OS X, and Linux, so this solution is the first platform independent option available for this printer. This plugin has been in development since July, 2015, and it's gotten to the point where it's capable of doing everything that M3D's official software can do and more. +M33 Fio is a plugin for [OctoPrint](http://octoprint.org/) that extends its capabilities to make it fully compatible with the Micro 3D printer. Both OctoPrint and M33 Fio can run on Windows, OS X, and Linux, so this solution is the first platform independent option available for this printer. -The latest version of M3D Fio is V0.35.1 released on June 21st, 2016, and an entire changelog for it can be found [here](https://raw.githubusercontent.com/donovan6000/M3D-Fio/master/Changelog). +The latest version of M33 Fio is V0.35.2 released on June 22st, 2016, and an entire changelog for it can be found [here](https://raw.githubusercontent.com/donovan6000/M33-Fio/master/Changelog). ### Features * Platform independent -* Open source (M3D Fio's source code can be found [here](https://github.com/donovan6000/M3D-Fio)) +* Open source (M33 Fio's source code can be found [here](https://github.com/donovan6000/M33-Fio)) * Supports STL, OBJ, M3D, AMF, VRML, and COLLADA file formats * Allows printing multiple objects together * Displays an accurate representation of the printable region @@ -29,30 +29,30 @@ The latest version of M3D Fio is V0.35.1 released on June 21st, 2016, and an ent * Compatible with the Micro 3D open source firmware [iMe](https://github.com/donovan6000/iMe) ### Installation -There's installers available for [Windows](https://raw.githubusercontent.com/donovan6000/M3D-Fio/master/installers/Windows/install.zip), [OS X](https://raw.githubusercontent.com/donovan6000/M3D-Fio/master/installers/OS%20X/install.zip), and [Linux](https://raw.githubusercontent.com/donovan6000/M3D-Fio/master/installers/Linux/install.zip) that install OctoPrint, M3D Fio, and device drivers for the printer and heatbed. These installers all add OctoPrint as a startup program and create a shortcut on the desktop that allows accessing OctoPrint's user interface. +There's installers available for [Windows](https://raw.githubusercontent.com/donovan6000/M33-Fio/master/installers/Windows/install.zip), [OS X](https://raw.githubusercontent.com/donovan6000/M33-Fio/master/installers/OS%20X/install.zip), and [Linux](https://raw.githubusercontent.com/donovan6000/M33-Fio/master/installers/Linux/install.zip) that install OctoPrint, M33 Fio, and device drivers for the printer and heatbed. These installers all add OctoPrint as a startup program and create a shortcut on the desktop that allows accessing OctoPrint's user interface. -If you already have OctoPrint installed, M3D Fio can be installed directly from OctoPrint's builtin plugin manager by searching for it in the plugin repository. +If you already have OctoPrint installed, M33 Fio can be installed directly from OctoPrint's builtin plugin manager by searching for it in the plugin repository. ### Usage -After installing OctoPrint and M3D Fio, you can immediately connect to a printer and start printing. M3D Fio works in conjunction with OctoPrint's auto-detect serial port and baud rate features, so neither of those values need to be specified in order to successfully connect to the printer. After connecting to a printer, all of that printer's existing settings, like backlash and bed calibration values, will be read in and used by M3D Fio to make transitioning over from M3D's official software as simple as possible. +After installing OctoPrint and M33 Fio, you can immediately connect to a printer and start printing. M33 Fio works in conjunction with OctoPrint's auto-detect serial port and baud rate features, so neither of those values need to be specified in order to successfully connect to the printer. After connecting to a printer, all of that printer's existing settings, like backlash and bed calibration values, will be read in and used by M33 Fio to make transitioning over from M3D's official software as simple as possible. -OctoPrint uses external slicers to convert 3D object files into printable G-code, and, if you currently have M3D's official software installed, M3D Fio will automatically configure OctoPrint to use the Cura Engine slicer that comes with it. However I recommend installing the latest [Cura V15.04](https://ultimaker.com/en/products/cura-software/list) release so that you can enjoy all the latest improvements to the Cura Engine slicer. After a slicer is installed, printing a model is as simple as dragging and dropping a file onto OctoPrint's user interface. +OctoPrint uses external slicers to convert 3D object files into printable G-code, and, if you currently have M3D's official software installed, M33 Fio will automatically configure OctoPrint to use the Cura Engine slicer that comes with it. However I recommend installing the latest [Cura V15.04](https://ultimaker.com/en/products/cura-software/list) release so that you can enjoy all the latest improvements to the Cura Engine slicer. After a slicer is installed, printing a model is as simple as dragging and dropping a file onto OctoPrint's user interface. OctoPrint is a web server, and it can allow remotely connecting to it. So you can open port 5000 in your computer's firewall and configure your router to route all traffic on that port to your computer to allow using your printer from anywhere in the world. ### Images Additional controls are added to OctoPrint's control panel that allow doing everything from loading filament to updating the firmware. -![alt text](https://raw.githubusercontent.com/donovan6000/M3D-Fio/master/images/controls.png "Controls") -M3D Fio allows changing all of the printer's settings in the M3D Fio tab located in OctoPrint's settings. -![alt text](https://raw.githubusercontent.com/donovan6000/M3D-Fio/master/images/settings.png "Settings") +![alt text](https://raw.githubusercontent.com/donovan6000/M33-Fio/master/images/controls.png "Controls") +M33 Fio allows changing all of the printer's settings in the M33 Fio tab located in OctoPrint's settings. +![alt text](https://raw.githubusercontent.com/donovan6000/M33-Fio/master/images/settings.png "Settings") The slicer profile editor lets you quickly specify the quality and fill options of a print while still giving you the ability to fine tune every available setting. -![alt text](https://raw.githubusercontent.com/donovan6000/M3D-Fio/master/images/profile%20editor.png "Profile Editor") +![alt text](https://raw.githubusercontent.com/donovan6000/M33-Fio/master/images/profile%20editor.png "Profile Editor") The model editor allows manipulating the model before it's sliced. It can perform all the standard operations like translating, rotating, and scaling models. -![alt text](https://raw.githubusercontent.com/donovan6000/M3D-Fio/master/images/model%20editor.png "Model Editor") +![alt text](https://raw.githubusercontent.com/donovan6000/M33-Fio/master/images/model%20editor.png "Model Editor") It can also clone and import other models to allow printing more than one model at a time. -![alt text](https://raw.githubusercontent.com/donovan6000/M3D-Fio/master/images/clone.png "Clone And Import Models") +![alt text](https://raw.githubusercontent.com/donovan6000/M33-Fio/master/images/clone.png "Clone And Import Models") It can even cut and merge models to make even large models printable. -![alt text](https://raw.githubusercontent.com/donovan6000/M3D-Fio/master/images/cut.png "Cut And Merge Models") +![alt text](https://raw.githubusercontent.com/donovan6000/M33-Fio/master/images/cut.png "Cut And Merge Models") ### Troubleshooting Q. I can't connect to the printer. I receive an error similar to, "Unexpected error while connecting to serial port: AUTO SerialException: 'could not open port 'COM13': WindowsError(5, 'Access is denied.')'" every time I try to connect." @@ -60,11 +60,11 @@ A. Close M3D's official software if it's open, and make sure no other programs a ___ Q. I receive a message similar to, "It's recommended that you disable this server's sleep functionality while printing if it's not already disabled." What does this mean? -A. M3D Fio attempts to prevent the server that it's running on from suspending/sleeping while printing, and that message gets displayed if it is unable to do so. Don't be too alarmed by this message since it doesn't mean that the server will go to sleep. It just means that M3D Fio can't prevent it from going to sleep. +A. M33 Fio attempts to prevent the server that it's running on from suspending/sleeping while printing, and that message gets displayed if it is unable to do so. Don't be too alarmed by this message since it doesn't mean that the server will go to sleep. It just means that M33 Fio can't prevent it from going to sleep. ___ Q. I installed Cura, but the slice button next to the uploaded files is still grayed out. -A. If M3D Fio detects that Cura is installed, it'll automatically configure OctoPrint to use it. However OctoPrint isn't aware of that configuration change immediately so you'll need to refresh your web browser several times for it to take affect. +A. If M33 Fio detects that Cura is installed, it'll automatically configure OctoPrint to use it. However OctoPrint isn't aware of that configuration change immediately so you'll need to refresh your web browser several times for it to take affect. ___ Q. How do I re-open the print session if I closed the web browser? @@ -72,8 +72,8 @@ A. Just go to the same URL that you were at before and it'll re-open the same se ___ Q. Even though I have the heatbed plugged in, I get an error similar to, "Warn: Not sending "M190 S100", printer profile has no heated bed" when I try to use it. -A. M3D Fio dynamically changes the printer profile whenever the heatbed is plugged in, however OctoPrint will sometimes not immediately become aware of that profile changed. So either refresh your web browser a couple of times or unplug and re-plugin the heatbed. +A. M33 Fio dynamically changes the printer profile whenever the heatbed is plugged in, however OctoPrint will sometimes not immediately become aware of that profile changed. So either refresh your web browser a couple of times or unplug and re-plugin the heatbed. ___ Q. OctoPrint's terminal shows an error about how it couldn't determine the printer's baud rate when trying to connect to the printer. -A. Something caused M3D Fio to crash, so you'll need to restart it. This can be accomplished by restarting OctoPrint, which can be done by restarting your computer. +A. Something caused M33 Fio to crash, so you'll need to restart it. This can be accomplished by restarting OctoPrint, which can be done by restarting your computer. diff --git a/images/settings.png b/images/settings.png index 85b13f1170e18ea46bda9a1b5ab745b317877c5f..666ba114f5c0138eb7c310b1d0f41f2e0f1e4be0 100644 GIT binary patch literal 94306 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
cE`Z5kvnV_2 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ℜ5oJJ>Qor;JNs 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%0Di_15H6OiUQ}nA3oXgwhUm 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 V*?o#j9>}-dla#xieN+GW{{p!6384T0 diff --git a/installers/Linux/90-m3d-local.rules b/installers/Linux/90-micro-3d-local.rules similarity index 81% rename from installers/Linux/90-m3d-local.rules rename to installers/Linux/90-micro-3d-local.rules index d0bfc65..85c895c 100644 --- a/installers/Linux/90-m3d-local.rules +++ b/installers/Linux/90-micro-3d-local.rules @@ -1,5 +1,5 @@ # Run the following commands to install this rule -# cp ./90-m3d-local.rules /etc/udev/rules.d/ +# cp ./90-micro-3d-local.rules /etc/udev/rules.d/ # sudo /etc/init.d/udev restart ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2404", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1" diff --git a/installers/Linux/91-m3d-heatbed-local.rules b/installers/Linux/91-micro-3d-heatbed-local.rules similarity index 79% rename from installers/Linux/91-m3d-heatbed-local.rules rename to installers/Linux/91-micro-3d-heatbed-local.rules index f54cf7f..9ba2131 100644 --- a/installers/Linux/91-m3d-heatbed-local.rules +++ b/installers/Linux/91-micro-3d-heatbed-local.rules @@ -1,5 +1,5 @@ # Run the following commands to install this rule -# cp ./91-m3d-heatbed-local.rules /etc/udev/rules.d/ +# cp ./91-micro-3d-heatbed-local.rules /etc/udev/rules.d/ # sudo /etc/init.d/udev restart ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1" diff --git a/installers/Linux/install.zip b/installers/Linux/install.zip index 8e993716a48eff9896eb015909863c43f473faa6..f9a6519c890a02af28b27a0fa84de5758ab385f6 100644 GIT binary patch delta 1194 zcmV;b1XcUT3Cjr=P)h>@6axSN2msKb)<_qMdd5`*004iH7af1A4Ll_7fnelX-UcbiXQZbuH(RDb-FCMJ} zEO5;o3aE@+%L12ZqxUd9y0OVMFXhcCTswuS(b`SnBOD(Ce#H!|7aEd;{AN@7csvb| zPjk#xAQzyt1LJ=ca0?+YB2x`11th*joDtjua5<_dnp}rx(pClELW$P$B}Nm>a@~AF zd`=)c`oNHOX;7qb>qq2g1Z6hTVuXdofH~;Nv{IObB%KbFAeBR-&_$EY5*;L8C>LiW z+S8M;k|k>IPVdm#R#KpW+_~yLV@s`<1*VxUqe-3A(IbCI@C(fPTqeh|{Yr;;Q@kq8%lApI0yfH2UI6eF4cYysG9M#6&))LY~!LO8cyeOK8 zS`t?R-rRq_4KJhyffXu&DwAk~Kd)R8D(@@79qw9^EyxzC+PYk;_D@pDs#^+NLm}r| zUKaIw?qwkov=)_tgoql_L;F?@%S-telc z*&u(40P6Vh^A=j^HCK0Mvl%1rgxp7te3Q!p;Tl}gnnTde*@;@ir{I2km0kVnwrwNR(4TjT%k7ESnVH};6w*4-3#ci41(Z+8m9W9x zqJTs~%!c_Q;--QoOKa6TZV5tsB;iBXqWeP%rUyq?gA#goAenwpmsmRePYrU1@a}*7 zH7Qps&^y{fcQ%fLZndCx}W@zyY#bAwD0jU5~4|3F=Tl<81~pzxA? zWt3IG5A00000001C>q=5hc005Jx1R4f? I1ONa40QKEC$p8QV delta 1194 zcmV;b1XcUX3C9T+P)h>@6axSN2ms9uzDNprw7gLS003)|7ae~UfrrEe1QH-_VgVt6 z7VU~BKq!r;jcH;BUs{Uzc*f4HWg8YG5K`3jj%VhaxpXGIdW9{7WTuFst8j*292yH) z;wH1mq1Iv}N?f6d-otcueOsuk5;vxB~K3&mo! zK=bgXKZy#Jvk&jk+0=rghQiwVK4UATRwbsns-j5=n|g8>Vx zTIo#hpj3Hgg_3lgbC_M{Ld&c|I#p}0}< zB2daChc|z>PvC`6z_CWjQRV`T*UxI3_{_VSXBPJ*$qq#8s@~Z`$@WiDi@G~<+(0Q7 zyR0h1dErFK6Ep^;6{gUwulc#gRnYuK|J)2mkJ)swgW37JlhaS{&YzzFq4f9~ zSNN5Bz!}t+tJAqG)wa_gON$q;Nz)6HE%X&6d1!ye&}zo_ny`gi_+Dd6r3{v=_rWrq z7h;2~%8W&weiQWwKPTx94%Ko#ut}P$5$m=92Cb{px-U#0V(^uwBi7ZL3k^vPF)LJs zES?UR)0m}w=&^U8D@gS6QeBq&CRNVHW2l=8(fy%QT^%Ouu##O%ldzpmyBNO1NN+gV zA(H)B>9P*Mc?q4r}Otq-TW6@l^e8j+UaG+fVDd+(B@Q8l0au+LdI}Zkf|&cKZwF zFHFkWy?IjI=80bqWg3Ki#5&uiP1L?(xgvkB(vBvep~TuSP#gAINcZ&!Ks4E>TVQ4v z$bXma&ETyu`lqxf}QmB*kFd?2IrIHQ>V*Yz6U0K4dN7rt`wU*$;cj;j)AAdJ1 zvJJulQG#)KPBu$&+An+LDZEr*Rrh}m9M}}f*!y=V|D;CFcCf_-EVSAh)Lu6Wj`orq zcPvJi$|dZFCq=5hc003!jb99rh1QrH) I1ONa40I-KI0ssI2 diff --git a/installers/Linux/uninstall.zip b/installers/Linux/uninstall.zip index 6530f675e7d1c8649c2746d67bbf47f3b248787f..016d23c9eea9186a380cfc435cf18f5753ef50c7 100644 GIT binary patch delta 752 zcmV@6axSN2mtq?)<}27j0Ttj006!Q000aC004DvX>N0LVQg$J zb7-Yh&2F495I!$YF(FZC4~9fJRaK-)O?zsUYNI_>QRT%0xNB@`o83_L;X4=tX*NGv zRa&typ6|!z8;*~%wbYrbqUacw_^UGOB_~gy5GQ5^=V>r5m z*c#(wxP{YGz&p&rwZZ^n)OQxs!dE>I``&(n~WC03o9T)pJ!4_pNh=T8qsS%Sz0UtY5-k&+mfT6_t8SZL#-fQ68z@? z_GORYWX4h{2obJ#O8P@eq`4_$=v|#&hZt_%ptm z7EW$fSJyvQH=mZ!$OhU8HR&+I6MW*`?>Lxw#@QNwm@Od5DpO;Y#4{*PvUJ*15G;hSyFxht%xK}qMq6c7~J269u^6i7!9hXR;{Wd3esA{jPh z^E6ndu7}*KzN_C8i=yVcsf!i zL4E(DI_2f*5vw>kT_b9WQl1l}XqD>b(4a_0hNn~dlIA2mi@BGz(pik6Nx#2PO928u i0~7-Q00;p0q1H%u#f%1+0ssKMli30>2EqaW0000EY+m00 delta 750 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 span { +#settings_plugin_m33fio h4 > span { top: -10px !important; left: calc(50% + 50px); transform: translateX(-50%); } -#settings_plugin_m3dfio label.checkbox { +#settings_plugin_m33fio label.checkbox { margin-top: -15px; width: calc(100% - 24px); } -#settings_plugin_m3dfio label > span.noCheckbox { +#settings_plugin_m33fio label > span.noCheckbox { position: relative; top: 10px; } -#settings_plugin_m3dfio label.checkbox:first-of-type { +#settings_plugin_m33fio label.checkbox:first-of-type { margin-top: -5px; width: calc(100% - 24px); } -#settings_plugin_m3dfio label.checkbox > span { +#settings_plugin_m33fio label.checkbox > span { position: relative; top: 9px; } -#settings_plugin_m3dfio input[type="checkbox"] { +#settings_plugin_m33fio input[type="checkbox"] { background: transparent; border: 0; outline: none; } -#settings_plugin_m3dfio div.input-append { +#settings_plugin_m33fio div.input-append { width: calc(100% - 24px); } -#settings_plugin_m3dfio div.control-group.empty, #settings_plugin_m3dfio div.control-group.title { +#settings_plugin_m33fio div.control-group.empty, #settings_plugin_m33fio div.control-group.title { margin-top: 0; margin-bottom: 3px; } -#settings_plugin_m3dfio input[type="number"], #settings_plugin_m3dfio select { +#settings_plugin_m33fio input[type="number"], #settings_plugin_m33fio select { width: calc(100% - 24px); } -#settings_plugin_m3dfio div.input-append input[type="number"] { +#settings_plugin_m33fio div.input-append input[type="number"] { width: calc(100% - 34px); } -#settings_plugin_m3dfio div.input-append.degreesCelsius input[type="number"] { +#settings_plugin_m33fio div.input-append.degreesCelsius input[type="number"] { width: calc(100% - 27px); } -#settings_plugin_m3dfio div.input-append.mmPerMinute input[type="number"] { +#settings_plugin_m33fio div.input-append.mmPerMinute input[type="number"] { width: calc(100% - 61px); } -#settings_plugin_m3dfio div.control-group.dependant { +#settings_plugin_m33fio div.control-group.dependant { margin-left: 30px; } -#settings_plugin_m3dfio div.control-group.dependant.camera { +#settings_plugin_m33fio div.control-group.dependant.camera { margin-left: 110px; } -#settings_plugin_m3dfio div.control-group.dependant.camera input { +#settings_plugin_m33fio div.control-group.dependant.camera input { width: 100px; } -#settings_plugin_m3dfio input.short, #settings_plugin_m3dfio select.short { +#settings_plugin_m33fio input.short, #settings_plugin_m33fio select.short { width: 160px; margin-top: -10px; margin-left: 6px; @@ -130,7 +130,7 @@ text-align: center; } -#settings_plugin_m3dfio .disabled { +#settings_plugin_m33fio .disabled { opacity: 0.5; pointer-events: none; } @@ -139,21 +139,21 @@ margin-bottom: 44px; } -#navbar_plugin_m3dfio { +#navbar_plugin_m33fio { display: inline; position: absolute; top: 44px; left: 30px; } -#navbar_plugin_m3dfio > select { +#navbar_plugin_m33fio > select { width: 140px; position: relative; right: 30px; top: 5px; } -#navbar_plugin_m3dfio > a { +#navbar_plugin_m33fio > a { cursor: default; display: inline; position: relative; @@ -374,7 +374,7 @@ opacity: 1 !important; } -#control .heatbed, #settings_plugin_m3dfio .heatbed, #settings_plugin_m3dfio .camera, #settings_plugin_m3dfio .sharedLibrary, #settings_plugin_m3dfio .gpio, #control > div.jog-panel.general button.gpio { +#control .heatbed, #settings_plugin_m33fio .heatbed, #settings_plugin_m33fio .camera, #settings_plugin_m33fio .sharedLibrary, #settings_plugin_m33fio .gpio, #control > div.jog-panel.general button.gpio { display: none; } diff --git a/octoprint_m3dfio/static/files/M3D 2016010812.hex b/octoprint_m33fio/static/files/M3D 2016010812.hex similarity index 100% rename from octoprint_m3dfio/static/files/M3D 2016010812.hex rename to octoprint_m33fio/static/files/M3D 2016010812.hex diff --git a/octoprint_m3dfio/static/files/M3D 2016040401.hex b/octoprint_m33fio/static/files/M3D 2016040401.hex similarity index 100% rename from octoprint_m3dfio/static/files/M3D 2016040401.hex rename to octoprint_m33fio/static/files/M3D 2016040401.hex diff --git a/octoprint_m3dfio/static/files/M3D Mod 2116010812.hex b/octoprint_m33fio/static/files/M3D Mod 2116010812.hex similarity index 100% rename from octoprint_m3dfio/static/files/M3D Mod 2116010812.hex rename to octoprint_m33fio/static/files/M3D Mod 2116010812.hex diff --git a/octoprint_m3dfio/static/files/M3D Mod 2116040401.hex b/octoprint_m33fio/static/files/M3D Mod 2116040401.hex similarity index 100% rename from octoprint_m3dfio/static/files/M3D Mod 2116040401.hex rename to octoprint_m33fio/static/files/M3D Mod 2116040401.hex diff --git a/octoprint_m3dfio/static/files/QuickBacklash_X_0.0-0.99.gcode b/octoprint_m33fio/static/files/QuickBacklash_X_0.0-0.99.gcode similarity index 100% rename from octoprint_m3dfio/static/files/QuickBacklash_X_0.0-0.99.gcode rename to octoprint_m33fio/static/files/QuickBacklash_X_0.0-0.99.gcode diff --git a/octoprint_m3dfio/static/files/QuickBacklash_X_0.70-1.69.gcode b/octoprint_m33fio/static/files/QuickBacklash_X_0.70-1.69.gcode similarity index 100% rename from octoprint_m3dfio/static/files/QuickBacklash_X_0.70-1.69.gcode rename to octoprint_m33fio/static/files/QuickBacklash_X_0.70-1.69.gcode diff --git a/octoprint_m3dfio/static/files/QuickBacklash_Y_0.0-0.99.gcode b/octoprint_m33fio/static/files/QuickBacklash_Y_0.0-0.99.gcode similarity index 100% rename from octoprint_m3dfio/static/files/QuickBacklash_Y_0.0-0.99.gcode rename to octoprint_m33fio/static/files/QuickBacklash_Y_0.0-0.99.gcode diff --git a/octoprint_m3dfio/static/files/QuickBacklash_Y_0.70-1.69.gcode b/octoprint_m33fio/static/files/QuickBacklash_Y_0.70-1.69.gcode similarity index 100% rename from octoprint_m3dfio/static/files/QuickBacklash_Y_0.70-1.69.gcode rename to octoprint_m33fio/static/files/QuickBacklash_Y_0.70-1.69.gcode diff --git a/octoprint_m3dfio/static/files/iMe 1900000010.hex b/octoprint_m33fio/static/files/iMe 1900000010.hex similarity index 100% rename from octoprint_m3dfio/static/files/iMe 1900000010.hex rename to octoprint_m33fio/static/files/iMe 1900000010.hex diff --git a/octoprint_m3dfio/static/files/printer.stl b/octoprint_m33fio/static/files/printer.stl similarity index 100% rename from octoprint_m3dfio/static/files/printer.stl rename to octoprint_m33fio/static/files/printer.stl diff --git a/octoprint_m3dfio/static/files/test border.gcode b/octoprint_m33fio/static/files/test border.gcode similarity index 100% rename from octoprint_m3dfio/static/files/test border.gcode rename to octoprint_m33fio/static/files/test border.gcode diff --git a/octoprint_m3dfio/static/img/backlash.png b/octoprint_m33fio/static/img/backlash.png similarity index 100% rename from octoprint_m3dfio/static/img/backlash.png rename to octoprint_m33fio/static/img/backlash.png diff --git a/octoprint_m3dfio/static/img/black.png b/octoprint_m33fio/static/img/black.png similarity index 100% rename from octoprint_m3dfio/static/img/black.png rename to octoprint_m33fio/static/img/black.png diff --git a/octoprint_m3dfio/static/img/blue.png b/octoprint_m33fio/static/img/blue.png similarity index 100% rename from octoprint_m3dfio/static/img/blue.png rename to octoprint_m33fio/static/img/blue.png diff --git a/octoprint_m3dfio/static/img/boundaries.png b/octoprint_m33fio/static/img/boundaries.png similarity index 100% rename from octoprint_m3dfio/static/img/boundaries.png rename to octoprint_m33fio/static/img/boundaries.png diff --git a/octoprint_m3dfio/static/img/clear.png b/octoprint_m33fio/static/img/clear.png similarity index 100% rename from octoprint_m3dfio/static/img/clear.png rename to octoprint_m33fio/static/img/clear.png diff --git a/octoprint_m3dfio/static/img/clone.png b/octoprint_m33fio/static/img/clone.png similarity index 100% rename from octoprint_m3dfio/static/img/clone.png rename to octoprint_m33fio/static/img/clone.png diff --git a/octoprint_m3dfio/static/img/cube.png b/octoprint_m33fio/static/img/cube.png similarity index 100% rename from octoprint_m3dfio/static/img/cube.png rename to octoprint_m33fio/static/img/cube.png diff --git a/octoprint_m3dfio/static/img/custom.png b/octoprint_m33fio/static/img/custom.png similarity index 100% rename from octoprint_m3dfio/static/img/custom.png rename to octoprint_m33fio/static/img/custom.png diff --git a/octoprint_m3dfio/static/img/cut.png b/octoprint_m33fio/static/img/cut.png similarity index 100% rename from octoprint_m3dfio/static/img/cut.png rename to octoprint_m33fio/static/img/cut.png diff --git a/octoprint_m3dfio/static/img/delete.png b/octoprint_m33fio/static/img/delete.png similarity index 100% rename from octoprint_m3dfio/static/img/delete.png rename to octoprint_m33fio/static/img/delete.png diff --git a/octoprint_m3dfio/static/img/down-arrow.png b/octoprint_m33fio/static/img/down-arrow.png similarity index 100% rename from octoprint_m3dfio/static/img/down-arrow.png rename to octoprint_m33fio/static/img/down-arrow.png diff --git a/octoprint_m3dfio/static/img/filament.png b/octoprint_m33fio/static/img/filament.png similarity index 100% rename from octoprint_m3dfio/static/img/filament.png rename to octoprint_m33fio/static/img/filament.png diff --git a/octoprint_m3dfio/static/img/fill-density_extra-high.png b/octoprint_m33fio/static/img/fill-density_extra-high.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-density_extra-high.png rename to octoprint_m33fio/static/img/fill-density_extra-high.png diff --git a/octoprint_m3dfio/static/img/fill-density_full.png b/octoprint_m33fio/static/img/fill-density_full.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-density_full.png rename to octoprint_m33fio/static/img/fill-density_full.png diff --git a/octoprint_m3dfio/static/img/fill-density_high.png b/octoprint_m33fio/static/img/fill-density_high.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-density_high.png rename to octoprint_m33fio/static/img/fill-density_high.png diff --git a/octoprint_m3dfio/static/img/fill-density_low.png b/octoprint_m33fio/static/img/fill-density_low.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-density_low.png rename to octoprint_m33fio/static/img/fill-density_low.png diff --git a/octoprint_m3dfio/static/img/fill-density_medium.png b/octoprint_m33fio/static/img/fill-density_medium.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-density_medium.png rename to octoprint_m33fio/static/img/fill-density_medium.png diff --git a/octoprint_m3dfio/static/img/fill-density_thick.png b/octoprint_m33fio/static/img/fill-density_thick.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-density_thick.png rename to octoprint_m33fio/static/img/fill-density_thick.png diff --git a/octoprint_m3dfio/static/img/fill-density_thin.png b/octoprint_m33fio/static/img/fill-density_thin.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-density_thin.png rename to octoprint_m33fio/static/img/fill-density_thin.png diff --git a/octoprint_m3dfio/static/img/fill-pattern_3dhoneycomb.png b/octoprint_m33fio/static/img/fill-pattern_3dhoneycomb.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-pattern_3dhoneycomb.png rename to octoprint_m33fio/static/img/fill-pattern_3dhoneycomb.png diff --git a/octoprint_m3dfio/static/img/fill-pattern_archimedeanchords.png b/octoprint_m33fio/static/img/fill-pattern_archimedeanchords.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-pattern_archimedeanchords.png rename to octoprint_m33fio/static/img/fill-pattern_archimedeanchords.png diff --git a/octoprint_m3dfio/static/img/fill-pattern_concentric.png b/octoprint_m33fio/static/img/fill-pattern_concentric.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-pattern_concentric.png rename to octoprint_m33fio/static/img/fill-pattern_concentric.png diff --git a/octoprint_m3dfio/static/img/fill-pattern_hilbertcurve.png b/octoprint_m33fio/static/img/fill-pattern_hilbertcurve.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-pattern_hilbertcurve.png rename to octoprint_m33fio/static/img/fill-pattern_hilbertcurve.png diff --git a/octoprint_m3dfio/static/img/fill-pattern_honeycomb.png b/octoprint_m33fio/static/img/fill-pattern_honeycomb.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-pattern_honeycomb.png rename to octoprint_m33fio/static/img/fill-pattern_honeycomb.png diff --git a/octoprint_m3dfio/static/img/fill-pattern_line.png b/octoprint_m33fio/static/img/fill-pattern_line.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-pattern_line.png rename to octoprint_m33fio/static/img/fill-pattern_line.png diff --git a/octoprint_m3dfio/static/img/fill-pattern_octagramspiral.png b/octoprint_m33fio/static/img/fill-pattern_octagramspiral.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-pattern_octagramspiral.png rename to octoprint_m33fio/static/img/fill-pattern_octagramspiral.png diff --git a/octoprint_m3dfio/static/img/fill-pattern_rectalinear.png b/octoprint_m33fio/static/img/fill-pattern_rectalinear.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-pattern_rectalinear.png rename to octoprint_m33fio/static/img/fill-pattern_rectalinear.png diff --git a/octoprint_m3dfio/static/img/fill-quality_extra-high.png b/octoprint_m33fio/static/img/fill-quality_extra-high.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-quality_extra-high.png rename to octoprint_m33fio/static/img/fill-quality_extra-high.png diff --git a/octoprint_m3dfio/static/img/fill-quality_extra-low.png b/octoprint_m33fio/static/img/fill-quality_extra-low.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-quality_extra-low.png rename to octoprint_m33fio/static/img/fill-quality_extra-low.png diff --git a/octoprint_m3dfio/static/img/fill-quality_high.png b/octoprint_m33fio/static/img/fill-quality_high.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-quality_high.png rename to octoprint_m33fio/static/img/fill-quality_high.png diff --git a/octoprint_m3dfio/static/img/fill-quality_highest.png b/octoprint_m33fio/static/img/fill-quality_highest.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-quality_highest.png rename to octoprint_m33fio/static/img/fill-quality_highest.png diff --git a/octoprint_m3dfio/static/img/fill-quality_low.png b/octoprint_m33fio/static/img/fill-quality_low.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-quality_low.png rename to octoprint_m33fio/static/img/fill-quality_low.png diff --git a/octoprint_m3dfio/static/img/fill-quality_medium.png b/octoprint_m33fio/static/img/fill-quality_medium.png similarity index 100% rename from octoprint_m3dfio/static/img/fill-quality_medium.png rename to octoprint_m33fio/static/img/fill-quality_medium.png diff --git a/octoprint_m3dfio/static/img/graph-background.png b/octoprint_m33fio/static/img/graph-background.png similarity index 100% rename from octoprint_m3dfio/static/img/graph-background.png rename to octoprint_m33fio/static/img/graph-background.png diff --git a/octoprint_m3dfio/static/img/green.png b/octoprint_m33fio/static/img/green.png similarity index 100% rename from octoprint_m3dfio/static/img/green.png rename to octoprint_m33fio/static/img/green.png diff --git a/octoprint_m3dfio/static/img/hengLiXin.png b/octoprint_m33fio/static/img/hengLiXin.png similarity index 100% rename from octoprint_m3dfio/static/img/hengLiXin.png rename to octoprint_m33fio/static/img/hengLiXin.png diff --git a/octoprint_m3dfio/static/img/import.png b/octoprint_m33fio/static/img/import.png similarity index 100% rename from octoprint_m3dfio/static/img/import.png rename to octoprint_m33fio/static/img/import.png diff --git a/octoprint_m3dfio/static/img/listener.png b/octoprint_m33fio/static/img/listener.png similarity index 100% rename from octoprint_m3dfio/static/img/listener.png rename to octoprint_m33fio/static/img/listener.png diff --git a/octoprint_m3dfio/static/img/loading.gif b/octoprint_m33fio/static/img/loading.gif similarity index 100% rename from octoprint_m3dfio/static/img/loading.gif rename to octoprint_m33fio/static/img/loading.gif diff --git a/octoprint_m3dfio/static/img/logo.png b/octoprint_m33fio/static/img/logo.png similarity index 100% rename from octoprint_m3dfio/static/img/logo.png rename to octoprint_m33fio/static/img/logo.png diff --git a/octoprint_m3dfio/static/img/measurements.png b/octoprint_m33fio/static/img/measurements.png similarity index 100% rename from octoprint_m3dfio/static/img/measurements.png rename to octoprint_m33fio/static/img/measurements.png diff --git a/octoprint_m3dfio/static/img/merge.png b/octoprint_m33fio/static/img/merge.png similarity index 100% rename from octoprint_m3dfio/static/img/merge.png rename to octoprint_m33fio/static/img/merge.png diff --git a/octoprint_m3dfio/static/img/orange.png b/octoprint_m33fio/static/img/orange.png similarity index 100% rename from octoprint_m3dfio/static/img/orange.png rename to octoprint_m33fio/static/img/orange.png diff --git a/octoprint_m3dfio/static/img/purple.png b/octoprint_m33fio/static/img/purple.png similarity index 100% rename from octoprint_m3dfio/static/img/purple.png rename to octoprint_m33fio/static/img/purple.png diff --git a/octoprint_m3dfio/static/img/reset.png b/octoprint_m33fio/static/img/reset.png similarity index 100% rename from octoprint_m3dfio/static/img/reset.png rename to octoprint_m33fio/static/img/reset.png diff --git a/octoprint_m3dfio/static/img/rotate.png b/octoprint_m33fio/static/img/rotate.png similarity index 100% rename from octoprint_m3dfio/static/img/rotate.png rename to octoprint_m33fio/static/img/rotate.png diff --git a/octoprint_m3dfio/static/img/scale.png b/octoprint_m33fio/static/img/scale.png similarity index 100% rename from octoprint_m3dfio/static/img/scale.png rename to octoprint_m33fio/static/img/scale.png diff --git a/octoprint_m3dfio/static/img/shenzhew.png b/octoprint_m33fio/static/img/shenzhew.png similarity index 100% rename from octoprint_m3dfio/static/img/shenzhew.png rename to octoprint_m33fio/static/img/shenzhew.png diff --git a/octoprint_m3dfio/static/img/silver.png b/octoprint_m33fio/static/img/silver.png similarity index 100% rename from octoprint_m3dfio/static/img/silver.png rename to octoprint_m33fio/static/img/silver.png diff --git a/octoprint_m3dfio/static/img/snap.png b/octoprint_m33fio/static/img/snap.png similarity index 100% rename from octoprint_m3dfio/static/img/snap.png rename to octoprint_m33fio/static/img/snap.png diff --git a/octoprint_m3dfio/static/img/sphere.png b/octoprint_m33fio/static/img/sphere.png similarity index 100% rename from octoprint_m3dfio/static/img/sphere.png rename to octoprint_m33fio/static/img/sphere.png diff --git a/octoprint_m3dfio/static/img/test-border-good.png b/octoprint_m33fio/static/img/test-border-good.png similarity index 100% rename from octoprint_m3dfio/static/img/test-border-good.png rename to octoprint_m33fio/static/img/test-border-good.png diff --git a/octoprint_m3dfio/static/img/test-border-high.png b/octoprint_m33fio/static/img/test-border-high.png similarity index 100% rename from octoprint_m3dfio/static/img/test-border-high.png rename to octoprint_m33fio/static/img/test-border-high.png diff --git a/octoprint_m3dfio/static/img/test-border-low.png b/octoprint_m33fio/static/img/test-border-low.png similarity index 100% rename from octoprint_m3dfio/static/img/test-border-low.png rename to octoprint_m33fio/static/img/test-border-low.png diff --git a/octoprint_m3dfio/static/img/translate.png b/octoprint_m33fio/static/img/translate.png similarity index 100% rename from octoprint_m3dfio/static/img/translate.png rename to octoprint_m33fio/static/img/translate.png diff --git a/octoprint_m3dfio/static/img/up-arrow.png b/octoprint_m33fio/static/img/up-arrow.png similarity index 100% rename from octoprint_m3dfio/static/img/up-arrow.png rename to octoprint_m33fio/static/img/up-arrow.png diff --git a/octoprint_m3dfio/static/img/white.png b/octoprint_m33fio/static/img/white.png similarity index 100% rename from octoprint_m3dfio/static/img/white.png rename to octoprint_m33fio/static/img/white.png diff --git a/octoprint_m3dfio/static/img/xinyujie.png b/octoprint_m33fio/static/img/xinyujie.png similarity index 100% rename from octoprint_m3dfio/static/img/xinyujie.png rename to octoprint_m33fio/static/img/xinyujie.png diff --git a/octoprint_m3dfio/static/js/AMFLoader.js b/octoprint_m33fio/static/js/AMFLoader.js similarity index 100% rename from octoprint_m3dfio/static/js/AMFLoader.js rename to octoprint_m33fio/static/js/AMFLoader.js diff --git a/octoprint_m3dfio/static/js/ColladaLoader.js b/octoprint_m33fio/static/js/ColladaLoader.js similarity index 100% rename from octoprint_m3dfio/static/js/ColladaLoader.js rename to octoprint_m33fio/static/js/ColladaLoader.js diff --git a/octoprint_m3dfio/static/js/Detector.js b/octoprint_m33fio/static/js/Detector.js similarity index 100% rename from octoprint_m3dfio/static/js/Detector.js rename to octoprint_m33fio/static/js/Detector.js diff --git a/octoprint_m3dfio/static/js/M3DLoader.js b/octoprint_m33fio/static/js/M3DLoader.js similarity index 100% rename from octoprint_m3dfio/static/js/M3DLoader.js rename to octoprint_m33fio/static/js/M3DLoader.js diff --git a/octoprint_m3dfio/static/js/OBJLoader.js b/octoprint_m33fio/static/js/OBJLoader.js similarity index 100% rename from octoprint_m3dfio/static/js/OBJLoader.js rename to octoprint_m33fio/static/js/OBJLoader.js diff --git a/octoprint_m3dfio/static/js/OrbitControls.js b/octoprint_m33fio/static/js/OrbitControls.js similarity index 100% rename from octoprint_m3dfio/static/js/OrbitControls.js rename to octoprint_m33fio/static/js/OrbitControls.js diff --git a/octoprint_m3dfio/static/js/STLBinaryExporter.js b/octoprint_m33fio/static/js/STLBinaryExporter.js similarity index 100% rename from octoprint_m3dfio/static/js/STLBinaryExporter.js rename to octoprint_m33fio/static/js/STLBinaryExporter.js diff --git a/octoprint_m3dfio/static/js/STLLoader.js b/octoprint_m33fio/static/js/STLLoader.js similarity index 100% rename from octoprint_m3dfio/static/js/STLLoader.js rename to octoprint_m33fio/static/js/STLLoader.js diff --git a/octoprint_m3dfio/static/js/ThreeCSG.js b/octoprint_m33fio/static/js/ThreeCSG.js similarity index 100% rename from octoprint_m3dfio/static/js/ThreeCSG.js rename to octoprint_m33fio/static/js/ThreeCSG.js diff --git a/octoprint_m3dfio/static/js/TransformControls.js b/octoprint_m33fio/static/js/TransformControls.js similarity index 100% rename from octoprint_m3dfio/static/js/TransformControls.js rename to octoprint_m33fio/static/js/TransformControls.js diff --git a/octoprint_m3dfio/static/js/VRMLLoader.js b/octoprint_m33fio/static/js/VRMLLoader.js similarity index 100% rename from octoprint_m3dfio/static/js/VRMLLoader.js rename to octoprint_m33fio/static/js/VRMLLoader.js diff --git a/octoprint_m3dfio/static/js/m3dfio.js b/octoprint_m33fio/static/js/m33fio.js similarity index 95% rename from octoprint_m3dfio/static/js/m3dfio.js rename to octoprint_m33fio/static/js/m33fio.js index e12e4fd..3cd9df7 100755 --- a/octoprint_m3dfio/static/js/m3dfio.js +++ b/octoprint_m33fio/static/js/m33fio.js @@ -2,7 +2,7 @@ $(function() { // Create view model - function M3DFioViewModel(parameters) { + function M33FioViewModel(parameters) { // Initialize variables var eepromDisplayType = "hexadecimal"; @@ -704,16 +704,16 @@ $(function() { $("body > div.page-container > div.message > div > div > div.calibrate").addClass("show"); else if(currentMessage.secondButton == "Print") { - $("body > div.page-container > div.message > div > div > div.printSettings input").eq(0).val(self.settings.settings.plugins.m3dfio.FilamentTemperature()); - $("body > div.page-container > div.message > div > div > div.printSettings input").eq(1).val(self.settings.settings.plugins.m3dfio.HeatbedTemperature()); - $("body > div.page-container > div.message > div > div > div.printSettings select").val(self.settings.settings.plugins.m3dfio.FilamentType()); - $("body > div.page-container > div.message > div > div > div.printSettings input[type=\"checkbox\"]").prop("checked", self.settings.settings.plugins.m3dfio.UseWaveBondingPreprocessor()); + $("body > div.page-container > div.message > div > div > div.printSettings input").eq(0).val(self.settings.settings.plugins.m33fio.FilamentTemperature()); + $("body > div.page-container > div.message > div > div > div.printSettings input").eq(1).val(self.settings.settings.plugins.m33fio.HeatbedTemperature()); + $("body > div.page-container > div.message > div > div > div.printSettings select").val(self.settings.settings.plugins.m33fio.FilamentType()); + $("body > div.page-container > div.message > div > div > div.printSettings input[type=\"checkbox\"]").prop("checked", self.settings.settings.plugins.m33fio.UseWaveBondingPreprocessor()); $("body > div.page-container > div.message > div > div > div.printSettings").addClass("show"); message.find("p").eq(0).removeClass("show") } else if(currentMessage.secondButton == "Unload" || currentMessage.secondButton == "Load" || currentMessage.secondButton == "Set") { - $("body > div.page-container > div.message > div > div > div.filamentSettings input").eq(0).val(self.settings.settings.plugins.m3dfio.FilamentTemperature()); + $("body > div.page-container > div.message > div > div > div.filamentSettings input").eq(0).val(self.settings.settings.plugins.m33fio.FilamentTemperature()); $("body > div.page-container > div.message > div > div > div.filamentSettings label").text((currentMessage.secondButton == "Set" ? "New Print" : currentMessage.secondButton) + " Temperature"); $("body > div.page-container > div.message > div > div > div.filamentSettings p").html("Recommended
    " + (currentMessage.secondButton == "Unload" ? "
  • 285°C for ABS
  • 225°C for PLA
  • 275°C for HIPS
  • 230°C for FLX
  • 230°C for TGH
  • 225°C for CAM
  • 250°C for ABS-R
  • " : "
  • 275°C for ABS
  • 215°C for PLA
  • 265°C for HIPS
  • 220°C for FLX
  • 220°C for TGH
  • 215°C for CAM
  • 240°C for ABS-R
  • ") + "
"); $("body > div.page-container > div.message > div > div > div.filamentSettings").addClass("show"); @@ -967,10 +967,10 @@ $(function() { init: function() { // Adjust bed bounds to account for external bed - bedLowMaxZ = 5.0 + parseFloat(self.settings.settings.plugins.m3dfio.ExternalBedHeight()); - bedLowMinZ = 0.0 + parseFloat(self.settings.settings.plugins.m3dfio.ExternalBedHeight()); + bedLowMaxZ = 5.0 + parseFloat(self.settings.settings.plugins.m33fio.ExternalBedHeight()); + bedLowMinZ = 0.0 + parseFloat(self.settings.settings.plugins.m33fio.ExternalBedHeight()); bedMediumMinZ = bedLowMaxZ; - bedLowMinY = self.settings.settings.plugins.m3dfio.ExpandPrintableRegion() ? bedMediumMinY : -2.0; + bedLowMinY = self.settings.settings.plugins.m33fio.ExpandPrintableRegion() ? bedMediumMinY : -2.0; // Check if using Cura if(slicerName == "cura") { @@ -1126,7 +1126,7 @@ $(function() { // Create controls this.orbitControls = new THREE.OrbitControls(this.camera, this.renderer.domElement); - this.orbitControls.target.set(0, 54.9 + parseFloat(self.settings.settings.plugins.m3dfio.ExternalBedHeight()), 0); + this.orbitControls.target.set(0, 54.9 + parseFloat(self.settings.settings.plugins.m33fio.ExternalBedHeight()), 0); this.orbitControls.minDistance = 160; this.orbitControls.maxDistance = 600; this.orbitControls.minPolarAngle = 0; @@ -1170,7 +1170,7 @@ $(function() { // Load printer model var loader = new THREE.STLLoader(); - loader.load(PLUGIN_BASEURL + "m3dfio/static/files/printer.stl", function(geometry) { + loader.load(PLUGIN_BASEURL + "m33fio/static/files/printer.stl", function(geometry) { // Create printer's mesh var mesh = new THREE.Mesh(geometry, printerMaterials[viewportPrinterColor]); @@ -1194,7 +1194,7 @@ $(function() { // Load logo var loader = new THREE.TextureLoader(); - loader.load(PLUGIN_BASEURL + "m3dfio/static/img/logo.png", function(map) { + loader.load(PLUGIN_BASEURL + "m33fio/static/img/logo.png", function(map) { // Create logo var mesh = new THREE.Mesh(new THREE.PlaneGeometry(51.5, 12), new THREE.MeshBasicMaterial({ @@ -3596,64 +3596,64 @@ $(function() { // Preload all images preload( - PLUGIN_BASEURL + "m3dfio/static/img/down-arrow.png", - PLUGIN_BASEURL + "m3dfio/static/img/up-arrow.png", - PLUGIN_BASEURL + "m3dfio/static/img/logo.png", - PLUGIN_BASEURL + "m3dfio/static/img/hengLiXin.png", - PLUGIN_BASEURL + "m3dfio/static/img/listener.png", - PLUGIN_BASEURL + "m3dfio/static/img/shenzhew.png", - PLUGIN_BASEURL + "m3dfio/static/img/xinyujie.png", - PLUGIN_BASEURL + "m3dfio/static/img/custom.png", - PLUGIN_BASEURL + "m3dfio/static/img/loading.gif", - PLUGIN_BASEURL + "m3dfio/static/img/black.png", - PLUGIN_BASEURL + "m3dfio/static/img/white.png", - PLUGIN_BASEURL + "m3dfio/static/img/blue.png", - PLUGIN_BASEURL + "m3dfio/static/img/green.png", - PLUGIN_BASEURL + "m3dfio/static/img/orange.png", - PLUGIN_BASEURL + "m3dfio/static/img/clear.png", - PLUGIN_BASEURL + "m3dfio/static/img/silver.png", - PLUGIN_BASEURL + "m3dfio/static/img/purple.png", - PLUGIN_BASEURL + "m3dfio/static/img/filament.png", - PLUGIN_BASEURL + "m3dfio/static/img/import.png", - PLUGIN_BASEURL + "m3dfio/static/img/translate.png", - PLUGIN_BASEURL + "m3dfio/static/img/rotate.png", - PLUGIN_BASEURL + "m3dfio/static/img/scale.png", - PLUGIN_BASEURL + "m3dfio/static/img/snap.png", - PLUGIN_BASEURL + "m3dfio/static/img/delete.png", - PLUGIN_BASEURL + "m3dfio/static/img/clone.png", - PLUGIN_BASEURL + "m3dfio/static/img/reset.png", - PLUGIN_BASEURL + "m3dfio/static/img/cut.png", - PLUGIN_BASEURL + "m3dfio/static/img/merge.png", - PLUGIN_BASEURL + "m3dfio/static/img/boundaries.png", - PLUGIN_BASEURL + "m3dfio/static/img/measurements.png", - PLUGIN_BASEURL + "m3dfio/static/img/cube.png", - PLUGIN_BASEURL + "m3dfio/static/img/sphere.png", - PLUGIN_BASEURL + "m3dfio/static/img/test-border-good.png", - PLUGIN_BASEURL + "m3dfio/static/img/test-border-high.png", - PLUGIN_BASEURL + "m3dfio/static/img/test-border-low.png", - PLUGIN_BASEURL + "m3dfio/static/img/backlash.png", - PLUGIN_BASEURL + "m3dfio/static/img/graph-background.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-density_extra-high.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-density_full.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-density_high.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-density_low.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-density_medium.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-density_thick.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-density_thin.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-pattern_3dhoneycomb.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-pattern_archimedeanchords.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-pattern_concentric.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-pattern_hilbertcurve.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-pattern_honeycomb.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-pattern_line.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-pattern_octagramspiral.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-pattern_rectalinear.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-quality_extra-high.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-quality_extra-low.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-quality_high.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-quality_highest.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-quality_low.png", - PLUGIN_BASEURL + "m3dfio/static/img/fill-quality_medium.png" + PLUGIN_BASEURL + "m33fio/static/img/down-arrow.png", + PLUGIN_BASEURL + "m33fio/static/img/up-arrow.png", + PLUGIN_BASEURL + "m33fio/static/img/logo.png", + PLUGIN_BASEURL + "m33fio/static/img/hengLiXin.png", + PLUGIN_BASEURL + "m33fio/static/img/listener.png", + PLUGIN_BASEURL + "m33fio/static/img/shenzhew.png", + PLUGIN_BASEURL + "m33fio/static/img/xinyujie.png", + PLUGIN_BASEURL + "m33fio/static/img/custom.png", + PLUGIN_BASEURL + "m33fio/static/img/loading.gif", + PLUGIN_BASEURL + "m33fio/static/img/black.png", + PLUGIN_BASEURL + "m33fio/static/img/white.png", + PLUGIN_BASEURL + "m33fio/static/img/blue.png", + PLUGIN_BASEURL + "m33fio/static/img/green.png", + PLUGIN_BASEURL + "m33fio/static/img/orange.png", + PLUGIN_BASEURL + "m33fio/static/img/clear.png", + PLUGIN_BASEURL + "m33fio/static/img/silver.png", + PLUGIN_BASEURL + "m33fio/static/img/purple.png", + PLUGIN_BASEURL + "m33fio/static/img/filament.png", + PLUGIN_BASEURL + "m33fio/static/img/import.png", + PLUGIN_BASEURL + "m33fio/static/img/translate.png", + PLUGIN_BASEURL + "m33fio/static/img/rotate.png", + PLUGIN_BASEURL + "m33fio/static/img/scale.png", + PLUGIN_BASEURL + "m33fio/static/img/snap.png", + PLUGIN_BASEURL + "m33fio/static/img/delete.png", + PLUGIN_BASEURL + "m33fio/static/img/clone.png", + PLUGIN_BASEURL + "m33fio/static/img/reset.png", + PLUGIN_BASEURL + "m33fio/static/img/cut.png", + PLUGIN_BASEURL + "m33fio/static/img/merge.png", + PLUGIN_BASEURL + "m33fio/static/img/boundaries.png", + PLUGIN_BASEURL + "m33fio/static/img/measurements.png", + PLUGIN_BASEURL + "m33fio/static/img/cube.png", + PLUGIN_BASEURL + "m33fio/static/img/sphere.png", + PLUGIN_BASEURL + "m33fio/static/img/test-border-good.png", + PLUGIN_BASEURL + "m33fio/static/img/test-border-high.png", + PLUGIN_BASEURL + "m33fio/static/img/test-border-low.png", + PLUGIN_BASEURL + "m33fio/static/img/backlash.png", + PLUGIN_BASEURL + "m33fio/static/img/graph-background.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-density_extra-high.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-density_full.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-density_high.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-density_low.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-density_medium.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-density_thick.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-density_thin.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-pattern_3dhoneycomb.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-pattern_archimedeanchords.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-pattern_concentric.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-pattern_hilbertcurve.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-pattern_honeycomb.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-pattern_line.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-pattern_octagramspiral.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-pattern_rectalinear.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-quality_extra-high.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-quality_extra-low.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-quality_high.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-quality_highest.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-quality_low.png", + PLUGIN_BASEURL + "m33fio/static/img/fill-quality_medium.png" ); // Remove software update message if using OctoPrint's master branch @@ -3791,11 +3791,11 @@ $(function() {

Advanced

- - - - - + + + + + @@ -3902,7 +3902,7 @@ $(function() {

- +

@@ -3932,7 +3932,7 @@ $(function() {
- + °C
@@ -3940,7 +3940,7 @@ $(function() {
- @@ -3955,7 +3955,7 @@ $(function() {
@@ -3986,7 +3986,7 @@ $(function() { // Add cover to slicer $("#slicing_configuration_dialog").append(` `); @@ -4060,9 +4060,9 @@ $(function() { $("#control > div.jog-panel > img").each(function() { if($(this).parent().hasClass("closed")) - $(this).attr("src", PLUGIN_BASEURL + "m3dfio/static/img/down-arrow.png"); + $(this).attr("src", PLUGIN_BASEURL + "m33fio/static/img/down-arrow.png"); else - $(this).attr("src", PLUGIN_BASEURL + "m3dfio/static/img/up-arrow.png"); + $(this).attr("src", PLUGIN_BASEURL + "m33fio/static/img/up-arrow.png"); }); // Mouse move control arrow event @@ -4113,7 +4113,7 @@ $(function() { }, 0); // Change arrow image - $(this).attr("src", PLUGIN_BASEURL + "m3dfio/static/img/up-arrow.png"); + $(this).attr("src", PLUGIN_BASEURL + "m33fio/static/img/up-arrow.png"); } else { @@ -4146,7 +4146,7 @@ $(function() { }, 0); // Change arrow image - $(this).attr("src", PLUGIN_BASEURL + "m3dfio/static/img/down-arrow.png"); + $(this).attr("src", PLUGIN_BASEURL + "m33fio/static/img/down-arrow.png"); } // Update title @@ -4203,7 +4203,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -4230,10 +4230,10 @@ $(function() { self.files.loadFile = function(file, printAfterLoad) { // Check if printing after load and using a Micro 3D printer - if(printAfterLoad && !self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) { + if(printAfterLoad && !self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) { // Check if using on the fly pre-processing and changing settings before print - if(self.settings.settings.plugins.m3dfio.PreprocessOnTheFly() && self.settings.settings.plugins.m3dfio.ChangeSettingsBeforePrint()) { + if(self.settings.settings.plugins.m33fio.PreprocessOnTheFly() && self.settings.settings.plugins.m33fio.ChangeSettingsBeforePrint()) { // Show message showMessage("Printing Status", '', "Print", function() { @@ -4243,7 +4243,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -4268,7 +4268,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -4305,7 +4305,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -4338,13 +4338,13 @@ $(function() { var button = $(this); // Check if not continuing with print and using a Micro 3D printer - if(!continueWithPrint && !self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) { + if(!continueWithPrint && !self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) { // Stop default behavior event.stopImmediatePropagation(); // Check if using on the fly pre-processing and changing settings before print - if(self.settings.settings.plugins.m3dfio.PreprocessOnTheFly() && self.settings.settings.plugins.m3dfio.ChangeSettingsBeforePrint()) { + if(self.settings.settings.plugins.m33fio.PreprocessOnTheFly() && self.settings.settings.plugins.m33fio.ChangeSettingsBeforePrint()) { // Show message showMessage("Printing Status", '', "Print", function() { @@ -4354,7 +4354,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -4379,7 +4379,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -4417,7 +4417,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -4448,7 +4448,7 @@ $(function() { $(document).on("click", "#temp button[type=\"submit\"]", function(event) { // Check if using a Micro 3D printer - if(!self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) { + if(!self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) { // Get temperature var temperature = 0; @@ -4488,7 +4488,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -4504,7 +4504,7 @@ $(function() { $(document).on("click", "#temp ul.dropdown-menu a", function(event) { // Check if using a Micro 3D printer - if(!self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) { + if(!self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) { // Get temperature var temperature = 0; @@ -4539,7 +4539,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -4555,7 +4555,7 @@ $(function() { $("#job_pause").click(function(event) { // Check if using a Micro 3D printer - if(!self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) { + if(!self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) { // Stop default behavior event.stopImmediatePropagation(); @@ -4585,7 +4585,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -4621,7 +4621,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -4635,7 +4635,7 @@ $(function() { }); // Setting label click event - $("#settings_plugin_m3dfio label.control-label").click(function() { + $("#settings_plugin_m33fio label.control-label").click(function() { // Focus on input $(this).siblings("div.controls").find("input").focus(); @@ -4645,7 +4645,7 @@ $(function() { $("#job_cancel").click(function(event) { // Check if using a Micro 3D printer - if(!self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) { + if(!self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) { // Stop default behavior event.stopImmediatePropagation(); @@ -4655,7 +4655,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -4754,7 +4754,7 @@ $(function() { }); // Settings checkbox change event - $("#settings_plugin_m3dfio input[type=\"checkbox\"]").change(function() { + $("#settings_plugin_m33fio input[type=\"checkbox\"]").change(function() { // Initialize variables var parent = $(this).closest("div.control-group"); @@ -4903,7 +4903,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -5020,7 +5020,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -5054,7 +5054,7 @@ $(function() { success: function(data) { // Set using provided profile - var usingProvidedProfile = (slicerName == "cura" || slicerName == "slic3r") && (slicerProfileName == "m3d_pla" || slicerProfileName == "m3d_abs" || slicerProfileName == "m3d_hips" || slicerProfileName == "m3d_flx" || slicerProfileName == "m3d_tgh" || slicerProfileName == "m3d_abs-r"); + var usingProvidedProfile = (slicerName == "cura" || slicerName == "slic3r") && (slicerProfileName == "micro_3d_pla" || slicerProfileName == "micro_3d_abs" || slicerProfileName == "micro_3d_hips" || slicerProfileName == "micro_3d_flx" || slicerProfileName == "micro_3d_tgh" || slicerProfileName == "micro_3d_abs-r"); // Hide dialog $("#slicing_configuration_dialog").removeClass("in"); @@ -5077,33 +5077,33 @@ $(function() {

Basic Settings

` + (usingProvidedProfile ? `Medium Quality` : `Unknown Quality`) + `

- - - - - - + + + + + +

` + (usingProvidedProfile ? `Medium Fill` : `Unknown Fill`) + `

- - - - - - - + + + + + + +

` + (usingProvidedProfile ? `Honeycomb Fill Pattern` : `Unknown Fill Pattern`) + `

- - - - - - - - + + + + + + + +
@@ -5428,19 +5428,19 @@ $(function() { // Open and close setting groups if(typeof localStorage.basicSettingsOpen === "undefined" || localStorage.basicSettingsOpen == "true") - $("#slicing_configuration_dialog.profile .modal-extra div.group.basic").addClass("noTransition").removeClass("closed").css("background-image", "url(" + PLUGIN_BASEURL + "m3dfio/static/img/up-arrow.png"); + $("#slicing_configuration_dialog.profile .modal-extra div.group.basic").addClass("noTransition").removeClass("closed").css("background-image", "url(" + PLUGIN_BASEURL + "m33fio/static/img/up-arrow.png"); else - $("#slicing_configuration_dialog.profile .modal-extra div.group.basic").addClass("noTransition closed").css("background-image", "url(" + PLUGIN_BASEURL + "m3dfio/static/img/down-arrow.png"); + $("#slicing_configuration_dialog.profile .modal-extra div.group.basic").addClass("noTransition closed").css("background-image", "url(" + PLUGIN_BASEURL + "m33fio/static/img/down-arrow.png"); if(typeof localStorage.manualSettingsOpen === "undefined" || localStorage.manualSettingsOpen == "false") - $("#slicing_configuration_dialog.profile .modal-extra div.group.manual").addClass("noTransition closed").css("background-image", "url(" + PLUGIN_BASEURL + "m3dfio/static/img/down-arrow.png"); + $("#slicing_configuration_dialog.profile .modal-extra div.group.manual").addClass("noTransition closed").css("background-image", "url(" + PLUGIN_BASEURL + "m33fio/static/img/down-arrow.png"); else - $("#slicing_configuration_dialog.profile .modal-extra div.group.manual").addClass("noTransition").removeClass("closed").css("background-image", "url(" + PLUGIN_BASEURL + "m3dfio/static/img/up-arrow.png"); + $("#slicing_configuration_dialog.profile .modal-extra div.group.manual").addClass("noTransition").removeClass("closed").css("background-image", "url(" + PLUGIN_BASEURL + "m33fio/static/img/up-arrow.png"); if(typeof localStorage.advancedSettingsOpen === "undefined" || localStorage.advancedSettingsOpen == "false") - $("#slicing_configuration_dialog.profile .modal-extra div.group.advanced").addClass("noTransition closed").css("background-image", "url(" + PLUGIN_BASEURL + "m3dfio/static/img/down-arrow.png"); + $("#slicing_configuration_dialog.profile .modal-extra div.group.advanced").addClass("noTransition closed").css("background-image", "url(" + PLUGIN_BASEURL + "m33fio/static/img/down-arrow.png"); else { - $("#slicing_configuration_dialog.profile .modal-extra div.group.advanced").addClass("noTransition").removeClass("closed").css("background-image", "url(" + PLUGIN_BASEURL + "m3dfio/static/img/up-arrow.png"); + $("#slicing_configuration_dialog.profile .modal-extra div.group.advanced").addClass("noTransition").removeClass("closed").css("background-image", "url(" + PLUGIN_BASEURL + "m33fio/static/img/up-arrow.png"); $("#slicing_configuration_dialog.profile .modal-extra div.group.advanced > span").css("display", "block"); } @@ -5490,7 +5490,7 @@ $(function() { // Open or close group if(group.hasClass("closed")) { - group.removeClass("closed").css("background-image", "url(" + PLUGIN_BASEURL + "m3dfio/static/img/up-arrow.png"); + group.removeClass("closed").css("background-image", "url(" + PLUGIN_BASEURL + "m33fio/static/img/up-arrow.png"); if(group.hasClass("advanced")) setTimeout(function() { @@ -5506,7 +5506,7 @@ $(function() { localStorage.advancedSettingsOpen = "true"; } else { - group.addClass("closed").css("background-image", "url(" + PLUGIN_BASEURL + "m3dfio/static/img/down-arrow.png"); + group.addClass("closed").css("background-image", "url(" + PLUGIN_BASEURL + "m33fio/static/img/down-arrow.png"); if(group.hasClass("advanced")) setTimeout(function() { @@ -5690,7 +5690,7 @@ $(function() { }); } - if(usingProvidedProfile && (slicerProfileName == "m3d_abs" || slicerProfileName == "m3d_hips")) { + if(usingProvidedProfile && (slicerProfileName == "micro_3d_abs" || slicerProfileName == "micro_3d_hips")) { if(slicerName == "cura") changedSettings[0]["bottom_layer_speed"] = 16; @@ -5770,7 +5770,7 @@ $(function() { brim_width: $("#slicing_configuration_dialog.profile .brimWidth").val() }); - if(usingProvidedProfile && (slicerProfileName == "m3d_abs" || slicerProfileName == "m3d_hips")) { + if(usingProvidedProfile && (slicerProfileName == "micro_3d_abs" || slicerProfileName == "micro_3d_hips")) { if(slicerName == "cura") changedSettings[0]["bottom_layer_speed"] = 16; @@ -5908,7 +5908,7 @@ $(function() { retract_speed: 20 }); - if(usingProvidedProfile && (slicerProfileName == "m3d_abs" || slicerProfileName == "m3d_hips")) { + if(usingProvidedProfile && (slicerProfileName == "micro_3d_abs" || slicerProfileName == "micro_3d_hips")) { if(slicerName == "slic3r") changedSettings[0]["retract_speed"] = 25; } @@ -6048,7 +6048,7 @@ $(function() { }); } - if(usingProvidedProfile && (slicerProfileName == "m3d_abs" || slicerProfileName == "m3d_hips")) { + if(usingProvidedProfile && (slicerProfileName == "micro_3d_abs" || slicerProfileName == "micro_3d_hips")) { if(slicerName == "cura") changedSettings[0]["travel_speed"] = $(this).val(); @@ -6304,7 +6304,7 @@ $(function() { break; } - if(usingProvidedProfile && (slicerProfileName == "m3d_abs" || slicerProfileName == "m3d_hips" || slicerProfileName == "m3d_abs-r")) { + if(usingProvidedProfile && (slicerProfileName == "micro_3d_abs" || slicerProfileName == "micro_3d_hips" || slicerProfileName == "micro_3d_abs-r")) { if(slicerName == "cura") changedSettings[0]["fan_full_height"] = fan_full_height; } @@ -6527,7 +6527,7 @@ $(function() { // Send request $.ajax({ - url: PLUGIN_BASEURL + "m3dfio/upload", + url: PLUGIN_BASEURL + "m33fio/upload", type: "POST", data: $.param(parameter), dataType: "json", @@ -6592,43 +6592,43 @@ $(function() { $("#slicing_configuration_dialog p.currentMenu").text("Modify Model"); $("#slicing_configuration_dialog .modal-extra").empty().append(`
- - - - - - - - + + + + + + + +
- - - - - - - - - - + + + + + + + + + +
- - - - - - - - - - + + + + + + + + + +
- - + +
@@ -6640,8 +6640,8 @@ $(function() {
- - + +
@@ -6655,7 +6655,7 @@ $(function() { $("#slicing_configuration_dialog .modal-extra div.printer button[data-color=\"" + viewportPrinterColor + "\"]").addClass("disabled"); $("#slicing_configuration_dialog .modal-extra div.filament button[data-color=\"" + viewportFilamentColor + "\"]").addClass("disabled"); $("#slicing_configuration_dialog .modal-extra").append(viewport.renderer.domElement); - if(self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) + if(self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) $("#slicing_configuration_dialog .modal-footer p.warning").text("Boundary dimensions are designed for a Micro 3D printer"); // Image drag event @@ -6929,7 +6929,7 @@ $(function() { side: THREE.DoubleSide, depthWrite: false })); - viewport.cutShape.position.set(0, (bedHighMaxZ - bedLowMinZ) / 2 + parseFloat(self.settings.settings.plugins.m3dfio.ExternalBedHeight()), 0); + viewport.cutShape.position.set(0, (bedHighMaxZ - bedLowMinZ) / 2 + parseFloat(self.settings.settings.plugins.m33fio.ExternalBedHeight()), 0); viewport.cutShape.rotation.set(0, 0, 0); // Create cut shape outline @@ -7215,7 +7215,7 @@ $(function() { // Send request $.ajax({ - url: PLUGIN_BASEURL + "m3dfio/upload", + url: PLUGIN_BASEURL + "m33fio/upload", type: "POST", data: $.param(parameter), dataType: "json", @@ -7269,10 +7269,10 @@ $(function() { } // Check if printing after slicing, a printer is connected, and using a Micro 3D printer - if(afterSlicingAction == "print" && self.printerState.stateString() !== "Offline" && !self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) { + if(afterSlicingAction == "print" && self.printerState.stateString() !== "Offline" && !self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) { // Check if using on the fly pre-processing and changing settings before print - if(self.settings.settings.plugins.m3dfio.PreprocessOnTheFly() && self.settings.settings.plugins.m3dfio.ChangeSettingsBeforePrint()) { + if(self.settings.settings.plugins.m33fio.PreprocessOnTheFly() && self.settings.settings.plugins.m33fio.ChangeSettingsBeforePrint()) { // Show message showMessage("Printing Status", '', "Print", function() { @@ -7282,7 +7282,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7308,7 +7308,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7348,7 +7348,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7431,7 +7431,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7470,7 +7470,7 @@ $(function() { function sendCommand(event) { // Check if using a Micro 3D printer - if(!self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) { + if(!self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) { // Check if command is reserved if($("#terminal-command").val().trim()[0] == 'M' && parseInt($("#terminal-command").val().trim().substr(1)) > 65535) { @@ -7499,7 +7499,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7529,7 +7529,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7554,7 +7554,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7579,7 +7579,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7604,7 +7604,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7629,7 +7629,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7654,7 +7654,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7669,7 +7669,7 @@ $(function() { $("#control #control-xyhome").attr("title", "Set extruder's X position to 54 and Y position to 50").click(function(event) { // Check if using a Micro 3D printer - if(!self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) { + if(!self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) { // Stop default behavior event.stopImmediatePropagation(); @@ -7683,7 +7683,7 @@ $(function() { locationCallback = function() { // Check if extruder is too high to successfully home - if(currentZ >= bedMediumMaxZ - parseFloat(self.settings.settings.plugins.m3dfio.ExternalBedHeight())) + if(currentZ >= bedMediumMaxZ - parseFloat(self.settings.settings.plugins.m33fio.ExternalBedHeight())) // Show message showMessage("Movement Status", "Extruder is too high to home without running into the printer's frame", "OK", function() { @@ -7703,7 +7703,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7717,7 +7717,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7743,7 +7743,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7768,7 +7768,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7793,7 +7793,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7808,7 +7808,7 @@ $(function() { $("#control > div.jog-panel.extruder > div > button:nth-of-type(4)").attr("title", "Sets extruder's temperature to the specified amount").click(function(event) { // Check if not printing and using a Micro 3D printer - if(self.printerState.isPrinting() !== true && !self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) { + if(self.printerState.isPrinting() !== true && !self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) { // Set commands var commands = [ @@ -7852,12 +7852,12 @@ $(function() { // Set commands var commands = [ - "M104 S" + parseInt($(this).text().substr(12)) + (!self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter() ? '*' : '') + "M104 S" + parseInt($(this).text().substr(12)) + (!self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter() ? '*' : '') ]; // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7872,7 +7872,7 @@ $(function() { $("#control > div.jog-panel.extruder").find("div > div.heatbed > button:first-of-type").attr("title", "Sets heatbed's temperature to the specified amount").click(function(event) { // Check if not printing and using a Micro 3D printer - if(self.printerState.isPrinting() !== true && !self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) { + if(self.printerState.isPrinting() !== true && !self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) { // Set commands var commands = [ @@ -7916,12 +7916,12 @@ $(function() { // Set commands var commands = [ - "M140 S" + parseInt($(this).text().substr(12)) + (!self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter() ? '*' : '') + "M140 S" + parseInt($(this).text().substr(12)) + (!self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter() ? '*' : '') ]; // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7937,12 +7937,12 @@ $(function() { // Set commands var commands = [ - "M106 S255" + (!self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter() ? '*' : '') + "M106 S255" + (!self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter() ? '*' : '') ]; // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7958,12 +7958,12 @@ $(function() { // Set commands var commands = [ - "M107" + (!self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter() ? '*' : '') + "M107" + (!self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter() ? '*' : '') ]; // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7984,7 +7984,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -7998,10 +7998,10 @@ $(function() { // Print settings control $("#control > div.jog-panel.general").find("button:nth-of-type(11)").attr("title", "Opens print settings").click(function() { - // Open M3D Fio settings + // Open M33 Fio settings $("#navbar_show_settings").click(); - $("#settings_plugin_m3dfio").addClass("active").siblings(".active").removeClass("active"); - $("#settings_plugin_m3dfio_link").addClass("active").siblings(".active").removeClass("active"); + $("#settings_plugin_m33fio").addClass("active").siblings(".active").removeClass("active"); + $("#settings_plugin_m33fio_link").addClass("active").siblings(".active").removeClass("active"); }); // Emergency stop control @@ -8009,7 +8009,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8107,7 +8107,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8129,7 +8129,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8142,7 +8142,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8157,7 +8157,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8260,7 +8260,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8281,7 +8281,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8294,7 +8294,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8309,7 +8309,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8338,7 +8338,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8418,7 +8418,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8431,7 +8431,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8444,7 +8444,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8547,7 +8547,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8560,7 +8560,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8573,7 +8573,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8586,7 +8586,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8615,7 +8615,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8639,7 +8639,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8663,7 +8663,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8687,7 +8687,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8710,12 +8710,12 @@ $(function() { // Set commands var commands = [ "G90", - "G0 Z" + (currentFirmwareType === "iMe" ? 0 : (parseFloat(self.settings.settings.plugins.m3dfio.FrontLeftOrientation()) + parseFloat(self.settings.settings.plugins.m3dfio.FrontLeftOffset()))) + " F90" + "G0 Z" + (currentFirmwareType === "iMe" ? 0 : (parseFloat(self.settings.settings.plugins.m33fio.FrontLeftOrientation()) + parseFloat(self.settings.settings.plugins.m33fio.FrontLeftOffset()))) + " F90" ]; // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8743,12 +8743,12 @@ $(function() { // Set commands var commands = [ "G90", - "G0 Z" + (currentFirmwareType === "iMe" ? 0 : (parseFloat(self.settings.settings.plugins.m3dfio.FrontRightOrientation()) + parseFloat(self.settings.settings.plugins.m3dfio.FrontRightOffset()))) + " F90" + "G0 Z" + (currentFirmwareType === "iMe" ? 0 : (parseFloat(self.settings.settings.plugins.m33fio.FrontRightOrientation()) + parseFloat(self.settings.settings.plugins.m33fio.FrontRightOffset()))) + " F90" ]; // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8776,12 +8776,12 @@ $(function() { // Set commands var commands = [ "G90", - "G0 Z" + (currentFirmwareType === "iMe" ? 0 : (parseFloat(self.settings.settings.plugins.m3dfio.BackRightOrientation()) + parseFloat(self.settings.settings.plugins.m3dfio.BackRightOffset()))) + " F90" + "G0 Z" + (currentFirmwareType === "iMe" ? 0 : (parseFloat(self.settings.settings.plugins.m33fio.BackRightOrientation()) + parseFloat(self.settings.settings.plugins.m33fio.BackRightOffset()))) + " F90" ]; // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8809,12 +8809,12 @@ $(function() { // Set commands var commands = [ "G90", - "G0 Z" + (currentFirmwareType === "iMe" ? 0 : (parseFloat(self.settings.settings.plugins.m3dfio.BackLeftOrientation()) + parseFloat(self.settings.settings.plugins.m3dfio.BackLeftOffset()))) + " F90" + "G0 Z" + (currentFirmwareType === "iMe" ? 0 : (parseFloat(self.settings.settings.plugins.m33fio.BackLeftOrientation()) + parseFloat(self.settings.settings.plugins.m33fio.BackLeftOffset()))) + " F90" ]; // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8852,7 +8852,7 @@ $(function() { // Set commands commands = [ - "M618 S" + eepromOffsets["bedOffsetFrontLeft"]["offset"] + " T" + eepromOffsets["bedOffsetFrontLeft"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m3dfio.FrontLeftOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m3dfio.FrontLeftOrientation()))), + "M618 S" + eepromOffsets["bedOffsetFrontLeft"]["offset"] + " T" + eepromOffsets["bedOffsetFrontLeft"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m33fio.FrontLeftOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m33fio.FrontLeftOrientation()))), "M619 S" + eepromOffsets["bedOffsetFrontLeft"]["offset"] + " T" + eepromOffsets["bedOffsetFrontLeft"]["bytes"], "M65536;wait" ]; @@ -8883,7 +8883,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8896,7 +8896,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8934,7 +8934,7 @@ $(function() { // Set commands commands = [ - "M618 S" + eepromOffsets["bedOffsetFrontRight"]["offset"] + " T" + eepromOffsets["bedOffsetFrontRight"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m3dfio.FrontRightOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m3dfio.FrontRightOrientation()))), + "M618 S" + eepromOffsets["bedOffsetFrontRight"]["offset"] + " T" + eepromOffsets["bedOffsetFrontRight"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m33fio.FrontRightOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m33fio.FrontRightOrientation()))), "M619 S" + eepromOffsets["bedOffsetFrontRight"]["offset"] + " T" + eepromOffsets["bedOffsetFrontRight"]["bytes"], "M65536;wait" ]; @@ -8965,7 +8965,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -8978,7 +8978,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9016,7 +9016,7 @@ $(function() { // Set commands commands = [ - "M618 S" + eepromOffsets["bedOffsetBackRight"]["offset"] + " T" + eepromOffsets["bedOffsetBackRight"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m3dfio.BackRightOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m3dfio.BackRightOrientation()))), + "M618 S" + eepromOffsets["bedOffsetBackRight"]["offset"] + " T" + eepromOffsets["bedOffsetBackRight"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m33fio.BackRightOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m33fio.BackRightOrientation()))), "M619 S" + eepromOffsets["bedOffsetBackRight"]["offset"] + " T" + eepromOffsets["bedOffsetBackRight"]["bytes"], "M65536;wait" ]; @@ -9047,7 +9047,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9060,7 +9060,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9098,7 +9098,7 @@ $(function() { // Set commands commands = [ - "M618 S" + eepromOffsets["bedOffsetBackLeft"]["offset"] + " T" + eepromOffsets["bedOffsetBackLeft"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m3dfio.BackLeftOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m3dfio.BackLeftOrientation()))), + "M618 S" + eepromOffsets["bedOffsetBackLeft"]["offset"] + " T" + eepromOffsets["bedOffsetBackLeft"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m33fio.BackLeftOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m33fio.BackLeftOrientation()))), "M619 S" + eepromOffsets["bedOffsetBackLeft"]["offset"] + " T" + eepromOffsets["bedOffsetBackLeft"]["bytes"], "M65536;wait" ]; @@ -9129,7 +9129,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9142,7 +9142,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9224,7 +9224,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9237,7 +9237,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9250,7 +9250,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9288,7 +9288,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9315,7 +9315,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9335,13 +9335,13 @@ $(function() { $("#control > div.jog-panel.calibration").find("div > button:nth-of-type(17)").attr("title", "Prints 0.4mm test border").click(function(event) { // Show message - showMessage("Calibration Status", "It's recommended to print this test border after completely calibrating the bed to ensure that the calibration is accurate. The test border should print as a solid, even extruded border.The 'Back Left Offset', 'Back Right Offset', 'Front Right Offset', and 'Front Left Offset' values can be adjusted to correct any issues with it. If the test border contains squiggly ripples, then it is too high.If the test border contains missing gaps, then it is too low.It's also recommended to print a model with a raft after this is done to see if the 'Bed Height Offset' value needs to be adjusted. If the raft does not securely stick to the bed, then it is too high. If the model isn't easily removed from the raft, then it is too low.

All the referenced values can be found by clicking the 'Print settings' button in the 'General' section. Proceed?", "Yes", function() { + showMessage("Calibration Status", "It's recommended to print this test border after completely calibrating the bed to ensure that the calibration is accurate. The test border should print as a solid, even extruded border.The 'Back Left Offset', 'Back Right Offset', 'Front Right Offset', and 'Front Left Offset' values can be adjusted to correct any issues with it. If the test border contains squiggly ripples, then it is too high.If the test border contains missing gaps, then it is too low.It's also recommended to print a model with a raft after this is done to see if the 'Bed Height Offset' value needs to be adjusted. If the raft does not securely stick to the bed, then it is too high. If the model isn't easily removed from the raft, then it is too low.

All the referenced values can be found by clicking the 'Print settings' button in the 'General' section. Proceed?", "Yes", function() { // Hide message hideMessage(); // Check if using on the fly pre-processing and changing settings before print - if(self.settings.settings.plugins.m3dfio.PreprocessOnTheFly() && self.settings.settings.plugins.m3dfio.ChangeSettingsBeforePrint()) { + if(self.settings.settings.plugins.m33fio.PreprocessOnTheFly() && self.settings.settings.plugins.m33fio.ChangeSettingsBeforePrint()) { // Show message showMessage("Printing Status", '', "Print", function() { @@ -9351,7 +9351,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9376,7 +9376,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9406,7 +9406,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9427,7 +9427,7 @@ $(function() { $("#control > div.jog-panel.calibration").find("div > button:nth-of-type(18)").attr("title", "Prints a specified backlash calibration").click(function(event) { // Show message - showMessage("Calibration Status", "It's recommended to print the backlash calibration prints after the print bed has been accurately calibrated. Make sure to set the 'Backlash X' and 'Backlash Y' values to 0 before printing a backlash calibration print which will print the model without any backlash compensation applied to it. The X backlash calibration prints and Y backlash calibration prints each assist in determining the X and Y backlash respecitvley.

The backlash values can be detemined by finding the sample with the highest possible value that doesn't curve.If none of the samples curve when using the 0.0‑0.99 prints then use the 0.70‑1.69 prints. For more information check out Muele's quick backlash calibration method.

All the referenced values can be found by clicking the 'Print settings' button in the 'General' section.

Choose a backlash calibration print to continue.", "Cancel", function() { + showMessage("Calibration Status", "It's recommended to print the backlash calibration prints after the print bed has been accurately calibrated. Make sure to set the 'Backlash X' and 'Backlash Y' values to 0 before printing a backlash calibration print which will print the model without any backlash compensation applied to it. The X backlash calibration prints and Y backlash calibration prints each assist in determining the X and Y backlash respecitvley.

The backlash values can be detemined by finding the sample with the highest possible value that doesn't curve.If none of the samples curve when using the 0.0‑0.99 prints then use the 0.70‑1.69 prints. For more information check out
Muele's quick backlash calibration method.

All the referenced values can be found by clicking the 'Print settings' button in the 'General' section.

Choose a backlash calibration print to continue.", "Cancel", function() { // Hide message hideMessage(); @@ -9462,7 +9462,7 @@ $(function() { } // Check if using on the fly pre-processing and changing settings before print - if(self.settings.settings.plugins.m3dfio.PreprocessOnTheFly() && self.settings.settings.plugins.m3dfio.ChangeSettingsBeforePrint()) { + if(self.settings.settings.plugins.m33fio.PreprocessOnTheFly() && self.settings.settings.plugins.m33fio.ChangeSettingsBeforePrint()) { // Show message showMessage("Printing Status", '', "Print", function() { @@ -9472,7 +9472,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9497,7 +9497,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9527,7 +9527,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9673,7 +9673,7 @@ $(function() { // Set commands commands = [ - "M618 S" + eepromOffsets["bedOffsetFrontLeft"]["offset"] + " T" + eepromOffsets["bedOffsetFrontLeft"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m3dfio.FrontLeftOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m3dfio.FrontLeftOrientation()))), + "M618 S" + eepromOffsets["bedOffsetFrontLeft"]["offset"] + " T" + eepromOffsets["bedOffsetFrontLeft"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m33fio.FrontLeftOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m33fio.FrontLeftOrientation()))), "M619 S" + eepromOffsets["bedOffsetFrontLeft"]["offset"] + " T" + eepromOffsets["bedOffsetFrontLeft"]["bytes"], "M65536;wait" ]; @@ -9715,7 +9715,7 @@ $(function() { // Set commands commands = [ - "M618 S" + eepromOffsets["bedOffsetFrontRight"]["offset"] + " T" + eepromOffsets["bedOffsetFrontRight"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m3dfio.FrontRightOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m3dfio.FrontRightOrientation()))), + "M618 S" + eepromOffsets["bedOffsetFrontRight"]["offset"] + " T" + eepromOffsets["bedOffsetFrontRight"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m33fio.FrontRightOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m33fio.FrontRightOrientation()))), "M619 S" + eepromOffsets["bedOffsetFrontRight"]["offset"] + " T" + eepromOffsets["bedOffsetFrontRight"]["bytes"], "M65536;wait" ]; @@ -9757,7 +9757,7 @@ $(function() { // Set commands commands = [ - "M618 S" + eepromOffsets["bedOffsetBackRight"]["offset"] + " T" + eepromOffsets["bedOffsetBackRight"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m3dfio.BackRightOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m3dfio.BackRightOrientation()))), + "M618 S" + eepromOffsets["bedOffsetBackRight"]["offset"] + " T" + eepromOffsets["bedOffsetBackRight"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m33fio.BackRightOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m33fio.BackRightOrientation()))), "M619 S" + eepromOffsets["bedOffsetBackRight"]["offset"] + " T" + eepromOffsets["bedOffsetBackRight"]["bytes"], "M65536;wait" ]; @@ -9799,7 +9799,7 @@ $(function() { // Set commands commands = [ - "M618 S" + eepromOffsets["bedOffsetBackLeft"]["offset"] + " T" + eepromOffsets["bedOffsetBackLeft"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m3dfio.BackLeftOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m3dfio.BackLeftOrientation()))), + "M618 S" + eepromOffsets["bedOffsetBackLeft"]["offset"] + " T" + eepromOffsets["bedOffsetBackLeft"]["bytes"] + " P" + floatToBinary(currentFirmwareType === "iMe" ? (currentZ + parseFloat(self.settings.settings.plugins.m33fio.BackLeftOffset())) : (currentZ - parseFloat(self.settings.settings.plugins.m33fio.BackLeftOrientation()))), "M619 S" + eepromOffsets["bedOffsetBackLeft"]["offset"] + " T" + eepromOffsets["bedOffsetBackLeft"]["bytes"], "M65536;wait" ]; @@ -9845,7 +9845,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9858,7 +9858,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9871,7 +9871,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9885,7 +9885,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9898,7 +9898,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9911,7 +9911,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9925,7 +9925,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9938,7 +9938,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9951,7 +9951,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9965,7 +9965,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9978,7 +9978,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -9991,7 +9991,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10005,7 +10005,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10025,7 +10025,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10038,7 +10038,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10051,7 +10051,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10064,7 +10064,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10077,7 +10077,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10090,7 +10090,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10103,7 +10103,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10179,7 +10179,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10202,7 +10202,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10228,7 +10228,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10251,7 +10251,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10265,7 +10265,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10278,7 +10278,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10298,7 +10298,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10312,7 +10312,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10348,7 +10348,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10412,7 +10412,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10453,7 +10453,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10473,7 +10473,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10506,7 +10506,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10526,7 +10526,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10559,7 +10559,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10579,7 +10579,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10612,7 +10612,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10632,7 +10632,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10665,7 +10665,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10707,7 +10707,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10727,7 +10727,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10755,7 +10755,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10784,7 +10784,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10809,7 +10809,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10829,7 +10829,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10862,7 +10862,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10882,7 +10882,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10937,7 +10937,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -10957,7 +10957,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11033,7 +11033,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11053,7 +11053,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11074,7 +11074,7 @@ $(function() { }); // OctoPrint instance manager change event - $("#navbar_plugin_m3dfio > select").change(function() { + $("#navbar_plugin_m33fio > select").change(function() { // Check if creating a new instance if($(this).val() == "new") { @@ -11084,7 +11084,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11127,7 +11127,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11143,7 +11143,7 @@ $(function() { if(data.value == "OK") // Go through all options - $("#navbar_plugin_m3dfio > select > option").each(function() { + $("#navbar_plugin_m33fio > select > option").each(function() { // Check if another OctoPrint instance exists if($(this).attr("value") != "new" && $(this).attr("value") != "close" && $(this).attr("value") != window.location.port) { @@ -11228,7 +11228,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11248,7 +11248,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11272,7 +11272,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11300,8 +11300,8 @@ $(function() { // On data update message self.onDataUpdaterPluginMessage = function(plugin, data) { - // Check if message is not from M3D Fio - if(plugin != "m3dfio") + // Check if message is not from M33 Fio + if(plugin != "m33fio") // Return return; @@ -11358,7 +11358,7 @@ $(function() { localStorage.viewportPrinterColor = viewportPrinterColor; // Update connected printer details - $("#navbar_plugin_m3dfio > a").text((data.serialNumber.match(/^[0-9a-z]+$/i) ? data.serialNumber.slice(0, 2) + '-' + data.serialNumber.slice(2, 4) + '-' + data.serialNumber.slice(4, 6) + '-' + data.serialNumber.slice(6, 8) + '-' + data.serialNumber.slice(8, 10) + '-' + data.serialNumber.slice(10, 13) + '-' + data.serialNumber.slice(13, 16) : "Printer") + " at " + data.serialPort); + $("#navbar_plugin_m33fio > a").text((data.serialNumber.match(/^[0-9a-z]+$/i) ? data.serialNumber.slice(0, 2) + '-' + data.serialNumber.slice(2, 4) + '-' + data.serialNumber.slice(4, 6) + '-' + data.serialNumber.slice(6, 8) + '-' + data.serialNumber.slice(8, 10) + '-' + data.serialNumber.slice(10, 13) + '-' + data.serialNumber.slice(13, 16) : "Printer") + " at " + data.serialPort); } // Otherwise check if data is that a Micro 3D isn't connected @@ -11368,14 +11368,14 @@ $(function() { $("#control > div.jog-panel.advanced").find("div > button").removeClass("current"); $("#control > div.jog-panel.eeprom table input").val(eepromDisplayType == "ascii" ? "?" : (eepromDisplayType == "decimal" ? "???" : "??")); $("#control div.jog-panel.advanced p").text(''); - $("#navbar_plugin_m3dfio > a").text(''); + $("#navbar_plugin_m33fio > a").text(''); } // Otherwise check if data is that a heatbed is detected else if(data.value == "Heatbed Detected") { // Display heatbed controls - $("#control .heatbed, #settings_plugin_m3dfio .heatbed, body > div.page-container > div.message .heatbed").css("display", "block"); + $("#control .heatbed, #settings_plugin_m33fio .heatbed, body > div.page-container > div.message .heatbed").css("display", "block"); $("#control > div.jog-panel.extruder").find("h1:not(.heatbed)").text("Tools"); } @@ -11383,7 +11383,7 @@ $(function() { else if(data.value == "Heatbed Not Detected") { // Hide heatbed controls - $("#control .heatbed, #settings_plugin_m3dfio .heatbed, body > div.page-container > div.message .heatbed").css("display", "none"); + $("#control .heatbed, #settings_plugin_m33fio .heatbed, body > div.page-container > div.message .heatbed").css("display", "none"); $("#control > div.jog-panel.extruder").find("h1:not(.heatbed)").text("Extruder"); } @@ -11391,25 +11391,25 @@ $(function() { else if(data.value == "Camera Hostable" && typeof data.cameras !== "undefined") { // Display camera server settings - $("#settings_plugin_m3dfio .camera").css("display", "block"); + $("#settings_plugin_m33fio .camera").css("display", "block"); // Reset cameras - $("#settings_plugin_m3dfio .camera select > option").remove(); + $("#settings_plugin_m33fio .camera select > option").remove(); // Go through all cameras var currentCamera = 0; for(var i = 0; i < data.cameras.length; i++) { // Insert option - $("#settings_plugin_m3dfio .camera select").append(""); + $("#settings_plugin_m33fio .camera select").append(""); // Set current port - if(typeof self.settings.settings !== "undefined" && data.cameras[i] == self.settings.settings.plugins.m3dfio.CameraPort) + if(typeof self.settings.settings !== "undefined" && data.cameras[i] == self.settings.settings.plugins.m33fio.CameraPort) currentCamera = i; } // Go through all options - $("#settings_plugin_m3dfio .camera select > option").each(function() { + $("#settings_plugin_m33fio .camera select > option").each(function() { // Check if current port if($(this).attr("value") == data.cameras[currentCamera]) { @@ -11427,7 +11427,7 @@ $(function() { else if(data.value == "Camera Not Hostable") // Display camera server settings - $("#settings_plugin_m3dfio .camera").css("display", "none"); + $("#settings_plugin_m33fio .camera").css("display", "none"); // Otherwise check if data is current location else if(data.value == "Current Location" && typeof locationCallback === "function" && typeof data.locationX !== "undefined" && typeof data.locationY !== "undefined" && typeof data.locationZ !== "undefined" && typeof data.locationE !== "undefined") { @@ -11496,13 +11496,13 @@ $(function() { else if(data.value == "Using Shared Library") // Display shared library settings - $("#settings_plugin_m3dfio .sharedLibrary").css("display", "block"); + $("#settings_plugin_m33fio .sharedLibrary").css("display", "block"); // Otherwise check if data is not using shared library else if(data.value == "Not Using Shared Library") // Hide shared library settings - $("#settings_plugin_m3dfio .sharedLibrary").css("display", "none"); + $("#settings_plugin_m33fio .sharedLibrary").css("display", "none"); // Otherwise check if data is a reminder else if(data.value == "Reminder" && typeof data.type !== "undefined") { @@ -11547,7 +11547,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11588,7 +11588,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11623,14 +11623,14 @@ $(function() { else if(data.value == "Process Details" && typeof data.processes !== "undefined") { // Reset process details - $("#navbar_plugin_m3dfio > select > option:not([value=\"new\"]):not([value=\"close\"])").remove(); + $("#navbar_plugin_m33fio > select > option:not([value=\"new\"]):not([value=\"close\"])").remove(); // Go through all processes var currentPort; for(var i = 0; i < data.processes.length; i++) // Go through all options - $("#navbar_plugin_m3dfio > select > option").each(function() { + $("#navbar_plugin_m33fio > select > option").each(function() { // Check if at end of options or at ordered position if($(this).attr("value") == "new" || parseInt($(this).attr("value")) > parseInt(data.processes[i][0])) { @@ -11648,7 +11648,7 @@ $(function() { }); // Go through all options - $("#navbar_plugin_m3dfio > select > option").each(function() { + $("#navbar_plugin_m33fio > select > option").each(function() { // Check if current port if(parseInt($(this).attr("value")) == parseInt(data.processes[currentPort][0])) { @@ -11692,7 +11692,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11712,7 +11712,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11875,7 +11875,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11888,7 +11888,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11901,7 +11901,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -11914,7 +11914,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12033,7 +12033,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12046,7 +12046,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12059,7 +12059,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12159,7 +12159,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12175,7 +12175,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12198,7 +12198,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12246,13 +12246,13 @@ $(function() { else if(data.value == "Enable GPIO Settings") // Show GPIO buttons - $("#settings_plugin_m3dfio .gpio").css("display", "block"); + $("#settings_plugin_m33fio .gpio").css("display", "block"); // Otherwise check if data is to disable GPIO settings else if(data.value == "Disable GPIO Settings") // Hide GPIO buttons - $("#settings_plugin_m3dfio .gpio").css("display", "none"); + $("#settings_plugin_m33fio .gpio").css("display", "none"); // Otherwise check if data is to enable GPIO buttons else if(data.value == "Enable GPIO Buttons") @@ -12311,7 +12311,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12482,7 +12482,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12496,7 +12496,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12518,7 +12518,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12531,7 +12531,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12555,7 +12555,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12568,7 +12568,7 @@ $(function() { // Send request $.ajax({ - url: API_BASEURL + "plugin/m3dfio", + url: API_BASEURL + "plugin/m33fio", type: "POST", dataType: "json", data: JSON.stringify({ @@ -12589,18 +12589,18 @@ $(function() { self.onUserLoggedIn = function() { // Enable managing OctoPrint instances - $("#navbar_plugin_m3dfio > select > option").last().prop("disabled", false).prev().prop("disabled", false); + $("#navbar_plugin_m33fio > select > option").last().prop("disabled", false).prev().prop("disabled", false); // Disable closing initial OctoPrint instance if(window.location.port == 5000) - $("#navbar_plugin_m3dfio > select > option").last().prop("disabled", true) + $("#navbar_plugin_m33fio > select > option").last().prop("disabled", true) } // User log out event self.onUserLoggedOut = function() { // Disable managing OctoPrint instances - $("#navbar_plugin_m3dfio > select > option").last().prop("disabled", true).prev().prop("disabled", true); + $("#navbar_plugin_m33fio > select > option").last().prop("disabled", true).prev().prop("disabled", true); } // On startup complete @@ -12610,7 +12610,7 @@ $(function() { function disableSettings() { // Go through all settings that aren't dependant - $("#settings_plugin_m3dfio div.control-group:not(.dependant)").each(function() { + $("#settings_plugin_m33fio div.control-group:not(.dependant)").each(function() { // Initialize variables var parent = $(this) @@ -12642,16 +12642,16 @@ $(function() { self.settings.requestData().done(disableSettings); // Set mid-print filament change layer input - $("#gcode div.midPrintFilamentChange input").val(self.settings.settings.plugins.m3dfio.MidPrintFilamentChangeLayers()); + $("#gcode div.midPrintFilamentChange input").val(self.settings.settings.plugins.m33fio.MidPrintFilamentChangeLayers()); // Enable/disable Micro 3D printer specific features - if(self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) { + if(self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) { $(".micro3d").addClass("notUsingAMicro3DPrinter"); $("#temperature-graph").css("background-image", ''); } else { $(".micro3d").removeClass("notUsingAMicro3DPrinter"); - $("#temperature-graph").css("background-image", "url(" + PLUGIN_BASEURL + "m3dfio/static/img/graph-background.png"); + $("#temperature-graph").css("background-image", "url(" + PLUGIN_BASEURL + "m33fio/static/img/graph-background.png"); } // Check if printing or paused @@ -12727,16 +12727,16 @@ $(function() { function updateValues() { // Update mid-print filament change layer input - $("#gcode div.midPrintFilamentChange input").val(self.settings.settings.plugins.m3dfio.MidPrintFilamentChangeLayers()); + $("#gcode div.midPrintFilamentChange input").val(self.settings.settings.plugins.m33fio.MidPrintFilamentChangeLayers()); // Enable/disable Micro 3D printer specific features - if(self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter()) { + if(self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter()) { $(".micro3d").addClass("notUsingAMicro3DPrinter"); $("#temperature-graph").css("background-image", ''); } else { $(".micro3d").removeClass("notUsingAMicro3DPrinter"); - $("#temperature-graph").css("background-image", "url(" + PLUGIN_BASEURL + "m3dfio/static/img/graph-background.png"); + $("#temperature-graph").css("background-image", "url(" + PLUGIN_BASEURL + "m33fio/static/img/graph-background.png"); } } @@ -12751,7 +12751,7 @@ $(function() { self.onEventError = function(payload) { // Check if using an Micro 3D printer and error is an unhandled firmware or communication error - if(!self.settings.settings.plugins.m3dfio.NotUsingAMicro3DPrinter() && ($("div.ui-pnotify:last-of-type h4.ui-pnotify-title").text() == "Unhandled firmware error" || $("div.ui-pnotify:last-of-type h4.ui-pnotify-title").text() == "Unhandled communication error")) + if(!self.settings.settings.plugins.m33fio.NotUsingAMicro3DPrinter() && ($("div.ui-pnotify:last-of-type h4.ui-pnotify-title").text() == "Unhandled firmware error" || $("div.ui-pnotify:last-of-type h4.ui-pnotify-title").text() == "Unhandled communication error")) // Remove error $("div.ui-pnotify:last-of-type").remove(); @@ -12783,7 +12783,7 @@ $(function() { OCTOPRINT_VIEWMODELS.push([ // Constructor - M3DFioViewModel, + M33FioViewModel, ["printerStateViewModel", "temperatureViewModel", "settingsViewModel", "gcodeFilesViewModel", "slicingViewModel", "terminalViewModel", "loginStateViewModel"] ]); }); diff --git a/octoprint_m3dfio/static/js/three.min.js b/octoprint_m33fio/static/js/three.min.js similarity index 100% rename from octoprint_m3dfio/static/js/three.min.js rename to octoprint_m33fio/static/js/three.min.js diff --git a/octoprint_m3dfio/static/libraries/preprocessor_arm1176jzf-s.so b/octoprint_m33fio/static/libraries/preprocessor_arm1176jzf-s.so similarity index 100% rename from octoprint_m3dfio/static/libraries/preprocessor_arm1176jzf-s.so rename to octoprint_m33fio/static/libraries/preprocessor_arm1176jzf-s.so diff --git a/octoprint_m3dfio/static/libraries/preprocessor_arm7.so b/octoprint_m33fio/static/libraries/preprocessor_arm7.so similarity index 100% rename from octoprint_m3dfio/static/libraries/preprocessor_arm7.so rename to octoprint_m33fio/static/libraries/preprocessor_arm7.so diff --git a/octoprint_m3dfio/static/libraries/preprocessor_arm_cortex-a7.so b/octoprint_m33fio/static/libraries/preprocessor_arm_cortex-a7.so similarity index 100% rename from octoprint_m3dfio/static/libraries/preprocessor_arm_cortex-a7.so rename to octoprint_m33fio/static/libraries/preprocessor_arm_cortex-a7.so diff --git a/octoprint_m3dfio/static/libraries/preprocessor_i386.dll b/octoprint_m33fio/static/libraries/preprocessor_i386.dll similarity index 100% rename from octoprint_m3dfio/static/libraries/preprocessor_i386.dll rename to octoprint_m33fio/static/libraries/preprocessor_i386.dll diff --git a/octoprint_m3dfio/static/libraries/preprocessor_i386.dylib b/octoprint_m33fio/static/libraries/preprocessor_i386.dylib similarity index 100% rename from octoprint_m3dfio/static/libraries/preprocessor_i386.dylib rename to octoprint_m33fio/static/libraries/preprocessor_i386.dylib diff --git a/octoprint_m3dfio/static/libraries/preprocessor_i386.so b/octoprint_m33fio/static/libraries/preprocessor_i386.so similarity index 100% rename from octoprint_m3dfio/static/libraries/preprocessor_i386.so rename to octoprint_m33fio/static/libraries/preprocessor_i386.so diff --git a/octoprint_m3dfio/static/libraries/preprocessor_x86-64.dll b/octoprint_m33fio/static/libraries/preprocessor_x86-64.dll similarity index 100% rename from octoprint_m3dfio/static/libraries/preprocessor_x86-64.dll rename to octoprint_m33fio/static/libraries/preprocessor_x86-64.dll diff --git a/octoprint_m3dfio/static/libraries/preprocessor_x86-64.dylib b/octoprint_m33fio/static/libraries/preprocessor_x86-64.dylib similarity index 100% rename from octoprint_m3dfio/static/libraries/preprocessor_x86-64.dylib rename to octoprint_m33fio/static/libraries/preprocessor_x86-64.dylib diff --git a/octoprint_m3dfio/static/libraries/preprocessor_x86-64.so b/octoprint_m33fio/static/libraries/preprocessor_x86-64.so similarity index 100% rename from octoprint_m3dfio/static/libraries/preprocessor_x86-64.so rename to octoprint_m33fio/static/libraries/preprocessor_x86-64.so diff --git a/octoprint_m3dfio/static/profiles/Cura/M3D ABS-R.ini b/octoprint_m33fio/static/profiles/Cura/Micro 3D ABS-R.ini similarity index 100% rename from octoprint_m3dfio/static/profiles/Cura/M3D ABS-R.ini rename to octoprint_m33fio/static/profiles/Cura/Micro 3D ABS-R.ini diff --git a/octoprint_m3dfio/static/profiles/Cura/M3D ABS.ini b/octoprint_m33fio/static/profiles/Cura/Micro 3D ABS.ini similarity index 100% rename from octoprint_m3dfio/static/profiles/Cura/M3D ABS.ini rename to octoprint_m33fio/static/profiles/Cura/Micro 3D ABS.ini diff --git a/octoprint_m3dfio/static/profiles/Cura/M3D FLX.ini b/octoprint_m33fio/static/profiles/Cura/Micro 3D FLX.ini similarity index 100% rename from octoprint_m3dfio/static/profiles/Cura/M3D FLX.ini rename to octoprint_m33fio/static/profiles/Cura/Micro 3D FLX.ini diff --git a/octoprint_m3dfio/static/profiles/Cura/M3D HIPS.ini b/octoprint_m33fio/static/profiles/Cura/Micro 3D HIPS.ini similarity index 100% rename from octoprint_m3dfio/static/profiles/Cura/M3D HIPS.ini rename to octoprint_m33fio/static/profiles/Cura/Micro 3D HIPS.ini diff --git a/octoprint_m3dfio/static/profiles/Cura/M3D PLA.ini b/octoprint_m33fio/static/profiles/Cura/Micro 3D PLA.ini similarity index 100% rename from octoprint_m3dfio/static/profiles/Cura/M3D PLA.ini rename to octoprint_m33fio/static/profiles/Cura/Micro 3D PLA.ini diff --git a/octoprint_m3dfio/static/profiles/Cura/M3D TGH.ini b/octoprint_m33fio/static/profiles/Cura/Micro 3D TGH.ini similarity index 100% rename from octoprint_m3dfio/static/profiles/Cura/M3D TGH.ini rename to octoprint_m33fio/static/profiles/Cura/Micro 3D TGH.ini diff --git a/octoprint_m3dfio/static/profiles/Slic3r/M3D TGH.ini b/octoprint_m33fio/static/profiles/Slic3r/Micro 3D ABS-R.ini similarity index 98% rename from octoprint_m3dfio/static/profiles/Slic3r/M3D TGH.ini rename to octoprint_m33fio/static/profiles/Slic3r/Micro 3D ABS-R.ini index 96bb748..7e343fb 100644 --- a/octoprint_m3dfio/static/profiles/Slic3r/M3D TGH.ini +++ b/octoprint_m33fio/static/profiles/Slic3r/Micro 3D ABS-R.ini @@ -1,4 +1,4 @@ -# Slic3r profile converted from Cura M3D TGH.ini +# Slic3r profile converted from Cura Micro 3D ABS-R.ini avoid_crossing_perimeters = 0 bed_shape = 0x0,200x0,200x200x0x200 bed_temperature = 60 diff --git a/octoprint_m3dfio/static/profiles/Slic3r/M3D ABS.ini b/octoprint_m33fio/static/profiles/Slic3r/Micro 3D ABS.ini similarity index 98% rename from octoprint_m3dfio/static/profiles/Slic3r/M3D ABS.ini rename to octoprint_m33fio/static/profiles/Slic3r/Micro 3D ABS.ini index 04e0c70..2712941 100644 --- a/octoprint_m3dfio/static/profiles/Slic3r/M3D ABS.ini +++ b/octoprint_m33fio/static/profiles/Slic3r/Micro 3D ABS.ini @@ -1,4 +1,4 @@ -# Slic3r profile converted from Cura M3D ABS.ini +# Slic3r profile converted from Cura Micro 3D ABS.ini avoid_crossing_perimeters = 0 bed_shape = 0x0,200x0,200x200x0x200 bed_temperature = 60 diff --git a/octoprint_m3dfio/static/profiles/Slic3r/M3D ABS-R.ini b/octoprint_m33fio/static/profiles/Slic3r/Micro 3D FLX.ini similarity index 98% rename from octoprint_m3dfio/static/profiles/Slic3r/M3D ABS-R.ini rename to octoprint_m33fio/static/profiles/Slic3r/Micro 3D FLX.ini index df7d1dd..56408de 100644 --- a/octoprint_m3dfio/static/profiles/Slic3r/M3D ABS-R.ini +++ b/octoprint_m33fio/static/profiles/Slic3r/Micro 3D FLX.ini @@ -1,4 +1,4 @@ -# Slic3r profile converted from Cura M3D ABS-R.ini +# Slic3r profile converted from Cura Micro 3D FLX.ini avoid_crossing_perimeters = 0 bed_shape = 0x0,200x0,200x200x0x200 bed_temperature = 60 diff --git a/octoprint_m3dfio/static/profiles/Slic3r/M3D HIPS.ini b/octoprint_m33fio/static/profiles/Slic3r/Micro 3D HIPS.ini similarity index 98% rename from octoprint_m3dfio/static/profiles/Slic3r/M3D HIPS.ini rename to octoprint_m33fio/static/profiles/Slic3r/Micro 3D HIPS.ini index 9626a43..3d92cfd 100644 --- a/octoprint_m3dfio/static/profiles/Slic3r/M3D HIPS.ini +++ b/octoprint_m33fio/static/profiles/Slic3r/Micro 3D HIPS.ini @@ -1,4 +1,4 @@ -# Slic3r profile converted from Cura M3D HIPS.ini +# Slic3r profile converted from Cura Micro 3D HIPS.ini avoid_crossing_perimeters = 0 bed_shape = 0x0,200x0,200x200x0x200 bed_temperature = 60 diff --git a/octoprint_m3dfio/static/profiles/Slic3r/M3D PLA.ini b/octoprint_m33fio/static/profiles/Slic3r/Micro 3D PLA.ini similarity index 98% rename from octoprint_m3dfio/static/profiles/Slic3r/M3D PLA.ini rename to octoprint_m33fio/static/profiles/Slic3r/Micro 3D PLA.ini index ca51cae..7705b29 100644 --- a/octoprint_m3dfio/static/profiles/Slic3r/M3D PLA.ini +++ b/octoprint_m33fio/static/profiles/Slic3r/Micro 3D PLA.ini @@ -1,4 +1,4 @@ -# Slic3r profile converted from Cura M3D PLA.ini +# Slic3r profile converted from Cura Micro 3D PLA.ini avoid_crossing_perimeters = 0 bed_shape = 0x0,200x0,200x200x0x200 bed_temperature = 60 diff --git a/octoprint_m3dfio/static/profiles/Slic3r/M3D FLX.ini b/octoprint_m33fio/static/profiles/Slic3r/Micro 3D TGH.ini similarity index 98% rename from octoprint_m3dfio/static/profiles/Slic3r/M3D FLX.ini rename to octoprint_m33fio/static/profiles/Slic3r/Micro 3D TGH.ini index 934086f..aaf2149 100644 --- a/octoprint_m3dfio/static/profiles/Slic3r/M3D FLX.ini +++ b/octoprint_m33fio/static/profiles/Slic3r/Micro 3D TGH.ini @@ -1,4 +1,4 @@ -# Slic3r profile converted from Cura M3D FLX.ini +# Slic3r profile converted from Cura Micro 3D TGH.ini avoid_crossing_perimeters = 0 bed_shape = 0x0,200x0,200x200x0x200 bed_temperature = 60 diff --git a/octoprint_m3dfio/templates/m3dfio_navbar.jinja2 b/octoprint_m33fio/templates/m33fio_navbar.jinja2 similarity index 100% rename from octoprint_m3dfio/templates/m3dfio_navbar.jinja2 rename to octoprint_m33fio/templates/m33fio_navbar.jinja2 diff --git a/octoprint_m3dfio/templates/m3dfio_settings.jinja2 b/octoprint_m33fio/templates/m33fio_settings.jinja2 similarity index 84% rename from octoprint_m3dfio/templates/m3dfio_settings.jinja2 rename to octoprint_m33fio/templates/m33fio_settings.jinja2 index 80596ec..1aba7c6 100644 --- a/octoprint_m3dfio/templates/m3dfio_settings.jinja2 +++ b/octoprint_m33fio/templates/m33fio_settings.jinja2 @@ -5,57 +5,57 @@
-
@@ -64,7 +64,7 @@
- + px
@@ -73,7 +73,7 @@
- + px
@@ -82,7 +82,7 @@
- + fps
@@ -94,93 +94,93 @@
@@ -191,7 +191,7 @@
- + mm
@@ -200,7 +200,7 @@
- + mm
@@ -209,7 +209,7 @@
- + mm/min
@@ -218,7 +218,7 @@
- + mm
@@ -227,7 +227,7 @@
- + mm
@@ -236,7 +236,7 @@
- + mm
@@ -245,7 +245,7 @@
- + mm
@@ -254,7 +254,7 @@
- + mm
@@ -263,7 +263,7 @@
- + mm
@@ -272,7 +272,7 @@
- + mm
@@ -281,7 +281,7 @@
- + mm
@@ -290,7 +290,7 @@
- + mm
@@ -299,7 +299,7 @@
- + mm
@@ -307,7 +307,7 @@
@@ -315,7 +315,7 @@
- + °C
@@ -324,7 +324,7 @@
- + °C
@@ -332,7 +332,7 @@
- @@ -351,7 +351,7 @@
- + mm/min
@@ -360,7 +360,7 @@
- + mm/min
@@ -369,7 +369,7 @@
- + mm/min
@@ -378,7 +378,7 @@
- + mm/min
@@ -387,7 +387,7 @@
- + mm/min
diff --git a/octoprint_m3dfio/vector.py b/octoprint_m33fio/vector.py similarity index 100% rename from octoprint_m3dfio/vector.py rename to octoprint_m33fio/vector.py diff --git a/octoprint_m3dfio/webcam_server.py b/octoprint_m33fio/webcam_server.py similarity index 100% rename from octoprint_m3dfio/webcam_server.py rename to octoprint_m33fio/webcam_server.py diff --git a/setup.py b/setup.py index 81ce228..8d9ff5f 100644 --- a/setup.py +++ b/setup.py @@ -3,14 +3,14 @@ ######################################################################################################################## -plugin_identifier = "m3dfio" +plugin_identifier = "m33fio" plugin_package = "octoprint_%s" % plugin_identifier -plugin_name = "OctoPrint-M3DFio" -plugin_version = "0.35.1" +plugin_name = "OctoPrint-M33Fio" +plugin_version = "0.35.2" plugin_description = "Makes OctoPrint fully compatible with the Micro 3D printer" plugin_author = "donovan6000" plugin_author_email = "donovan6000@exploitkings.com" -plugin_url = "https://github.com/donovan6000/M3D-Fio" +plugin_url = "https://github.com/donovan6000/M33-Fio" plugin_license = "GPLv3" plugin_additional_data = [] diff --git a/shared library source/Makefile b/shared library source/Makefile index 078bd31..64ebe47 100644 --- a/shared library source/Makefile +++ b/shared library source/Makefile @@ -64,7 +64,7 @@ CFLAGS += -Wall -std=c++11 -fvisibility=hidden -shared all: $(PROG) $(PROG): $(SRCS) - $(CC) $(CFLAGS) -o ../octoprint_m3dfio/static/libraries/$(PROG) $(SRCS) + $(CC) $(CFLAGS) -o ../octoprint_m33fio/static/libraries/$(PROG) $(SRCS) clean: - rm -f ../octoprint_m3dfio/static/libraries/$(PROG) + rm -f ../octoprint_m33fio/static/libraries/$(PROG)