Arrange files, add dependencies

This commit is contained in:
Tiago Conceição
2020-09-25 01:46:37 +01:00
parent 9051d61f9a
commit 9b2ed7a343
55 changed files with 2056 additions and 733 deletions
-698
View File
@@ -1,698 +0,0 @@
using System;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Runtime.InteropServices;
using Emgu.CV;
using Emgu.CV.Cuda;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
using Emgu.CV.Util;
using Emgu.Util;
namespace UVtools.GUI.Extensions
{
/// <summary>
/// Provide extension method to convert IInputArray to and from Bitmap
/// </summary>
public static class BitmapExtension
{
#region Color Palette
/// <summary>
/// The ColorPalette of Grayscale for Bitmap Format8bppIndexed
/// </summary>
public static readonly ColorPalette GrayscalePalette = GenerateGrayscalePalette();
private static ColorPalette GenerateGrayscalePalette()
{
using (Bitmap image = new Bitmap(1, 1, PixelFormat.Format8bppIndexed))
{
ColorPalette palette = image.Palette;
for (int i = 0; i < 256; i++)
{
palette.Entries[i] = Color.FromArgb(i, i, i);
}
return palette;
}
}
/// <summary>
/// Convert the color palette to four lookup tables
/// </summary>
/// <param name="palette">The color palette to transform</param>
/// <param name="bTable">Lookup table for the B channel</param>
/// <param name="gTable">Lookup table for the G channel</param>
/// <param name="rTable">Lookup table for the R channel</param>
/// <param name="aTable">Lookup table for the A channel</param>
public static void ColorPaletteToLookupTable(ColorPalette palette, out Matrix<Byte> bTable,
out Matrix<Byte> gTable, out Matrix<Byte> rTable, out Matrix<Byte> aTable)
{
bTable = new Matrix<byte>(256, 1);
gTable = new Matrix<byte>(256, 1);
rTable = new Matrix<byte>(256, 1);
aTable = new Matrix<byte>(256, 1);
byte[,] bData = bTable.Data;
byte[,] gData = gTable.Data;
byte[,] rData = rTable.Data;
byte[,] aData = aTable.Data;
Color[] colors = palette.Entries;
for (int i = 0; i < colors.Length; i++)
{
Color c = colors[i];
bData[i, 0] = c.B;
gData[i, 0] = c.G;
rData[i, 0] = c.R;
aData[i, 0] = c.A;
}
}
#endregion
/// <summary>
/// Convert raw data to bitmap
/// </summary>
/// <param name="scan0">The pointer to the raw data</param>
/// <param name="step">The step</param>
/// <param name="size">The size of the image</param>
/// <param name="srcColorType">The source image color type</param>
/// <param name="numberOfChannels">The number of channels</param>
/// <param name="srcDepthType">The source image depth type</param>
/// <param name="tryDataSharing">Try to create Bitmap that shares the data with the image</param>
/// <returns>The Bitmap</returns>
public static Bitmap RawDataToBitmap(IntPtr scan0, int step, Size size, Type srcColorType, int numberOfChannels,
Type srcDepthType, bool tryDataSharing = false)
{
if (tryDataSharing)
{
if (srcColorType == typeof(Gray) && srcDepthType == typeof(Byte))
{
//Grayscale of Bytes
Bitmap bmpGray = new Bitmap(
size.Width,
size.Height,
step,
PixelFormat.Format8bppIndexed,
scan0
) {Palette = GrayscalePalette};
return bmpGray;
}
// Mono in Linux doesn't support scan0 constructor with Format24bppRgb, use ToBitmap instead
// See https://bugzilla.novell.com/show_bug.cgi?id=363431
// TODO: check mono buzilla Bug 363431 to see when it will be fixed
if (
Platform.OperationSystem == Platform.OS.Windows &&
Platform.ClrType == Platform.Clr.DotNet &&
srcColorType == typeof(Bgr) && srcDepthType == typeof(Byte)
&& (step & 3) == 0)
{
//Bgr byte
return new Bitmap(
size.Width,
size.Height,
step,
PixelFormat.Format24bppRgb,
scan0);
}
if (srcColorType == typeof(Bgra) && srcDepthType == typeof(Byte))
{
//Bgra byte
return new Bitmap(
size.Width,
size.Height,
step,
PixelFormat.Format32bppArgb,
scan0);
}
//PixelFormat.Format16bppGrayScale is not supported in .NET
//else if (typeof(TColor) == typeof(Gray) && typeof(TDepth) == typeof(UInt16))
//{
// return new Bitmap(
// size.width,
// size.height,
// step,
// PixelFormat.Format16bppGrayScale;
// scan0);
//}
}
PixelFormat format; //= System.Drawing.Imaging.PixelFormat.Undefined;
if (srcColorType == typeof(Gray)) // if this is a gray scale image
{
format = PixelFormat.Format8bppIndexed;
}
else if (srcColorType == typeof(Bgra)) //if this is Bgra image
{
format = PixelFormat.Format32bppArgb;
}
else if (srcColorType == typeof(Bgr)) //if this is a Bgr Byte image
{
format = PixelFormat.Format24bppRgb;
}
else
{
using (Mat m = new Mat(size.Height, size.Width, CvInvoke.GetDepthType(srcDepthType), numberOfChannels,
scan0, step))
using (Mat m2 = new Mat())
{
CvInvoke.CvtColor(m, m2, srcColorType, typeof(Bgr));
return RawDataToBitmap(m2.DataPointer, m2.Step, m2.Size, typeof(Bgr), 3, srcDepthType);
}
}
Bitmap bmp = new Bitmap(size.Width, size.Height, format);
BitmapData data = bmp.LockBits(
new Rectangle(Point.Empty, size),
ImageLockMode.WriteOnly,
format);
using (Mat bmpMat = new Mat(size.Height, size.Width, DepthType.Cv8U, numberOfChannels, data.Scan0,
data.Stride))
using (Mat dataMat = new Mat(size.Height, size.Width, CvInvoke.GetDepthType(srcDepthType), numberOfChannels,
scan0, step))
{
if (srcDepthType == typeof(Byte))
dataMat.CopyTo(bmpMat);
else
{
double scale = 1.0, shift = 0.0;
RangeF range = dataMat.GetValueRange();
if (range.Max > 255.0 || range.Min < 0)
{
scale = range.Max.Equals(range.Min) ? 0.0 : 255.0 / (range.Max - range.Min);
shift = scale.Equals(0) ? range.Min : -range.Min * scale;
}
CvInvoke.ConvertScaleAbs(dataMat, bmpMat, scale, shift);
}
}
bmp.UnlockBits(data);
if (format == PixelFormat.Format8bppIndexed)
bmp.Palette = GrayscalePalette;
return bmp;
}
/// <summary>
/// Convert the mat into Bitmap, the pixel values are copied over to the Bitmap
/// </summary>
public static Bitmap ToBitmap(this Mat mat)
{
if (mat.Dims > 3)
return null;
int channels = mat.NumberOfChannels;
Size s = mat.Size;
Type colorType;
switch (channels)
{
case 1:
colorType = typeof(Gray);
if (s.Equals(Size.Empty))
return null;
if ((s.Width | 3) != 0) //handle the special case where width is not a multiple of 4
{
Bitmap bmp = new Bitmap(s.Width, s.Height, PixelFormat.Format8bppIndexed)
{
Palette = GrayscalePalette
};
BitmapData bitmapData = bmp.LockBits(new Rectangle(Point.Empty, s), ImageLockMode.WriteOnly,
PixelFormat.Format8bppIndexed);
using (Mat m = new Mat(s.Height, s.Width, DepthType.Cv8U, 1, bitmapData.Scan0,
bitmapData.Stride))
{
mat.CopyTo(m);
}
bmp.UnlockBits(bitmapData);
return bmp;
}
break;
case 3:
colorType = typeof(Bgr);
break;
case 4:
colorType = typeof(Bgra);
break;
default:
throw new Exception("Unknown color type");
}
return RawDataToBitmap(mat.DataPointer, mat.Step, s, colorType, mat.NumberOfChannels,
CvInvoke.GetDepthType(mat.Depth), true);
}
/// <summary>
/// Convert the umat into Bitmap, the pixel values are copied over to the Bitmap
/// </summary>
public static Bitmap ToBitmap(this UMat umat)
{
using (Mat tmp = umat.GetMat(AccessType.Read))
{
return tmp.ToBitmap();
}
}
/// <summary>
/// Convert the gpuMat into Bitmap, the pixel values are copied over to the Bitmap
/// </summary>
public static Bitmap ToBitmap(this GpuMat gpuMat)
{
using (Mat tmp = new Mat())
{
gpuMat.Download(tmp);
return tmp.ToBitmap();
}
}
/// <summary>
/// Create an Image &lt; TColor, TDepth &gt; from Bitmap
/// </summary>
public static Image<TColor, TDepth> ToImage<TColor, TDepth>(this Bitmap bitmap) where
TColor : struct, IColor
where TDepth : new()
{
Size size = bitmap.Size;
Image<TColor, TDepth> image = new Image<TColor, TDepth>(size);
switch (bitmap.PixelFormat)
{
case PixelFormat.Format32bppRgb:
if (typeof(TColor) == typeof(Bgr) && typeof(TDepth) == typeof(Byte))
{
BitmapData data = bitmap.LockBits(
new Rectangle(Point.Empty, size),
ImageLockMode.ReadOnly,
bitmap.PixelFormat);
using (Image<Bgra, Byte> mat =
new Image<Bgra, Byte>(size.Width, size.Height, data.Stride, data.Scan0))
{
CvInvoke.MixChannels(mat, image, new[] {0, 0, 1, 1, 2, 2});
}
bitmap.UnlockBits(data);
}
else
{
using (Image<Bgr, Byte> tmp = bitmap.ToImage<Bgr, byte>())
image.ConvertFrom(tmp);
}
break;
case PixelFormat.Format32bppArgb:
if (typeof(TColor) == typeof(Bgra) && typeof(TDepth) == typeof(Byte))
image.CopyFromBitmap(bitmap);
else
{
BitmapData data = bitmap.LockBits(
new Rectangle(Point.Empty, size),
ImageLockMode.ReadOnly,
bitmap.PixelFormat);
using (Image<Bgra, Byte> tmp =
new Image<Bgra, byte>(size.Width, size.Height, data.Stride, data.Scan0))
image.ConvertFrom(tmp);
bitmap.UnlockBits(data);
}
break;
case PixelFormat.Format8bppIndexed:
if (typeof(TColor) == typeof(Bgra) && typeof(TDepth) == typeof(Byte))
{
Matrix<Byte> bTable, gTable, rTable, aTable;
ColorPaletteToLookupTable(bitmap.Palette, out bTable, out gTable, out rTable, out aTable);
BitmapData data = bitmap.LockBits(
new Rectangle(Point.Empty, size),
ImageLockMode.ReadOnly,
bitmap.PixelFormat);
using (Image<Gray, Byte> indexValue =
new Image<Gray, byte>(size.Width, size.Height, data.Stride, data.Scan0))
{
using (Mat b = new Mat())
using (Mat g = new Mat())
using (Mat r = new Mat())
using (Mat a = new Mat())
{
CvInvoke.LUT(indexValue, bTable, b);
CvInvoke.LUT(indexValue, gTable, g);
CvInvoke.LUT(indexValue, rTable, r);
CvInvoke.LUT(indexValue, aTable, a);
using (VectorOfMat mv = new VectorOfMat(b, g, r, a))
{
CvInvoke.Merge(mv, image);
}
}
}
bitmap.UnlockBits(data);
bTable.Dispose();
gTable.Dispose();
rTable.Dispose();
aTable.Dispose();
}
else
{
using (Image<Bgra, Byte> tmp = bitmap.ToImage<Bgra, Byte>())
image.ConvertFrom(tmp);
}
break;
case PixelFormat.Format24bppRgb:
if (typeof(TColor) == typeof(Bgr) && typeof(TDepth) == typeof(Byte))
image.CopyFromBitmap(bitmap);
else
{
BitmapData data = bitmap.LockBits(
new Rectangle(Point.Empty, size),
ImageLockMode.ReadOnly,
bitmap.PixelFormat);
using (Image<Bgr, Byte> tmp =
new Image<Bgr, byte>(size.Width, size.Height, data.Stride, data.Scan0))
image.ConvertFrom(tmp);
bitmap.UnlockBits(data);
}
break;
case PixelFormat.Format1bppIndexed:
if (typeof(TColor) == typeof(Gray) && typeof(TDepth) == typeof(Byte))
{
int rows = size.Height;
int cols = size.Width;
BitmapData data = bitmap.LockBits(
new Rectangle(Point.Empty, size),
ImageLockMode.ReadOnly,
bitmap.PixelFormat);
int fullByteCount = cols >> 3;
int partialBitCount = cols & 7;
int mask = 1 << 7;
Int64 srcAddress = data.Scan0.ToInt64();
Byte[,,] imagedata = image.Data as Byte[,,];
Byte[] row = new byte[fullByteCount + (partialBitCount == 0 ? 0 : 1)];
int v = 0;
for (int i = 0; i < rows; i++, srcAddress += data.Stride)
{
Marshal.Copy((IntPtr) srcAddress, row, 0, row.Length);
for (int j = 0; j < cols; j++, v <<= 1)
{
if ((j & 7) == 0)
{
//fetch the next byte
v = row[j >> 3];
}
imagedata[i, j, 0] = (v & mask) == 0 ? (Byte) 0 : (Byte) 255;
}
}
}
else
{
using (Image<Gray, Byte> tmp = bitmap.ToImage<Gray, Byte>())
image.ConvertFrom(tmp);
}
break;
default:
#region Handle other image type
// Bitmap bgraImage = new Bitmap(value.Width, value.Height, PixelFormat.Format32bppArgb);
// using (Graphics g = Graphics.FromImage(bgraImage))
// {
// g.DrawImageUnscaled(value, 0, 0, value.Width, value.Height);
// }
// Bitmap = bgraImage;
using (Image<Bgra, Byte> tmp1 = new Image<Bgra, Byte>(size))
{
Byte[,,] data = tmp1.Data;
for (int i = 0; i < size.Width; i++)
for (int j = 0; j < size.Height; j++)
{
Color color = bitmap.GetPixel(i, j);
data[j, i, 0] = color.B;
data[j, i, 1] = color.G;
data[j, i, 2] = color.R;
data[j, i, 3] = color.A;
}
image.ConvertFrom(tmp1);
}
#endregion
break;
}
return image;
}
/// <summary>
/// Utility function for converting Bitmap to Image
/// </summary>
/// <param name="bmp">the bitmap to copy data from</param>
/// <param name="image">The image to copy data to</param>
private static void CopyFromBitmap<TColor, TDepth>(this Image<TColor, TDepth> image, Bitmap bmp) where
TColor : struct, IColor
where TDepth : new()
{
BitmapData data = bmp.LockBits(
new Rectangle(Point.Empty, bmp.Size),
ImageLockMode.ReadOnly,
bmp.PixelFormat);
using (Matrix<TDepth> mat =
new Matrix<TDepth>(bmp.Height, bmp.Width, image.NumberOfChannels, data.Scan0, data.Stride))
CvInvoke.cvCopy(mat.Ptr, image.Ptr, IntPtr.Zero);
bmp.UnlockBits(data);
}
/// <summary>
/// Provide a more efficient way to convert Image&lt;Gray, Byte&gt;, Image&lt;Bgr, Byte&gt; and Image&lt;Bgra, Byte&gt; into Bitmap
/// such that the image data is <b>shared</b> with Bitmap.
/// If you change the pixel value on the Bitmap, you change the pixel values on the Image object as well!
/// For other types of image this property has the same effect as ToBitmap()
/// <b>Take extra caution not to use the Bitmap after the Image object is disposed</b>
/// </summary>
/// <typeparam name="TColor">The color of the image</typeparam>
/// <typeparam name="TDepth">The depth of the image</typeparam>
/// <param name="image">The image to create Bitmap from</param>
/// <returns>A bitmap representation of the image. In the cases of Image&lt;Gray, Byte&gt;, Image&lt;Bgr, Byte&gt; and Image&lt;Bgra, Byte&gt;, the image data is shared between the Bitmap and the Image object.</returns>
public static Bitmap AsBitmap<TColor, TDepth>(this Image<TColor, TDepth> image) where
TColor : struct, IColor
where TDepth : new()
{
IntPtr scan0;
int step;
Size size;
CvInvoke.cvGetRawData(image.Ptr, out scan0, out step, out size);
return RawDataToBitmap(scan0, step, size, typeof(TColor), image.NumberOfChannels, typeof(TDepth), true);
}
/// <summary>
/// Convert this image into Bitmap, the pixel values are copied over to the Bitmap
/// </summary>
/// <remarks> For better performance on Image&lt;Gray, Byte&gt; and Image&lt;Bgr, Byte&gt;, consider using the Bitmap property </remarks>
/// <returns> This image in Bitmap format, the pixel data are copied over to the Bitmap</returns>
public static Bitmap ToBitmap<TColor, TDepth>(this Image<TColor, TDepth> image) where
TColor : struct, IColor
where TDepth : new()
{
Type typeOfColor = typeof(TColor);
Type typeofDepth = typeof(TDepth);
PixelFormat format = PixelFormat.Undefined;
if (typeOfColor == typeof(Gray)) // if this is a gray scale image
{
format = PixelFormat.Format8bppIndexed;
}
else if (typeOfColor == typeof(Bgra)) //if this is Bgra image
{
format = PixelFormat.Format32bppArgb;
}
else if (typeOfColor == typeof(Bgr)) //if this is a Bgr Byte image
{
format = PixelFormat.Format24bppRgb;
}
else
{
using (Image<Bgr, Byte> temp = image.Convert<Bgr, Byte>())
return ToBitmap(temp);
}
if (typeof(TDepth) == typeof(Byte))
{
Size size = image.Size;
Bitmap bmp = new Bitmap(size.Width, size.Height, format);
BitmapData data = bmp.LockBits(
new Rectangle(Point.Empty, size),
ImageLockMode.WriteOnly,
format);
//using (Matrix<Byte> m = new Matrix<byte>(size.Height, size.Width, data.Scan0, data.Stride))
using (Mat mat = new Mat(size.Height, size.Width, DepthType.Cv8U, image.NumberOfChannels,
data.Scan0, data.Stride))
{
image.Mat.CopyTo(mat);
}
bmp.UnlockBits(data);
if (format == PixelFormat.Format8bppIndexed)
bmp.Palette = GrayscalePalette;
return bmp;
}
using (Image<TColor, Byte> temp = image.Convert<TColor, Byte>())
return temp.ToBitmap();
}
/// <summary> Create a Bitmap image of certain size</summary>
/// <param name="image">The image to be converted to Bitmap</param>
/// <param name="width">The width of the bitmap</param>
/// <param name="height"> The height of the bitmap</param>
/// <returns> This image in Bitmap format of the specific size</returns>
public static Bitmap ToBitmap<TColor, TDepth>(this Image<TColor, TDepth> image, int width, int height) where
TColor : struct, IColor
where TDepth : new()
{
using (Image<TColor, TDepth> scaledImage = image.Resize(width, height, Inter.Linear))
return scaledImage.ToBitmap();
}
/// <summary>
/// Convert the CudaImage to its equivalent Bitmap representation
/// </summary>
public static Bitmap ToBitmap<TColor, TDepth>(this CudaImage<TColor, TDepth> cudaImage) where
TColor : struct, IColor
where TDepth : new()
{
if (typeof(TColor) == typeof(Bgr) && typeof(TDepth) == typeof(Byte))
{
Size s = cudaImage.Size;
Bitmap result = new Bitmap(s.Width, s.Height, PixelFormat.Format24bppRgb);
BitmapData data = result.LockBits(new Rectangle(Point.Empty, result.Size),
ImageLockMode.WriteOnly, result.PixelFormat);
using (Image<TColor, TDepth> tmp = new Image<TColor, TDepth>(s.Width, s.Height, data.Stride, data.Scan0)
)
{
cudaImage.Download(tmp);
}
result.UnlockBits(data);
return result;
}
using (Image<TColor, TDepth> tmp = cudaImage.ToImage())
{
return tmp.ToBitmap();
}
}
}
/// <summary>
/// Class that can be used to read file into Mat
/// </summary>
public class BitmapFileReaderMat : IFileReaderMat
{
/// <summary>
/// Read the file into a Mat
/// </summary>
/// <param name="fileName">The name of the image file</param>
/// <param name="mat">The Mat to read into</param>
/// <param name="loadType">Image load type.</param>
/// <returns>True if the file can be read into the Mat</returns>
public bool ReadFile(String fileName, Mat mat, ImreadModes loadType)
{
try
{
using (Bitmap bmp = new Bitmap(fileName))
using (Image<Bgr, Byte> image = bmp.ToImage<Bgr, Byte>())
image.Mat.CopyTo(mat);
return true;
}
catch (Exception e)
{
Debug.WriteLine(e);
//throw;
return false;
}
}
}
/// <summary>
/// Class that can be used to write the Mat to a file
/// </summary>
public class BitmapFileWriterMat : IFileWriterMat
{
/// <summary>
/// Write the Mat into the file
/// </summary>
/// <param name="mat">The Mat to write</param>
/// <param name="fileName">The name of the file to be written into</param>
/// <returns>True if the file has been written into Mat</returns>
public bool WriteFile(Mat mat, String fileName)
{
try
{
//Try to save the image using .NET's Bitmap class
String extension = Path.GetExtension(fileName);
if (!String.IsNullOrEmpty(extension))
using (Bitmap bmp = mat.ToBitmap())
{
switch (extension.ToLower())
{
case ".jpg":
case ".jpeg":
bmp.Save(fileName, ImageFormat.Jpeg);
break;
case ".bmp":
bmp.Save(fileName, ImageFormat.Bmp);
break;
case ".png":
bmp.Save(fileName, ImageFormat.Png);
break;
case ".tiff":
case ".tif":
bmp.Save(fileName, ImageFormat.Tiff);
break;
case ".gif":
bmp.Save(fileName, ImageFormat.Gif);
break;
default:
throw new NotImplementedException(String.Format("Saving to {0} format is not supported", extension));
}
}
return true;
}
catch (Exception e)
{
Debug.WriteLine(e);
//throw;
return false;
}
}
}
}
+6 -1
View File
@@ -95,6 +95,9 @@
<Reference Include="Cyotek.Windows.Forms.ImageBox, Version=1.2.0.0, Culture=neutral, PublicKeyToken=58daa28b0b2de221, processorArchitecture=MSIL">
<HintPath>..\packages\CyotekImageBox.1.3.0-Alpha1\lib\net20\Cyotek.Windows.Forms.ImageBox.dll</HintPath>
</Reference>
<Reference Include="Emgu.CV.Bitmap, Version=4.4.0.4061, Culture=neutral, PublicKeyToken=7281126722ab4438, processorArchitecture=MSIL">
<HintPath>..\packages\Emgu.CV.Bitmap.4.4.0.4061\lib\netstandard2.0\Emgu.CV.Bitmap.dll</HintPath>
</Reference>
<Reference Include="Emgu.CV.Platform.NetStandard, Version=4.4.0.4061, Culture=neutral, PublicKeyToken=7281126722ab4438, processorArchitecture=MSIL">
<HintPath>..\packages\Emgu.CV.4.4.0.4061\lib\netstandard2.0\Emgu.CV.Platform.NetStandard.dll</HintPath>
</Reference>
@@ -108,6 +111,9 @@
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Core" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing.Common, Version=4.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Drawing.Common.4.7.0\lib\net461\System.Drawing.Common.dll</HintPath>
</Reference>
<Reference Include="System.Drawing.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Drawing.Primitives.4.3.0\lib\net45\System.Drawing.Primitives.dll</HintPath>
<Private>True</Private>
@@ -288,7 +294,6 @@
<Compile Include="Controls\TransparentLabel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Extensions\BitmapExtension.cs" />
<Compile Include="Extensions\ControlExtensions.cs" />
<Compile Include="Extensions\CursorExtensions.cs" />
<Compile Include="Extensions\GUIExtensions.cs" />
+2
View File
@@ -2,9 +2,11 @@
<packages>
<package id="CyotekImageBox" version="1.3.0-Alpha1" targetFramework="net48" />
<package id="Emgu.CV" version="4.4.0.4061" targetFramework="net48" />
<package id="Emgu.CV.Bitmap" version="4.4.0.4061" targetFramework="net48" />
<package id="Emgu.CV.runtime.windows" version="4.4.0.4061" targetFramework="net48" />
<package id="ObjectListView.Official" version="2.9.2-alpha2" targetFramework="net48" />
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
<package id="System.Drawing.Common" version="4.7.0" targetFramework="net48" />
<package id="System.Drawing.Primitives" version="4.3.0" targetFramework="net48" />
<package id="System.IO" version="4.3.0" targetFramework="net48" />
<package id="System.Memory" version="4.5.4" targetFramework="net48" />
+48 -1
View File
@@ -9,6 +9,7 @@
using System;
using System.Diagnostics;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Threading;
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
@@ -55,13 +56,59 @@ namespace UVtools.WPF
{
try
{
var info = new ProcessStartInfo("UVtools.exe", $"\"{filePath}\"");
var info = new ProcessStartInfo("UVtools.exe", $"\"{filePath}\"")
{
UseShellExecute = true
};
Process.Start(info)?.Dispose();
}
catch (Exception e)
{
Debug.WriteLine(e);
}
}
public static void OpenBrowser(string url)
{
try
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
Process.Start(new ProcessStartInfo(url) { UseShellExecute = true });
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
Process.Start("xdg-open", url);
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
Process.Start("open", url);
}
else
{
// throw
}
}
catch (Exception e)
{
Debug.WriteLine(e);
}
}
public static void StartProcess(string name)
{
try
{
using (Process.Start(new ProcessStartInfo(name)
{
UseShellExecute = true
})) { }
}
catch (Exception e)
{
Debug.WriteLine(e);
}
}
+80
View File
@@ -1,7 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using UVtools.Core.FileFormats;
namespace UVtools.WPF
{
@@ -34,5 +36,83 @@ namespace UVtools.WPF
/// Minimum Zoom level to which autozoom can be locked.
/// </summary>
public const byte MinLockedZoomLevel = 200;
#region Assembly Attribute Accessors
public static string AssemblyTitle
{
get
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
if (attributes.Length > 0)
{
AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
if (titleAttribute.Title != "")
{
return titleAttribute.Title;
}
}
return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
}
}
public static string AssemblyVersion => Assembly.GetExecutingAssembly().GetName().Version.ToString();
public static string AssemblyDescription
{
get
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
if (attributes.Length == 0)
{
return "";
}
string description = ((AssemblyDescriptionAttribute)attributes[0]).Description + $"{Environment.NewLine}{Environment.NewLine}Available File Formats:";
return FileFormat.AvaliableFormats.SelectMany(fileFormat => fileFormat.FileExtensions).Aggregate(description, (current, fileExtension) => current + $"{Environment.NewLine}- {fileExtension.Description} (.{fileExtension.Extension})");
}
}
public static string AssemblyProduct
{
get
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
if (attributes.Length == 0)
{
return "";
}
return ((AssemblyProductAttribute)attributes[0]).Product;
}
}
public static string AssemblyCopyright
{
get
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
if (attributes.Length == 0)
{
return "";
}
return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
}
}
public static string AssemblyCompany
{
get
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
if (attributes.Length == 0)
{
return "";
}
return ((AssemblyCompanyAttribute)attributes[0]).Company;
}
}
#endregion
}
}

Before

Width:  |  Height:  |  Size: 116 B

After

Width:  |  Height:  |  Size: 116 B

@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:22:18 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,121x0,121x68,0x68
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 68
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 121
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 165
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_S\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_1\nLiftHeight_6\nLiftingSpeed_60\nRetractSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:22:23 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,98.6x0,98.6x55.4,0x55.4
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 55.4
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 854
display_pixels_y = 480
display_width = 98.6
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 150
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_ZERO\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_1\nLiftHeight_6\nLiftingSpeed_60\nRetractSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:22:12 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 68.04
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 120.96
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 155
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_2\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-07-13 at 23:26:09 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,130.56x0,130.56x82.62,0x82.62
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 82.62
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1620
display_width = 130.56
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 160
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_LD-002H\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_2\nBottomLiftHeight_5\nLiftHeight_7\nBottomLiftSpeed_50\nLiftSpeed_50\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:22:31 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 68.04
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 120.96
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 160
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_LD-002R\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_2\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:22:36 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 68.04
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 120.96
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 155
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X1\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_2\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-30 at 23:52:31 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,192x0,192x120,0x120
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 120
display_mirror_x = 1
display_mirror_y = 0
display_orientation = landscape
display_pixels_x = 3840
display_pixels_y = 2160
display_width = 192
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 250
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X10-4KMONO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_10\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_40\nLiftSpeed_40\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:22:43 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,216.57x0,216.57x135.36,0x135.36
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 135.36
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1600
display_width = 216.57
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 250
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X10\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_12\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:39:25 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,216.576x0,216.576x135.36,0x135.36
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 135.36
display_mirror_x = 1
display_mirror_y = 0
display_orientation = landscape
display_pixels_x = 3840
display_pixels_y = 2160
display_width = 216.576
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 400
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X133-4KMONO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_10\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_40\nLiftSpeed_40\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:39:31 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,345.6x0,345.6x194.4,0x194.4
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 194.4
display_mirror_x = 1
display_mirror_y = 0
display_orientation = landscape
display_pixels_x = 3840
display_pixels_y = 2160
display_width = 345.6
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 400
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X156-4KCOLOR\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_40\nLiftSpeed_40\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-07-13 at 23:29:07 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,130.56x0,130.56x82.62,0x82.62
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 82.62
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1620
display_width = 130.56
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 160
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_MARS2_PRO\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_90\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:32:02 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,192x0,192x120,0x120
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 120
display_mirror_x = 0
display_mirror_y = 1
display_orientation = landscape
display_pixels_x = 2560
display_pixels_y = 1600
display_width = 192
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 200
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_SATURN\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_7\nBottomLiftSpeed_70\nLiftSpeed_70\nRetractSpeed_70\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:31:58 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 68.04
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 120.96
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 150
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_MARS\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_90\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-09-05 at 19:03:56 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,192x0,192x120,0x120
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 120
display_mirror_x = 0
display_mirror_y = 1
display_orientation = landscape
display_pixels_x = 2560
display_pixels_y = 1600
display_width = 192
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 200
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_KELANT\nPRINTER_MODEL_S400\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_15\nBottomLiftSpeed_30\nLiftSpeed_30\nRetractSpeed_300\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-09-10 at 15:48:09 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,98.64x0,98.64x55.44,0x55.44
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 55.44
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 854
display_pixels_y = 480
display_width = 98.64
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 140
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_LONGER\nPRINTER_MODEL_ORANGE10\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_1\nBottomLightOffDelay_1\nBottomLiftHeight_4\nLiftHeight_2\nBottomLiftSpeed_90\nLiftSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-09-10 at 15:36:45 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 68.04
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 120.96
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 170
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_LONGER\nPRINTER_MODEL_ORANGE30\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_1\nBottomLightOffDelay_1\nBottomLiftHeight_4\nLiftHeight_2\nBottomLiftSpeed_90\nLiftSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-09-04 at 20:31:20 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,116x0,116x65.02,0x65.02
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 65.02
display_mirror_x = 0
display_mirror_y = 0
display_orientation = portrait
display_pixels_x = 2549
display_pixels_y = 1566
display_width = 116
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 130
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_NOVA3D\nPRINTER_MODEL_BENE4_MONO\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nXppm_19.608\nYppm_19.608\nWaitBeforeExpoMs_3000\nLiftHeight_4\nLiftSpeed_120\nRetractSpeed_120\nLiftWhenFinished_80\nBlankingLayerTime_0\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nNOVAMAKER_GRAY2RGB_ENCODE ; Required for Bene4 Mono as output images are in RGB\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-09-04 at 22:08:49 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,131x0,131x73,0x73
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 73
display_mirror_x = 0
display_mirror_y = 0
display_orientation = portrait
display_pixels_x = 2531
display_pixels_y = 1410
display_width = 131
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 150
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_NOVA3D\nPRINTER_MODEL_ELFIN\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nXppm_19.324\nYppm_19.324\nWaitBeforeExpoMs_2000\nLiftHeight_4\nLiftSpeed_120\nRetractSpeed_120\nLiftWhenFinished_80\nBlankingLayerTime_0\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:32:29 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,345.6x0,345.6x194.4,0x194.4
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 194.4
display_mirror_x = 0
display_mirror_y = 1
display_orientation = landscape
display_pixels_x = 3840
display_pixels_y = 2160
display_width = 345.6
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 400
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM_L\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_9\nBottomLiftSpeed_32\nLiftSpeed_45\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:32:33 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,293.76x0,293.76x165.24,0x165.24
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 165.24
display_mirror_x = 0
display_mirror_y = 1
display_orientation = landscape
display_pixels_x = 3840
display_pixels_y = 2160
display_width = 293.76
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 400
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM_NOIR\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_36\nLiftSpeed_45\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:32:25 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,276.48x0,276.48x155.52,0x155.52
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 155.52
display_mirror_x = 0
display_mirror_y = 1
display_orientation = landscape
display_pixels_x = 3840
display_pixels_y = 2160
display_width = 276.48
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 400
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_36\nLiftSpeed_48\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:41:28 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 68.04
display_mirror_x = 0
display_mirror_y = 0
display_orientation = portrait
display_pixels_x = 3840
display_pixels_y = 2160
display_width = 120.96
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 170
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_4K\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_10\nBottomLightOffDelay_10\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:41:32 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,120.32x0,120.32x67.68,0x67.68
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 67.68
display_mirror_x = 0
display_mirror_y = 0
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 120.32
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 170
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_LITE\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:41:36 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,192x0,192x120,0x120
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 120
display_mirror_x = 0
display_mirror_y = 0
display_orientation = landscape
display_pixels_x = 2560
display_pixels_y = 1600
display_width = 192
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 200
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_4K\n\nSTART_CUSTOM_VALUES\nLayerOffTime_10\nBottomLightOffDelay_10\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:41:24 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,120.32x0,120.32x67.68,0x67.68
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 67.68
display_mirror_x = 0
display_mirror_y = 0
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 120.32
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 200
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-09-23 at 19:41:00 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,134.4x0,134.4x75.6,0x75.6
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 75.6
display_mirror_x = 0
display_mirror_y = 1
display_orientation = landscape
display_pixels_x = 3840
display_pixels_y = 2160
display_width = 134.4
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 130
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_MINI_4K\n\nSTART_CUSTOM_VALUES\nLayerOffTime_10\nBottomLightOffDelay_10\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-20 at 15:15:00 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 68.04
display_mirror_x = 0
display_mirror_y = 0
display_orientation = portrait
display_pixels_x = 1920
display_pixels_y = 1080
display_width = 120.96
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 130
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_MINI\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:41:40 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 68.04
display_mirror_x = 0
display_mirror_y = 0
display_orientation = portrait
display_pixels_x = 1920
display_pixels_y = 1080
display_width = 120.96
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 170
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_6\nBottomLightOffDelay_6\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:41:58 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,291.84x0,291.84x164.16,0x164.16
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 164.16
display_mirror_x = 0
display_mirror_y = 0
display_orientation = landscape
display_pixels_x = 3840
display_pixels_y = 2160
display_width = 291.84
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 400
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_TRANSFORM\n\nSTART_CUSTOM_VALUES\nLayerOffTime_10\nBottomLightOffDelay_10\nBottomLiftHeight_10\nLiftHeight_8\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:32:51 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 68.04
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 120.96
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 150
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_SHADOW5.5\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_80\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_65\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:32:56 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,132.48x0,132.48x74.52,0x74.52
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 74.52
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 132.48
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 150
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_SHADOW6.0PRO\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_80\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_65\nRetractSpeed_65\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-07-13 at 23:30:41 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 68.04
display_mirror_x = 0
display_mirror_y = 1
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 120.96
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 155
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_VOXELAB\nPRINTER_MODEL_POLARIS\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:33:00 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,120.96x0,120.96x68.5,0x68.5
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 68.5
display_mirror_x = 0
display_mirror_y = 1
display_orientation = landscape
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 120.96
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 180
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_WANHAO\nPRINTER_MODEL_D7\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:33:04 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,192x0,192x120,0x120
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 120
display_mirror_x = 0
display_mirror_y = 1
display_orientation = landscape
display_pixels_x = 2560
display_pixels_y = 1600
display_width = 192
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 180
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_WANHAO\nPRINTER_MODEL_D8\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,37 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-20 at 15:23:41 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,132.88x0,132.88x74.67,0x74.67
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 74.67
display_mirror_x = 1
display_mirror_y = 0
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 132.88
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 175
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X1\n\nSTART_CUSTOM_VALUES\nLayerOffTime_5\nLiftHeight_5\nLiftSpeed_100\nRetractSpeed_100\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
slow_tilt_time = 8
thumbnails = 400x400,800x480
@@ -0,0 +1,44 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:37:18 UTC
compatible_printers =
compatible_printers_condition =
default_sla_print_profile =
faded_layers = 10
hollowing_closing_distance = 2
hollowing_enable = 0
hollowing_min_thickness = 3
hollowing_quality = 0.5
inherits = 0.025 UltraDetail
layer_height = 0.025
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
pad_around_object = 0
pad_around_object_everywhere = 0
pad_brim_size = 1.6
pad_enable = 1
pad_max_merge_distance = 50
pad_object_connector_penetration = 0.3
pad_object_connector_stride = 10
pad_object_connector_width = 0.5
pad_object_gap = 1
pad_wall_height = 0
pad_wall_slope = 90
pad_wall_thickness = 1
sla_print_settings_id =
slice_closing_radius = 0.005
support_base_diameter = 3
support_base_height = 1
support_base_safety_distance = 1
support_buildplate_only = 0
support_critical_angle = 45
support_head_front_diameter = 1
support_head_penetration = 0.6
support_head_width = 2
support_max_bridge_length = 10
support_max_bridges_on_pillar = 3
support_max_pillar_link_distance = 10
support_object_elevation = 5
support_pillar_connection_mode = zigzag
support_pillar_diameter = 1.5
support_pillar_widening_factor = 0
support_points_density_relative = 100
support_points_minimal_distance = 1
supports_enable = 1
@@ -0,0 +1,44 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:36:13 UTC
compatible_printers =
compatible_printers_condition =
default_sla_print_profile =
faded_layers = 10
hollowing_closing_distance = 2
hollowing_enable = 0
hollowing_min_thickness = 3
hollowing_quality = 0.5
inherits = 0.025 UltraDetail
layer_height = 0.025
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
pad_around_object = 0
pad_around_object_everywhere = 0
pad_brim_size = 1.6
pad_enable = 1
pad_max_merge_distance = 50
pad_object_connector_penetration = 0.3
pad_object_connector_stride = 10
pad_object_connector_width = 0.5
pad_object_gap = 1
pad_wall_height = 0
pad_wall_slope = 90
pad_wall_thickness = 1
sla_print_settings_id =
slice_closing_radius = 0.005
support_base_diameter = 3
support_base_height = 1
support_base_safety_distance = 1
support_buildplate_only = 0
support_critical_angle = 45
support_head_front_diameter = 0.8
support_head_penetration = 0.4
support_head_width = 2
support_max_bridge_length = 10
support_max_bridges_on_pillar = 3
support_max_pillar_link_distance = 10
support_object_elevation = 5
support_pillar_connection_mode = zigzag
support_pillar_diameter = 1.2
support_pillar_widening_factor = 0
support_points_density_relative = 100
support_points_minimal_distance = 1
supports_enable = 1
@@ -0,0 +1,44 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:34:54 UTC
compatible_printers =
compatible_printers_condition =
default_sla_print_profile =
faded_layers = 10
hollowing_closing_distance = 2
hollowing_enable = 0
hollowing_min_thickness = 3
hollowing_quality = 0.5
inherits = 0.035 Detail
layer_height = 0.035
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
pad_around_object = 0
pad_around_object_everywhere = 0
pad_brim_size = 1.6
pad_enable = 1
pad_max_merge_distance = 50
pad_object_connector_penetration = 0.3
pad_object_connector_stride = 10
pad_object_connector_width = 0.5
pad_object_gap = 1
pad_wall_height = 0
pad_wall_slope = 90
pad_wall_thickness = 1
sla_print_settings_id =
slice_closing_radius = 0.005
support_base_diameter = 3
support_base_height = 1
support_base_safety_distance = 1
support_buildplate_only = 0
support_critical_angle = 45
support_head_front_diameter = 1
support_head_penetration = 0.6
support_head_width = 3
support_max_bridge_length = 10
support_max_bridges_on_pillar = 3
support_max_pillar_link_distance = 10
support_object_elevation = 5
support_pillar_connection_mode = zigzag
support_pillar_diameter = 1.5
support_pillar_widening_factor = 0
support_points_density_relative = 100
support_points_minimal_distance = 1
supports_enable = 1
@@ -0,0 +1,44 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:34:31 UTC
compatible_printers =
compatible_printers_condition =
default_sla_print_profile =
faded_layers = 10
hollowing_closing_distance = 2
hollowing_enable = 0
hollowing_min_thickness = 3
hollowing_quality = 0.5
inherits = 0.035 Detail
layer_height = 0.035
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
pad_around_object = 0
pad_around_object_everywhere = 0
pad_brim_size = 1.6
pad_enable = 1
pad_max_merge_distance = 50
pad_object_connector_penetration = 0.3
pad_object_connector_stride = 10
pad_object_connector_width = 0.5
pad_object_gap = 1
pad_wall_height = 0
pad_wall_slope = 90
pad_wall_thickness = 1
sla_print_settings_id =
slice_closing_radius = 0.005
support_base_diameter = 3
support_base_height = 1
support_base_safety_distance = 1
support_buildplate_only = 0
support_critical_angle = 45
support_head_front_diameter = 0.8
support_head_penetration = 0.4
support_head_width = 3
support_max_bridge_length = 10
support_max_bridges_on_pillar = 3
support_max_pillar_link_distance = 10
support_object_elevation = 5
support_pillar_connection_mode = zigzag
support_pillar_diameter = 1.2
support_pillar_widening_factor = 0
support_points_density_relative = 100
support_points_minimal_distance = 1
supports_enable = 1
@@ -0,0 +1,44 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:24:57 UTC
compatible_printers =
compatible_printers_condition =
default_sla_print_profile =
faded_layers = 10
hollowing_closing_distance = 2
hollowing_enable = 0
hollowing_min_thickness = 3
hollowing_quality = 0.5
inherits = 0.05 Normal
layer_height = 0.05
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
pad_around_object = 0
pad_around_object_everywhere = 0
pad_brim_size = 1.6
pad_enable = 1
pad_max_merge_distance = 50
pad_object_connector_penetration = 0.3
pad_object_connector_stride = 10
pad_object_connector_width = 0.5
pad_object_gap = 1
pad_wall_height = 0
pad_wall_slope = 90
pad_wall_thickness = 1
sla_print_settings_id =
slice_closing_radius = 0.005
support_base_diameter = 3
support_base_height = 1
support_base_safety_distance = 1
support_buildplate_only = 0
support_critical_angle = 45
support_head_front_diameter = 1
support_head_penetration = 0.6
support_head_width = 3
support_max_bridge_length = 10
support_max_bridges_on_pillar = 3
support_max_pillar_link_distance = 10
support_object_elevation = 5
support_pillar_connection_mode = zigzag
support_pillar_diameter = 1.5
support_pillar_widening_factor = 0
support_points_density_relative = 100
support_points_minimal_distance = 1
supports_enable = 1
@@ -0,0 +1,44 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:23:55 UTC
compatible_printers =
compatible_printers_condition =
default_sla_print_profile =
faded_layers = 10
hollowing_closing_distance = 2
hollowing_enable = 0
hollowing_min_thickness = 3
hollowing_quality = 0.5
inherits = 0.05 Normal
layer_height = 0.05
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
pad_around_object = 0
pad_around_object_everywhere = 0
pad_brim_size = 1.6
pad_enable = 1
pad_max_merge_distance = 50
pad_object_connector_penetration = 0.3
pad_object_connector_stride = 10
pad_object_connector_width = 0.5
pad_object_gap = 1
pad_wall_height = 0
pad_wall_slope = 90
pad_wall_thickness = 1
sla_print_settings_id =
slice_closing_radius = 0.005
support_base_diameter = 3
support_base_height = 1
support_base_safety_distance = 1
support_buildplate_only = 0
support_critical_angle = 45
support_head_front_diameter = 0.8
support_head_penetration = 0.4
support_head_width = 3
support_max_bridge_length = 10
support_max_bridges_on_pillar = 3
support_max_pillar_link_distance = 10
support_object_elevation = 5
support_pillar_connection_mode = zigzag
support_pillar_diameter = 1.2
support_pillar_widening_factor = 0
support_points_density_relative = 100
support_points_minimal_distance = 1
supports_enable = 1
@@ -0,0 +1,44 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:30:54 UTC
compatible_printers =
compatible_printers_condition =
default_sla_print_profile =
faded_layers = 10
hollowing_closing_distance = 2
hollowing_enable = 0
hollowing_min_thickness = 3
hollowing_quality = 0.5
inherits = 0.1 Fast
layer_height = 0.1
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
pad_around_object = 0
pad_around_object_everywhere = 0
pad_brim_size = 1.6
pad_enable = 1
pad_max_merge_distance = 50
pad_object_connector_penetration = 0.3
pad_object_connector_stride = 10
pad_object_connector_width = 0.5
pad_object_gap = 1
pad_wall_height = 0
pad_wall_slope = 90
pad_wall_thickness = 1
sla_print_settings_id =
slice_closing_radius = 0.005
support_base_diameter = 3
support_base_height = 1
support_base_safety_distance = 1
support_buildplate_only = 0
support_critical_angle = 45
support_head_front_diameter = 1
support_head_penetration = 0.7
support_head_width = 3
support_max_bridge_length = 10
support_max_bridges_on_pillar = 3
support_max_pillar_link_distance = 10
support_object_elevation = 5
support_pillar_connection_mode = zigzag
support_pillar_diameter = 1.5
support_pillar_widening_factor = 0
support_points_density_relative = 100
support_points_minimal_distance = 1
supports_enable = 1
@@ -0,0 +1,44 @@
# generated by PrusaSlicer 2.2.0+win64 on 2020-09-05 at 15:51:14 UTC
compatible_printers =
compatible_printers_condition =
default_sla_print_profile =
faded_layers = 10
hollowing_closing_distance = 2
hollowing_enable = 0
hollowing_min_thickness = 3
hollowing_quality = 0.5
inherits = 0.1 Fast
layer_height = 0.1
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
pad_around_object = 0
pad_around_object_everywhere = 0
pad_brim_size = 1.6
pad_enable = 1
pad_max_merge_distance = 50
pad_object_connector_penetration = 0.3
pad_object_connector_stride = 10
pad_object_connector_width = 0.5
pad_object_gap = 1
pad_wall_height = 0
pad_wall_slope = 90
pad_wall_thickness = 1
sla_print_settings_id =
slice_closing_radius = 0.005
support_base_diameter = 3
support_base_height = 1
support_base_safety_distance = 1
support_buildplate_only = 0
support_critical_angle = 45
support_head_front_diameter = 0.9
support_head_penetration = 0.5
support_head_width = 3
support_max_bridge_length = 10
support_max_bridges_on_pillar = 3
support_max_pillar_link_distance = 10
support_object_elevation = 5
support_pillar_connection_mode = zigzag
support_pillar_diameter = 1.3
support_pillar_widening_factor = 0
support_points_density_relative = 100
support_points_minimal_distance = 1
supports_enable = 1
+46 -3
View File
@@ -116,9 +116,52 @@
</MenuItem.Icon>
</MenuItem>
</MenuItem>
<MenuItem Header="_Edit">
<MenuItem Header="Copy"/>
<MenuItem Header="Paste"/>
<MenuItem Header="_Help">
<MenuItem
Header="Website"
InputGesture="Ctrl + F1" HotKey="Ctrl + F1"
Command="{Binding OpenWebsite}">
<MenuItem.Icon>
<Image Source="\Assets\Icons\internet-explorer-16x16.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem
Header="Donate"
InputGesture="Ctrl + Shift + F1" HotKey="Ctrl + Shift + F1"
Command="{Binding OpenDonateWebsite}">
<MenuItem.Icon>
<Image Source="\Assets\Icons\donate-16x16.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem
Header="About"
InputGesture="F1" HotKey="F1"
Command="{Binding MenuHelpAboutClicked}">
<MenuItem.Icon>
<Image Source="\Assets\Icons\button-info-16x16.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem
Header="Benchmark"
Command="{Binding MenuHelpBenchmarkClicked}">
<MenuItem.Icon>
<Image Source="\Assets\Icons\microchip-16x16.png"/>
</MenuItem.Icon>
</MenuItem>
<Separator/>
<MenuItem
Header="Install profiles into PrusaSlicer"
Command="{Binding MenuHelpInstallProfilesClicked}">
<MenuItem.Icon>
<Image Source="\Assets\Icons\CNCMachine-16x16.png"/>
</MenuItem.Icon>
</MenuItem>
</MenuItem>
</Menu>
+18 -29
View File
@@ -301,14 +301,7 @@ namespace UVtools.WPF
"Properties save complete");
if (result != ButtonResult.Yes) return;
try
{
using (Process.Start(file)) { }
}
catch (Exception e)
{
Debug.WriteLine(e);
}
App.StartProcess(file);
}
public void OnClickPropertiesSaveClipboard()
@@ -379,14 +372,7 @@ namespace UVtools.WPF
"GCode save complete");
if (result != ButtonResult.Yes) return;
try
{
using (Process.Start(file)) { }
}
catch (Exception e)
{
Debug.WriteLine(e);
}
App.StartProcess(file);
}
public void OnClickGCodeSaveClipboard()
@@ -823,11 +809,7 @@ namespace UVtools.WPF
});
UpdateTitle();
}
public override void Show()
{
base.Show();
AddLog($"{About.Software} start");
ProcessFiles(Program.Args);
}
@@ -922,6 +904,21 @@ namespace UVtools.WPF
await settingsWindow.ShowDialog(this);
}
public void OpenWebsite()
{
App.OpenBrowser(About.Website);
}
public void OpenDonateWebsite()
{
App.OpenBrowser(About.Donate);
}
public async void MenuHelpAboutClicked()
{
await new AboutWindow().ShowDialog(this);
}
#endregion
#region Methods
@@ -1697,15 +1694,7 @@ namespace UVtools.WPF
"'Yes' to open target folder, 'No' to continue.",
"Extraction complete") == ButtonResult.Yes)
{
try
{
using (Process.Start(finalPath))
{ }
}
catch (Exception e)
{
// ignored
}
App.StartProcess(finalPath);
}
}
catch (Exception ex)
+135
View File
@@ -42,6 +42,138 @@
<None Remove="Assets\Icons\UVtools.ico" />
</ItemGroup>
<ItemGroup>
<None Update="arm\libcvextern.so">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\AnyCubic Photon S.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\AnyCubic Photon Zero.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\AnyCubic Photon.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Creality LD-002H.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Creality LD-002R.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Elegoo Mars 2 Pro.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Elegoo Mars Saturn.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Elegoo Mars.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\EPAX X1.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\EPAX X10 4K Mono.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\EPAX X10.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\EPAX X133 4K Mono.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\EPAX X156 4K Color.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Kelant S400.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Longer Orange 10.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Longer Orange 30.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Nova3D Bene4 Mono.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Nova3D Elfin.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Peopoly Phenom L.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Peopoly Phenom Noir.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Peopoly Phenom.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Phrozen Shuffle 4K.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Phrozen Shuffle Lite.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Phrozen Shuffle XL.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Phrozen Shuffle.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Phrozen Sonic Mini 4K.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Phrozen Sonic Mini.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Phrozen Sonic.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Phrozen Transform.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\QIDI Shadow5.5.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\QIDI Shadow6.0 Pro.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Voxelab Polaris.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Wanhao D7.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Wanhao D8.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\printer\Zortrax Inkspire.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\sla_print\Universal 0.025 UltraDetail - Heavy Supports.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\sla_print\Universal 0.025 UltraDetail - Medium Supports.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\sla_print\Universal 0.035 Detail - Heavy Supports.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\sla_print\Universal 0.035 Detail - Medium Supports.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\sla_print\Universal 0.05 Normal - Heavy Supports.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\sla_print\Universal 0.05 Normal - Medium Supports.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\sla_print\Universal 0.1 Fast - Heavy Supports.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\PrusaSlicer\sla_print\Universal 0.1 Fast - Medium Supports.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Assets\selected.theme">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
@@ -60,6 +192,9 @@
<None Update="Assets\Themes\UVtoolsLight.xaml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="x64\libcvextern.so">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="..\LICENSE">
<Pack>True</Pack>
<PackagePath></PackagePath>
+46
View File
@@ -0,0 +1,46 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="UVtools.WPF.Windows.AboutWindow"
WindowStartupLocation="CenterOwner"
SizeToContent="WidthAndHeight"
CanResize="False"
Title="About UVtools"
Icon="/Assets/Icons/UVtools.ico">
<StackPanel Orientation="Vertical">
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
<Image Source="/Assets/Icons/UVtools.ico" Width="256"/>
<Grid
RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,*"
Margin="20"
>
<TextBlock Grid.Row="0" Text="{Binding Software}"/>
<TextBlock Grid.Row="2" Text="{Binding Version}"/>
<TextBlock Grid.Row="4" Text="{Binding Copyright}"/>
<TextBlock Grid.Row="6" Text="{Binding Company}"/>
<TextBox Grid.Row="8"
IsReadOnly="True"
Text="{Binding Description}"/>
</Grid>
</StackPanel>
<Border Background="WhiteSmoke">
<Button
Command="{Binding Close}"
HotKey="Escape"
Padding="10"
Margin="20"
HorizontalAlignment="Right">
<StackPanel Spacing="10" VerticalAlignment="Center" Orientation="Horizontal">
<Image Source="/Assets/Icons/exit-16x16.png"/>
<TextBlock Grid.Row="6" Text="Close"/>
</StackPanel>
</Button>
</Border>
</StackPanel>
</Window>
+27
View File
@@ -0,0 +1,27 @@
using Avalonia.Markup.Xaml;
using UVtools.Core;
using UVtools.WPF.Controls;
namespace UVtools.WPF.Windows
{
public class AboutWindow : WindowEx
{
public string Software => About.Software;
public string Version => $"Version: {AppSettings.Version}";
public string Copyright => AppSettings.AssemblyCopyright;
public string Company => AppSettings.AssemblyCompany;
public string Description => AppSettings.AssemblyDescription;
public AboutWindow()
{
InitializeComponent();
DataContext = this;
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
}
}
Binary file not shown.