Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sn4k3/UVtools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Conceição <Tiago_caza@hotmail.com>2020-06-05 01:43:11 +0300
committerTiago Conceição <Tiago_caza@hotmail.com>2020-06-05 01:43:11 +0300
commit7e18243bdd3829fb589f0951d95e45fa8ffce91a (patch)
tree9054f1641cf65f6a3d212a654b98adad6d2fc40e
parent6a2939b44af1dfa092097b733709d6a60849d9d6 (diff)
v0.4.2.1v0.4.2.1
* (Add) PrusaSlicer Printer "AnyCubic Photon" * (Add) PrusaSlicer Printer "Elegoo Mars Saturn" * (Add) PrusaSlicer Printer "Elegoo Mars" * (Add) PrusaSlicer Printer "EPAX X10" * (Add) PrusaSlicer Printer "EPAX X133 4K Mono" * (Add) PrusaSlicer Printer "EPAX X156 4K Color" * (Add) PrusaSlicer Printer "Peopoly Phenom L" * (Add) PrusaSlicer Printer "Peopoly Phenom Noir" * (Add) PrusaSlicer Printer "Peopoly Phenom" * (Add) PrusaSlicer Printer "Phrozen Shuffle 4K" * (Add) PrusaSlicer Printer "Phrozen Shuffle Lite" * (Add) PrusaSlicer Printer "Phrozen Shuffle XL" * (Add) PrusaSlicer Printer "Phrozen Shuffle" * (Add) PrusaSlicer Printer "Phrozen Sonic" * (Add) PrusaSlicer Printer "Phrozen Transform" * (Add) PrusaSlicer Printer "QIDI Shadow5.5" * (Add) PrusaSlicer Printer "QIDI Shadow6.0 Pro" * (Add) "Detect" text to compute layers button * (Add) "Repair" islands button on Islands tab * (Add) "Highlight islands" button on layer toolbar * (Add) Possible error cath on island computation * (Add) After load new file layer is rotated or not based on it width, landscape will not rotate while portrait will * (Improvement) Highlighted islands now also show AA pixels as a darker yellow * (Improvement) Island detection now need a certain number of touching pixels to consider a island or not, ie: i can't lay on only one pixel * (Fix) Island detection now don't consider dark fadded AA pixels as safe land * (Fix) Epax X1 printer properties
-rw-r--r--CHANGELOG.md29
-rw-r--r--ImportPrinters.bat17
-rw-r--r--PrusaSL1Reader/LayerManager.cs34
-rw-r--r--PrusaSL1Reader/PrusaSL1Reader.csproj6
-rw-r--r--PrusaSL1Viewer/FrmMain.Designer.cs112
-rw-r--r--PrusaSL1Viewer/FrmMain.cs150
-rw-r--r--PrusaSL1Viewer/FrmMain.resx111
-rw-r--r--PrusaSL1Viewer/Properties/AssemblyInfo.cs4
-rw-r--r--PrusaSL1Viewer/Properties/Resources.Designer.cs10
-rw-r--r--PrusaSL1Viewer/Properties/Resources.resx17
-rw-r--r--PrusaSL1Viewer/PrusaSL1Viewer.csproj1
-rw-r--r--PrusaSlicer/printer/AnyCubic Photon.ini37
-rw-r--r--PrusaSlicer/printer/EPAX X1.ini6
-rw-r--r--PrusaSlicer/printer/EPAX X10.ini37
-rw-r--r--PrusaSlicer/printer/EPAX X133 4K Mono.ini37
-rw-r--r--PrusaSlicer/printer/EPAX X156 4K Color.ini37
-rw-r--r--PrusaSlicer/printer/Elegoo Mars Saturn.ini37
-rw-r--r--PrusaSlicer/printer/Elegoo Mars.ini37
-rw-r--r--PrusaSlicer/printer/Peopoly Phenom L.ini37
-rw-r--r--PrusaSlicer/printer/Peopoly Phenom Noir.ini37
-rw-r--r--PrusaSlicer/printer/Peopoly Phenom.ini37
-rw-r--r--PrusaSlicer/printer/Phrozen Shuffle 4K.ini37
-rw-r--r--PrusaSlicer/printer/Phrozen Shuffle Lite.ini37
-rw-r--r--PrusaSlicer/printer/Phrozen Shuffle XL.ini37
-rw-r--r--PrusaSlicer/printer/Phrozen Shuffle.ini37
-rw-r--r--PrusaSlicer/printer/Phrozen Sonic Mini.ini4
-rw-r--r--PrusaSlicer/printer/Phrozen Sonic.ini37
-rw-r--r--PrusaSlicer/printer/Phrozen Transform.ini37
-rw-r--r--PrusaSlicer/printer/QIDI Shadow5.5.ini37
-rw-r--r--PrusaSlicer/printer/QIDI Shadow6.0 Pro.ini37
30 files changed, 946 insertions, 184 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ffff818..297d3e5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,34 @@
# Changelog
+## 04/06/2020 - v0.4.2.1 - Beta
+
+* (Add) PrusaSlicer Printer "AnyCubic Photon"
+* (Add) PrusaSlicer Printer "Elegoo Mars Saturn"
+* (Add) PrusaSlicer Printer "Elegoo Mars"
+* (Add) PrusaSlicer Printer "EPAX X10"
+* (Add) PrusaSlicer Printer "EPAX X133 4K Mono"
+* (Add) PrusaSlicer Printer "EPAX X156 4K Color"
+* (Add) PrusaSlicer Printer "Peopoly Phenom L"
+* (Add) PrusaSlicer Printer "Peopoly Phenom Noir"
+* (Add) PrusaSlicer Printer "Peopoly Phenom"
+* (Add) PrusaSlicer Printer "Phrozen Shuffle 4K"
+* (Add) PrusaSlicer Printer "Phrozen Shuffle Lite"
+* (Add) PrusaSlicer Printer "Phrozen Shuffle XL"
+* (Add) PrusaSlicer Printer "Phrozen Shuffle"
+* (Add) PrusaSlicer Printer "Phrozen Sonic"
+* (Add) PrusaSlicer Printer "Phrozen Transform"
+* (Add) PrusaSlicer Printer "QIDI Shadow5.5"
+* (Add) PrusaSlicer Printer "QIDI Shadow6.0 Pro"
+* (Add) "Detect" text to compute layers button
+* (Add) "Repair" islands button on Islands tab
+* (Add) "Highlight islands" button on layer toolbar
+* (Add) Possible error cath on island computation
+* (Add) After load new file layer is rotated or not based on it width, landscape will not rotate while portrait will
+* (Improvement) Highlighted islands now also show AA pixels as a darker yellow
+* (Improvement) Island detection now need a certain number of touching pixels to consider a island or not, ie: i can't lay on only one pixel
+* (Fix) Island detection now don't consider dark fadded AA pixels as safe land
+* (Fix) Epax X1 printer properties
+
## 03/06/2020 - v0.4.2 - Beta
* (Add) Zoom times information
diff --git a/ImportPrinters.bat b/ImportPrinters.bat
index e44eacc..dbd8b9e 100644
--- a/ImportPrinters.bat
+++ b/ImportPrinters.bat
@@ -7,6 +7,23 @@ SET files[0]=EPAX X1.ini
SET files[1]=Phrozen Sonic Mini.ini
SET files[2]=Zortrax Inkspire.ini
SET files[3]=Nova3D Elfin.ini
+SET files[4]=AnyCubic Photon.ini
+SET files[5]=Elegoo Mars.ini
+SET files[6]=Elegoo Mars Saturn.ini
+SET files[7]=EPAX X10.ini
+SET files[8]=EPAX X133 4K Mono.ini
+SET files[9]=EPAX X156 4K Color.ini
+SET files[10]=Peopoly Phenom.ini
+SET files[11]=Peopoly Phenom L.ini
+SET files[12]=Peopoly Phenom Noir.ini
+SET files[13]=QIDI Shadow5.5.ini
+SET files[14]=QIDI Shadow6.0 Pro.ini
+SET files[15]=Phrozen Shuffle.ini
+SET files[16]=Phrozen Shuffle Lite.ini
+SET files[17]=Phrozen Shuffle XL.ini
+SET files[18]=Phrozen Shuffle 4K.ini
+SET files[19]=Phrozen Sonic.ini
+SET files[20]=Phrozen Transform.ini
echo PrusaSlicer Printers Instalation
echo This will replace printers, all changes will be discarded
diff --git a/PrusaSL1Reader/LayerManager.cs b/PrusaSL1Reader/LayerManager.cs
index 48e8064..711fa2d 100644
--- a/PrusaSL1Reader/LayerManager.cs
+++ b/PrusaSL1Reader/LayerManager.cs
@@ -244,24 +244,27 @@ namespace PrusaSL1Reader
/// <summary>
/// Gets all islands start pixel location for this layer
+ /// https://www.geeksforgeeks.org/find-number-of-islands/
/// </summary>
/// <returns><see cref="List{T}"/> holding all islands coordinates</returns>
- public List<LayerIsland> GetIslandsLocation()
+ public List<LayerIsland> GetIslandsLocation(uint requiredPixelsToSupportIsland = 5)
{
- // https://www.geeksforgeeks.org/find-number-of-islands/
+ if (requiredPixelsToSupportIsland == 0)
+ requiredPixelsToSupportIsland = 1;
// These arrays are used to
// get row and column numbers
// of 8 neighbors of a given cell
List<LayerIsland> result = new List<LayerIsland>();
- List<System.Drawing.Point> pixels = new List<System.Drawing.Point>();
+ List<Point> pixels = new List<Point>();
if (Index == 0) return result;
sbyte[] rowNbr = { -1, -1, -1, 0, 0, 1, 1, 1 };
sbyte[] colNbr = { -1, 0, 1, -1, 1, -1, 0, 1 };
const uint minPixel = 10;
- bool presetOnPrevious;
+ const uint minPixelForSupportIsland = 200;
int pixelIndex;
+ uint islandSupportingPixels;
var image = Image;
byte[] bytes = null;
@@ -322,14 +325,15 @@ namespace PrusaSL1Reader
!visited[tempy2, tempx2])
{
visited[tempy2, tempx2] = true;
- point = new System.Drawing.Point(tempx2, tempy2);
+ point = new Point(tempx2, tempy2);
pixels.Add(point);
queue.Enqueue(point);
- if (!presetOnPrevious && !ReferenceEquals(previousBytes, null))
+ islandSupportingPixels += previousBytes[pixelIndex] >= minPixelForSupportIsland ? 1u : 0;
+ /*if (!presetOnPrevious)
{
- if (previousBytes[pixelIndex] >= minPixel) presetOnPrevious = true;
- }
+ if (previousBytes[pixelIndex] >= minPixelForSupportIsland) presetOnPrevious = true;
+ }*/
}
}
}
@@ -351,18 +355,14 @@ namespace PrusaSL1Reader
// found, Visit all cells in this
// island and increment island count
pixels.Clear();
- pixels.Add(new System.Drawing.Point(x, y));
- presetOnPrevious = previousBytes[pixelIndex] >= minPixel;
+ pixels.Add(new Point(x, y));
+ islandSupportingPixels = previousBytes[pixelIndex] >= minPixelForSupportIsland ? 1u : 0;
DFS(y, x);
//count++;
- if (!presetOnPrevious)
- {
- result.Add(new LayerIsland(this, pixels.ToArray()));
- //count++;
- }
-
- presetOnPrevious = false;
+ if (islandSupportingPixels >= requiredPixelsToSupportIsland) continue; // Not a island, bounding is strong
+ if (islandSupportingPixels > 0 && pixels.Count < requiredPixelsToSupportIsland && islandSupportingPixels >= Math.Max(1, pixels.Count / 2)) continue; // Not a island
+ result.Add(new LayerIsland(this, pixels.ToArray()));
}
}
}
diff --git a/PrusaSL1Reader/PrusaSL1Reader.csproj b/PrusaSL1Reader/PrusaSL1Reader.csproj
index e57bfe9..4c1c964 100644
--- a/PrusaSL1Reader/PrusaSL1Reader.csproj
+++ b/PrusaSL1Reader/PrusaSL1Reader.csproj
@@ -7,9 +7,9 @@
<PackageProjectUrl>https://github.com/sn4k3/PrusaSL1Viewer</PackageProjectUrl>
<PackageIcon></PackageIcon>
<RepositoryUrl>https://github.com/sn4k3/PrusaSL1Viewer</RepositoryUrl>
- <AssemblyVersion>0.4.2.0</AssemblyVersion>
- <FileVersion>0.4.2.0</FileVersion>
- <Version>0.4.2</Version>
+ <AssemblyVersion>0.4.2.1</AssemblyVersion>
+ <FileVersion>0.4.2.1</FileVersion>
+ <Version>0.4.2.1</Version>
<Description>Open, view, edit, extract and convert DLP/SLA files generated from Slicers</Description>
</PropertyGroup>
diff --git a/PrusaSL1Viewer/FrmMain.Designer.cs b/PrusaSL1Viewer/FrmMain.Designer.cs
index 0b0ff2a..4c2de3b 100644
--- a/PrusaSL1Viewer/FrmMain.Designer.cs
+++ b/PrusaSL1Viewer/FrmMain.Designer.cs
@@ -69,6 +69,8 @@
this.tsLayerImageLayerDifference = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
this.tsLayerPreviewTime = new System.Windows.Forms.ToolStripLabel();
+ this.toolStripSeparator14 = new System.Windows.Forms.ToolStripSeparator();
+ this.tsLayerImageHighlightIslands = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
this.tsLayerImageLayerOutline = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
@@ -113,9 +115,11 @@
this.tsIslandsPrevious = new System.Windows.Forms.ToolStripButton();
this.tsIslandsCount = new System.Windows.Forms.ToolStripLabel();
this.tsIslandsNext = new System.Windows.Forms.ToolStripButton();
+ this.toolStripSeparator13 = new System.Windows.Forms.ToolStripSeparator();
this.tsIslandsRefresh = new System.Windows.Forms.ToolStripButton();
- this.toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
this.tsIslandsRemove = new System.Windows.Forms.ToolStripButton();
+ this.toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
+ this.tsIslandsRepair = new System.Windows.Forms.ToolStripButton();
this.imageList16x16 = new System.Windows.Forms.ImageList(this.components);
this.menu.SuspendLayout();
this.mainTable.SuspendLayout();
@@ -154,7 +158,7 @@
this.helpToolStripMenuItem});
this.menu.Location = new System.Drawing.Point(0, 0);
this.menu.Name = "menu";
- this.menu.Size = new System.Drawing.Size(1631, 24);
+ this.menu.Size = new System.Drawing.Size(1684, 24);
this.menu.TabIndex = 0;
this.menu.Text = "menuStrip1";
//
@@ -297,6 +301,7 @@
//
// menuToolsRepairLayers
//
+ this.menuToolsRepairLayers.Enabled = false;
this.menuToolsRepairLayers.Image = global::PrusaSL1Viewer.Properties.Resources.Wrench_16x16;
this.menuToolsRepairLayers.Name = "menuToolsRepairLayers";
this.menuToolsRepairLayers.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Alt)
@@ -367,9 +372,9 @@
//
// statusBar
//
- this.statusBar.Location = new System.Drawing.Point(0, 761);
+ this.statusBar.Location = new System.Drawing.Point(0, 764);
this.statusBar.Name = "statusBar";
- this.statusBar.Size = new System.Drawing.Size(1631, 22);
+ this.statusBar.Size = new System.Drawing.Size(1684, 22);
this.statusBar.TabIndex = 1;
this.statusBar.Text = "statusStrip1";
//
@@ -380,7 +385,7 @@
this.sbLayers.LargeChange = 1;
this.sbLayers.Location = new System.Drawing.Point(0, 0);
this.sbLayers.Name = "sbLayers";
- this.sbLayers.Size = new System.Drawing.Size(124, 670);
+ this.sbLayers.Size = new System.Drawing.Size(124, 673);
this.sbLayers.TabIndex = 4;
this.sbLayers.ValueChanged += new System.EventHandler(this.sbLayers_ValueChanged);
//
@@ -398,7 +403,7 @@
this.mainTable.Name = "mainTable";
this.mainTable.RowCount = 1;
this.mainTable.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
- this.mainTable.Size = new System.Drawing.Size(1631, 737);
+ this.mainTable.Size = new System.Drawing.Size(1684, 740);
this.mainTable.TabIndex = 5;
//
// splitContainer1
@@ -406,7 +411,7 @@
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
this.splitContainer1.IsSplitterFixed = true;
- this.splitContainer1.Location = new System.Drawing.Point(1504, 3);
+ this.splitContainer1.Location = new System.Drawing.Point(1557, 3);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
@@ -417,8 +422,8 @@
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.lbLayers);
- this.splitContainer1.Size = new System.Drawing.Size(124, 731);
- this.splitContainer1.SplitterDistance = 670;
+ this.splitContainer1.Size = new System.Drawing.Size(124, 734);
+ this.splitContainer1.SplitterDistance = 673;
this.splitContainer1.TabIndex = 0;
//
// lbLayers
@@ -449,8 +454,8 @@
//
this.scCenter.Panel2.Controls.Add(this.pbLayers);
this.scCenter.Panel2MinSize = 18;
- this.scCenter.Size = new System.Drawing.Size(1095, 731);
- this.scCenter.SplitterDistance = 702;
+ this.scCenter.Size = new System.Drawing.Size(1148, 734);
+ this.scCenter.SplitterDistance = 705;
this.scCenter.TabIndex = 4;
//
// pbLayer
@@ -461,7 +466,7 @@
this.pbLayer.Name = "pbLayer";
this.pbLayer.PanMode = Cyotek.Windows.Forms.ImageBoxPanMode.Left;
this.pbLayer.ShowPixelGrid = true;
- this.pbLayer.Size = new System.Drawing.Size(1095, 677);
+ this.pbLayer.Size = new System.Drawing.Size(1148, 680);
this.pbLayer.TabIndex = 7;
this.pbLayer.Zoomed += new System.EventHandler<Cyotek.Windows.Forms.ImageBoxZoomEventArgs>(this.pbLayer_Zoomed);
this.pbLayer.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pbLayer_MouseMove);
@@ -478,6 +483,8 @@
this.tsLayerImageLayerDifference,
this.toolStripSeparator6,
this.tsLayerPreviewTime,
+ this.toolStripSeparator14,
+ this.tsLayerImageHighlightIslands,
this.toolStripSeparator7,
this.tsLayerImageLayerOutline,
this.toolStripSeparator9,
@@ -488,7 +495,7 @@
this.tsLayerImageMouseLocation});
this.tsLayer.Location = new System.Drawing.Point(0, 0);
this.tsLayer.Name = "tsLayer";
- this.tsLayer.Size = new System.Drawing.Size(1095, 25);
+ this.tsLayer.Size = new System.Drawing.Size(1148, 25);
this.tsLayer.TabIndex = 6;
this.tsLayer.Text = "Layer Menu";
//
@@ -558,6 +565,24 @@
this.tsLayerPreviewTime.Text = "Preview Time";
this.tsLayerPreviewTime.ToolTipText = "Layer Resolution";
//
+ // toolStripSeparator14
+ //
+ this.toolStripSeparator14.Name = "toolStripSeparator14";
+ this.toolStripSeparator14.Size = new System.Drawing.Size(6, 25);
+ //
+ // tsLayerImageHighlightIslands
+ //
+ this.tsLayerImageHighlightIslands.Checked = true;
+ this.tsLayerImageHighlightIslands.CheckOnClick = true;
+ this.tsLayerImageHighlightIslands.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.tsLayerImageHighlightIslands.Image = global::PrusaSL1Viewer.Properties.Resources.island_16x16;
+ this.tsLayerImageHighlightIslands.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.tsLayerImageHighlightIslands.Name = "tsLayerImageHighlightIslands";
+ this.tsLayerImageHighlightIslands.Size = new System.Drawing.Size(63, 22);
+ this.tsLayerImageHighlightIslands.Text = "Islands";
+ this.tsLayerImageHighlightIslands.ToolTipText = "Highlight islands on current layer.\r\nValid only if Islands are calculated.";
+ this.tsLayerImageHighlightIslands.Click += new System.EventHandler(this.ItemClicked);
+ //
// toolStripSeparator7
//
this.toolStripSeparator7.Name = "toolStripSeparator7";
@@ -622,7 +647,7 @@
this.pbLayers.Dock = System.Windows.Forms.DockStyle.Fill;
this.pbLayers.Location = new System.Drawing.Point(0, 0);
this.pbLayers.Name = "pbLayers";
- this.pbLayers.Size = new System.Drawing.Size(1095, 25);
+ this.pbLayers.Size = new System.Drawing.Size(1148, 25);
this.pbLayers.Step = 1;
this.pbLayers.TabIndex = 6;
//
@@ -637,7 +662,7 @@
this.tabControlLeft.Location = new System.Drawing.Point(3, 3);
this.tabControlLeft.Name = "tabControlLeft";
this.tabControlLeft.SelectedIndex = 0;
- this.tabControlLeft.Size = new System.Drawing.Size(394, 731);
+ this.tabControlLeft.Size = new System.Drawing.Size(394, 734);
this.tabControlLeft.TabIndex = 5;
//
// tbpThumbnailsAndInfo
@@ -647,7 +672,7 @@
this.tbpThumbnailsAndInfo.Location = new System.Drawing.Point(4, 23);
this.tbpThumbnailsAndInfo.Name = "tbpThumbnailsAndInfo";
this.tbpThumbnailsAndInfo.Padding = new System.Windows.Forms.Padding(3);
- this.tbpThumbnailsAndInfo.Size = new System.Drawing.Size(386, 704);
+ this.tbpThumbnailsAndInfo.Size = new System.Drawing.Size(386, 707);
this.tbpThumbnailsAndInfo.TabIndex = 0;
this.tbpThumbnailsAndInfo.Text = "Information";
this.tbpThumbnailsAndInfo.UseVisualStyleBackColor = true;
@@ -670,7 +695,7 @@
//
this.scLeft.Panel2.Controls.Add(this.lvProperties);
this.scLeft.Panel2.Controls.Add(this.tsProperties);
- this.scLeft.Size = new System.Drawing.Size(380, 698);
+ this.scLeft.Size = new System.Drawing.Size(380, 701);
this.scLeft.SplitterDistance = 425;
this.scLeft.TabIndex = 4;
//
@@ -764,7 +789,7 @@
this.lvProperties.HideSelection = false;
this.lvProperties.Location = new System.Drawing.Point(0, 25);
this.lvProperties.Name = "lvProperties";
- this.lvProperties.Size = new System.Drawing.Size(380, 244);
+ this.lvProperties.Size = new System.Drawing.Size(380, 247);
this.lvProperties.TabIndex = 1;
this.lvProperties.UseCompatibleStateImageBehavior = false;
this.lvProperties.View = System.Windows.Forms.View.Details;
@@ -830,7 +855,7 @@
this.tabPageGCode.ImageKey = "GCode-16x16.png";
this.tabPageGCode.Location = new System.Drawing.Point(4, 23);
this.tabPageGCode.Name = "tabPageGCode";
- this.tabPageGCode.Size = new System.Drawing.Size(386, 704);
+ this.tabPageGCode.Size = new System.Drawing.Size(386, 707);
this.tabPageGCode.TabIndex = 2;
this.tabPageGCode.Text = "GCode";
this.tabPageGCode.UseVisualStyleBackColor = true;
@@ -843,7 +868,7 @@
this.tbGCode.Name = "tbGCode";
this.tbGCode.ReadOnly = true;
this.tbGCode.ScrollBars = System.Windows.Forms.ScrollBars.Both;
- this.tbGCode.Size = new System.Drawing.Size(386, 679);
+ this.tbGCode.Size = new System.Drawing.Size(386, 682);
this.tbGCode.TabIndex = 1;
//
// tsGCode
@@ -896,7 +921,7 @@
this.tabPageIslands.Location = new System.Drawing.Point(4, 23);
this.tabPageIslands.Name = "tabPageIslands";
this.tabPageIslands.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageIslands.Size = new System.Drawing.Size(386, 704);
+ this.tabPageIslands.Size = new System.Drawing.Size(386, 707);
this.tabPageIslands.TabIndex = 3;
this.tabPageIslands.Text = "Islands";
this.tabPageIslands.UseVisualStyleBackColor = true;
@@ -915,7 +940,7 @@
this.lvIslands.HideSelection = false;
this.lvIslands.Location = new System.Drawing.Point(3, 28);
this.lvIslands.Name = "lvIslands";
- this.lvIslands.Size = new System.Drawing.Size(380, 673);
+ this.lvIslands.Size = new System.Drawing.Size(380, 676);
this.lvIslands.TabIndex = 8;
this.lvIslands.UseCompatibleStateImageBehavior = false;
this.lvIslands.View = System.Windows.Forms.View.Details;
@@ -947,9 +972,11 @@
this.tsIslandsPrevious,
this.tsIslandsCount,
this.tsIslandsNext,
+ this.toolStripSeparator13,
this.tsIslandsRefresh,
+ this.tsIslandsRemove,
this.toolStripSeparator12,
- this.tsIslandsRemove});
+ this.tsIslandsRepair});
this.tsIslands.Location = new System.Drawing.Point(3, 3);
this.tsIslands.Name = "tsIslands";
this.tsIslands.Size = new System.Drawing.Size(380, 25);
@@ -987,24 +1014,23 @@
this.tsIslandsNext.ToolTipText = "Show next island";
this.tsIslandsNext.Click += new System.EventHandler(this.ItemClicked);
//
+ // toolStripSeparator13
+ //
+ this.toolStripSeparator13.Name = "toolStripSeparator13";
+ this.toolStripSeparator13.Size = new System.Drawing.Size(6, 25);
+ //
// tsIslandsRefresh
//
this.tsIslandsRefresh.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
- this.tsIslandsRefresh.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.tsIslandsRefresh.Enabled = false;
this.tsIslandsRefresh.Image = global::PrusaSL1Viewer.Properties.Resources.refresh_16x16;
this.tsIslandsRefresh.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsIslandsRefresh.Name = "tsIslandsRefresh";
- this.tsIslandsRefresh.Size = new System.Drawing.Size(23, 22);
- this.tsIslandsRefresh.Text = "Update";
+ this.tsIslandsRefresh.Size = new System.Drawing.Size(61, 22);
+ this.tsIslandsRefresh.Text = "Detect";
this.tsIslandsRefresh.ToolTipText = "Compute Islands";
this.tsIslandsRefresh.Click += new System.EventHandler(this.ItemClicked);
//
- // toolStripSeparator12
- //
- this.toolStripSeparator12.Name = "toolStripSeparator12";
- this.toolStripSeparator12.Size = new System.Drawing.Size(6, 25);
- //
// tsIslandsRemove
//
this.tsIslandsRemove.Enabled = false;
@@ -1016,6 +1042,24 @@
this.tsIslandsRemove.ToolTipText = "Remove selected islands";
this.tsIslandsRemove.Click += new System.EventHandler(this.ItemClicked);
//
+ // toolStripSeparator12
+ //
+ this.toolStripSeparator12.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
+ this.toolStripSeparator12.Name = "toolStripSeparator12";
+ this.toolStripSeparator12.Size = new System.Drawing.Size(6, 25);
+ //
+ // tsIslandsRepair
+ //
+ this.tsIslandsRepair.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
+ this.tsIslandsRepair.Enabled = false;
+ this.tsIslandsRepair.Image = global::PrusaSL1Viewer.Properties.Resources.Wrench_16x16;
+ this.tsIslandsRepair.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.tsIslandsRepair.Name = "tsIslandsRepair";
+ this.tsIslandsRepair.Size = new System.Drawing.Size(60, 22);
+ this.tsIslandsRepair.Text = "Repair";
+ this.tsIslandsRepair.ToolTipText = "Attempt to repair islands";
+ this.tsIslandsRepair.Click += new System.EventHandler(this.ItemClicked);
+ //
// imageList16x16
//
this.imageList16x16.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList16x16.ImageStream")));
@@ -1030,7 +1074,7 @@
this.AllowDrop = true;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(1631, 783);
+ this.ClientSize = new System.Drawing.Size(1684, 786);
this.Controls.Add(this.mainTable);
this.Controls.Add(this.statusBar);
this.Controls.Add(this.menu);
@@ -1170,6 +1214,10 @@
private System.Windows.Forms.ToolStripButton tsIslandsRemove;
private System.Windows.Forms.ToolStripMenuItem menuTools;
private System.Windows.Forms.ToolStripMenuItem menuToolsRepairLayers;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator13;
+ private System.Windows.Forms.ToolStripButton tsIslandsRepair;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator14;
+ private System.Windows.Forms.ToolStripButton tsLayerImageHighlightIslands;
}
}
diff --git a/PrusaSL1Viewer/FrmMain.cs b/PrusaSL1Viewer/FrmMain.cs
index 7918c9d..9adba1b 100644
--- a/PrusaSL1Viewer/FrmMain.cs
+++ b/PrusaSL1Viewer/FrmMain.cs
@@ -735,13 +735,13 @@ namespace PrusaSL1Viewer
/************************
* Islands Menu *
***********************/
- if(ReferenceEquals(sender, tsIslandsRefresh))
+ if (ReferenceEquals(sender, tsIslandsPrevious))
{
- if (MessageBox.Show("Are you sure you want to compute islands?", "Islands Compute",
- MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) return;
-
- ComputeIslands();
-
+ if (!tsIslandsPrevious.Enabled) return;
+ int index = Convert.ToInt32(tsIslandsCount.Tag);
+ lvIslands.SelectedItems.Clear();
+ lvIslands.Items[--index].Selected = true;
+ lvIslands_ItemActivate(lvIslands, null);
return;
}
@@ -755,15 +755,6 @@ namespace PrusaSL1Viewer
return;
}
- if (ReferenceEquals(sender, tsIslandsPrevious))
- {
- if (!tsIslandsPrevious.Enabled) return;
- int index = Convert.ToInt32(tsIslandsCount.Tag);
- lvIslands.SelectedItems.Clear();
- lvIslands.Items[--index].Selected = true;
- lvIslands_ItemActivate(lvIslands, null);
- return;
- }
if (ReferenceEquals(sender, tsIslandsRemove))
{
@@ -813,10 +804,26 @@ namespace PrusaSL1Viewer
return;
}
+ if (ReferenceEquals(sender, tsIslandsRepair))
+ {
+ ItemClicked(menuToolsRepairLayers, e);
+ return;
+ }
+
+ if (ReferenceEquals(sender, tsIslandsRefresh))
+ {
+ if (MessageBox.Show("Are you sure you want to compute islands?", "Islands Compute",
+ MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) return;
+
+ ComputeIslands();
+
+ return;
+ }
+
/************************
* Layer Menu *
***********************/
- if (ReferenceEquals(sender, tsLayerImageRotate) || ReferenceEquals(sender, tsLayerImageLayerDifference) || ReferenceEquals(sender, tsLayerImageLayerOutline))
+ if (ReferenceEquals(sender, tsLayerImageRotate) || ReferenceEquals(sender, tsLayerImageLayerDifference) || ReferenceEquals(sender, tsLayerImageHighlightIslands) || ReferenceEquals(sender, tsLayerImageLayerOutline))
{
sbLayers_ValueChanged(sbLayers, null);
return;
@@ -854,7 +861,6 @@ namespace PrusaSL1Viewer
private void sbLayers_ValueChanged(object sender, EventArgs e)
{
- if (ReferenceEquals(SlicerFile, null)) return;
ShowLayer(ActualLayer);
}
@@ -1170,6 +1176,10 @@ namespace PrusaSL1Viewer
return;
}
+
+ ActualLayerImage = SlicerFile[0].Image;
+ tsLayerImageRotate.Checked = ActualLayerImage.Height > ActualLayerImage.Width;
+
if (!ReferenceEquals(SlicerFile.ConvertToFormats, null))
{
foreach (var fileFormatType in SlicerFile.ConvertToFormats)
@@ -1239,6 +1249,7 @@ namespace PrusaSL1Viewer
menuMutate.Enabled =
menuTools.Enabled =
+ tsIslandsRepair.Enabled =
tsIslandsRefresh.Enabled =
true;
@@ -1250,14 +1261,14 @@ namespace PrusaSL1Viewer
//ShowLayer(0);
+ tabControlLeft.SelectedIndex = 0;
+ tsLayerResolution.Text = $"{{Width={SlicerFile.ResolutionX}, Height={SlicerFile.ResolutionY}}}";
+
sbLayers.SmallChange = 1;
sbLayers.Minimum = 0;
sbLayers.Maximum = (int)SlicerFile.LayerCount - 1;
sbLayers.Value = sbLayers.Maximum;
- tabControlLeft.SelectedIndex = 0;
- tsLayerResolution.Text = $"{{Width={SlicerFile.ResolutionX}, Height={SlicerFile.ResolutionY}}}";
-
RefreshInfo();
@@ -1341,6 +1352,7 @@ namespace PrusaSL1Viewer
void ShowLayer(uint layerNum)
{
+ if (ReferenceEquals(SlicerFile, null)) return;
try
{
// OLD
@@ -1402,6 +1414,36 @@ namespace PrusaSL1Viewer
//watch.Restart();
var imageBmp = image.ToBitmap();
+
+
+ if (tsLayerImageHighlightIslands.Checked && !ReferenceEquals(Islands, null) && Islands.Count > ActualLayer)
+ {
+ var islands = Islands[ActualLayer];
+
+ foreach (var island in islands)
+ {
+ if (ReferenceEquals(island, null)) continue; // Removed islands
+ foreach (var pixel in island)
+ {
+ int x = pixel.X;
+ int y = pixel.Y;
+
+ if (tsLayerImageRotate.Checked)
+ {
+ x = ActualLayerImage.Height - 1 - pixel.Y;
+ y = pixel.X;
+ }
+
+ var alpha = ActualLayerImage[pixel.X, pixel.Y].PackedValue;
+ if (alpha == 0) continue;
+ // alpha, Color.Yellow
+ alpha = Math.Max((byte)70, alpha);
+ imageBmp.SetPixel(x, y, Color.FromArgb(alpha, alpha, 0));
+ }
+ }
+ }
+
+
pbLayer.Image = imageBmp;
pbLayer.Image.Tag = image;
//Debug.WriteLine(watch.ElapsedMilliseconds);
@@ -1436,33 +1478,6 @@ namespace PrusaSL1Viewer
//var islands = SlicerFile.LayerManager.GetAllIslands();
//Debug.WriteLine(islands.Length);
- if (!ReferenceEquals(Islands, null) && Islands.Count > ActualLayer)
- {
- var islands = Islands[ActualLayer];
-
- foreach (var island in islands)
- {
- if(ReferenceEquals(island, null)) continue; // Removed islands
- foreach (var pixel in island)
- {
- int x = pixel.X;
- int y = pixel.Y;
-
- if (tsLayerImageRotate.Checked)
- {
- x = ActualLayerImage.Height - 1 - pixel.Y;
- y = pixel.X;
- }
-
- if(ActualLayerImage[pixel.X, pixel.Y].PackedValue == 0) continue;
- imageBmp.SetPixel(x, y, Color.Yellow);
- }
-
- }
-
-
- }
-
watch.Stop();
tsLayerPreviewTime.Text = $"{watch.ElapsedMilliseconds}ms";
lbLayers.Text = $"{SlicerFile.GetHeightFromLayer(layerNum)} / {SlicerFile.TotalHeight}mm\n{layerNum} / {SlicerFile.LayerCount-1}\n{percent}%";
@@ -1706,8 +1721,10 @@ namespace PrusaSL1Viewer
Islands = SlicerFile.LayerManager.GetAllIslands();
result = true;
}
- catch (Exception)
+ catch (Exception ex)
{
+ MessageBox.Show(ex.Message, "Error while trying compute islands", MessageBoxButtons.OK,
+ MessageBoxIcon.Error);
}
finally
{
@@ -1724,23 +1741,34 @@ namespace PrusaSL1Viewer
lvIslands.BeginUpdate();
uint count = 0;
- for (uint layerIndex = 0; layerIndex < SlicerFile.LayerCount; layerIndex++)
+
+ try
{
- ListViewGroup group = new ListViewGroup($"Layer {layerIndex} - {Islands[layerIndex].Count} Islands");
- for (var i = 0; i < Islands[layerIndex].Count; i++)
+ for (uint layerIndex = 0; layerIndex < SlicerFile.LayerCount; layerIndex++)
{
- count++;
- var island = Islands[layerIndex][i];
- TotalIslands++;
- ListViewItem item = new ListViewItem(group) {Text = count.ToString()};
- item.SubItems.Add((i + 1).ToString());
- item.SubItems.Add($"{island.X}, {island.Y}");
- item.SubItems.Add(island.Size.ToString());
- item.Tag = island;
- lvIslands.Groups.Add(group);
- lvIslands.Items.Add(item);
+ ListViewGroup group = new ListViewGroup($"Layer {layerIndex} - {Islands[layerIndex].Count} Islands");
+ for (var i = 0; i < Islands[layerIndex].Count; i++)
+ {
+ count++;
+ var island = Islands[layerIndex][i];
+ TotalIslands++;
+ ListViewItem item = new ListViewItem(group) { Text = count.ToString() };
+ item.SubItems.Add((i + 1).ToString());
+ item.SubItems.Add($"{island.X}, {island.Y}");
+ item.SubItems.Add(island.Size.ToString());
+ item.Tag = island;
+ lvIslands.Groups.Add(group);
+ lvIslands.Items.Add(item);
+ }
}
}
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Error while trying compute islands", MessageBoxButtons.OK,
+ MessageBoxIcon.Error);
+ throw;
+ }
+
lvIslands.EndUpdate();
UpdateIslandsInfo();
diff --git a/PrusaSL1Viewer/FrmMain.resx b/PrusaSL1Viewer/FrmMain.resx
index c61c35a..2b9d683 100644
--- a/PrusaSL1Viewer/FrmMain.resx
+++ b/PrusaSL1Viewer/FrmMain.resx
@@ -139,67 +139,67 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
- ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAK
- DgAAAk1TRnQBSQFMAgEBBAEAAUgBAgFIAQIBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
+ DQAAAk1TRnQBSQFMAgEBBAEAAYABAgGAAQIBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AZgADUAGjA1IBqQNS
AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1ABo1wAAxYBHgMjATMDIwEz
AyMBMwMjATMDGAEhAwIBAwwAA1UBtANZAccDLwFJAwABAQMbASYDHAEnAxwBJwMcAScDHAEnAxwBJwMc
AScDHAEnAxwBJwMcAScDHAEnAwIBAwQAA1IBqTAAA1IBqRAAAycBOgMwAUwDMAFMAzABTAMwAUwDMAFM
- AzABTAMwAUwDMAFMAycBOhwAAwQBBgMjATMDUgGpAbMBWAEeAf8BsgFXARwB/wGyAVYBHAH/AbMBVwEd
+ AzABTAMwAUwDMAFMAycBOhwAAwQBBgMjATMDUgGpAbMBUQEXAf8BsgFQARUB/wGyAU8BFQH/AbMBUAEW
Af8CWAFWAbkDKQE/AwQBBgsAAf8DAAH/A0MBdwMpAT4DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMyAVEEAANSAakEAANQAZ0DUwGqA1MBqgNTAaoDUwGqA1MBqgNTAaoDUAGd
- DAADUgGpEAADTgH7AwYB/wMGAf8DBgH/AwYB/wMGAf8DBgH/AwYB/wMGAf8DTgH7GAADBQEHAzABTAGz
- AVcBHQH/AdkBswGMAf8B9QHfAcUB/wH+Ae4B2AH/Af4B7gHYAf8B+gHnAc8B/wHZAbMBjAH/AbMBVwEc
+ DAADUgGpEAADTgH7AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DTgH7GAADBQEHAzABTAGz
+ AVABFgH/AdkBswGMAf8B9QHfAcUB/wH+Ae4B2AH/Af4B7gHYAf8B+gHnAc8B/wHZAbMBjAH/AbMBUAEV
Af8CMQEwAU0DAgEDBAADUQGiA1YBtgMqAUAEAAMQARUDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEQEX
- AxEBFwMRARcDEAEWCAADUgGpBAADUAGdA1MBqgNTAaoDHwEsHAADUgGpEAADBgH/AwYB/wMGAf8DBgH/
- AwYB/wMGAf8DBgH/AwYB/wMGAf8DBgH/GAACMQEwAU0BtwGBASYB/wHqAc0BrAH/AfoB5QHLAf8B+AHh
- AcYB/wH2AeABxAH/AfYB3wHEAf8B9wHhAcUB/wH6AeUBywH/Ae8B1QG3Af8BswFXAR0B/wMgAS4EAAMK
- AQ4DEQEXAwABATgAA1IBqTAAA1IBqRAAAwYB/wMGAf8DBgH/AwYB/wMGAf8DBgH/AwYB/wMGAf8DBgH/
- AwYB/xgAAmoBRAH5AeUBxwGkAf8B9wHfAcIB/wHzAdsBuwH/AfMB2gG7Af8B8wHbAbwB/wHzAdsBvAH/
- AfMB2wG8Af8B8wHcAb0B/wH2AeEBwwH/AdUBrwGEAf8CWAFWAbkEAANSAfQDAAH/Az4BbAMOARMDQgF2
- A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0IBdgMUARsEAANSAakDIgEyA1IBqQNS
- AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQMiATIDUgGpEAADBgH/AwYB/wMGAf8DBgH/
- AwYB/wMGAf8DBgH/AwYB/wMGAf8DBgH/GAABtAFZAR8C/wHwAdwC/wHvAdwB/wH+AesB1wH/AfkB5AHK
- Af8B8QHWAbQB/wHxAdYBswH/AfEB1gG0Af8B8QHWAbQB/wHyAdgBtgH/AfMB2QG3Af8BswFZAR8B/wcA
- Af4DAAH/A0MBdwMeASsDVwHFA1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1gBxgMm
- ATkEAANSAakDNAFVAzQBVSAAAzQBVQM0AVUDUgGpEAADBgH/AwYB/wMGAf8DBgH/AwYB/wMGAf8DBgH/
- AwYB/wMGAf8DBgH/GAADSAGFAbgBggEmAf8BxwGXAUIB/wHPAaUBVAH/Ae0B0gG0Af8B/QHoAdIB/wHv
- AdIBrQH/Ae4B0gGsAf8B7gHSAa0B/wHuAdIBrQH/AfUB3AG8Af8BswFXAR4B/wQAAzMBUwM8AWcDFAEc
- OAADUgGpAzQBVQM0AVUDRgGAA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA0UBfwM0AVUDNAFVA1IBqRAA
- AwYB/wMGAf8DBgH/AwYB/wMGAf8DBgH/AwYB/wMGAf8DBgH/AwYB/xAAAwoBDgMhATEDIwEzAyMBMwIx
- ATABTQMzAVMBswFWARkB/wHjAcUBogH/AfkB4wHJAf8B6wHOAaQB/wHrAc4BpgH/AesBzgGlAf8B9wHf
- AcAB/wGzAVcBHQH/BAADMwFTAzwBZwMUARw4AANSAakDNAFVAzQBVQM/AW4DMgFQEAADJwE7A0QBfAM0
- AVUDNAFVA1IBqRAAAwYB/wMGAf8DBgH/AwYB/wMGAf8DBgH/AwYB/wMGAf8DBgH/AwYB/wwAAwoBDgM/
- AW0DXAH4AYUBiQGNAf8BWQFcAYQB/wNfAfMDOgFiAwkBDAGzAVYBGQH/Ae0B0QG0Af8B6QHJAZ0B/wHp
- AckBnQH/AekByAGbAf8B/AHoAdIB/wGzAVgBHgH/BwAB/gMAAf8DQwF3Ax8BLANXAcUDWQHHA1kBxwNZ
- AccDWQHHA1kBxwNZAccDWQHHA1kBxwNZAccDWAHGAyYBOQQAA1IBqQM0AVUDNAFVAwUBBwNVAbUDEQEX
- A1IBqQMpAT4EAANQAZ8DEQEXAzQBVQM0AVUDUgGpEAADBgH/AwYB/wMGAf8DBgH/AwYB/wMGAf8DBgH/
- AwYB/wMGAf8DBgH/DAADPgFrA4AB/wLSAdEB/wHvAe4B7QH/Au8B7gH/AdIB0wHSAf8BWwGAAYEB/wM6
- AWADMgFQAdABpwFZAf8B6gHJAZwB/wHkAcMBkgH/AfIB1wG1Af8B2gG2AZAB/wJTAVIBqAQAA1IB9AMA
- Af8DPgFsAw4BEwNCAXUDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3AxQBGwQA
- A1IBqQM0AVUDNAFVBAADPAFoA1YBvgMjATQDVQG1AxIBGQNRAaAEAAM0AVUDNAFVA1IBqRAAAwYB/wMG
- Af8DBgH/AwYB/wMGAf8DBgH/AwoB/wMPAf8DDwH/A1wB3wwAA1wB+ALNAcwB/wHjAeIB4QH/Ad8B3gHd
- Af8B3wHeAd0B/wHjAeIB4QH/A8wB/wNnAfIDGQEjAcgBmAFFAf8B8wHaAbcB/wHxAdYBsgH/Af4B7QHZ
- Af8BtwGBASUB/wMKAQ0EAAMKAQ4DEQEXAwABATgAA1IBqQM0AVUDNAFVAwABAQMtAUYDCgEOBAADOQFf
- A1wBzgMoATwEAAM0AVUDNAFVA1IBqRAAAwYB/wOCAf8DJQH/Aw8B/wMGAf8DBgH/AxkB/wMgAf8DXAHf
- AxcBIAwAA1YB/wHjAeIB4QH/AdcB1gHUAf8B1wHWAdQB/wHXAdYB1AH/AdcB1gHUAf8B4gHhAeAB/wGD
- AYgBjQH/BAABtwGAASIC/wHwAdwB/wH6AeYBzgH/AcEBkAE5Af8DQAFuCAADUQGiA1YBtgMqAUAEAAMQ
- ARUDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEAEWCAADUgGpAzQBVQM0AVUDMwFT
- A1IBpgNKAYwHAAEBA0cBgwgAAzQBVQM0AVUDUgGpEAADBgH/A5kB/wOFAf8DMgH/AwYB/wMGAf8DGQH/
- A1wB3wMXASAQAANWAf8B8gHxAfAB/wHPAc0BywH/AdABzgHLAf8B0AHOAcsB/wHPAc0BywH/AfIC8AH/
- AVoBgQGFAf8EAAM3AVsBtAFZAR8B/wG0AVkBHgH/A0ABbw8AAf8DAAH/A0MBdwMpAT4DAAH/AwAB/wMA
- Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMyAVEEAANSAakDNAFVAzQBVQMRARcDUAGe
- AyQBNhQAAzQBVQM0AVUDUgGpEAADUAH7AxEB/wMRAf8DEQH/AwYB/wMGAf8DXAHfAxcBIBQAA2IB9gHb
- AtoB/wHoAecB5gH/AdEBzwHOAf8B0QHPAc4B/wHoAecB5gH/AdsC2gH/A2IB9iAAA1UBtANZAccDLwFJ
- AwABAQMbASYDHAEnAxwBJwMcAScDHAEnAxwBJwMcAScDHAEnAxwBJwMcAScDHAEnAwIBAwQAA1IBqQMi
- ATIDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpAyIBMgNSAakQAAMgAS4DKQE/
- AykBPwMpAT8DKQE/AykBPwMRARcYAAMuAUgDgAH/AdgC1wH/AfcC9gH/AfcC9gH/AdgC1wH/A4AB/wMu
- AUhkAANQAaMDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUAGj
- SAADLgFIA2IB9gNVAf8DVQH/A2IB9gMuAUgkAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYA
- AQEWAAP/gQAC/wGAAQEC/wH8AQcCAAG/Af0B4AEHAfABAwIAAaABHQHgAQcB4AEBARABAQGhAf0B4AEH
- AeABAQEfAf8BvwH9AeABBwHgAQECAAGAAQEB4AEHAeABAQIAAY8B8QHgAQcB4AEBAR8B/wGAAQEB4AEH
- AYABAQEfAf8BgwHBAeABBwEAAQECAAGAAUEB4AEHAQABAQIAAYgBEQHgAQcBAAEBAR8B/wGBAREB4AEH
- AQABgwEQAQEBgQExAeABDwEAAYcCAAGBAfEB4AEfAQAB/wIAAYABAQHgAT8BAAP/AYABAQL/AYEB/ws=
+ AxEBFwMRARcDEAEWCAADUgGpBAADUAGdA1MBqgNTAaoDHwEsHAADUgGpEwAB/wMAAf8DAAH/AwAB/wMA
+ Af8DAAH/AwAB/wMAAf8DAAH/AwAB/xgAAjEBMAFNAbcBgQEfAf8B6gHNAawB/wH6AeUBywH/AfgB4QHG
+ Af8B9gHgAcQB/wH2Ad8BxAH/AfcB4QHFAf8B+gHlAcsB/wHvAdUBtwH/AbMBUAEWAf8DIAEuBAADCgEO
+ AxEBFwMAAQE4AANSAakwAANSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
+ GAACagFEAfkB5QHHAaQB/wH3Ad8BwgH/AfMB2wG7Af8B8wHaAbsB/wHzAdsBvAH/AfMB2wG8Af8B8wHb
+ AbwB/wHzAdwBvQH/AfYB4QHDAf8B1QGvAYQB/wJYAVYBuQQAA1IB9AMAAf8DPgFsAw4BEwNCAXYDQwF3
+ A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQgF2AxQBGwQAA1IBqQMiATIDUgGpA1IBqQNS
+ AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpAyIBMgNSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMA
+ Af8DAAH/AwAB/wMAAf8DAAH/GAABtAFSARgC/wHwAdwC/wHvAdwB/wH+AesB1wH/AfkB5AHKAf8B8QHW
+ AbQB/wHxAdYBswH/AfEB1gG0Af8B8QHWAbQB/wHyAdgBtgH/AfMB2QG3Af8BswFSARgB/wcAAf4DAAH/
+ A0MBdwMeASsDVwHFA1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1gBxgMmATkEAANS
+ AakDNAFVAzQBVSAAAzQBVQM0AVUDUgGpEwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
+ AwAB/xgAA0gBhQG4AYIBHwH/AccBlwE7Af8BzwGlAU0B/wHtAdIBtAH/Af0B6AHSAf8B7wHSAa0B/wHu
+ AdIBrAH/Ae4B0gGtAf8B7gHSAa0B/wH1AdwBvAH/AbMBUAEXAf8EAAMzAVMDPAFnAxQBHDgAA1IBqQM0
+ AVUDNAFVA0YBgANSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNFAX8DNAFVAzQBVQNSAakTAAH/AwAB/wMA
+ Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EAADCgEOAyEBMQMjATMDIwEzAjEBMAFNAzMBUwGz
+ AU8BEgH/AeMBxQGiAf8B+QHjAckB/wHrAc4BpAH/AesBzgGmAf8B6wHOAaUB/wH3Ad8BwAH/AbMBUAEW
+ Af8EAAMzAVMDPAFnAxQBHDgAA1IBqQM0AVUDNAFVAz8BbgMyAVAQAAMnATsDRAF8AzQBVQM0AVUDUgGp
+ EwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAAwoBDgM/AW0DXAH4AYUBiQGN
+ Af8BUgFVAYQB/wNfAfMDOgFiAwkBDAGzAU8BEgH/Ae0B0QG0Af8B6QHJAZ0B/wHpAckBnQH/AekByAGb
+ Af8B/AHoAdIB/wGzAVEBFwH/BwAB/gMAAf8DQwF3Ax8BLANXAcUDWQHHA1kBxwNZAccDWQHHA1kBxwNZ
+ AccDWQHHA1kBxwNZAccDWAHGAyYBOQQAA1IBqQM0AVUDNAFVAwUBBwNVAbUDEQEXA1IBqQMpAT4EAANQ
+ AZ8DEQEXAzQBVQM0AVUDUgGpEwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwA
+ Az4BawOAAf8C0gHRAf8B7wHuAe0B/wLvAe4B/wHSAdMB0gH/AVQBgAGBAf8DOgFgAzIBUAHQAacBUgH/
+ AeoByQGcAf8B5AHDAZIB/wHyAdcBtQH/AdoBtgGQAf8CUwFSAagEAANSAfQDAAH/Az4BbAMOARMDQgF1
+ A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwMUARsEAANSAakDNAFVAzQBVQQA
+ AzwBaANWAb4DIwE0A1UBtQMSARkDUQGgBAADNAFVAzQBVQNSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMA
+ Af8DAwH/AwgB/wMIAf8DXAHfDAADXAH4As0BzAH/AeMB4gHhAf8B3wHeAd0B/wHfAd4B3QH/AeMB4gHh
+ Af8DzAH/A2cB8gMZASMByAGYAT4B/wHzAdoBtwH/AfEB1gGyAf8B/gHtAdkB/wG3AYEBHgH/AwoBDQQA
+ AwoBDgMRARcDAAEBOAADUgGpAzQBVQM0AVUDAAEBAy0BRgMKAQ4EAAM5AV8DXAHOAygBPAQAAzQBVQM0
+ AVUDUgGpEwAB/wOCAf8DHgH/AwgB/wMAAf8DAAH/AxIB/wMZAf8DXAHfAxcBIAwAA08B/wHjAeIB4QH/
+ AdcB1gHUAf8B1wHWAdQB/wHXAdYB1AH/AdcB1gHUAf8B4gHhAeAB/wGDAYgBjQH/BAABtwGAARsC/wHw
+ AdwB/wH6AeYBzgH/AcEBkAEyAf8DQAFuCAADUQGiA1YBtgMqAUAEAAMQARUDEQEXAxEBFwMRARcDEQEX
+ AxEBFwMRARcDEQEXAxEBFwMRARcDEAEWCAADUgGpAzQBVQM0AVUDMwFTA1IBpgNKAYwHAAEBA0cBgwgA
+ AzQBVQM0AVUDUgGpEwAB/wOZAf8DhQH/AysB/wMAAf8DAAH/AxIB/wNcAd8DFwEgEAADTwH/AfIB8QHw
+ Af8BzwHNAcsB/wHQAc4BywH/AdABzgHLAf8BzwHNAcsB/wHyAvAB/wFTAYEBhQH/BAADNwFbAbQBUgEY
+ Af8BtAFSARcB/wNAAW8PAAH/AwAB/wNDAXcDKQE+AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
+ Af8DAAH/AwAB/wMAAf8DMgFRBAADUgGpAzQBVQM0AVUDEQEXA1ABngMkATYUAAM0AVUDNAFVA1IBqRAA
+ A1AB+wMKAf8DCgH/AwoB/wMAAf8DAAH/A1wB3wMXASAUAANiAfYB2wLaAf8B6AHnAeYB/wHRAc8BzgH/
+ AdEBzwHOAf8B6AHnAeYB/wHbAtoB/wNiAfYgAANVAbQDWQHHAy8BSQMAAQEDGwEmAxwBJwMcAScDHAEn
+ AxwBJwMcAScDHAEnAxwBJwMcAScDHAEnAxwBJwMCAQMEAANSAakDIgEyA1IBqQNSAakDUgGpA1IBqQNS
+ AakDUgGpA1IBqQNSAakDUgGpA1IBqQMiATIDUgGpEAADIAEuAykBPwMpAT8DKQE/AykBPwMpAT8DEQEX
+ GAADLgFIA4AB/wHYAtcB/wH3AvYB/wH3AvYB/wHYAtcB/wOAAf8DLgFIZAADUAGjA1IBqQNSAakDUgGp
+ A1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1ABo0gAAy4BSANiAfYDTgH/A04B/wNi
+ AfYDLgFIJAABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/4EAAv8BgAEBAv8B/AEH
+ AgABvwH9AeABBwHwAQMCAAGgAR0B4AEHAeABAQEQAQEBoQH9AeABBwHgAQEBHwH/Ab8B/QHgAQcB4AEB
+ AgABgAEBAeABBwHgAQECAAGPAfEB4AEHAeABAQEfAf8BgAEBAeABBwGAAQEBHwH/AYMBwQHgAQcBAAEB
+ AgABgAFBAeABBwEAAQECAAGIAREB4AEHAQABAQEfAf8BgQERAeABBwEAAYMBEAEBAYEBMQHgAQ8BAAGH
+ AgABgQHxAeABHwEAAf8CAAGAAQEB4AE/AQAD/wGAAQEC/wGBAf8L
</value>
</data>
<metadata name="tsThumbnails.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@@ -211,9 +211,6 @@
<metadata name="tsGCode.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>551, 17</value>
</metadata>
- <metadata name="tsIslands.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>765, 17</value>
- </metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
diff --git a/PrusaSL1Viewer/Properties/AssemblyInfo.cs b/PrusaSL1Viewer/Properties/AssemblyInfo.cs
index 26e6c5d..0f73198 100644
--- a/PrusaSL1Viewer/Properties/AssemblyInfo.cs
+++ b/PrusaSL1Viewer/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("0.4.2.0")]
-[assembly: AssemblyFileVersion("0.4.2.0")]
+[assembly: AssemblyVersion("0.4.2.1")]
+[assembly: AssemblyFileVersion("0.4.2.1")]
diff --git a/PrusaSL1Viewer/Properties/Resources.Designer.cs b/PrusaSL1Viewer/Properties/Resources.Designer.cs
index 35663ce..f465407 100644
--- a/PrusaSL1Viewer/Properties/Resources.Designer.cs
+++ b/PrusaSL1Viewer/Properties/Resources.Designer.cs
@@ -243,6 +243,16 @@ namespace PrusaSL1Viewer.Properties {
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
+ internal static System.Drawing.Bitmap island_16x16 {
+ get {
+ object obj = ResourceManager.GetObject("island-16x16", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ /// </summary>
internal static System.Drawing.Bitmap layers_16x16 {
get {
object obj = ResourceManager.GetObject("layers-16x16", resourceCulture);
diff --git a/PrusaSL1Viewer/Properties/Resources.resx b/PrusaSL1Viewer/Properties/Resources.resx
index 2d1d571..79c59b0 100644
--- a/PrusaSL1Viewer/Properties/Resources.resx
+++ b/PrusaSL1Viewer/Properties/Resources.resx
@@ -121,12 +121,12 @@
<data name="Error-128x128" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Error-128x128.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
- <data name="Cancel-24x24" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>..\Images\Cancel-24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
- </data>
<data name="layers-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\layers-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
+ <data name="mutation_closing" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Images\gui\mutation_closing.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
<data name="eye-24x24" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\eye-24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -214,6 +214,9 @@
<data name="SaveAs-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\SaveAs-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
+ <data name="delete-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Images\delete-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
<data name="pointer-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\pointer-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -223,13 +226,13 @@
<data name="mutation_blackhat" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_blackhat.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
- <data name="mutation_closing" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>..\Images\gui\mutation_closing.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ <data name="Cancel-24x24" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Images\Cancel-24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Donate-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Donate-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
- <data name="delete-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>..\Images\delete-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ <data name="island-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Images\island-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root> \ No newline at end of file
diff --git a/PrusaSL1Viewer/PrusaSL1Viewer.csproj b/PrusaSL1Viewer/PrusaSL1Viewer.csproj
index 66038f7..c3479c0 100644
--- a/PrusaSL1Viewer/PrusaSL1Viewer.csproj
+++ b/PrusaSL1Viewer/PrusaSL1Viewer.csproj
@@ -290,6 +290,7 @@
<None Include="Images\refresh-16x16.png" />
<None Include="Images\pointer-16x16.png" />
<None Include="Images\delete-16x16.png" />
+ <None Include="Images\island-16x16.png" />
<Content Include="License-LGPL.txt" />
<Content Include="PrusaSL1Viewer.ico" />
</ItemGroup>
diff --git a/PrusaSlicer/printer/AnyCubic Photon.ini b/PrusaSlicer/printer/AnyCubic Photon.ini
new file mode 100644
index 0000000..733c464
--- /dev/null
+++ b/PrusaSlicer/printer/AnyCubic Photon.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 18:24:42 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 68.04
+display_mirror_x = 1
+display_mirror_y = 0
+display_orientation = portrait
+display_pixels_x = 2560
+display_pixels_y = 1440
+display_width = 120.96
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 155
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLiftHeight_5\nBottomLiftSpeed_40\nLiftHeight_5\nLiftingSpeed_60\nRetractSpeed_150\nBottomLightOffDelay_2\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/EPAX X1.ini b/PrusaSlicer/printer/EPAX X1.ini
index 45c1d40..31d5f8e 100644
--- a/PrusaSlicer/printer/EPAX X1.ini
+++ b/PrusaSlicer/printer/EPAX X1.ini
@@ -1,9 +1,9 @@
-# generated by PrusaSlicer 2.2.0+win64 on 2020-04-12 at 18:36:19 UTC
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 18:28:00 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
-bed_shape = 0x0,115x0,115x65,0x65
+bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 68.04
@@ -25,7 +25,7 @@ min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
-printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X1\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLiftHeight_5\nBottomLiftSpeed_60\nLiftHeight_5\nLiftingSpeed_60\nRetractSpeed_150\nBottomLightOffDelay_2\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X1\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_2\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_40\nLiftingSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
diff --git a/PrusaSlicer/printer/EPAX X10.ini b/PrusaSlicer/printer/EPAX X10.ini
new file mode 100644
index 0000000..37fd0cc
--- /dev/null
+++ b/PrusaSlicer/printer/EPAX X10.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 18:43:30 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,216.57x0,216.57x135.36,0x135.36
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 135.36
+display_mirror_x = 1
+display_mirror_y = 0
+display_orientation = portrait
+display_pixels_x = 2560
+display_pixels_y = 1600
+display_width = 216.57
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 250
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X10\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_12\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_40\nLiftingSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/EPAX X133 4K Mono.ini b/PrusaSlicer/printer/EPAX X133 4K Mono.ini
new file mode 100644
index 0000000..cdf8b6c
--- /dev/null
+++ b/PrusaSlicer/printer/EPAX X133 4K Mono.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 21:32:19 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,216.576x0,216.576x135.36,0x135.36
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 135.36
+display_mirror_x = 1
+display_mirror_y = 0
+display_orientation = landscape
+display_pixels_x = 3840
+display_pixels_y = 2160
+display_width = 216.576
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 400
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X133-4KMONO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_10\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_40\nLiftingSpeed_40\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/EPAX X156 4K Color.ini b/PrusaSlicer/printer/EPAX X156 4K Color.ini
new file mode 100644
index 0000000..02c3734
--- /dev/null
+++ b/PrusaSlicer/printer/EPAX X156 4K Color.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 21:33:06 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,345.6x0,345.6x194.4,0x194.4
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 194.4
+display_mirror_x = 1
+display_mirror_y = 0
+display_orientation = landscape
+display_pixels_x = 3840
+display_pixels_y = 2160
+display_width = 345.6
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 400
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X156-4KCOLOR\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_40\nLiftingSpeed_40\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/Elegoo Mars Saturn.ini b/PrusaSlicer/printer/Elegoo Mars Saturn.ini
new file mode 100644
index 0000000..0eb9b91
--- /dev/null
+++ b/PrusaSlicer/printer/Elegoo Mars Saturn.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 21:24:54 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,192x0,192x120,0x120
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 120
+display_mirror_x = 1
+display_mirror_y = 0
+display_orientation = landscape
+display_pixels_x = 2560
+display_pixels_y = 1600
+display_width = 192
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 200
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_SATURN\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_7\nBottomLiftSpeed_70\nLiftingSpeed_70\nRetractSpeed_70\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/Elegoo Mars.ini b/PrusaSlicer/printer/Elegoo Mars.ini
new file mode 100644
index 0000000..eeed32e
--- /dev/null
+++ b/PrusaSlicer/printer/Elegoo Mars.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 18:44:02 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 68.04
+display_mirror_x = 1
+display_mirror_y = 0
+display_orientation = portrait
+display_pixels_x = 2560
+display_pixels_y = 1440
+display_width = 120.96
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 150
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_MARS\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_90\nLiftingSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/Peopoly Phenom L.ini b/PrusaSlicer/printer/Peopoly Phenom L.ini
new file mode 100644
index 0000000..60a211d
--- /dev/null
+++ b/PrusaSlicer/printer/Peopoly Phenom L.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 21:41:06 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,345.6x0,345.6x194.4,0x194.4
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 194.4
+display_mirror_x = 1
+display_mirror_y = 0
+display_orientation = landscape
+display_pixels_x = 3840
+display_pixels_y = 2160
+display_width = 345.6
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 400
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM_L\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_9\nBottomLiftSpeed_32\nLiftingSpeed_45\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/Peopoly Phenom Noir.ini b/PrusaSlicer/printer/Peopoly Phenom Noir.ini
new file mode 100644
index 0000000..93f24f5
--- /dev/null
+++ b/PrusaSlicer/printer/Peopoly Phenom Noir.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 21:41:22 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,293.76x0,293.76x165.24,0x165.24
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 165.24
+display_mirror_x = 1
+display_mirror_y = 0
+display_orientation = landscape
+display_pixels_x = 3840
+display_pixels_y = 2160
+display_width = 293.76
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 400
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM_NOIR\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_36\nLiftingSpeed_45\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/Peopoly Phenom.ini b/PrusaSlicer/printer/Peopoly Phenom.ini
new file mode 100644
index 0000000..aa9a4b3
--- /dev/null
+++ b/PrusaSlicer/printer/Peopoly Phenom.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 21:23:09 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,276.48x0,276.48x155.52,0x155.52
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 155.52
+display_mirror_x = 1
+display_mirror_y = 0
+display_orientation = landscape
+display_pixels_x = 3840
+display_pixels_y = 2160
+display_width = 276.48
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 400
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_36\nLiftingSpeed_48\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/Phrozen Shuffle 4K.ini b/PrusaSlicer/printer/Phrozen Shuffle 4K.ini
new file mode 100644
index 0000000..b2ded0e
--- /dev/null
+++ b/PrusaSlicer/printer/Phrozen Shuffle 4K.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 22:24:40 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 68.04
+display_mirror_x = 0
+display_mirror_y = 0
+display_orientation = portrait
+display_pixels_x = 3840
+display_pixels_y = 2160
+display_width = 120.96
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 170
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_4K\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_10\nBottomLightOffDelay_10\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftingSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/Phrozen Shuffle Lite.ini b/PrusaSlicer/printer/Phrozen Shuffle Lite.ini
new file mode 100644
index 0000000..dae3165
--- /dev/null
+++ b/PrusaSlicer/printer/Phrozen Shuffle Lite.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 22:27:07 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,120.32x0,120.32x67.68,0x67.68
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 67.68
+display_mirror_x = 0
+display_mirror_y = 0
+display_orientation = portrait
+display_pixels_x = 2560
+display_pixels_y = 1440
+display_width = 120.32
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 170
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_LITE\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftingSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/Phrozen Shuffle XL.ini b/PrusaSlicer/printer/Phrozen Shuffle XL.ini
new file mode 100644
index 0000000..93152d5
--- /dev/null
+++ b/PrusaSlicer/printer/Phrozen Shuffle XL.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 22:26:36 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,192x0,192x120,0x120
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 120
+display_mirror_x = 0
+display_mirror_y = 0
+display_orientation = landscape
+display_pixels_x = 2560
+display_pixels_y = 1600
+display_width = 192
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 200
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_4K\n\nSTART_CUSTOM_VALUES\nLayerOffTime_10\nBottomLightOffDelay_10\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftingSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/Phrozen Shuffle.ini b/PrusaSlicer/printer/Phrozen Shuffle.ini
new file mode 100644
index 0000000..5d2cfac
--- /dev/null
+++ b/PrusaSlicer/printer/Phrozen Shuffle.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 22:14:00 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,120.32x0,120.32x67.68,0x67.68
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 67.68
+display_mirror_x = 0
+display_mirror_y = 0
+display_orientation = portrait
+display_pixels_x = 2560
+display_pixels_y = 1440
+display_width = 120.32
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 200
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftingSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/Phrozen Sonic Mini.ini b/PrusaSlicer/printer/Phrozen Sonic Mini.ini
index 89a571b..cd284c3 100644
--- a/PrusaSlicer/printer/Phrozen Sonic Mini.ini
+++ b/PrusaSlicer/printer/Phrozen Sonic Mini.ini
@@ -1,4 +1,4 @@
-# generated by PrusaSlicer 2.2.0+win64 on 2020-05-26 at 15:23:26 UTC
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 22:29:16 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
@@ -25,7 +25,7 @@ min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
-printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONICMINI\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_7\nBottomLiftHeight_6\nBottomLiftSpeed_100\nLiftHeight_5\nLiftingSpeed_100\nRetractSpeed_200\nBottomLightOffDelay_7\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_MINI\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftingSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
diff --git a/PrusaSlicer/printer/Phrozen Sonic.ini b/PrusaSlicer/printer/Phrozen Sonic.ini
new file mode 100644
index 0000000..7806b94
--- /dev/null
+++ b/PrusaSlicer/printer/Phrozen Sonic.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 22:29:10 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 68.04
+display_mirror_x = 0
+display_mirror_y = 0
+display_orientation = portrait
+display_pixels_x = 1920
+display_pixels_y = 1080
+display_width = 120.96
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 170
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_6\nBottomLightOffDelay_6\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftingSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/Phrozen Transform.ini b/PrusaSlicer/printer/Phrozen Transform.ini
new file mode 100644
index 0000000..65406bd
--- /dev/null
+++ b/PrusaSlicer/printer/Phrozen Transform.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 22:32:45 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,291.84x0,291.84x164.16,0x164.16
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 164.16
+display_mirror_x = 0
+display_mirror_y = 0
+display_orientation = landscape
+display_pixels_x = 3840
+display_pixels_y = 2160
+display_width = 291.84
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 400
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_TRANSFORM\n\nSTART_CUSTOM_VALUES\nLayerOffTime_10\nBottomLightOffDelay_10\nBottomLiftHeight_10\nLiftHeight_8\nBottomLiftSpeed_65\nLiftingSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/QIDI Shadow5.5.ini b/PrusaSlicer/printer/QIDI Shadow5.5.ini
new file mode 100644
index 0000000..20d573d
--- /dev/null
+++ b/PrusaSlicer/printer/QIDI Shadow5.5.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 21:10:30 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 68.04
+display_mirror_x = 1
+display_mirror_y = 0
+display_orientation = portrait
+display_pixels_x = 2560
+display_pixels_y = 1440
+display_width = 120.96
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 150
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_SHADOW5.5\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_80\nLiftHeight_5\nBottomLiftSpeed_65\nLiftingSpeed_65\nRetractSpeed_65\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480
diff --git a/PrusaSlicer/printer/QIDI Shadow6.0 Pro.ini b/PrusaSlicer/printer/QIDI Shadow6.0 Pro.ini
new file mode 100644
index 0000000..a6332b6
--- /dev/null
+++ b/PrusaSlicer/printer/QIDI Shadow6.0 Pro.ini
@@ -0,0 +1,37 @@
+# generated by PrusaSlicer 2.2.0+win64 on 2020-06-04 at 21:12:51 UTC
+absolute_correction = 0
+area_fill = 50
+bed_custom_model =
+bed_custom_texture =
+bed_shape = 0x0,132.48x0,132.48x74.52,0x74.52
+default_sla_material_profile = Prusa Orange Tough 0.05
+default_sla_print_profile = 0.05 Normal
+display_height = 74.52
+display_mirror_x = 1
+display_mirror_y = 0
+display_orientation = portrait
+display_pixels_x = 2560
+display_pixels_y = 1440
+display_width = 132.48
+elefant_foot_compensation = 0.2
+elefant_foot_min_width = 0.2
+fast_tilt_time = 5
+gamma_correction = 1
+inherits = Original Prusa SL1
+max_exposure_time = 120
+max_initial_exposure_time = 300
+max_print_height = 150
+min_exposure_time = 1
+min_initial_exposure_time = 1
+print_host =
+printer_model = SL1
+printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_SHADOW6.0PRO\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_80\nLiftHeight_5\nBottomLiftSpeed_100\nLiftingSpeed_65\nRetractSpeed_65\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
+printer_settings_id =
+printer_technology = SLA
+printer_variant = default
+printer_vendor =
+printhost_apikey =
+printhost_cafile =
+relative_correction = 1,1
+slow_tilt_time = 8
+thumbnails = 400x400,800x480