pre v0.4.3
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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()))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 252 KiB After Width: | Height: | Size: 383 KiB |
|
After Width: | Height: | Size: 118 KiB |
|
After Width: | Height: | Size: 190 B |
|
After Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 193 B |
|
After Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 159 KiB |
@@ -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")]
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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>
|
||||||
|
|||||||