pre v0.4.3

This commit is contained in:
Tiago Conceição
2020-06-10 05:51:57 +01:00
parent 80dc1f2a5c
commit 0f02f4d2a0
26 changed files with 2079 additions and 382 deletions
+18
View File
@@ -1,5 +1,23 @@
# Changelog # Changelog
## ? - v0.4.3
* (Add) PWS and PW0 file formats
* (Add) Open image files as single layer and transform them in grayscale (jpg, jpeg, png, bmp, gif, tga)
* (Add) Shortcut "Home" go to first layer
* (Add) Shortcut "End" go to last layer
* (Add) Shortcut "+" and button go to next layer
* (Add) Shortcut "-" and button go to previous layer
* (Add) Show current layer and height near tracker position
* (Change) Scroll bar to track bar
* (Change) Keyword "LiftingSpeed" to "LiftSpeed" under PrusaSlicer notes (Please update printers notes or import them again)
* (Change) Keywords For Nova3D Elfin printer under PrusaSlicer notes (Please update printers notes or import them again)
* (Change) Keywords For Zortrax Inkspire printer under PrusaSlicer notes (Please update printers notes or import them again)
* (Improvement) Much faster layer scroll display
* (Improvement) Hide empty items for status bar, ie: if printer don't have them to display
* (Fix) Save layer preview image trigger an error
* (Fix) Implement missing "InheritsCummulative" key to SL1 files
## 05/06/2020 - v0.4.2.2 - Beta ## 05/06/2020 - v0.4.2.2 - Beta
* (Add) Shortcut "ESC" under Islands list view to deselect all items * (Add) Shortcut "ESC" under Islands list view to deselect all items
+1 -4
View File
@@ -12,7 +12,6 @@ using System.IO.Compression;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Text; using System.Text;
using System.Text.RegularExpressions;
using PrusaSL1Reader.Extensions; using PrusaSL1Reader.Extensions;
namespace PrusaSL1Reader namespace PrusaSL1Reader
@@ -132,8 +131,6 @@ namespace PrusaSL1Reader
public override float LayerHeight => SliceSettings.Thickness; public override float LayerHeight => SliceSettings.Thickness;
public override uint LayerCount => SliceSettings.LayersNum;
public override ushort InitialLayerCount => SliceSettings.HeadLayersNum; public override ushort InitialLayerCount => SliceSettings.HeadLayersNum;
public override float InitialExposureTime => SliceSettings.HeadLayersExpoMs / 1000f; public override float InitialExposureTime => SliceSettings.HeadLayersExpoMs / 1000f;
@@ -280,7 +277,7 @@ namespace PrusaSL1Reader
} }
LayerManager = new LayerManager(LayerCount); LayerManager = new LayerManager(OutputSettings.LayersNum);
foreach (var zipArchiveEntry in inputFile.Entries) foreach (var zipArchiveEntry in inputFile.Entries)
{ {
+2 -36
View File
@@ -25,11 +25,9 @@ namespace PrusaSL1Reader
#region Constants #region Constants
private const uint MAGIC_CBDDLP = 0x12FD0019; private const uint MAGIC_CBDDLP = 0x12FD0019;
private const uint MAGIC_CBT = 0x12FD0086; private const uint MAGIC_CBT = 0x12FD0086;
private const int SPECIAL_BIT = 1 << 1;
private const int SPECIAL_BIT_MASK = ~SPECIAL_BIT;
private const ushort REPEATRGB15MASK = 0x20; private const ushort REPEATRGB15MASK = 0x20;
private const byte RLE8EncodingLimit = 125; private const byte RLE8EncodingLimit = 0x7d; // 125;
private const ushort RLE16EncodingLimit = 0xFFF; private const ushort RLE16EncodingLimit = 0xFFF;
#endregion #endregion
@@ -514,8 +512,6 @@ namespace PrusaSL1Reader
public override float LayerHeight => HeaderSettings.LayerHeightMilimeter; public override float LayerHeight => HeaderSettings.LayerHeightMilimeter;
public override uint LayerCount => HeaderSettings.LayerCount;
public override ushort InitialLayerCount => (ushort)HeaderSettings.BottomLayersCount; public override ushort InitialLayerCount => (ushort)HeaderSettings.BottomLayersCount;
public override float InitialExposureTime => HeaderSettings.BottomExposureSeconds; public override float InitialExposureTime => HeaderSettings.BottomExposureSeconds;
@@ -826,36 +822,6 @@ namespace PrusaSL1Reader
// Collect stragglers // Collect stragglers
AddRep(); AddRep();
/*byte color;
byte black = 0;
byte white = 1;
byte nrOfColor = 0;
byte prevColor = byte.MaxValue;
for (int y = 0; y < image.Height; y++)
{
Span<L8> pixelRowSpan = image.GetPixelRowSpan(y);
for (int x = 0; x < image.Width; x++)
{
color = pixelRowSpan[x].PackedValue < 128 ? black : white;
if (prevColor == byte.MaxValue) prevColor = color;
bool isLastPixel = x == (image.Width - 1) && y == (image.Height - 1);
if (color == prevColor && nrOfColor < 0x7D && !isLastPixel)
{
nrOfColor++;
}
else
{
byte encValue = (byte)((prevColor << 7) | nrOfColor); // push color (B/W) to highest bit and repetitions to lowest 7 bits.
rawData.Add(encValue);
prevColor = color;
nrOfColor = 1;
}
}
}*/
return rawData; return rawData;
} }
@@ -1070,7 +1036,7 @@ namespace PrusaSL1Reader
} }
} }
LayerManager = new LayerManager(LayerCount); LayerManager = new LayerManager(HeaderSettings.LayerCount);
Parallel.For(0, LayerCount, layerIndex => { Parallel.For(0, LayerCount, layerIndex => {
var image = IsCbtFile ? DecodeCbtImage((uint) layerIndex) : DecodeCbddlpImage((uint) layerIndex); var image = IsCbtFile ? DecodeCbtImage((uint) layerIndex) : DecodeCbddlpImage((uint) layerIndex);
+39 -23
View File
@@ -8,10 +8,8 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Runtime.InteropServices;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using PrusaSL1Reader.Extensions; using PrusaSL1Reader.Extensions;
@@ -134,8 +132,10 @@ namespace PrusaSL1Reader
new SL1File(), // Prusa SL1 new SL1File(), // Prusa SL1
new ChituboxFile(), // cbddlp, cbt, photon new ChituboxFile(), // cbddlp, cbt, photon
new PHZFile(), // phz new PHZFile(), // phz
new PWSFile(), // PSW
new ZCodexFile(), // zcodex new ZCodexFile(), // zcodex
new CWSFile(), // CWS new CWSFile(), // CWS
new ImageFile(), // images
}; };
/// <summary> /// <summary>
@@ -271,7 +271,7 @@ namespace PrusaSL1Reader
public float TotalHeight => (float)Math.Round(LayerCount * LayerHeight, 2); public float TotalHeight => (float)Math.Round(LayerCount * LayerHeight, 2);
public abstract uint LayerCount { get; } public uint LayerCount => LayerManager.Count;
public abstract ushort InitialLayerCount { get; } public abstract ushort InitialLayerCount { get; }
@@ -448,6 +448,8 @@ namespace PrusaSL1Reader
public virtual void Encode(string fileFullPath) public virtual void Encode(string fileFullPath)
{ {
FileFullPath = fileFullPath;
if (File.Exists(fileFullPath)) if (File.Exists(fileFullPath))
{ {
File.Delete(fileFullPath); File.Delete(fileFullPath);
@@ -511,44 +513,58 @@ namespace PrusaSL1Reader
if (genericConfigExtract) if (genericConfigExtract)
{ {
using (TextWriter tw = new StreamWriter(Path.Combine(path, $"{ExtractConfigFileName}.{ExtractConfigFileExtension}"), false)) if (!ReferenceEquals(Configs, null))
{ {
foreach (var config in Configs) using (TextWriter tw = new StreamWriter(Path.Combine(path, $"{ExtractConfigFileName}.{ExtractConfigFileExtension}"), false))
{ {
var type = config.GetType(); foreach (var config in Configs)
tw.WriteLine($"[{type.Name}]");
foreach (var property in type.GetProperties())
{ {
tw.WriteLine($"{property.Name} = {property.GetValue(config)}"); var type = config.GetType();
tw.WriteLine($"[{type.Name}]");
foreach (var property in type.GetProperties())
{
tw.WriteLine($"{property.Name} = {property.GetValue(config)}");
}
tw.WriteLine();
} }
tw.WriteLine();
tw.Close();
} }
tw.Close();
} }
} }
if (genericLayersExtract) if (genericLayersExtract)
{ {
uint i = 0; uint i = 0;
foreach (var thumbnail in Thumbnails) if (!ReferenceEquals(Thumbnails, null))
{ {
if (ReferenceEquals(thumbnail, null)) foreach (var thumbnail in Thumbnails)
{ {
continue; if (ReferenceEquals(thumbnail, null))
{
continue;
}
thumbnail.Save(Path.Combine(path, $"Thumbnail{i}.png"), Helpers.PngEncoder);
i++;
} }
thumbnail.Save(Path.Combine(path, $"Thumbnail{i}.png"), Helpers.PngEncoder);
i++;
} }
Parallel.ForEach(this, (layer) => if (LayerCount > 0)
{ {
var byteArr = layer.RawData; Parallel.ForEach(this, (layer) =>
using (FileStream stream = File.Create(Path.Combine(path, $"Layer{layer.Index}.png"), byteArr.Length))
{ {
stream.Write(byteArr, 0, byteArr.Length); var byteArr = layer.RawData;
stream.Close(); using (FileStream stream = File.Create(Path.Combine(path, $"Layer{layer.Index}.png"),
} byteArr.Length))
}); {
stream.Write(byteArr, 0, byteArr.Length);
stream.Close();
}
});
}
/* Parallel.For(0, LayerCount, layerIndex => { /* Parallel.For(0, LayerCount, layerIndex => {
var byteArr = this[layerIndex].RawData; var byteArr = this[layerIndex].RawData;
using (FileStream stream = File.Create(Path.Combine(path, $"Layer{layerIndex}.png"), byteArr.Length)) using (FileStream stream = File.Create(Path.Combine(path, $"Layer{layerIndex}.png"), byteArr.Length))
+93
View File
@@ -0,0 +1,93 @@
using System;
using System.IO;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using Size = System.Drawing.Size;
namespace PrusaSL1Reader
{
public class ImageFile : FileFormat
{
public override FileFormatType FileType { get; } = FileFormatType.Binary;
public override FileExtension[] FileExtensions { get; } =
{
new FileExtension("jpg", "JPG"),
new FileExtension("jpeg", "JPEG"),
new FileExtension("png", "PNG"),
new FileExtension("bmp", "BMP"),
new FileExtension("gif", "GIF"),
new FileExtension("tga", "TGA"),
};
public override Type[] ConvertToFormats { get; } = null;
public override PrintParameterModifier[] PrintParameterModifiers { get; } = null;
public override byte ThumbnailsCount { get; } = 4;
public override Size[] ThumbnailsOriginalSize { get; } = null;
public override uint ResolutionX => (uint)ImageL8.Width;
public override uint ResolutionY => (uint)ImageL8.Height;
public override float LayerHeight { get; } = 0;
public override ushort InitialLayerCount { get; } = 1;
public override float InitialExposureTime { get; } = 0;
public override float LayerExposureTime { get; } = 0;
public override float LiftHeight { get; } = 0;
public override float RetractSpeed { get; } = 0;
public override float LiftSpeed { get; } = 0;
public override float PrintTime { get; } = 0;
public override float UsedMaterial { get; } = 0;
public override float MaterialCost { get; } = 0;
public override string MaterialName { get; } = null;
public override string MachineName { get; } = null;
public override object[] Configs { get; } = null;
private Image<L8> ImageL8 { get; set; }
public override bool SetValueFromPrintParameterModifier(PrintParameterModifier modifier, string value)
{
throw new NotImplementedException();
}
public override void Decode(string fileFullPath)
{
base.Decode(fileFullPath);
using (var ms = new MemoryStream())
{
using (var fs = File.Open(fileFullPath, FileMode.Open))
{
fs.CopyTo(ms);
ms.Seek(0, SeekOrigin.Begin);
var image = Image.Load(ms);
const byte startDivisor = 2;
for (int i = 0; i < ThumbnailsCount; i++)
{
Thumbnails[i] = image.CloneAs<Rgba32>();
var divisor = (i + startDivisor);
Thumbnails[i].Mutate(o => o.Resize(image.Width / divisor, image.Height / divisor));
}
image.Mutate(o => o.Grayscale());
ImageL8 = image.CloneAs<L8>();
LayerManager = new LayerManager(1);
this[0] = new Layer(0, ImageL8, Path.GetFileName(fileFullPath));
fs.Close();
}
}
}
public override void SaveAs(string filePath = null)
{
this[0].Image.Save(filePath);
}
public override bool Convert(Type to, string fileFullPath)
{
throw new NotImplementedException();
}
}
}
+1 -3
View File
@@ -457,8 +457,6 @@ namespace PrusaSL1Reader
public override float LayerHeight => HeaderSettings.LayerHeightMilimeter; public override float LayerHeight => HeaderSettings.LayerHeightMilimeter;
public override uint LayerCount => HeaderSettings.LayerCount;
public override ushort InitialLayerCount => (ushort)HeaderSettings.BottomLayersCount; public override ushort InitialLayerCount => (ushort)HeaderSettings.BottomLayersCount;
public override float InitialExposureTime => HeaderSettings.BottomExposureSeconds; public override float InitialExposureTime => HeaderSettings.BottomExposureSeconds;
@@ -854,7 +852,7 @@ namespace PrusaSL1Reader
} }
} }
LayerManager = new LayerManager(LayerCount); LayerManager = new LayerManager(HeaderSettings.LayerCount);
Parallel.For(0, LayerCount, layerIndex => { Parallel.For(0, LayerCount, layerIndex => {
var image = DecodePhzImage((uint) layerIndex); var image = DecodePhzImage((uint) layerIndex);
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -7,9 +7,9 @@
<PackageProjectUrl>https://github.com/sn4k3/PrusaSL1Viewer</PackageProjectUrl> <PackageProjectUrl>https://github.com/sn4k3/PrusaSL1Viewer</PackageProjectUrl>
<PackageIcon></PackageIcon> <PackageIcon></PackageIcon>
<RepositoryUrl>https://github.com/sn4k3/PrusaSL1Viewer</RepositoryUrl> <RepositoryUrl>https://github.com/sn4k3/PrusaSL1Viewer</RepositoryUrl>
<AssemblyVersion>0.4.2.2</AssemblyVersion> <AssemblyVersion>0.4.3.0</AssemblyVersion>
<FileVersion>0.4.2.2</FileVersion> <FileVersion>0.4.3.2</FileVersion>
<Version>0.4.2.2</Version> <Version>0.4.3</Version>
<Description>Open, view, edit, extract and convert DLP/SLA files generated from Slicers</Description> <Description>Open, view, edit, extract and convert DLP/SLA files generated from Slicers</Description>
</PropertyGroup> </PropertyGroup>
+138 -78
View File
@@ -20,12 +20,27 @@ namespace PrusaSL1Reader
{ {
public class SL1File : FileFormat public class SL1File : FileFormat
{ {
#region Constants
public const string Keyword_BottomLightOffDelay = "BottomLightOffDelay";
public const string Keyword_LayerOffTime = "LayerOffTime";
public const string Keyword_LightOffDelay = "LightOffDelay";
public const string Keyword_BottomLiftHeight = "BottomLiftHeight";
public const string Keyword_BottomLiftSpeed = "BottomLiftSpeed";
public const string Keyword_LiftHeight = "LiftHeight";
public const string Keyword_LiftSpeed = "LiftSpeed";
public const string Keyword_RetractSpeed = "RetractSpeed";
public const string Keyword_BottomLightPWM = "BottomLightPWM";
public const string Keyword_LightPWM = "LightPWM";
#endregion
#region Sub Classes #region Sub Classes
#region Printer #region Printer
public class Printer public class Printer
{ {
#region Printer #region Printer
public string InheritsCummulative { get; set; }
public string PrinterSettingsId { get; set; } public string PrinterSettingsId { get; set; }
public string PrinterTechnology { get; set; } public string PrinterTechnology { get; set; }
public string PrinterModel { get; set; } public string PrinterModel { get; set; }
@@ -276,6 +291,7 @@ namespace PrusaSL1Reader
public override Type[] ConvertToFormats { get; } = public override Type[] ConvertToFormats { get; } =
{ {
typeof(ChituboxFile), typeof(ChituboxFile),
typeof(PWSFile),
typeof(PHZFile), typeof(PHZFile),
typeof(ZCodexFile), typeof(ZCodexFile),
typeof(CWSFile), typeof(CWSFile),
@@ -298,8 +314,6 @@ namespace PrusaSL1Reader
public override float LayerHeight => OutputConfigSettings.LayerHeight; public override float LayerHeight => OutputConfigSettings.LayerHeight;
public override uint LayerCount => (uint) (OutputConfigSettings.NumFast + OutputConfigSettings.NumSlow);
public override ushort InitialLayerCount => OutputConfigSettings.NumFade; public override ushort InitialLayerCount => OutputConfigSettings.NumFade;
public override float InitialExposureTime => OutputConfigSettings.ExpTimeFirst; public override float InitialExposureTime => OutputConfigSettings.ExpTimeFirst;
@@ -431,7 +445,7 @@ namespace PrusaSL1Reader
} }
} }
LayerManager = new LayerManager(LayerCount); LayerManager = new LayerManager((uint) (OutputConfigSettings.NumSlow + OutputConfigSettings.NumFast));
foreach (ZipArchiveEntry entity in inputFile.Entries) foreach (ZipArchiveEntry entity in inputFile.Entries)
{ {
@@ -565,45 +579,56 @@ namespace PrusaSL1Reader
if (to == typeof(ChituboxFile)) if (to == typeof(ChituboxFile))
{ {
ChituboxFile defaultFormat = (ChituboxFile)FindByType(typeof(ChituboxFile));
ChituboxFile file = new ChituboxFile ChituboxFile file = new ChituboxFile
{ {
LayerManager = LayerManager LayerManager = LayerManager,
HeaderSettings =
{
Version = 2,
BedSizeX = PrinterSettings.DisplayWidth,
BedSizeY = PrinterSettings.DisplayHeight,
BedSizeZ = PrinterSettings.MaxPrintHeight,
OverallHeightMilimeter = TotalHeight,
BottomExposureSeconds = InitialExposureTime,
BottomLayersCount = InitialLayerCount,
BottomLightPWM = LookupCustomValue<ushort>(Keyword_BottomLightPWM, defaultFormat.HeaderSettings.BottomLightPWM),
LayerCount = LayerCount,
LayerExposureSeconds = LayerExposureTime,
LayerHeightMilimeter = LayerHeight,
LayerOffTime = LookupCustomValue<float>(Keyword_LayerOffTime, defaultFormat.HeaderSettings.LayerOffTime),
LightPWM = LookupCustomValue<ushort>(Keyword_LightPWM, defaultFormat.HeaderSettings.LightPWM),
PrintTime = (uint) OutputConfigSettings.PrintTime,
ProjectorType = PrinterSettings.DisplayMirrorX ? 1u : 0u,
ResolutionX = ResolutionX,
ResolutionY = ResolutionY
},
PrintParametersSettings =
{
BottomLayerCount = PrintSettings.FadedLayers,
BottomLiftHeight = LookupCustomValue<float>(Keyword_BottomLiftHeight,
defaultFormat.PrintParametersSettings.BottomLiftHeight),
BottomLiftSpeed = LookupCustomValue<float>(Keyword_BottomLiftSpeed,
defaultFormat.PrintParametersSettings.BottomLiftSpeed),
BottomLightOffDelay = LookupCustomValue<float>(Keyword_BottomLightOffDelay,
defaultFormat.PrintParametersSettings.BottomLightOffDelay),
CostDollars = MaterialCost,
LiftHeight = LookupCustomValue<float>(Keyword_LiftHeight,
defaultFormat.PrintParametersSettings.LiftHeight),
LiftingSpeed = LookupCustomValue<float>(Keyword_LiftSpeed,
defaultFormat.PrintParametersSettings.LiftingSpeed),
LightOffDelay = LookupCustomValue<float>(Keyword_LightOffDelay,
defaultFormat.PrintParametersSettings.LightOffDelay),
RetractSpeed = LookupCustomValue<float>(Keyword_RetractSpeed,
defaultFormat.PrintParametersSettings.RetractSpeed),
VolumeMl = UsedMaterial,
WeightG = (float) Math.Round(
OutputConfigSettings.UsedMaterial * MaterialSettings.MaterialDensity, 2)
},
SlicerInfoSettings = {MachineName = MachineName, MachineNameSize = (uint) MachineName.Length}
}; };
file.HeaderSettings.Version = 2;
file.HeaderSettings.BedSizeX = PrinterSettings.DisplayWidth;
file.HeaderSettings.BedSizeY = PrinterSettings.DisplayHeight;
file.HeaderSettings.BedSizeZ = PrinterSettings.MaxPrintHeight;
file.HeaderSettings.OverallHeightMilimeter = TotalHeight;
file.HeaderSettings.BottomExposureSeconds = InitialExposureTime;
file.HeaderSettings.BottomLayersCount = InitialLayerCount;
file.HeaderSettings.BottomLightPWM = LookupCustomValue<ushort>("BottomLightPWM", file.HeaderSettings.BottomLightPWM);
file.HeaderSettings.LayerCount = LayerCount;
file.HeaderSettings.LayerExposureSeconds = LayerExposureTime;
file.HeaderSettings.LayerHeightMilimeter = LayerHeight;
file.HeaderSettings.LayerOffTime = LookupCustomValue<float>("LayerOffTime", file.HeaderSettings.LayerOffTime);
file.HeaderSettings.LightPWM = LookupCustomValue<ushort>("LightPWM", file.HeaderSettings.LightPWM);
file.HeaderSettings.PrintTime = (uint) OutputConfigSettings.PrintTime;
file.HeaderSettings.ProjectorType = PrinterSettings.DisplayMirrorX ? 1u : 0u;
file.HeaderSettings.ResolutionX = ResolutionX;
file.HeaderSettings.ResolutionY = ResolutionY;
file.PrintParametersSettings.BottomLayerCount = PrintSettings.FadedLayers;
file.PrintParametersSettings.BottomLiftHeight = LookupCustomValue<float>("BottomLiftHeight", file.PrintParametersSettings.BottomLiftHeight);
file.PrintParametersSettings.BottomLiftSpeed = LookupCustomValue<float>("BottomLiftSpeed", file.PrintParametersSettings.BottomLiftSpeed);
file.PrintParametersSettings.BottomLightOffDelay = LookupCustomValue<float>("BottomLightOffDelay", file.PrintParametersSettings.BottomLightOffDelay);
file.PrintParametersSettings.CostDollars = MaterialCost;
file.PrintParametersSettings.LiftHeight = LookupCustomValue<float>("LiftHeight", file.PrintParametersSettings.LiftHeight);
file.PrintParametersSettings.LiftingSpeed = LookupCustomValue<float>("LiftingSpeed", file.PrintParametersSettings.LiftingSpeed);
file.PrintParametersSettings.LightOffDelay = LookupCustomValue<float>("LightOffDelay", file.PrintParametersSettings.LightOffDelay);
file.PrintParametersSettings.RetractSpeed = LookupCustomValue<float>("RetractSpeed", file.PrintParametersSettings.RetractSpeed);
file.PrintParametersSettings.VolumeMl = UsedMaterial;
file.PrintParametersSettings.WeightG = (float) Math.Round(OutputConfigSettings.UsedMaterial * MaterialSettings.MaterialDensity, 2);
file.SlicerInfoSettings.MachineName = MachineName;
file.SlicerInfoSettings.MachineNameSize = (uint)MachineName.Length;
if (LookupCustomValue<bool>("FLIP_XY", false, true)) if (LookupCustomValue<bool>("FLIP_XY", false, true))
{ {
file.HeaderSettings.ResolutionX = PrinterSettings.DisplayPixelsY; file.HeaderSettings.ResolutionX = PrinterSettings.DisplayPixelsY;
@@ -616,48 +641,82 @@ namespace PrusaSL1Reader
return true; return true;
} }
if (to == typeof(PHZFile)) if (to == typeof(PWSFile))
{ {
PHZFile file = new PHZFile PWSFile defaultFormat = (PWSFile)FindByType(typeof(PWSFile));
PWSFile file = new PWSFile
{ {
LayerManager = LayerManager LayerManager = LayerManager,
HeaderSettings =
{
ResolutionX = ResolutionX,
ResolutionY = ResolutionY,
LayerHeight = LayerHeight,
LayerExposureTime = LayerExposureTime,
LiftHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.HeaderSettings.LiftHeight),
LiftSpeed = LookupCustomValue<float>(Keyword_LiftSpeed, defaultFormat.HeaderSettings.LiftSpeed) / 60,
RetractSpeed = LookupCustomValue<float>(Keyword_RetractSpeed, defaultFormat.HeaderSettings.RetractSpeed) / 60,
LayerOffTime = LookupCustomValue<float>(Keyword_LayerOffTime, defaultFormat.HeaderSettings.LayerOffTime),
BottomLayersCount = InitialLayerCount,
BottomExposureSeconds = InitialExposureTime,
Price = MaterialCost,
Volume = UsedMaterial,
Weight = (float) Math.Round(OutputConfigSettings.UsedMaterial * MaterialSettings.MaterialDensity, 2)
}
}; };
file.HeaderSettings.Version = 2; if (LookupCustomValue<bool>("FLIP_XY", false, true))
file.HeaderSettings.BedSizeX = PrinterSettings.DisplayWidth; {
file.HeaderSettings.BedSizeY = PrinterSettings.DisplayHeight; file.HeaderSettings.ResolutionX = PrinterSettings.DisplayPixelsY;
file.HeaderSettings.BedSizeZ = PrinterSettings.MaxPrintHeight; file.HeaderSettings.ResolutionY = PrinterSettings.DisplayPixelsX;
file.HeaderSettings.OverallHeightMilimeter = TotalHeight; }
file.HeaderSettings.BottomExposureSeconds = MaterialSettings.InitialExposureTime;
file.HeaderSettings.BottomLayersCount = PrintSettings.FadedLayers;
file.HeaderSettings.BottomLightPWM = LookupCustomValue<ushort>("BottomLightPWM", file.HeaderSettings.BottomLightPWM);
file.HeaderSettings.LayerCount = LayerCount;
file.HeaderSettings.LayerExposureSeconds = MaterialSettings.ExposureTime;
file.HeaderSettings.LayerHeightMilimeter = PrintSettings.LayerHeight;
file.HeaderSettings.LayerOffTime = LookupCustomValue<float>("LayerOffTime", file.HeaderSettings.LayerOffTime);
file.HeaderSettings.LightPWM = LookupCustomValue<ushort>("LightPWM", file.HeaderSettings.LightPWM);
file.HeaderSettings.PrintTime = (uint)OutputConfigSettings.PrintTime;
file.HeaderSettings.ProjectorType = PrinterSettings.DisplayMirrorX ? 1u : 0u;
file.HeaderSettings.ResolutionX = PrinterSettings.DisplayPixelsX;
file.HeaderSettings.ResolutionY = PrinterSettings.DisplayPixelsY;
file.SetThumbnails(Thumbnails);
file.Encode(fileFullPath);
file.HeaderSettings.BottomLayerCount = PrintSettings.FadedLayers; return true;
file.HeaderSettings.BottomLiftHeight = LookupCustomValue<float>("BottomLiftHeight", file.HeaderSettings.BottomLiftHeight); }
file.HeaderSettings.BottomLiftSpeed = LookupCustomValue<float>("BottomLiftSpeed", file.HeaderSettings.BottomLiftSpeed);
file.HeaderSettings.BottomLightOffDelay = LookupCustomValue<float>("BottomLightOffDelay", file.HeaderSettings.BottomLightOffDelay);
file.HeaderSettings.CostDollars = MaterialCost;
file.HeaderSettings.LiftHeight = LookupCustomValue<float>("LiftHeight", file.HeaderSettings.LiftHeight);
file.HeaderSettings.LiftingSpeed = LookupCustomValue<float>("LiftingSpeed", file.HeaderSettings.LiftingSpeed);
file.HeaderSettings.LayerOffTime = LookupCustomValue<float>("LayerOffTime", file.HeaderSettings.LayerOffTime);
file.HeaderSettings.RetractSpeed = LookupCustomValue<float>("RetractSpeed", file.HeaderSettings.RetractSpeed);
file.HeaderSettings.VolumeMl = OutputConfigSettings.UsedMaterial;
file.HeaderSettings.WeightG = (float)Math.Round(OutputConfigSettings.UsedMaterial * MaterialSettings.MaterialDensity, 2);
if (to == typeof(PHZFile))
file.HeaderSettings.MachineName = MachineName; {
file.HeaderSettings.MachineNameSize = (uint)MachineName.Length; PHZFile defaultFormat = (PHZFile)FindByType(typeof(PHZFile));
PHZFile file = new PHZFile
{
LayerManager = LayerManager,
HeaderSettings =
{
Version = 2,
BedSizeX = PrinterSettings.DisplayWidth,
BedSizeY = PrinterSettings.DisplayHeight,
BedSizeZ = PrinterSettings.MaxPrintHeight,
OverallHeightMilimeter = TotalHeight,
BottomExposureSeconds = MaterialSettings.InitialExposureTime,
BottomLayersCount = PrintSettings.FadedLayers,
BottomLightPWM = LookupCustomValue<ushort>(Keyword_BottomLightPWM, defaultFormat.HeaderSettings.BottomLightPWM),
LayerCount = LayerCount,
LayerExposureSeconds = MaterialSettings.ExposureTime,
LayerHeightMilimeter = PrintSettings.LayerHeight,
LayerOffTime = LookupCustomValue<float>(Keyword_LayerOffTime, defaultFormat.HeaderSettings.LayerOffTime),
LightPWM = LookupCustomValue<ushort>(Keyword_LightPWM, defaultFormat.HeaderSettings.LightPWM),
PrintTime = (uint) OutputConfigSettings.PrintTime,
ProjectorType = PrinterSettings.DisplayMirrorX ? 1u : 0u,
ResolutionX = PrinterSettings.DisplayPixelsX,
ResolutionY = PrinterSettings.DisplayPixelsY,
BottomLayerCount = PrintSettings.FadedLayers,
BottomLiftHeight = LookupCustomValue<float>(Keyword_BottomLiftHeight, defaultFormat.HeaderSettings.BottomLiftHeight),
BottomLiftSpeed = LookupCustomValue<float>(Keyword_BottomLiftSpeed, defaultFormat.HeaderSettings.BottomLiftSpeed),
BottomLightOffDelay = LookupCustomValue<float>(Keyword_BottomLightOffDelay, defaultFormat.HeaderSettings.BottomLightOffDelay),
CostDollars = MaterialCost,
LiftHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.HeaderSettings.LiftHeight),
LiftingSpeed = LookupCustomValue<float>(Keyword_LiftSpeed, defaultFormat.HeaderSettings.LiftingSpeed),
RetractSpeed = LookupCustomValue<float>(Keyword_RetractSpeed, defaultFormat.HeaderSettings.RetractSpeed),
VolumeMl = OutputConfigSettings.UsedMaterial,
WeightG = (float)Math.Round(OutputConfigSettings.UsedMaterial * MaterialSettings.MaterialDensity, 2),
MachineName = MachineName,
MachineNameSize = (uint)MachineName.Length
}
};
if (LookupCustomValue<bool>("FLIP_XY", false, true)) if (LookupCustomValue<bool>("FLIP_XY", false, true))
{ {
@@ -673,6 +732,7 @@ namespace PrusaSL1Reader
if (to == typeof(ZCodexFile)) if (to == typeof(ZCodexFile))
{ {
ZCodexFile defaultFormat = (ZCodexFile)FindByType(typeof(ZCodexFile));
TimeSpan ts = new TimeSpan(0, 0, (int)PrintTime); TimeSpan ts = new TimeSpan(0, 0, (int)PrintTime);
ZCodexFile file = new ZCodexFile ZCodexFile file = new ZCodexFile
{ {
@@ -702,7 +762,7 @@ namespace PrusaSL1Reader
LayerThickness = $"{LayerHeight} mm", LayerThickness = $"{LayerHeight} mm",
AntiAliasing = 0, AntiAliasing = 0,
CrossSupportEnabled = 1, CrossSupportEnabled = 1,
ExposureOffTime = LookupCustomValue<uint>("ExposureOffTime", 5)*1000, ExposureOffTime = LookupCustomValue<uint>(Keyword_LayerOffTime, defaultFormat.UserSettings.ExposureOffTime) *1000,
HollowEnabled = PrintSettings.HollowingEnable ? (byte)1 : (byte)0, HollowEnabled = PrintSettings.HollowingEnable ? (byte)1 : (byte)0,
HollowThickness = PrintSettings.HollowingMinThickness, HollowThickness = PrintSettings.HollowingMinThickness,
InfillDensity = 0, InfillDensity = 0,
@@ -719,9 +779,9 @@ namespace PrusaSL1Reader
SupportAdditionalExposureTime = 0, SupportAdditionalExposureTime = 0,
XCorrection = PrinterSettings.AbsoluteCorrection, XCorrection = PrinterSettings.AbsoluteCorrection,
YCorrection = PrinterSettings.AbsoluteCorrection, YCorrection = PrinterSettings.AbsoluteCorrection,
ZLiftDistance = (float)Math.Round(LookupCustomValue<float>("ZLiftDistance", 5), 2), ZLiftDistance = (float)Math.Round(LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.UserSettings.ZLiftDistance), 2),
ZLiftFeedRate = (float)Math.Round(LookupCustomValue<float>("ZLiftFeedRate", 100), 2), ZLiftFeedRate = (float)Math.Round(LookupCustomValue<float>(Keyword_LiftSpeed, defaultFormat.UserSettings.ZLiftFeedRate), 2),
ZLiftRetractRate = (float)Math.Round(LookupCustomValue<float>("ZLiftRetractRate", 100), 2), ZLiftRetractRate = (float)Math.Round(LookupCustomValue<float>(Keyword_RetractSpeed, defaultFormat.UserSettings.ZLiftRetractRate), 2),
}, },
ZCodeMetadataSettings = new ZCodexFile.ZCodeMetadata ZCodeMetadataSettings = new ZCodexFile.ZCodeMetadata
{ {
@@ -774,9 +834,9 @@ namespace PrusaSL1Reader
file.SliceSettings.LayersExpoMs = file.OutputSettings.LayerTime = (uint) LayerExposureTime * 1000; file.SliceSettings.LayersExpoMs = file.OutputSettings.LayerTime = (uint) LayerExposureTime * 1000;
file.SliceSettings.HeadLayersExpoMs = file.OutputSettings.BottomLayersTime = (uint) InitialExposureTime * 1000; file.SliceSettings.HeadLayersExpoMs = file.OutputSettings.BottomLayersTime = (uint) InitialExposureTime * 1000;
file.SliceSettings.WaitBeforeExpoMs = LookupCustomValue<uint>("WaitBeforeExpoMs", file.SliceSettings.WaitBeforeExpoMs); file.SliceSettings.WaitBeforeExpoMs = LookupCustomValue<uint>("WaitBeforeExpoMs", file.SliceSettings.WaitBeforeExpoMs);
file.SliceSettings.LiftDistance = file.OutputSettings.LiftDistance = (float) Math.Round(LookupCustomValue<float>("LiftDistance", file.SliceSettings.LiftDistance), 2); file.SliceSettings.LiftDistance = file.OutputSettings.LiftDistance = (float) Math.Round(LookupCustomValue<float>(Keyword_LiftHeight, file.SliceSettings.LiftDistance), 2);
file.SliceSettings.LiftUpSpeed = file.OutputSettings.ZLiftFeedRate = file.OutputSettings.ZBottomLiftFeedRate = (float) Math.Round(LookupCustomValue<float>("LiftUpSpeed", file.SliceSettings.LiftUpSpeed), 2); file.SliceSettings.LiftUpSpeed = file.OutputSettings.ZLiftFeedRate = file.OutputSettings.ZBottomLiftFeedRate = (float) Math.Round(LookupCustomValue<float>(Keyword_LiftSpeed, file.SliceSettings.LiftUpSpeed), 2);
file.SliceSettings.LiftDownSpeed = file.OutputSettings.ZLiftRetractRate = (float) Math.Round(LookupCustomValue<float>("LiftDownSpeed", file.SliceSettings.LiftDownSpeed), 2); file.SliceSettings.LiftDownSpeed = file.OutputSettings.ZLiftRetractRate = (float) Math.Round(LookupCustomValue<float>(Keyword_RetractSpeed, file.SliceSettings.LiftDownSpeed), 2);
file.SliceSettings.LiftWhenFinished = LookupCustomValue<byte>("LiftWhenFinished", file.SliceSettings.LiftWhenFinished); file.SliceSettings.LiftWhenFinished = LookupCustomValue<byte>("LiftWhenFinished", file.SliceSettings.LiftWhenFinished);
file.OutputSettings.BlankingLayerTime = LookupCustomValue<uint>("BlankingLayerTime", file.OutputSettings.BlankingLayerTime); file.OutputSettings.BlankingLayerTime = LookupCustomValue<uint>("BlankingLayerTime", file.OutputSettings.BlankingLayerTime);
+5 -7
View File
@@ -79,14 +79,14 @@ namespace PrusaSL1Reader
public byte CrossSupportEnabled { get; set; } public byte CrossSupportEnabled { get; set; }
public uint LayerExposureTime { get; set; } public uint LayerExposureTime { get; set; }
//public uint LayerThicknessesDisplayTime { get; set; } arr //public uint LayerThicknessesDisplayTime { get; set; } arr
public uint ExposureOffTime { get; set; } public uint ExposureOffTime { get; set; } = 5;
public uint BottomLayerExposureTime { get; set; } public uint BottomLayerExposureTime { get; set; }
public uint BottomLayersCount { get; set; } public uint BottomLayersCount { get; set; }
public byte SupportAdditionalExposureEnabled { get; set; } public byte SupportAdditionalExposureEnabled { get; set; }
public uint SupportAdditionalExposureTime { get; set; } public uint SupportAdditionalExposureTime { get; set; }
public float ZLiftDistance { get; set; } public float ZLiftDistance { get; set; } = 5;
public float ZLiftRetractRate { get; set; } public float ZLiftRetractRate { get; set; } = 100;
public float ZLiftFeedRate { get; set; } public float ZLiftFeedRate { get; set; } = 100;
public byte AntiAliasing { get; set; } public byte AntiAliasing { get; set; }
public byte XCorrection { get; set; } public byte XCorrection { get; set; }
public byte YCorrection { get; set; } public byte YCorrection { get; set; }
@@ -170,8 +170,6 @@ namespace PrusaSL1Reader
public override float LayerHeight => ResinMetadataSettings.LayerThickness; public override float LayerHeight => ResinMetadataSettings.LayerThickness;
public override uint LayerCount => ResinMetadataSettings.TotalLayersCount;
public override ushort InitialLayerCount => ResinMetadataSettings.BottomLayersNumber; public override ushort InitialLayerCount => ResinMetadataSettings.BottomLayersNumber;
public override float InitialExposureTime => UserSettings.BottomLayerExposureTime / 1000; public override float InitialExposureTime => UserSettings.BottomLayerExposureTime / 1000;
@@ -294,7 +292,7 @@ namespace PrusaSL1Reader
throw new FileLoadException("ResinGCodeData not found", fileFullPath); throw new FileLoadException("ResinGCodeData not found", fileFullPath);
} }
LayerManager = new LayerManager(LayerCount); LayerManager = new LayerManager(ResinMetadataSettings.TotalLayersCount);
GCode = new StringBuilder(); GCode = new StringBuilder();
using (TextReader tr = new StreamReader(entry.Open())) using (TextReader tr = new StreamReader(entry.Open()))
{ {
+149 -84
View File
@@ -55,10 +55,7 @@
this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
this.menuHelpInstallPrinters = new System.Windows.Forms.ToolStripMenuItem(); this.menuHelpInstallPrinters = new System.Windows.Forms.ToolStripMenuItem();
this.statusBar = new System.Windows.Forms.StatusStrip(); this.statusBar = new System.Windows.Forms.StatusStrip();
this.sbLayers = new System.Windows.Forms.VScrollBar();
this.mainTable = new System.Windows.Forms.TableLayoutPanel(); this.mainTable = new System.Windows.Forms.TableLayoutPanel();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.lbLayers = new System.Windows.Forms.Label();
this.scCenter = new System.Windows.Forms.SplitContainer(); this.scCenter = new System.Windows.Forms.SplitContainer();
this.pbLayer = new Cyotek.Windows.Forms.ImageBox(); this.pbLayer = new Cyotek.Windows.Forms.ImageBox();
this.tsLayer = new System.Windows.Forms.ToolStrip(); this.tsLayer = new System.Windows.Forms.ToolStrip();
@@ -121,12 +118,16 @@
this.toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
this.tsIslandsRepair = new System.Windows.Forms.ToolStripButton(); this.tsIslandsRepair = new System.Windows.Forms.ToolStripButton();
this.imageList16x16 = new System.Windows.Forms.ImageList(this.components); this.imageList16x16 = new System.Windows.Forms.ImageList(this.components);
this.tlRight = new System.Windows.Forms.TableLayoutPanel();
this.btnPreviousLayer = new System.Windows.Forms.Button();
this.btnNextLayer = new System.Windows.Forms.Button();
this.lbMaxLayer = new System.Windows.Forms.Label();
this.lbInitialLayer = new System.Windows.Forms.Label();
this.panel1 = new System.Windows.Forms.Panel();
this.lbLayerActual = new System.Windows.Forms.Label();
this.tbLayer = new System.Windows.Forms.TrackBar();
this.menu.SuspendLayout(); this.menu.SuspendLayout();
this.mainTable.SuspendLayout(); this.mainTable.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.scCenter)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.scCenter)).BeginInit();
this.scCenter.Panel1.SuspendLayout(); this.scCenter.Panel1.SuspendLayout();
this.scCenter.Panel2.SuspendLayout(); this.scCenter.Panel2.SuspendLayout();
@@ -145,6 +146,9 @@
this.tsGCode.SuspendLayout(); this.tsGCode.SuspendLayout();
this.tabPageIslands.SuspendLayout(); this.tabPageIslands.SuspendLayout();
this.tsIslands.SuspendLayout(); this.tsIslands.SuspendLayout();
this.tlRight.SuspendLayout();
this.panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.tbLayer)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
// menu // menu
@@ -187,7 +191,7 @@
this.menuFileOpen.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); this.menuFileOpen.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
this.menuFileOpen.Size = new System.Drawing.Size(261, 22); this.menuFileOpen.Size = new System.Drawing.Size(261, 22);
this.menuFileOpen.Text = "&Open"; this.menuFileOpen.Text = "&Open";
this.menuFileOpen.Click += new System.EventHandler(this.ItemClicked); this.menuFileOpen.Click += new System.EventHandler(this.EventClick);
// //
// menuFileOpenNewWindow // menuFileOpenNewWindow
// //
@@ -197,7 +201,7 @@
| System.Windows.Forms.Keys.O))); | System.Windows.Forms.Keys.O)));
this.menuFileOpenNewWindow.Size = new System.Drawing.Size(261, 22); this.menuFileOpenNewWindow.Size = new System.Drawing.Size(261, 22);
this.menuFileOpenNewWindow.Text = "Open in new window"; this.menuFileOpenNewWindow.Text = "Open in new window";
this.menuFileOpenNewWindow.Click += new System.EventHandler(this.ItemClicked); this.menuFileOpenNewWindow.Click += new System.EventHandler(this.EventClick);
// //
// menuFileReload // menuFileReload
// //
@@ -206,7 +210,7 @@
this.menuFileReload.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F5))); this.menuFileReload.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F5)));
this.menuFileReload.Size = new System.Drawing.Size(261, 22); this.menuFileReload.Size = new System.Drawing.Size(261, 22);
this.menuFileReload.Text = "&Reload"; this.menuFileReload.Text = "&Reload";
this.menuFileReload.Click += new System.EventHandler(this.ItemClicked); this.menuFileReload.Click += new System.EventHandler(this.EventClick);
// //
// menuFileSave // menuFileSave
// //
@@ -216,7 +220,7 @@
this.menuFileSave.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); this.menuFileSave.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
this.menuFileSave.Size = new System.Drawing.Size(261, 22); this.menuFileSave.Size = new System.Drawing.Size(261, 22);
this.menuFileSave.Text = "&Save"; this.menuFileSave.Text = "&Save";
this.menuFileSave.Click += new System.EventHandler(this.ItemClicked); this.menuFileSave.Click += new System.EventHandler(this.EventClick);
// //
// menuFileSaveAs // menuFileSaveAs
// //
@@ -227,7 +231,7 @@
| System.Windows.Forms.Keys.S))); | System.Windows.Forms.Keys.S)));
this.menuFileSaveAs.Size = new System.Drawing.Size(261, 22); this.menuFileSaveAs.Size = new System.Drawing.Size(261, 22);
this.menuFileSaveAs.Text = "Save As"; this.menuFileSaveAs.Text = "Save As";
this.menuFileSaveAs.Click += new System.EventHandler(this.ItemClicked); this.menuFileSaveAs.Click += new System.EventHandler(this.EventClick);
// //
// menuFileClose // menuFileClose
// //
@@ -237,7 +241,7 @@
this.menuFileClose.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.W))); this.menuFileClose.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.W)));
this.menuFileClose.Size = new System.Drawing.Size(261, 22); this.menuFileClose.Size = new System.Drawing.Size(261, 22);
this.menuFileClose.Text = "&Close"; this.menuFileClose.Text = "&Close";
this.menuFileClose.Click += new System.EventHandler(this.ItemClicked); this.menuFileClose.Click += new System.EventHandler(this.EventClick);
// //
// toolStripSeparator1 // toolStripSeparator1
// //
@@ -252,7 +256,7 @@
this.menuFileExtract.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E))); this.menuFileExtract.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E)));
this.menuFileExtract.Size = new System.Drawing.Size(261, 22); this.menuFileExtract.Size = new System.Drawing.Size(261, 22);
this.menuFileExtract.Text = "&Extract"; this.menuFileExtract.Text = "&Extract";
this.menuFileExtract.Click += new System.EventHandler(this.ItemClicked); this.menuFileExtract.Click += new System.EventHandler(this.EventClick);
// //
// menuFileConvert // menuFileConvert
// //
@@ -274,7 +278,7 @@
this.menuFileExit.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); this.menuFileExit.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4)));
this.menuFileExit.Size = new System.Drawing.Size(261, 22); this.menuFileExit.Size = new System.Drawing.Size(261, 22);
this.menuFileExit.Text = "&Exit"; this.menuFileExit.Text = "&Exit";
this.menuFileExit.Click += new System.EventHandler(this.ItemClicked); this.menuFileExit.Click += new System.EventHandler(this.EventClick);
// //
// menuEdit // menuEdit
// //
@@ -308,7 +312,7 @@
| System.Windows.Forms.Keys.R))); | System.Windows.Forms.Keys.R)));
this.menuToolsRepairLayers.Size = new System.Drawing.Size(204, 22); this.menuToolsRepairLayers.Size = new System.Drawing.Size(204, 22);
this.menuToolsRepairLayers.Text = "&Repair layers"; this.menuToolsRepairLayers.Text = "&Repair layers";
this.menuToolsRepairLayers.Click += new System.EventHandler(this.ItemClicked); this.menuToolsRepairLayers.Click += new System.EventHandler(this.EventClick);
// //
// viewToolStripMenuItem // viewToolStripMenuItem
// //
@@ -337,7 +341,7 @@
| System.Windows.Forms.Keys.W))); | System.Windows.Forms.Keys.W)));
this.menuHelpWebsite.Size = new System.Drawing.Size(229, 22); this.menuHelpWebsite.Size = new System.Drawing.Size(229, 22);
this.menuHelpWebsite.Text = "&Website"; this.menuHelpWebsite.Text = "&Website";
this.menuHelpWebsite.Click += new System.EventHandler(this.ItemClicked); this.menuHelpWebsite.Click += new System.EventHandler(this.EventClick);
// //
// menuHelpDonate // menuHelpDonate
// //
@@ -346,7 +350,7 @@
this.menuHelpDonate.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D))); this.menuHelpDonate.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D)));
this.menuHelpDonate.Size = new System.Drawing.Size(229, 22); this.menuHelpDonate.Size = new System.Drawing.Size(229, 22);
this.menuHelpDonate.Text = "&Donate"; this.menuHelpDonate.Text = "&Donate";
this.menuHelpDonate.Click += new System.EventHandler(this.ItemClicked); this.menuHelpDonate.Click += new System.EventHandler(this.EventClick);
// //
// menuHelpAbout // menuHelpAbout
// //
@@ -355,7 +359,7 @@
this.menuHelpAbout.ShortcutKeys = System.Windows.Forms.Keys.F1; this.menuHelpAbout.ShortcutKeys = System.Windows.Forms.Keys.F1;
this.menuHelpAbout.Size = new System.Drawing.Size(229, 22); this.menuHelpAbout.Size = new System.Drawing.Size(229, 22);
this.menuHelpAbout.Text = "&About"; this.menuHelpAbout.Text = "&About";
this.menuHelpAbout.Click += new System.EventHandler(this.ItemClicked); this.menuHelpAbout.Click += new System.EventHandler(this.EventClick);
// //
// toolStripSeparator10 // toolStripSeparator10
// //
@@ -368,7 +372,7 @@
this.menuHelpInstallPrinters.Name = "menuHelpInstallPrinters"; this.menuHelpInstallPrinters.Name = "menuHelpInstallPrinters";
this.menuHelpInstallPrinters.Size = new System.Drawing.Size(229, 22); this.menuHelpInstallPrinters.Size = new System.Drawing.Size(229, 22);
this.menuHelpInstallPrinters.Text = "Instal printers into PrusaSlicer"; this.menuHelpInstallPrinters.Text = "Instal printers into PrusaSlicer";
this.menuHelpInstallPrinters.Click += new System.EventHandler(this.ItemClicked); this.menuHelpInstallPrinters.Click += new System.EventHandler(this.EventClick);
// //
// statusBar // statusBar
// //
@@ -378,26 +382,15 @@
this.statusBar.TabIndex = 1; this.statusBar.TabIndex = 1;
this.statusBar.Text = "statusStrip1"; this.statusBar.Text = "statusStrip1";
// //
// sbLayers
//
this.sbLayers.Dock = System.Windows.Forms.DockStyle.Fill;
this.sbLayers.Enabled = false;
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, 673);
this.sbLayers.TabIndex = 4;
this.sbLayers.ValueChanged += new System.EventHandler(this.sbLayers_ValueChanged);
//
// mainTable // mainTable
// //
this.mainTable.ColumnCount = 3; this.mainTable.ColumnCount = 3;
this.mainTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 400F)); this.mainTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 400F));
this.mainTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.mainTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.mainTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 130F)); this.mainTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 130F));
this.mainTable.Controls.Add(this.splitContainer1, 2, 0);
this.mainTable.Controls.Add(this.scCenter, 1, 0); this.mainTable.Controls.Add(this.scCenter, 1, 0);
this.mainTable.Controls.Add(this.tabControlLeft, 0, 0); this.mainTable.Controls.Add(this.tabControlLeft, 0, 0);
this.mainTable.Controls.Add(this.tlRight, 2, 0);
this.mainTable.Dock = System.Windows.Forms.DockStyle.Fill; this.mainTable.Dock = System.Windows.Forms.DockStyle.Fill;
this.mainTable.Location = new System.Drawing.Point(0, 24); this.mainTable.Location = new System.Drawing.Point(0, 24);
this.mainTable.Name = "mainTable"; this.mainTable.Name = "mainTable";
@@ -406,36 +399,6 @@
this.mainTable.Size = new System.Drawing.Size(1684, 740); this.mainTable.Size = new System.Drawing.Size(1684, 740);
this.mainTable.TabIndex = 5; this.mainTable.TabIndex = 5;
// //
// splitContainer1
//
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(1557, 3);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.sbLayers);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.lbLayers);
this.splitContainer1.Size = new System.Drawing.Size(124, 734);
this.splitContainer1.SplitterDistance = 673;
this.splitContainer1.TabIndex = 0;
//
// lbLayers
//
this.lbLayers.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbLayers.Location = new System.Drawing.Point(0, 0);
this.lbLayers.Name = "lbLayers";
this.lbLayers.Size = new System.Drawing.Size(124, 57);
this.lbLayers.TabIndex = 0;
this.lbLayers.Text = "Layers";
this.lbLayers.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// scCenter // scCenter
// //
this.scCenter.Dock = System.Windows.Forms.DockStyle.Fill; this.scCenter.Dock = System.Windows.Forms.DockStyle.Fill;
@@ -510,7 +473,7 @@
this.tsLayerImageExport.Size = new System.Drawing.Size(23, 22); this.tsLayerImageExport.Size = new System.Drawing.Size(23, 22);
this.tsLayerImageExport.Text = "Save Layer"; this.tsLayerImageExport.Text = "Save Layer";
this.tsLayerImageExport.ToolTipText = "Save layer image to file"; this.tsLayerImageExport.ToolTipText = "Save layer image to file";
this.tsLayerImageExport.Click += new System.EventHandler(this.ItemClicked); this.tsLayerImageExport.Click += new System.EventHandler(this.EventClick);
// //
// tsLayerResolution // tsLayerResolution
// //
@@ -532,7 +495,7 @@
this.tsLayerImageRotate.Text = "Rotate Image 90º"; this.tsLayerImageRotate.Text = "Rotate Image 90º";
this.tsLayerImageRotate.ToolTipText = "Auto rotate layer preview image at 90º (This can slow down the layer preview) [CT" + this.tsLayerImageRotate.ToolTipText = "Auto rotate layer preview image at 90º (This can slow down the layer preview) [CT" +
"RL+R]"; "RL+R]";
this.tsLayerImageRotate.Click += new System.EventHandler(this.ItemClicked); this.tsLayerImageRotate.Click += new System.EventHandler(this.EventClick);
// //
// toolStripSeparator5 // toolStripSeparator5
// //
@@ -549,7 +512,7 @@
this.tsLayerImageLayerDifference.Text = "Difference"; this.tsLayerImageLayerDifference.Text = "Difference";
this.tsLayerImageLayerDifference.ToolTipText = "Show layer differences where daker pixels were also present on previous layer and" + this.tsLayerImageLayerDifference.ToolTipText = "Show layer differences where daker pixels were also present on previous layer and" +
" the white pixels the difference between previous and current layer."; " the white pixels the difference between previous and current layer.";
this.tsLayerImageLayerDifference.Click += new System.EventHandler(this.ItemClicked); this.tsLayerImageLayerDifference.Click += new System.EventHandler(this.EventClick);
// //
// toolStripSeparator6 // toolStripSeparator6
// //
@@ -581,7 +544,7 @@
this.tsLayerImageHighlightIslands.Size = new System.Drawing.Size(63, 22); this.tsLayerImageHighlightIslands.Size = new System.Drawing.Size(63, 22);
this.tsLayerImageHighlightIslands.Text = "Islands"; this.tsLayerImageHighlightIslands.Text = "Islands";
this.tsLayerImageHighlightIslands.ToolTipText = "Highlight islands on current layer.\r\nValid only if Islands are calculated."; this.tsLayerImageHighlightIslands.ToolTipText = "Highlight islands on current layer.\r\nValid only if Islands are calculated.";
this.tsLayerImageHighlightIslands.Click += new System.EventHandler(this.ItemClicked); this.tsLayerImageHighlightIslands.Click += new System.EventHandler(this.EventClick);
// //
// toolStripSeparator7 // toolStripSeparator7
// //
@@ -597,7 +560,7 @@
this.tsLayerImageLayerOutline.Size = new System.Drawing.Size(66, 22); this.tsLayerImageLayerOutline.Size = new System.Drawing.Size(66, 22);
this.tsLayerImageLayerOutline.Text = "Outline"; this.tsLayerImageLayerOutline.Text = "Outline";
this.tsLayerImageLayerOutline.ToolTipText = "Show layer outlines only"; this.tsLayerImageLayerOutline.ToolTipText = "Show layer outlines only";
this.tsLayerImageLayerOutline.Click += new System.EventHandler(this.ItemClicked); this.tsLayerImageLayerOutline.Click += new System.EventHandler(this.EventClick);
// //
// toolStripSeparator9 // toolStripSeparator9
// //
@@ -735,7 +698,7 @@
this.tsThumbnailsPrevious.Size = new System.Drawing.Size(23, 22); this.tsThumbnailsPrevious.Size = new System.Drawing.Size(23, 22);
this.tsThumbnailsPrevious.Text = "toolStripButton1"; this.tsThumbnailsPrevious.Text = "toolStripButton1";
this.tsThumbnailsPrevious.ToolTipText = "Show previous thumbnail"; this.tsThumbnailsPrevious.ToolTipText = "Show previous thumbnail";
this.tsThumbnailsPrevious.Click += new System.EventHandler(this.ItemClicked); this.tsThumbnailsPrevious.Click += new System.EventHandler(this.EventClick);
// //
// tsThumbnailsCount // tsThumbnailsCount
// //
@@ -755,7 +718,7 @@
this.tsThumbnailsNext.Size = new System.Drawing.Size(23, 22); this.tsThumbnailsNext.Size = new System.Drawing.Size(23, 22);
this.tsThumbnailsNext.Text = "toolStripButton2"; this.tsThumbnailsNext.Text = "toolStripButton2";
this.tsThumbnailsNext.ToolTipText = "Show next thumbnail"; this.tsThumbnailsNext.ToolTipText = "Show next thumbnail";
this.tsThumbnailsNext.Click += new System.EventHandler(this.ItemClicked); this.tsThumbnailsNext.Click += new System.EventHandler(this.EventClick);
// //
// tsThumbnailsExport // tsThumbnailsExport
// //
@@ -768,7 +731,7 @@
this.tsThumbnailsExport.Size = new System.Drawing.Size(23, 22); this.tsThumbnailsExport.Size = new System.Drawing.Size(23, 22);
this.tsThumbnailsExport.Text = "Save Thumbnail"; this.tsThumbnailsExport.Text = "Save Thumbnail";
this.tsThumbnailsExport.ToolTipText = "Save thumbnail to file"; this.tsThumbnailsExport.ToolTipText = "Save thumbnail to file";
this.tsThumbnailsExport.Click += new System.EventHandler(this.ItemClicked); this.tsThumbnailsExport.Click += new System.EventHandler(this.EventClick);
// //
// tsThumbnailsResolution // tsThumbnailsResolution
// //
@@ -846,7 +809,7 @@
this.tsPropertiesButtonSave.Size = new System.Drawing.Size(23, 22); this.tsPropertiesButtonSave.Size = new System.Drawing.Size(23, 22);
this.tsPropertiesButtonSave.Text = "Save Thumbnail"; this.tsPropertiesButtonSave.Text = "Save Thumbnail";
this.tsPropertiesButtonSave.ToolTipText = "Save properties to a file"; this.tsPropertiesButtonSave.ToolTipText = "Save properties to a file";
this.tsPropertiesButtonSave.Click += new System.EventHandler(this.ItemClicked); this.tsPropertiesButtonSave.Click += new System.EventHandler(this.EventClick);
// //
// tabPageGCode // tabPageGCode
// //
@@ -911,7 +874,7 @@
this.tsGCodeButtonSave.Size = new System.Drawing.Size(23, 22); this.tsGCodeButtonSave.Size = new System.Drawing.Size(23, 22);
this.tsGCodeButtonSave.Text = "Save GCode"; this.tsGCodeButtonSave.Text = "Save GCode";
this.tsGCodeButtonSave.ToolTipText = "Save GCode to file"; this.tsGCodeButtonSave.ToolTipText = "Save GCode to file";
this.tsGCodeButtonSave.Click += new System.EventHandler(this.ItemClicked); this.tsGCodeButtonSave.Click += new System.EventHandler(this.EventClick);
// //
// tabPageIslands // tabPageIslands
// //
@@ -994,7 +957,7 @@
this.tsIslandsPrevious.Size = new System.Drawing.Size(23, 22); this.tsIslandsPrevious.Size = new System.Drawing.Size(23, 22);
this.tsIslandsPrevious.Text = "Previous"; this.tsIslandsPrevious.Text = "Previous";
this.tsIslandsPrevious.ToolTipText = "Show previous island"; this.tsIslandsPrevious.ToolTipText = "Show previous island";
this.tsIslandsPrevious.Click += new System.EventHandler(this.ItemClicked); this.tsIslandsPrevious.Click += new System.EventHandler(this.EventClick);
// //
// tsIslandsCount // tsIslandsCount
// //
@@ -1013,7 +976,7 @@
this.tsIslandsNext.Size = new System.Drawing.Size(23, 22); this.tsIslandsNext.Size = new System.Drawing.Size(23, 22);
this.tsIslandsNext.Text = "tsIslandsNext"; this.tsIslandsNext.Text = "tsIslandsNext";
this.tsIslandsNext.ToolTipText = "Show next island"; this.tsIslandsNext.ToolTipText = "Show next island";
this.tsIslandsNext.Click += new System.EventHandler(this.ItemClicked); this.tsIslandsNext.Click += new System.EventHandler(this.EventClick);
// //
// toolStripSeparator13 // toolStripSeparator13
// //
@@ -1030,7 +993,7 @@
this.tsIslandsRefresh.Size = new System.Drawing.Size(61, 22); this.tsIslandsRefresh.Size = new System.Drawing.Size(61, 22);
this.tsIslandsRefresh.Text = "Detect"; this.tsIslandsRefresh.Text = "Detect";
this.tsIslandsRefresh.ToolTipText = "Compute Islands"; this.tsIslandsRefresh.ToolTipText = "Compute Islands";
this.tsIslandsRefresh.Click += new System.EventHandler(this.ItemClicked); this.tsIslandsRefresh.Click += new System.EventHandler(this.EventClick);
// //
// tsIslandsRemove // tsIslandsRemove
// //
@@ -1041,7 +1004,7 @@
this.tsIslandsRemove.Size = new System.Drawing.Size(70, 22); this.tsIslandsRemove.Size = new System.Drawing.Size(70, 22);
this.tsIslandsRemove.Text = "Remove"; this.tsIslandsRemove.Text = "Remove";
this.tsIslandsRemove.ToolTipText = "Remove selected islands"; this.tsIslandsRemove.ToolTipText = "Remove selected islands";
this.tsIslandsRemove.Click += new System.EventHandler(this.ItemClicked); this.tsIslandsRemove.Click += new System.EventHandler(this.EventClick);
// //
// toolStripSeparator12 // toolStripSeparator12
// //
@@ -1059,7 +1022,7 @@
this.tsIslandsRepair.Size = new System.Drawing.Size(60, 22); this.tsIslandsRepair.Size = new System.Drawing.Size(60, 22);
this.tsIslandsRepair.Text = "Repair"; this.tsIslandsRepair.Text = "Repair";
this.tsIslandsRepair.ToolTipText = "Attempt to repair islands"; this.tsIslandsRepair.ToolTipText = "Attempt to repair islands";
this.tsIslandsRepair.Click += new System.EventHandler(this.ItemClicked); this.tsIslandsRepair.Click += new System.EventHandler(this.EventClick);
// //
// imageList16x16 // imageList16x16
// //
@@ -1070,6 +1033,103 @@
this.imageList16x16.Images.SetKeyName(2, "GCode-16x16.png"); this.imageList16x16.Images.SetKeyName(2, "GCode-16x16.png");
this.imageList16x16.Images.SetKeyName(3, "island-16x16.png"); this.imageList16x16.Images.SetKeyName(3, "island-16x16.png");
// //
// tlRight
//
this.tlRight.ColumnCount = 1;
this.tlRight.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tlRight.Controls.Add(this.btnPreviousLayer, 0, 3);
this.tlRight.Controls.Add(this.btnNextLayer, 0, 1);
this.tlRight.Controls.Add(this.lbMaxLayer, 0, 0);
this.tlRight.Controls.Add(this.lbInitialLayer, 0, 4);
this.tlRight.Controls.Add(this.panel1, 0, 2);
this.tlRight.Dock = System.Windows.Forms.DockStyle.Fill;
this.tlRight.Location = new System.Drawing.Point(1557, 3);
this.tlRight.Name = "tlRight";
this.tlRight.RowCount = 5;
this.tlRight.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F));
this.tlRight.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 32F));
this.tlRight.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tlRight.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 32F));
this.tlRight.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F));
this.tlRight.Size = new System.Drawing.Size(124, 734);
this.tlRight.TabIndex = 6;
//
// btnPreviousLayer
//
this.btnPreviousLayer.Dock = System.Windows.Forms.DockStyle.Fill;
this.btnPreviousLayer.Enabled = false;
this.btnPreviousLayer.Image = global::PrusaSL1Viewer.Properties.Resources.arrow_down_16x16;
this.btnPreviousLayer.Location = new System.Drawing.Point(3, 655);
this.btnPreviousLayer.Name = "btnPreviousLayer";
this.btnPreviousLayer.Size = new System.Drawing.Size(118, 26);
this.btnPreviousLayer.TabIndex = 14;
this.btnPreviousLayer.Text = "-";
this.btnPreviousLayer.UseVisualStyleBackColor = true;
this.btnPreviousLayer.Click += new System.EventHandler(this.EventClick);
//
// btnNextLayer
//
this.btnNextLayer.Dock = System.Windows.Forms.DockStyle.Fill;
this.btnNextLayer.Enabled = false;
this.btnNextLayer.Image = global::PrusaSL1Viewer.Properties.Resources.arrow_up_16x16;
this.btnNextLayer.Location = new System.Drawing.Point(3, 53);
this.btnNextLayer.Name = "btnNextLayer";
this.btnNextLayer.Size = new System.Drawing.Size(118, 26);
this.btnNextLayer.TabIndex = 8;
this.btnNextLayer.Text = "+";
this.btnNextLayer.UseVisualStyleBackColor = true;
this.btnNextLayer.Click += new System.EventHandler(this.EventClick);
//
// lbMaxLayer
//
this.lbMaxLayer.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbMaxLayer.Location = new System.Drawing.Point(3, 0);
this.lbMaxLayer.Name = "lbMaxLayer";
this.lbMaxLayer.Size = new System.Drawing.Size(118, 50);
this.lbMaxLayer.TabIndex = 12;
this.lbMaxLayer.Text = "Layers";
this.lbMaxLayer.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lbInitialLayer
//
this.lbInitialLayer.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbInitialLayer.Location = new System.Drawing.Point(3, 684);
this.lbInitialLayer.Name = "lbInitialLayer";
this.lbInitialLayer.Size = new System.Drawing.Size(118, 50);
this.lbInitialLayer.TabIndex = 11;
this.lbInitialLayer.Text = "Layers";
this.lbInitialLayer.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel1
//
this.panel1.Controls.Add(this.lbLayerActual);
this.panel1.Controls.Add(this.tbLayer);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(3, 85);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(118, 564);
this.panel1.TabIndex = 13;
//
// lbLayerActual
//
this.lbLayerActual.AutoSize = true;
this.lbLayerActual.Location = new System.Drawing.Point(3, 551);
this.lbLayerActual.Name = "lbLayerActual";
this.lbLayerActual.Size = new System.Drawing.Size(13, 13);
this.lbLayerActual.TabIndex = 9;
this.lbLayerActual.Text = "?";
//
// tbLayer
//
this.tbLayer.Dock = System.Windows.Forms.DockStyle.Right;
this.tbLayer.Location = new System.Drawing.Point(73, 0);
this.tbLayer.Name = "tbLayer";
this.tbLayer.Orientation = System.Windows.Forms.Orientation.Vertical;
this.tbLayer.Size = new System.Drawing.Size(45, 564);
this.tbLayer.TabIndex = 8;
this.tbLayer.TickStyle = System.Windows.Forms.TickStyle.TopLeft;
this.tbLayer.ValueChanged += new System.EventHandler(this.ValueChanged);
//
// FrmMain // FrmMain
// //
this.AllowDrop = true; this.AllowDrop = true;
@@ -1089,10 +1149,6 @@
this.menu.ResumeLayout(false); this.menu.ResumeLayout(false);
this.menu.PerformLayout(); this.menu.PerformLayout();
this.mainTable.ResumeLayout(false); this.mainTable.ResumeLayout(false);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.scCenter.Panel1.ResumeLayout(false); this.scCenter.Panel1.ResumeLayout(false);
this.scCenter.Panel1.PerformLayout(); this.scCenter.Panel1.PerformLayout();
this.scCenter.Panel2.ResumeLayout(false); this.scCenter.Panel2.ResumeLayout(false);
@@ -1121,6 +1177,10 @@
this.tabPageIslands.PerformLayout(); this.tabPageIslands.PerformLayout();
this.tsIslands.ResumeLayout(false); this.tsIslands.ResumeLayout(false);
this.tsIslands.PerformLayout(); this.tsIslands.PerformLayout();
this.tlRight.ResumeLayout(false);
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.tbLayer)).EndInit();
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();
@@ -1137,10 +1197,7 @@
private System.Windows.Forms.ToolStripMenuItem menuHelpWebsite; private System.Windows.Forms.ToolStripMenuItem menuHelpWebsite;
private System.Windows.Forms.ToolStripMenuItem menuHelpDonate; private System.Windows.Forms.ToolStripMenuItem menuHelpDonate;
private System.Windows.Forms.ToolStripMenuItem menuHelpAbout; private System.Windows.Forms.ToolStripMenuItem menuHelpAbout;
private System.Windows.Forms.VScrollBar sbLayers;
private System.Windows.Forms.TableLayoutPanel mainTable; private System.Windows.Forms.TableLayoutPanel mainTable;
private System.Windows.Forms.SplitContainer splitContainer1;
private System.Windows.Forms.Label lbLayers;
private System.Windows.Forms.ToolStripMenuItem menuEdit; private System.Windows.Forms.ToolStripMenuItem menuEdit;
private System.Windows.Forms.SplitContainer scCenter; private System.Windows.Forms.SplitContainer scCenter;
private System.Windows.Forms.ProgressBar pbLayers; private System.Windows.Forms.ProgressBar pbLayers;
@@ -1219,6 +1276,14 @@
private System.Windows.Forms.ToolStripButton tsIslandsRepair; private System.Windows.Forms.ToolStripButton tsIslandsRepair;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator14; private System.Windows.Forms.ToolStripSeparator toolStripSeparator14;
private System.Windows.Forms.ToolStripButton tsLayerImageHighlightIslands; private System.Windows.Forms.ToolStripButton tsLayerImageHighlightIslands;
private System.Windows.Forms.TrackBar tbLayer;
private System.Windows.Forms.TableLayoutPanel tlRight;
private System.Windows.Forms.Label lbMaxLayer;
private System.Windows.Forms.Label lbInitialLayer;
private System.Windows.Forms.Button btnNextLayer;
private System.Windows.Forms.Button btnPreviousLayer;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Label lbLayerActual;
} }
} }
+263 -108
View File
@@ -23,6 +23,7 @@ using SixLabors.ImageSharp.Formats.Png;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
using Color = System.Drawing.Color; using Color = System.Drawing.Color;
using Image = SixLabors.ImageSharp.Image;
using Point = System.Drawing.Point; using Point = System.Drawing.Point;
using Size = System.Drawing.Size; using Size = System.Drawing.Size;
@@ -101,6 +102,8 @@ namespace PrusaSL1Viewer
public uint TotalIslands { get; set; } public uint TotalIslands { get; set; }
public bool IsChagingLayer { get; set; }
#endregion #endregion
#region Constructors #region Constructors
@@ -123,7 +126,7 @@ namespace PrusaSL1Viewer
{ {
ToolTipText = Mutations[mutate].Description, Tag = mutate, AutoToolTip = true, Image = Properties.Resources.filter_filled_16x16 ToolTipText = Mutations[mutate].Description, Tag = mutate, AutoToolTip = true, Image = Properties.Resources.filter_filled_16x16
}; };
item.Click += ItemClicked; item.Click += EventClick;
menuMutate.DropDownItems.Add(item); menuMutate.DropDownItems.Add(item);
} }
} }
@@ -138,20 +141,59 @@ namespace PrusaSL1Viewer
ProcessFile(Program.Args); ProcessFile(Program.Args);
} }
protected override void OnKeyPress(KeyPressEventArgs e)
{
if (ReferenceEquals(SlicerFile, null) || IsChagingLayer)
{
return;
}
if (e.KeyChar == '-')
{
ShowLayer(false);
e.Handled = true;
return;
}
if (e.KeyChar == '+')
{
ShowLayer(true);
e.Handled = true;
return;
}
base.OnKeyPress(e);
}
protected override void OnKeyUp(KeyEventArgs e) protected override void OnKeyUp(KeyEventArgs e)
{ {
base.OnKeyUp(e);
if (ReferenceEquals(SlicerFile, null)) if (ReferenceEquals(SlicerFile, null))
{ {
return; return;
} }
if (e.KeyCode == Keys.Home)
{
ShowLayer(0);
e.Handled = true;
return;
}
if (e.KeyCode == Keys.End)
{
ShowLayer(SlicerFile.LayerCount-1);
e.Handled = true;
return;
}
if (e.Control) if (e.Control)
{ {
if (e.KeyCode == Keys.F) if (e.KeyCode == Keys.F)
{ {
using (FrmInputBox inputBox = new FrmInputBox("Go to layer", "Select a layer index to go to.", ActualLayer, null, 0, SlicerFile.LayerCount-1, 0, "Layer")) using (FrmInputBox inputBox = new FrmInputBox("Go to layer", "Select a layer index to go to", ActualLayer, null, 0, SlicerFile.LayerCount-1, 0, "Layer"))
{ {
if (inputBox.ShowDialog() == DialogResult.OK) if (inputBox.ShowDialog() == DialogResult.OK)
{ {
@@ -176,19 +218,25 @@ namespace PrusaSL1Viewer
return; return;
} }
} }
base.OnKeyUp(e);
} }
protected override void OnResize(EventArgs e) protected override void OnResize(EventArgs e)
{ {
base.OnResize(e); base.OnResize(e);
pbLayer.ZoomToFit(); pbLayer.ZoomToFit();
lbLayerActual.Location = new Point(lbLayerActual.Location.X,
Math.Max(1,
Math.Min(tbLayer.Height - 40,
(int)(tbLayer.Height - tbLayer.Value * ((float)tbLayer.Height / tbLayer.Maximum)) - lbLayerActual.Height / 2)
));
} }
#endregion #endregion
#region Events #region Events
private void ItemClicked(object sender, EventArgs e) private void EventClick(object sender, EventArgs e)
{ {
if (sender.GetType() == typeof(ToolStripMenuItem)) if (sender.GetType() == typeof(ToolStripMenuItem))
{ {
@@ -261,7 +309,8 @@ namespace PrusaSL1Viewer
} }
finally finally
{ {
Invoke((MethodInvoker)delegate { Invoke((MethodInvoker) delegate
{
// Running on the UI thread // Running on the UI thread
EnableGUI(true); EnableGUI(true);
}); });
@@ -271,9 +320,9 @@ namespace PrusaSL1Viewer
}); });
FrmLoading.ShowDialog(); FrmLoading.ShowDialog();
menuFileSave.Enabled = menuFileSave.Enabled =
menuFileSaveAs.Enabled = false; menuFileSaveAs.Enabled = false;
return; return;
} }
@@ -304,7 +353,8 @@ namespace PrusaSL1Viewer
} }
finally finally
{ {
Invoke((MethodInvoker)delegate { Invoke((MethodInvoker) delegate
{
// Running on the UI thread // Running on the UI thread
EnableGUI(true); EnableGUI(true);
}); });
@@ -314,15 +364,15 @@ namespace PrusaSL1Viewer
}); });
FrmLoading.ShowDialog(); FrmLoading.ShowDialog();
menuFileSave.Enabled = menuFileSave.Enabled =
menuFileSaveAs.Enabled = false; menuFileSaveAs.Enabled = false;
UpdateTitle(); UpdateTitle();
//ProcessFile(dialog.FileName); //ProcessFile(dialog.FileName);
} }
} }
return; return;
} }
@@ -337,6 +387,7 @@ namespace PrusaSL1Viewer
return; return;
} }
} }
Clear(); Clear();
return; return;
} }
@@ -352,6 +403,7 @@ namespace PrusaSL1Viewer
return; return;
} }
} }
Application.Exit(); Application.Exit();
return; return;
} }
@@ -363,7 +415,8 @@ namespace PrusaSL1Viewer
{ {
string fileNameNoExt = Path.GetFileNameWithoutExtension(SlicerFile.FileFullPath); string fileNameNoExt = Path.GetFileNameWithoutExtension(SlicerFile.FileFullPath);
folder.SelectedPath = Path.GetDirectoryName(SlicerFile.FileFullPath); folder.SelectedPath = Path.GetDirectoryName(SlicerFile.FileFullPath);
folder.Description = $"A \"{fileNameNoExt}\" folder will be created on your selected folder to dump the content."; folder.Description =
$"A \"{fileNameNoExt}\" folder will be created on your selected folder to dump the content.";
if (folder.ShowDialog() == DialogResult.OK) if (folder.ShowDialog() == DialogResult.OK)
{ {
string finalPath = Path.Combine(folder.SelectedPath, fileNameNoExt); string finalPath = Path.Combine(folder.SelectedPath, fileNameNoExt);
@@ -375,16 +428,17 @@ namespace PrusaSL1Viewer
var task = Task.Factory.StartNew(() => var task = Task.Factory.StartNew(() =>
{ {
SlicerFile.Extract(finalPath); SlicerFile.Extract(finalPath);
Invoke((MethodInvoker)delegate { Invoke((MethodInvoker) delegate
{
// Running on the UI thread // Running on the UI thread
EnableGUI(true); EnableGUI(true);
}); });
}); });
FrmLoading.ShowDialog(); FrmLoading.ShowDialog();
if (MessageBox.Show( if (MessageBox.Show(
$"Extraction was successful ({FrmLoading.StopWatch.ElapsedMilliseconds/1000}s), browser folder to see it contents.\n{finalPath}\nPress 'Yes' if you want open the target folder, otherwise select 'No' to continue.", $"Extraction was successful ({FrmLoading.StopWatch.ElapsedMilliseconds / 1000}s), browser folder to see it contents.\n{finalPath}\nPress 'Yes' if you want open the target folder, otherwise select 'No' to continue.",
"Extraction completed", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == "Extraction completed", MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==
DialogResult.Yes) DialogResult.Yes)
{ {
@@ -419,14 +473,15 @@ namespace PrusaSL1Viewer
if (!SlicerFile.SetValueFromPrintParameterModifier(modifier, value)) if (!SlicerFile.SetValueFromPrintParameterModifier(modifier, value))
{ {
MessageBox.Show( MessageBox.Show(
$"Unable to set '{modifier.Name}' value, was not found, it may not implemented yet.", "Operation error", MessageBoxButtons.OK, MessageBoxIcon.Error); $"Unable to set '{modifier.Name}' value, was not found, it may not implemented yet.",
"Operation error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return; return;
} }
RefreshInfo(); RefreshInfo();
menuFileSave.Enabled = menuFileSave.Enabled =
menuFileSaveAs.Enabled = true; menuFileSaveAs.Enabled = true;
} }
return; return;
@@ -435,7 +490,7 @@ namespace PrusaSL1Viewer
if (item.Tag.GetType() == typeof(Mutation.Mutates)) if (item.Tag.GetType() == typeof(Mutation.Mutates))
{ {
Mutation.Mutates mutate = (Mutation.Mutates)item.Tag; Mutation.Mutates mutate = (Mutation.Mutates) item.Tag;
MutateLayers(mutate); MutateLayers(mutate);
return; return;
} }
@@ -468,7 +523,7 @@ namespace PrusaSL1Viewer
bool result = false; bool result = false;
try try
{ {
Parallel.For(layerStart, layerEnd + 1, i => Parallel.For(layerStart, layerEnd + 1, i =>
{ {
Layer layer = SlicerFile[i]; Layer layer = SlicerFile[i];
@@ -483,8 +538,8 @@ namespace PrusaSL1Viewer
if (openingIterations > 0) if (openingIterations > 0)
{ {
imageEgmu = imageEgmu.Erode((int)openingIterations); imageEgmu = imageEgmu.Erode((int) openingIterations);
imageEgmu = imageEgmu.Dilate((int)openingIterations); imageEgmu = imageEgmu.Dilate((int) openingIterations);
} }
layer.Image = imageEgmu.ToImageSharpL8(); layer.Image = imageEgmu.ToImageSharpL8();
@@ -498,7 +553,8 @@ namespace PrusaSL1Viewer
} }
finally finally
{ {
Invoke((MethodInvoker)delegate { Invoke((MethodInvoker) delegate
{
// Running on the UI thread // Running on the UI thread
EnableGUI(true); EnableGUI(true);
}); });
@@ -514,7 +570,7 @@ namespace PrusaSL1Viewer
ComputeIslands(); ComputeIslands();
menuFileSave.Enabled = menuFileSave.Enabled =
menuFileSaveAs.Enabled = true; menuFileSaveAs.Enabled = true;
return; return;
} }
@@ -544,7 +600,8 @@ namespace PrusaSL1Viewer
if (ReferenceEquals(sender, menuHelpInstallPrinters)) if (ReferenceEquals(sender, menuHelpInstallPrinters))
{ {
string printerFolder = $"{Application.StartupPath}{Path.DirectorySeparatorChar}PrusaSlicer{Path.DirectorySeparatorChar}printer"; string printerFolder =
$"{Application.StartupPath}{Path.DirectorySeparatorChar}PrusaSlicer{Path.DirectorySeparatorChar}printer";
try try
{ {
string[] profiles = Directory.GetFiles(printerFolder); string[] profiles = Directory.GetFiles(printerFolder);
@@ -563,7 +620,8 @@ namespace PrusaSL1Viewer
"Click 'Yes' to override all profiles\n" + "Click 'Yes' to override all profiles\n" +
"Click 'No' to install only missing profiles without override\n" + "Click 'No' to install only missing profiles without override\n" +
"Clock 'Abort' to cancel this operation", "Clock 'Abort' to cancel this operation",
"Install printers into PrusaSlicer", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); "Install printers into PrusaSlicer", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question);
if (result == DialogResult.Abort) if (result == DialogResult.Abort)
@@ -572,11 +630,13 @@ namespace PrusaSL1Viewer
} }
bool overwrite = result == DialogResult.Yes; bool overwrite = result == DialogResult.Yes;
string targetFolder = $"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)}{Path.DirectorySeparatorChar}{Path.DirectorySeparatorChar}PrusaSlicer{Path.DirectorySeparatorChar}printer"; string targetFolder =
$"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)}{Path.DirectorySeparatorChar}{Path.DirectorySeparatorChar}PrusaSlicer{Path.DirectorySeparatorChar}printer";
foreach (var profile in profiles) foreach (var profile in profiles)
{ {
string targetFile = $"{targetFolder}{Path.DirectorySeparatorChar}{Path.GetFileName(profile)}"; string targetFile =
$"{targetFolder}{Path.DirectorySeparatorChar}{Path.GetFileName(profile)}";
if (!overwrite && File.Exists(targetFile)) continue; if (!overwrite && File.Exists(targetFile)) continue;
File.Copy(profile, targetFile, overwrite); File.Copy(profile, targetFile, overwrite);
} }
@@ -590,9 +650,9 @@ namespace PrusaSL1Viewer
{ {
MessageBox.Show(exception.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(exception.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
return; return;
} }
} }
@@ -602,7 +662,7 @@ namespace PrusaSL1Viewer
***********************/ ***********************/
if (ReferenceEquals(sender, tsThumbnailsPrevious)) if (ReferenceEquals(sender, tsThumbnailsPrevious))
{ {
byte i = (byte)tsThumbnailsCount.Tag; byte i = (byte) tsThumbnailsCount.Tag;
if (i == 0) if (i == 0)
{ {
// This should never happen! // This should never happen!
@@ -619,7 +679,7 @@ namespace PrusaSL1Viewer
pbThumbnail.Image = SlicerFile.Thumbnails[i]?.ToBitmap(); pbThumbnail.Image = SlicerFile.Thumbnails[i]?.ToBitmap();
tsThumbnailsCount.Text = $"{i+1}/{SlicerFile.CreatedThumbnailsCount}"; tsThumbnailsCount.Text = $"{i + 1}/{SlicerFile.CreatedThumbnailsCount}";
tsThumbnailsNext.Enabled = true; tsThumbnailsNext.Enabled = true;
tsThumbnailsResolution.Text = pbThumbnail.Image.PhysicalDimension.ToString(); tsThumbnailsResolution.Text = pbThumbnail.Image.PhysicalDimension.ToString();
@@ -631,7 +691,7 @@ namespace PrusaSL1Viewer
if (ReferenceEquals(sender, tsThumbnailsNext)) if (ReferenceEquals(sender, tsThumbnailsNext))
{ {
byte i = byte.Parse(tsThumbnailsCount.Tag.ToString()); byte i = byte.Parse(tsThumbnailsCount.Tag.ToString());
if (i >= SlicerFile.CreatedThumbnailsCount-1) if (i >= SlicerFile.CreatedThumbnailsCount - 1)
{ {
// This should never happen! // This should never happen!
tsThumbnailsNext.Enabled = false; tsThumbnailsNext.Enabled = false;
@@ -640,14 +700,14 @@ namespace PrusaSL1Viewer
tsThumbnailsCount.Tag = ++i; tsThumbnailsCount.Tag = ++i;
if (i >= SlicerFile.CreatedThumbnailsCount-1) if (i >= SlicerFile.CreatedThumbnailsCount - 1)
{ {
tsThumbnailsNext.Enabled = false; tsThumbnailsNext.Enabled = false;
} }
pbThumbnail.Image = SlicerFile.Thumbnails[i]?.ToBitmap(); pbThumbnail.Image = SlicerFile.Thumbnails[i]?.ToBitmap();
tsThumbnailsCount.Text = $"{i+1}/{SlicerFile.CreatedThumbnailsCount}"; tsThumbnailsCount.Text = $"{i + 1}/{SlicerFile.CreatedThumbnailsCount}";
tsThumbnailsPrevious.Enabled = true; tsThumbnailsPrevious.Enabled = true;
tsThumbnailsResolution.Text = pbThumbnail.Image.PhysicalDimension.ToString(); tsThumbnailsResolution.Text = pbThumbnail.Image.PhysicalDimension.ToString();
@@ -661,14 +721,15 @@ namespace PrusaSL1Viewer
using (SaveFileDialog dialog = new SaveFileDialog()) using (SaveFileDialog dialog = new SaveFileDialog())
{ {
byte i = byte.Parse(tsThumbnailsCount.Tag.ToString()); byte i = byte.Parse(tsThumbnailsCount.Tag.ToString());
if(ReferenceEquals(SlicerFile.Thumbnails[i], null)) if (ReferenceEquals(SlicerFile.Thumbnails[i], null))
{ {
return; // This should never happen! return; // This should never happen!
} }
dialog.Filter = "Image Files|.*png"; dialog.Filter = "Image Files|.*png";
dialog.AddExtension = true; dialog.AddExtension = true;
dialog.FileName = $"{Path.GetFileNameWithoutExtension(SlicerFile.FileFullPath)}_thumbnail{i+1}.png"; dialog.FileName =
$"{Path.GetFileNameWithoutExtension(SlicerFile.FileFullPath)}_thumbnail{i + 1}.png";
if (dialog.ShowDialog() == DialogResult.OK) if (dialog.ShowDialog() == DialogResult.OK)
{ {
@@ -678,6 +739,7 @@ namespace PrusaSL1Viewer
stream.Close(); stream.Close();
} }
} }
return; return;
} }
} }
@@ -705,8 +767,10 @@ namespace PrusaSL1Viewer
{ {
tw.WriteLine($"{property.Name} = {property.GetValue(config)}"); tw.WriteLine($"{property.Name} = {property.GetValue(config)}");
} }
tw.WriteLine(); tw.WriteLine();
} }
tw.Close(); tw.Close();
} }
@@ -718,6 +782,7 @@ namespace PrusaSL1Viewer
Process.Start(dialog.FileName); Process.Start(dialog.FileName);
} }
} }
return; return;
} }
} }
@@ -749,6 +814,7 @@ namespace PrusaSL1Viewer
Process.Start(dialog.FileName); Process.Start(dialog.FileName);
} }
} }
return; return;
} }
} }
@@ -783,12 +849,13 @@ namespace PrusaSL1Viewer
if (MessageBox.Show("Are you sure you want to remove all selected islands from image?\n" + if (MessageBox.Show("Are you sure you want to remove all selected islands from image?\n" +
"Warning: Removing a island can cause another island to appears if the next layer have land in top of the removed island.\n" + "Warning: Removing a island can cause another island to appears if the next layer have land in top of the removed island.\n" +
"Always check previous and next layer before perform a island removal to ensure safe operation.", "Remove islands?", "Always check previous and next layer before perform a island removal to ensure safe operation.",
"Remove islands?",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) return; MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) return;
foreach (ListViewItem item in lvIslands.SelectedItems) foreach (ListViewItem item in lvIslands.SelectedItems)
{ {
if(!(item.Tag is LayerIsland island)) continue; if (!(item.Tag is LayerIsland island)) continue;
var image = ActualLayer == island.Owner.Index ? ActualLayerImage : island.Owner.Image; var image = ActualLayer == island.Owner.Index ? ActualLayerImage : island.Owner.Image;
@@ -806,7 +873,7 @@ namespace PrusaSL1Viewer
y = pixel.X; y = pixel.X;
} }
((Bitmap)pbLayer.Image).SetPixel(x, y, Color.DarkRed); ((Bitmap) pbLayer.Image).SetPixel(x, y, Color.DarkRed);
} }
} }
@@ -819,15 +886,15 @@ namespace PrusaSL1Viewer
} }
UpdateIslandsInfo(); UpdateIslandsInfo();
menuFileSave.Enabled = menuFileSave.Enabled =
menuFileSaveAs.Enabled = true; menuFileSaveAs.Enabled = true;
return; return;
} }
if (ReferenceEquals(sender, tsIslandsRepair)) if (ReferenceEquals(sender, tsIslandsRepair))
{ {
ItemClicked(menuToolsRepairLayers, e); EventClick(menuToolsRepairLayers, e);
return; return;
} }
@@ -844,7 +911,9 @@ namespace PrusaSL1Viewer
/************************ /************************
* Layer Menu * * Layer Menu *
***********************/ ***********************/
if (ReferenceEquals(sender, tsLayerImageRotate) || ReferenceEquals(sender, tsLayerImageLayerDifference) || ReferenceEquals(sender, tsLayerImageHighlightIslands) || ReferenceEquals(sender, tsLayerImageLayerOutline)) if (ReferenceEquals(sender, tsLayerImageRotate) || ReferenceEquals(sender, tsLayerImageLayerDifference) ||
ReferenceEquals(sender, tsLayerImageHighlightIslands) ||
ReferenceEquals(sender, tsLayerImageLayerOutline))
{ {
ShowLayer(); ShowLayer();
return; return;
@@ -861,14 +930,15 @@ namespace PrusaSL1Viewer
dialog.Filter = "Image Files|.*png"; dialog.Filter = "Image Files|.*png";
dialog.AddExtension = true; dialog.AddExtension = true;
dialog.FileName = $"{Path.GetFileNameWithoutExtension(SlicerFile.FileFullPath)}_layer{ActualLayer}.png"; dialog.FileName =
$"{Path.GetFileNameWithoutExtension(SlicerFile.FileFullPath)}_layer{ActualLayer}.png";
if (dialog.ShowDialog() == DialogResult.OK) if (dialog.ShowDialog() == DialogResult.OK)
{ {
using (var stream = dialog.OpenFile()) using (var stream = dialog.OpenFile())
{ {
Image<L8> image = (Image<L8>)pbLayer.Image.Tag; Image image = (Image) pbLayer.Image.Tag;
image.Save(stream, new PngEncoder()); image.Save(stream, Helpers.PngEncoder);
stream.Close(); stream.Close();
} }
} }
@@ -877,13 +947,32 @@ namespace PrusaSL1Viewer
} }
} }
if (ReferenceEquals(sender, btnPreviousLayer))
{
ShowLayer(false);
return;
}
if (ReferenceEquals(sender, btnNextLayer))
{
ShowLayer(true);
return;
}
} }
private void sbLayers_ValueChanged(object sender, EventArgs e) private void ValueChanged(object sender, EventArgs e)
{ {
ActualLayer = (uint) (sbLayers.Maximum - sbLayers.Value); if (ReferenceEquals(sender, tbLayer))
ShowLayer(); {
if (tbLayer.Value == ActualLayer) return;
/*Debug.WriteLine($"{tbLayer.Height} + {tbLayer.Value} * ({tbLayer.Height} / {tbLayer.Maximum})");
lbLayerActual.Location = new Point(lbLayerActual.Location.X, (int) (tbLayer.Height - tbLayer.Value * ((float)tbLayer.Height / tbLayer.Maximum)));
Debug.WriteLine(lbLayerActual.Location);*/
ShowLayer((uint) tbLayer.Value);
return;
}
} }
private void ConvertToItemOnClick(object sender, EventArgs e) private void ConvertToItemOnClick(object sender, EventArgs e)
@@ -912,8 +1001,9 @@ namespace PrusaSL1Viewer
{ {
result = SlicerFile.Convert(fileFormat, dialog.FileName); result = SlicerFile.Convert(fileFormat, dialog.FileName);
} }
catch (Exception) catch (Exception ex)
{ {
MessageBox.Show($"Convertion was unsuccessful! Maybe not implemented...\n{ex.Message}", "Convertion unsuccessful", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
finally finally
{ {
@@ -940,7 +1030,7 @@ namespace PrusaSL1Viewer
} }
else else
{ {
MessageBox.Show("Convertion was unsuccessful! Maybe not implemented...", "Convertion unsuccessful", MessageBoxButtons.OK, MessageBoxIcon.Error); //MessageBox.Show("Convertion was unsuccessful! Maybe not implemented...", "Convertion unsuccessful", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
} }
@@ -1006,7 +1096,7 @@ namespace PrusaSL1Viewer
if (!(item.Tag is LayerIsland island)) return; if (!(item.Tag is LayerIsland island)) return;
if (island.Owner.Index != ActualLayer) if (island.Owner.Index != ActualLayer)
{ {
sbLayers.Value = (int)(SlicerFile.LayerCount - island.Owner.Index - 1); ShowLayer(island.Owner.Index);
//ShowLayer(island.Owner.Index); //ShowLayer(island.Owner.Index);
} }
@@ -1044,6 +1134,7 @@ namespace PrusaSL1Viewer
Text = $"{FrmAbout.AssemblyTitle} Version: {FrmAbout.AssemblyVersion}"; Text = $"{FrmAbout.AssemblyTitle} Version: {FrmAbout.AssemblyVersion}";
SlicerFile?.Dispose(); SlicerFile?.Dispose();
SlicerFile = null; SlicerFile = null;
ActualLayer = 0;
// GUI CLEAN // GUI CLEAN
pbThumbnail.Image = null; pbThumbnail.Image = null;
@@ -1059,13 +1150,15 @@ namespace PrusaSL1Viewer
lvIslands.EndUpdate(); lvIslands.EndUpdate();
UpdateIslandsInfo(); UpdateIslandsInfo();
lbLayers.Text = "Layers"; lbMaxLayer.Text =
lbLayerActual.Text =
lbInitialLayer.Text = "???";
lvProperties.BeginUpdate(); lvProperties.BeginUpdate();
lvProperties.Items.Clear(); lvProperties.Items.Clear();
lvProperties.Groups.Clear(); lvProperties.Groups.Clear();
lvProperties.EndUpdate(); lvProperties.EndUpdate();
pbLayers.Value = 0; pbLayers.Value = 0;
sbLayers.Value = 0; tbLayer.Value = 0;
statusBar.Items.Clear(); statusBar.Items.Clear();
menuFileConvert.DropDownItems.Clear(); menuFileConvert.DropDownItems.Clear();
@@ -1111,11 +1204,13 @@ namespace PrusaSL1Viewer
menuFileClose.Enabled = menuFileClose.Enabled =
menuFileExtract.Enabled = menuFileExtract.Enabled =
menuFileConvert.Enabled = menuFileConvert.Enabled =
sbLayers.Enabled = tbLayer.Enabled =
pbLayers.Enabled = pbLayers.Enabled =
menuEdit.Enabled = menuEdit.Enabled =
menuMutate.Enabled = menuMutate.Enabled =
menuTools.Enabled = menuTools.Enabled =
btnNextLayer.Enabled =
btnPreviousLayer.Enabled =
false; false;
@@ -1200,6 +1295,10 @@ namespace PrusaSL1Viewer
ActualLayerImage = SlicerFile[0].Image; ActualLayerImage = SlicerFile[0].Image;
lbMaxLayer.Text = $"{SlicerFile.TotalHeight}mm\n{SlicerFile.LayerCount}";
lbInitialLayer.Text = $"{SlicerFile.LayerHeight}mm\n0";
tsLayerImageRotate.Checked = ActualLayerImage.Height > ActualLayerImage.Width; tsLayerImageRotate.Checked = ActualLayerImage.Height > ActualLayerImage.Width;
if (!ReferenceEquals(SlicerFile.ConvertToFormats, null)) if (!ReferenceEquals(SlicerFile.ConvertToFormats, null))
@@ -1264,8 +1363,8 @@ namespace PrusaSL1Viewer
menuFileReload.Enabled = menuFileReload.Enabled =
menuFileClose.Enabled = menuFileClose.Enabled =
menuFileExtract.Enabled = menuFileExtract.Enabled =
sbLayers.Enabled = tbLayer.Enabled =
pbLayers.Enabled = pbLayers.Enabled =
menuEdit.Enabled = menuEdit.Enabled =
menuMutate.Enabled = menuMutate.Enabled =
@@ -1286,10 +1385,9 @@ namespace PrusaSL1Viewer
tabControlLeft.SelectedIndex = 0; tabControlLeft.SelectedIndex = 0;
tsLayerResolution.Text = $"{{Width={SlicerFile.ResolutionX}, Height={SlicerFile.ResolutionY}}}"; tsLayerResolution.Text = $"{{Width={SlicerFile.ResolutionX}, Height={SlicerFile.ResolutionY}}}";
sbLayers.SmallChange = 1; tbLayer.Maximum = (int)SlicerFile.LayerCount - 1;
sbLayers.Minimum = 0; ShowLayer();
sbLayers.Maximum = (int)SlicerFile.LayerCount - 1;
sbLayers.Value = sbLayers.Maximum;
RefreshInfo(); RefreshInfo();
@@ -1307,47 +1405,57 @@ namespace PrusaSL1Viewer
void RefreshInfo() void RefreshInfo()
{ {
menuEdit.DropDownItems.Clear(); menuEdit.DropDownItems.Clear();
foreach (var modifier in SlicerFile.PrintParameterModifiers)
{
ToolStripItem item = new ToolStripMenuItem
{
Text = $"{modifier.Name} ({SlicerFile.GetValueFromPrintParameterModifier(modifier)}{modifier.ValueUnit})",
Tag = modifier,
Image = Properties.Resources.Wrench_16x16,
};
menuEdit.DropDownItems.Add(item);
item.Click += ItemClicked; if (!ReferenceEquals(SlicerFile.PrintParameterModifiers, null))
{
foreach (var modifier in SlicerFile.PrintParameterModifiers)
{
ToolStripItem item = new ToolStripMenuItem
{
Text =
$"{modifier.Name} ({SlicerFile.GetValueFromPrintParameterModifier(modifier)}{modifier.ValueUnit})",
Tag = modifier,
Image = Properties.Resources.Wrench_16x16,
};
menuEdit.DropDownItems.Add(item);
item.Click += EventClick;
}
} }
lvProperties.BeginUpdate(); lvProperties.BeginUpdate();
lvProperties.Items.Clear(); lvProperties.Items.Clear();
foreach (object config in SlicerFile.Configs) if (!ReferenceEquals(SlicerFile.Configs, null))
{ {
ListViewGroup group = new ListViewGroup(config.GetType().Name); foreach (object config in SlicerFile.Configs)
lvProperties.Groups.Add(group);
foreach (PropertyInfo propertyInfo in config.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance))
{ {
ListViewItem item = new ListViewItem(propertyInfo.Name, group); ListViewGroup group = new ListViewGroup(config.GetType().Name);
object obj = new object(); lvProperties.Groups.Add(group);
var value = propertyInfo.GetValue(config); foreach (PropertyInfo propertyInfo in config.GetType()
if (!ReferenceEquals(value, null)) .GetProperties(BindingFlags.Public | BindingFlags.Instance))
{ {
if (value is IList list) ListViewItem item = new ListViewItem(propertyInfo.Name, group);
object obj = new object();
var value = propertyInfo.GetValue(config);
if (!ReferenceEquals(value, null))
{ {
item.SubItems.Add(list.Count.ToString()); if (value is IList list)
} {
else item.SubItems.Add(list.Count.ToString());
{ }
item.SubItems.Add(value.ToString()); else
} {
item.SubItems.Add(value.ToString());
} }
lvProperties.Items.Add(item); }
lvProperties.Items.Add(item);
}
} }
} }
lvProperties.EndUpdate(); lvProperties.EndUpdate();
tsPropertiesLabelCount.Text = $"Properties: {lvProperties.Items.Count}"; tsPropertiesLabelCount.Text = $"Properties: {lvProperties.Items.Count}";
@@ -1377,6 +1485,24 @@ namespace PrusaSL1Viewer
/// </summary> /// </summary>
void ShowLayer() => ShowLayer(ActualLayer); void ShowLayer() => ShowLayer(ActualLayer);
void ShowLayer(bool direction)
{
if (direction)
{
if (ActualLayer < SlicerFile.LayerCount - 1)
{
ShowLayer(ActualLayer + 1);
}
return;
}
if (ActualLayer > 0)
{
ShowLayer(ActualLayer - 1);
}
}
/// <summary> /// <summary>
/// Shows a layer number /// Shows a layer number
/// </summary> /// </summary>
@@ -1384,13 +1510,21 @@ namespace PrusaSL1Viewer
void ShowLayer(uint layerNum) void ShowLayer(uint layerNum)
{ {
if (ReferenceEquals(SlicerFile, null)) return; if (ReferenceEquals(SlicerFile, null)) return;
int layerOnSlider = (int)(SlicerFile.LayerCount - layerNum - 1);
if (sbLayers.Value != layerOnSlider) //int layerOnSlider = (int)(SlicerFile.LayerCount - layerNum - 1);
if (tbLayer.Value != layerNum)
{ {
sbLayers.Value = layerOnSlider; tbLayer.Value = (int) layerNum;
return; return;
} }
if (IsChagingLayer) return ;
IsChagingLayer = true;
ActualLayer = layerNum;
btnNextLayer.Enabled = layerNum < SlicerFile.LayerCount - 1;
btnPreviousLayer.Enabled = layerNum > 0;
try try
{ {
// OLD // OLD
@@ -1402,6 +1536,7 @@ namespace PrusaSL1Viewer
Stopwatch watch = Stopwatch.StartNew(); Stopwatch watch = Stopwatch.StartNew();
ActualLayerImage = SlicerFile[layerNum].Image; ActualLayerImage = SlicerFile[layerNum].Image;
//ActualLayerImage = image; //ActualLayerImage = image;
var imageRgba = ActualLayerImage.CloneAs<Rgba32>(); var imageRgba = ActualLayerImage.CloneAs<Rgba32>();
@@ -1409,13 +1544,22 @@ namespace PrusaSL1Viewer
if (tsLayerImageLayerOutline.Checked) if (tsLayerImageLayerOutline.Checked)
{ {
Image<Gray, byte> grayscale = ActualLayerImage.ToEmguImage(); Image<Gray, byte> grayscale = ActualLayerImage.ToEmguImage();
grayscale = grayscale.Canny(100, 200, 3, true); grayscale = grayscale.Canny(80, 40, 3, true);
/*grayscale = grayscale.Dilate(1).Erode(1);
Gray gray = new Gray(255);
Mat external = new Mat();
VectorOfVectorOfPoint contours = new VectorOfVectorOfPoint();
CvInvoke.FindContours(grayscale, contours, external, RetrType.Ccomp, ChainApproxMethod.ChainApproxSimple);
for (int i = 0; i < contours.Size; i++)
{
grayscale.FillConvexPoly(contours[i].ToArray(), gray, LineType.FourConnected);
}
*/
imageRgba = grayscale.ToImageSharpL8().CloneAs<Rgba32>(); imageRgba = grayscale.ToImageSharpL8().CloneAs<Rgba32>();
grayscale.Dispose(); grayscale.Dispose();
/*imageRgba.Mutate(imgMaskIn =>
{
imgMaskIn.DetectEdges();
});*/
} }
else if (tsLayerImageLayerDifference.Checked) else if (tsLayerImageLayerDifference.Checked)
{ {
@@ -1554,21 +1698,36 @@ namespace PrusaSL1Viewer
watch.Stop(); watch.Stop();
tsLayerPreviewTime.Text = $"{watch.ElapsedMilliseconds}ms"; tsLayerPreviewTime.Text = $"{watch.ElapsedMilliseconds}ms";
lbLayers.Text = $"{SlicerFile.GetHeightFromLayer(layerNum)} / {SlicerFile.TotalHeight}mm\n{layerNum} / {SlicerFile.LayerCount-1}\n{percent}%"; //lbLayers.Text = $"{SlicerFile.GetHeightFromLayer(layerNum)} / {SlicerFile.TotalHeight}mm\n{layerNum} / {SlicerFile.LayerCount-1}\n{percent}%";
pbLayers.Value = percent; lbLayerActual.Text = $"{SlicerFile.GetHeightFromLayer(ActualLayer)}mm\n{ActualLayer}\n{percent}%";
lbLayerActual.Location = new Point(lbLayerActual.Location.X,
Math.Max(1,
Math.Min(tbLayer.Height- lbLayerActual.Height,
(int)(tbLayer.Height - tbLayer.Value * ((float)tbLayer.Height / tbLayer.Maximum)) - lbLayerActual.Height/2)
));
pbLayers.Value = percent;
lbLayerActual.Invalidate();
lbLayerActual.Update();
lbLayerActual.Refresh();
pbLayer.Invalidate();
pbLayer.Update();
pbLayer.Refresh();
//Application.DoEvents();
} }
catch (Exception e) catch (Exception e)
{ {
Debug.WriteLine(e); Debug.WriteLine(e);
} }
IsChagingLayer = false;
} }
void AddStatusBarItem(string name, object item, string extraText = "") void AddStatusBarItem(string name, object item, string extraText = "")
{ {
if (ReferenceEquals(item, null)) return;
//if (item.ToString().Equals(0)) return;
if (statusBar.Items.Count > 0) if (statusBar.Items.Count > 0)
statusBar.Items.Add(new ToolStripSeparator()); statusBar.Items.Add(new ToolStripSeparator());
@@ -1733,12 +1892,10 @@ namespace PrusaSL1Viewer
imageEgmu = imageEgmu.Dilate((int) iterations); imageEgmu = imageEgmu.Dilate((int) iterations);
break; break;
case Mutation.Mutates.Opening: case Mutation.Mutates.Opening:
imageEgmu = imageEgmu.Erode((int)iterations); imageEgmu = imageEgmu.Erode((int)iterations).Dilate((int)iterations);
imageEgmu = imageEgmu.Dilate((int)iterations);
break; break;
case Mutation.Mutates.Closing: case Mutation.Mutates.Closing:
imageEgmu = imageEgmu.Dilate((int)iterations); imageEgmu = imageEgmu.Dilate((int)iterations).Erode((int)iterations);
imageEgmu = imageEgmu.Erode((int)iterations);
break; break;
case Mutation.Mutates.Gradient: case Mutation.Mutates.Gradient:
imageEgmu = imageEgmu.MorphologyEx(MorphOp.Gradient, Program.KernelStar3x3, new Point(-1, -1), (int) iterations, imageEgmu = imageEgmu.MorphologyEx(MorphOp.Gradient, Program.KernelStar3x3, new Point(-1, -1), (int) iterations,
@@ -1889,7 +2046,5 @@ namespace PrusaSL1Viewer
UpdateIslandsInfo(); UpdateIslandsInfo();
} }
} }
} }
+23 -23
View File
@@ -146,61 +146,61 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
DQAAAk1TRnQBSQFMAgEBBAEAAZgBAgGYAQIBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA DQAAAk1TRnQBSQFMAgEBBAEAAUgBAwFIAQMBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AZgADUAGjA1IBqQNS AwABIAMAAQEBAAEgBgABIP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AZgADUAGjA1IBqQNS
AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1ABo1wAAxYBHgMjATMDIwEz AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1ABo1wAAxYBHgMjATMDIwEz
AyMBMwMjATMDGAEhAwIBAwwAA1UBtANZAccDLwFJAwABAQMbASYDHAEnAxwBJwMcAScDHAEnAxwBJwMc AyMBMwMjATMDGAEhAwIBAwwAA1UBtANZAccDLwFJAwABAQMbASYDHAEnAxwBJwMcAScDHAEnAxwBJwMc
AScDHAEnAxwBJwMcAScDHAEnAwIBAwQAA1IBqTAAA1IBqRAAAycBOgMwAUwDMAFMAzABTAMwAUwDMAFM AScDHAEnAxwBJwMcAScDHAEnAwIBAwQAA1IBqTAAA1IBqRAAAycBOgMwAUwDMAFMAzABTAMwAUwDMAFM
AzABTAMwAUwDMAFMAycBOhwAAwQBBgMjATMDUgGpAbMBTgEUAf8BsgFNARIB/wGyAUwBEgH/AbMBTQET AzABTAMwAUwDMAFMAycBOhwAAwQBBgMjATMDUgGpAbMBOAEAAf8BsgE3AQAB/wGyATYBAAH/AbMBNwEA
Af8CWAFWAbkDKQE/AwQBBgsAAf8DAAH/A0MBdwMpAT4DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ Af8CWAFWAbkDKQE/AwQBBgsAAf8DAAH/A0MBdwMpAT4DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMyAVEEAANSAakEAANQAZ0DUwGqA1MBqgNTAaoDUwGqA1MBqgNTAaoDUAGd AwAB/wMAAf8DAAH/AwAB/wMyAVEEAANSAakEAANQAZ0DUwGqA1MBqgNTAaoDUwGqA1MBqgNTAaoDUAGd
DAADUgGpEAADTgH7AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DTgH7GAADBQEHAzABTAGz DAADUgGpEAADTgH7AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DTgH7GAADBQEHAzABTAGz
AU0BEwH/AdkBswGMAf8B9QHfAcUB/wH+Ae4B2AH/Af4B7gHYAf8B+gHnAc8B/wHZAbMBjAH/AbMBTQES ATcBAAH/AdkBswGMAf8B9QHfAcUB/wH+Ae4B2AH/Af4B7gHYAf8B+gHnAc8B/wHZAbMBjAH/AbMBNwEA
Af8CMQEwAU0DAgEDBAADUQGiA1YBtgMqAUAEAAMQARUDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEQEX Af8CMQEwAU0DAgEDBAADUQGiA1YBtgMqAUAEAAMQARUDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEQEX
AxEBFwMRARcDEAEWCAADUgGpBAADUAGdA1MBqgNTAaoDHwEsHAADUgGpEwAB/wMAAf8DAAH/AwAB/wMA AxEBFwMRARcDEAEWCAADUgGpBAADUAGdA1MBqgNTAaoDHwEsHAADUgGpEwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/xgAAjEBMAFNAbcBgQEcAf8B6gHNAawB/wH6AeUBywH/AfgB4QHG Af8DAAH/AwAB/wMAAf8DAAH/AwAB/xgAAjEBMAFNAbcBgQEGAf8B6gHNAawB/wH6AeUBywH/AfgB4QHG
Af8B9gHgAcQB/wH2Ad8BxAH/AfcB4QHFAf8B+gHlAcsB/wHvAdUBtwH/AbMBTQETAf8DIAEuBAADCgEO Af8B9gHgAcQB/wH2Ad8BxAH/AfcB4QHFAf8B+gHlAcsB/wHvAdUBtwH/AbMBNwEAAf8DIAEuBAADCgEO
AxEBFwMAAQE4AANSAakwAANSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AxEBFwMAAQE4AANSAakwAANSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
GAACagFEAfkB5QHHAaQB/wH3Ad8BwgH/AfMB2wG7Af8B8wHaAbsB/wHzAdsBvAH/AfMB2wG8Af8B8wHb GAACagFEAfkB5QHHAaQB/wH3Ad8BwgH/AfMB2wG7Af8B8wHaAbsB/wHzAdsBvAH/AfMB2wG8Af8B8wHb
AbwB/wHzAdwBvQH/AfYB4QHDAf8B1QGvAYQB/wJYAVYBuQQAA1IB9AMAAf8DPgFsAw4BEwNCAXYDQwF3 AbwB/wHzAdwBvQH/AfYB4QHDAf8B1QGvAYQB/wJYAVYBuQQAA1IB9AMAAf8DPgFsAw4BEwNCAXYDQwF3
A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQgF2AxQBGwQAA1IBqQMiATIDUgGpA1IBqQNS A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQgF2AxQBGwQAA1IBqQMiATIDUgGpA1IBqQNS
AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpAyIBMgNSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMA AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpAyIBMgNSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/GAABtAFPARUC/wHwAdwC/wHvAdwB/wH+AesB1wH/AfkB5AHKAf8B8QHW Af8DAAH/AwAB/wMAAf8DAAH/GAABtAE5AQAC/wHwAdwC/wHvAdwB/wH+AesB1wH/AfkB5AHKAf8B8QHW
AbQB/wHxAdYBswH/AfEB1gG0Af8B8QHWAbQB/wHyAdgBtgH/AfMB2QG3Af8BswFPARUB/wcAAf4DAAH/ AbQB/wHxAdYBswH/AfEB1gG0Af8B8QHWAbQB/wHyAdgBtgH/AfMB2QG3Af8BswE5AQAB/wcAAf4DAAH/
A0MBdwMeASsDVwHFA1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1gBxgMmATkEAANS A0MBdwMeASsDVwHFA1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1gBxgMmATkEAANS
AakDNAFVAzQBVSAAAzQBVQM0AVUDUgGpEwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ AakDNAFVAzQBVSAAAzQBVQM0AVUDUgGpEwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/xgAA0gBhQG4AYIBHAH/AccBlwE4Af8BzwGlAUoB/wHtAdIBtAH/Af0B6AHSAf8B7wHSAa0B/wHu AwAB/xgAA0gBhQG4AYIBBgH/AccBlwEiAf8BzwGlATQB/wHtAdIBtAH/Af0B6AHSAf8B7wHSAa0B/wHu
AdIBrAH/Ae4B0gGtAf8B7gHSAa0B/wH1AdwBvAH/AbMBTQEUAf8EAAMzAVMDPAFnAxQBHDgAA1IBqQM0 AdIBrAH/Ae4B0gGtAf8B7gHSAa0B/wH1AdwBvAH/AbMBNwEAAf8EAAMzAVMDPAFnAxQBHDgAA1IBqQM0
AVUDNAFVA0YBgANSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNFAX8DNAFVAzQBVQNSAakTAAH/AwAB/wMA AVUDNAFVA0YBgANSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNFAX8DNAFVAzQBVQNSAakTAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EAADCgEOAyEBMQMjATMDIwEzAjEBMAFNAzMBUwGz Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EAADCgEOAyEBMQMjATMDIwEzAjEBMAFNAzMBUwGz
AUwBDwH/AeMBxQGiAf8B+QHjAckB/wHrAc4BpAH/AesBzgGmAf8B6wHOAaUB/wH3Ad8BwAH/AbMBTQET ATYBAAH/AeMBxQGiAf8B+QHjAckB/wHrAc4BpAH/AesBzgGmAf8B6wHOAaUB/wH3Ad8BwAH/AbMBNwEA
Af8EAAMzAVMDPAFnAxQBHDgAA1IBqQM0AVUDNAFVAz8BbgMyAVAQAAMnATsDRAF8AzQBVQM0AVUDUgGp Af8EAAMzAVMDPAFnAxQBHDgAA1IBqQM0AVUDNAFVAz8BbgMyAVAQAAMnATsDRAF8AzQBVQM0AVUDUgGp
EwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAAwoBDgM/AW0DXAH4AYUBiQGN EwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAAwoBDgM/AW0DXAH4AYUBiQGN
Af8BTwFSAYQB/wNfAfMDOgFiAwkBDAGzAUwBDwH/Ae0B0QG0Af8B6QHJAZ0B/wHpAckBnQH/AekByAGb Af8BOQE8AYQB/wNfAfMDOgFiAwkBDAGzATYBAAH/Ae0B0QG0Af8B6QHJAZ0B/wHpAckBnQH/AekByAGb
Af8B/AHoAdIB/wGzAU4BFAH/BwAB/gMAAf8DQwF3Ax8BLANXAcUDWQHHA1kBxwNZAccDWQHHA1kBxwNZ Af8B/AHoAdIB/wGzATgBAAH/BwAB/gMAAf8DQwF3Ax8BLANXAcUDWQHHA1kBxwNZAccDWQHHA1kBxwNZ
AccDWQHHA1kBxwNZAccDWAHGAyYBOQQAA1IBqQM0AVUDNAFVAwUBBwNVAbUDEQEXA1IBqQMpAT4EAANQ AccDWQHHA1kBxwNZAccDWAHGAyYBOQQAA1IBqQM0AVUDNAFVAwUBBwNVAbUDEQEXA1IBqQMpAT4EAANQ
AZ8DEQEXAzQBVQM0AVUDUgGpEwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwA AZ8DEQEXAzQBVQM0AVUDUgGpEwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwA
Az4BawOAAf8C0gHRAf8B7wHuAe0B/wLvAe4B/wHSAdMB0gH/AVEBgAGBAf8DOgFgAzIBUAHQAacBTwH/ Az4BawOAAf8C0gHRAf8B7wHuAe0B/wLvAe4B/wHSAdMB0gH/ATsBgAGBAf8DOgFgAzIBUAHQAacBOQH/
AeoByQGcAf8B5AHDAZIB/wHyAdcBtQH/AdoBtgGQAf8CUwFSAagEAANSAfQDAAH/Az4BbAMOARMDQgF1 AeoByQGcAf8B5AHDAZIB/wHyAdcBtQH/AdoBtgGQAf8CUwFSAagEAANSAfQDAAH/Az4BbAMOARMDQgF1
A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwMUARsEAANSAakDNAFVAzQBVQQA A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwMUARsEAANSAakDNAFVAzQBVQQA
AzwBaANWAb4DIwE0A1UBtQMSARkDUQGgBAADNAFVAzQBVQNSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMA AzwBaANWAb4DIwE0A1UBtQMSARkDUQGgBAADNAFVAzQBVQNSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwUB/wMFAf8DXAHfDAADXAH4As0BzAH/AeMB4gHhAf8B3wHeAd0B/wHfAd4B3QH/AeMB4gHh Af8DAAH/AwAB/wMAAf8DXAHfDAADXAH4As0BzAH/AeMB4gHhAf8B3wHeAd0B/wHfAd4B3QH/AeMB4gHh
Af8DzAH/A2cB8gMZASMByAGYATsB/wHzAdoBtwH/AfEB1gGyAf8B/gHtAdkB/wG3AYEBGwH/AwoBDQQA Af8DzAH/A2cB8gMZASMByAGYASUB/wHzAdoBtwH/AfEB1gGyAf8B/gHtAdkB/wG3AYEBBQH/AwoBDQQA
AwoBDgMRARcDAAEBOAADUgGpAzQBVQM0AVUDAAEBAy0BRgMKAQ4EAAM5AV8DXAHOAygBPAQAAzQBVQM0 AwoBDgMRARcDAAEBOAADUgGpAzQBVQM0AVUDAAEBAy0BRgMKAQ4EAAM5AV8DXAHOAygBPAQAAzQBVQM0
AVUDUgGpEwAB/wOCAf8DGwH/AwUB/wMAAf8DAAH/Aw8B/wMWAf8DXAHfAxcBIAwAA0wB/wHjAeIB4QH/ AVUDUgGpEwAB/wOCAf8DBQH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXAHfAxcBIAwAAzYB/wHjAeIB4QH/
AdcB1gHUAf8B1wHWAdQB/wHXAdYB1AH/AdcB1gHUAf8B4gHhAeAB/wGDAYgBjQH/BAABtwGAARgC/wHw AdcB1gHUAf8B1wHWAdQB/wHXAdYB1AH/AdcB1gHUAf8B4gHhAeAB/wGDAYgBjQH/BAABtwGAAQIC/wHw
AdwB/wH6AeYBzgH/AcEBkAEvAf8DQAFuCAADUQGiA1YBtgMqAUAEAAMQARUDEQEXAxEBFwMRARcDEQEX AdwB/wH6AeYBzgH/AcEBkAEZAf8DQAFuCAADUQGiA1YBtgMqAUAEAAMQARUDEQEXAxEBFwMRARcDEQEX
AxEBFwMRARcDEQEXAxEBFwMRARcDEAEWCAADUgGpAzQBVQM0AVUDMwFTA1IBpgNKAYwHAAEBA0cBgwgA AxEBFwMRARcDEQEXAxEBFwMRARcDEAEWCAADUgGpAzQBVQM0AVUDMwFTA1IBpgNKAYwHAAEBA0cBgwgA
AzQBVQM0AVUDUgGpEwAB/wOZAf8DhQH/AygB/wMAAf8DAAH/Aw8B/wNcAd8DFwEgEAADTAH/AfIB8QHw AzQBVQM0AVUDUgGpEwAB/wOZAf8DhQH/AxIB/wMAAf8DAAH/AwAB/wNcAd8DFwEgEAADNgH/AfIB8QHw
Af8BzwHNAcsB/wHQAc4BywH/AdABzgHLAf8BzwHNAcsB/wHyAvAB/wFQAYEBhQH/BAADNwFbAbQBTwEV Af8BzwHNAcsB/wHQAc4BywH/AdABzgHLAf8BzwHNAcsB/wHyAvAB/wE6AYEBhQH/BAADNwFbAbQBOQEA
Af8BtAFPARQB/wNAAW8PAAH/AwAB/wNDAXcDKQE+AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8BtAE5AQAB/wNAAW8PAAH/AwAB/wNDAXcDKQE+AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DMgFRBAADUgGpAzQBVQM0AVUDEQEXA1ABngMkATYUAAM0AVUDNAFVA1IBqRAA Af8DAAH/AwAB/wMAAf8DMgFRBAADUgGpAzQBVQM0AVUDEQEXA1ABngMkATYUAAM0AVUDNAFVA1IBqRAA
A1AB+wMHAf8DBwH/AwcB/wMAAf8DAAH/A1wB3wMXASAUAANiAfYB2wLaAf8B6AHnAeYB/wHRAc8BzgH/ A1AB+wMAAf8DAAH/AwAB/wMAAf8DAAH/A1wB3wMXASAUAANiAfYB2wLaAf8B6AHnAeYB/wHRAc8BzgH/
AdEBzwHOAf8B6AHnAeYB/wHbAtoB/wNiAfYgAANVAbQDWQHHAy8BSQMAAQEDGwEmAxwBJwMcAScDHAEn AdEBzwHOAf8B6AHnAeYB/wHbAtoB/wNiAfYgAANVAbQDWQHHAy8BSQMAAQEDGwEmAxwBJwMcAScDHAEn
AxwBJwMcAScDHAEnAxwBJwMcAScDHAEnAxwBJwMCAQMEAANSAakDIgEyA1IBqQNSAakDUgGpA1IBqQNS AxwBJwMcAScDHAEnAxwBJwMcAScDHAEnAxwBJwMCAQMEAANSAakDIgEyA1IBqQNSAakDUgGpA1IBqQNS
AakDUgGpA1IBqQNSAakDUgGpA1IBqQMiATIDUgGpEAADIAEuAykBPwMpAT8DKQE/AykBPwMpAT8DEQEX AakDUgGpA1IBqQNSAakDUgGpA1IBqQMiATIDUgGpEAADIAEuAykBPwMpAT8DKQE/AykBPwMpAT8DEQEX
GAADLgFIA4AB/wHYAtcB/wH3AvYB/wH3AvYB/wHYAtcB/wOAAf8DLgFIZAADUAGjA1IBqQNSAakDUgGp GAADLgFIA4AB/wHYAtcB/wH3AvYB/wH3AvYB/wHYAtcB/wOAAf8DLgFIZAADUAGjA1IBqQNSAakDUgGp
A1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1ABo0gAAy4BSANiAfYDSwH/A0sB/wNi A1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1ABo0gAAy4BSANiAfYDNQH/AzUB/wNi
AfYDLgFIJAABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/4EAAv8BgAEBAv8B/AEH AfYDLgFIJAABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/4EAAv8BgAEBAv8B/AEH
AgABvwH9AeABBwHwAQMCAAGgAR0B4AEHAeABAQEQAQEBoQH9AeABBwHgAQEBHwH/Ab8B/QHgAQcB4AEB AgABvwH9AeABBwHwAQMCAAGgAR0B4AEHAeABAQEQAQEBoQH9AeABBwHgAQEBHwH/Ab8B/QHgAQcB4AEB
AgABgAEBAeABBwHgAQECAAGPAfEB4AEHAeABAQEfAf8BgAEBAeABBwGAAQEBHwH/AYMBwQHgAQcBAAEB AgABgAEBAeABBwHgAQECAAGPAfEB4AEHAeABAQEfAf8BgAEBAeABBwGAAQEBHwH/AYMBwQHgAQcBAAEB
+1 -1
View File
@@ -24,7 +24,7 @@ namespace PrusaSL1Viewer
Helpers.BmpEncoder.SupportTransparency = true; Helpers.BmpEncoder.SupportTransparency = true;
image.Save(memoryStream, Helpers.BmpEncoder); image.Save(memoryStream, Helpers.BmpEncoder);
//memoryStream.Seek(0, SeekOrigin.Begin); memoryStream.Seek(0, SeekOrigin.Begin);
return new System.Drawing.Bitmap(memoryStream); return new System.Drawing.Bitmap(memoryStream);
} }
Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 383 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

+2 -2
View File
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.4.2.2")] [assembly: AssemblyVersion("0.4.3.0")]
[assembly: AssemblyFileVersion("0.4.2.2")] [assembly: AssemblyFileVersion("0.4.3.0")]
+50
View File
@@ -60,6 +60,46 @@ namespace PrusaSL1Viewer.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap arrow_down {
get {
object obj = ResourceManager.GetObject("arrow-down", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap arrow_down_16x16 {
get {
object obj = ResourceManager.GetObject("arrow-down-16x16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap arrow_up {
get {
object obj = ResourceManager.GetObject("arrow-up", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap arrow_up_16x16 {
get {
object obj = ResourceManager.GetObject("arrow-up-16x16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@@ -370,6 +410,16 @@ namespace PrusaSL1Viewer.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap plus {
get {
object obj = ResourceManager.GetObject("plus", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
+25 -10
View File
@@ -121,12 +121,12 @@
<data name="Error-128x128" type="System.Resources.ResXFileRef, System.Windows.Forms"> <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> <value>..\Images\Error-128x128.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </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"> <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> <value>..\Images\layers-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </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"> <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> <value>..\Images\eye-24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -154,6 +154,9 @@
<data name="refresh-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="refresh-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\refresh-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Images\refresh-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="arrow-up-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\arrow-up-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Save-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Save-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Save-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Images\Save-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -163,6 +166,9 @@
<data name="PrusaSL1Viewer" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="PrusaSL1Viewer" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\PrusaSL1Viewer.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\PrusaSL1Viewer.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="arrow-up" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\arrow-up.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Ok-24x24" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Ok-24x24" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Ok-24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Images\Ok-24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -181,6 +187,9 @@
<data name="Open-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Open-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Open-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Images\Open-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </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>
<data name="File-Close-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="File-Close-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\File-Close-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Images\File-Close-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -193,8 +202,8 @@
<data name="mutation_tophat" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="mutation_tophat" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_tophat.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Images\gui\mutation_tophat.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="CNCMachine-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\CNCMachine-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Images\plus.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Convert-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Convert-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Convert-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Images\Convert-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -214,20 +223,23 @@
<data name="SaveAs-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms"> <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> <value>..\Images\SaveAs-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="CNCMachine-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\CNCMachine-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"> <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> <value>..\Images\delete-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </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>
<data name="mutation_opening" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="mutation_opening" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_opening.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Images\gui\mutation_opening.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="mutation_blackhat" type="System.Resources.ResXFileRef, System.Windows.Forms"> <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> <value>..\Images\gui\mutation_blackhat.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Cancel-24x24" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="mutation_closing" 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> <value>..\Images\gui\mutation_closing.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow-down" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\arrow-down.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Donate-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms"> <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> <value>..\Images\Donate-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -235,4 +247,7 @@
<data name="island-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms"> <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> <value>..\Images\island-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="arrow-down-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\arrow-down-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root> </root>
+5
View File
@@ -291,6 +291,11 @@
<None Include="Images\pointer-16x16.png" /> <None Include="Images\pointer-16x16.png" />
<None Include="Images\delete-16x16.png" /> <None Include="Images\delete-16x16.png" />
<None Include="Images\island-16x16.png" /> <None Include="Images\island-16x16.png" />
<None Include="Images\plus.ico" />
<None Include="Images\arrow-up.ico" />
<None Include="Images\arrow-down.ico" />
<None Include="Images\arrow-up-16x16.png" />
<None Include="Images\arrow-down-16x16.png" />
<Content Include="License-LGPL.txt" /> <Content Include="License-LGPL.txt" />
<Content Include="PrusaSL1Viewer.ico" /> <Content Include="PrusaSL1Viewer.ico" />
</ItemGroup> </ItemGroup>
Binary file not shown.