- **Windows MSI:**
   - (Fix) Use the folder programs x64 instead of x86 for new installation path (#254)
   - (Improvement) Mark program and all files as x64
   - (Improvement) Add UVtools logo to side panel and top banner
   - (Improvement) Add open-source logo to side panel
   - (Improvement) License text aligment and bold title
- (Add) File format: OSLA / ODLP / OMSLA - Universal binary file format
- (Add) Calibration - Lift height: Generates test models with various strategies and increments to measure the optimal lift height or peel forces for layers given the printed area
- (Add) Layer Actions - Export layers to images (PNG, JPG/JPEG, JP2, TIF/TIFF, BMP, PBM, PGM, SR/RAS and SVG)
- (Add) About box: License with link
- (Add) Include a copy of the LICENSE on the packages
- (Improvement) File formats: Implement `Wait time before cure` properties on file formats with light-off delay, when used it will calculate the right light-off delay with that extra time and set to `LightOffDelay` property
- (Improvement) Change all date times to Utc instead of local
- (Fix) Tool - Flip: 'Both' were not working correctly
- (Fix) Linux: File 'UVtools.sh' with incorrect line break type, changed to \n (#258)
This commit is contained in:
Tiago Conceição
2021-08-08 23:57:00 +01:00
parent ff354559a5
commit c94b5fb7f1
69 changed files with 3000 additions and 750 deletions
+16 -19
View File
@@ -15,7 +15,6 @@ using System.Linq;
using System.Reflection;
using System.Text;
using System.Text.RegularExpressions;
using Org.BouncyCastle.Asn1.Cms;
using UVtools.Core.Extensions;
using UVtools.Core.FileFormats;
using UVtools.Core.Objects;
@@ -89,10 +88,10 @@ namespace UVtools.Core.GCode
public enum GCodeShowImageTypes : byte
{
FilenameZeroPNG,
FilenameNonZeroPNG,
LayerIndexZero,
LayerIndexNonZero,
FilenamePng0Started,
FilenamePng1Started,
LayerIndex0Started,
LayerIndex1Started,
}
#endregion
@@ -103,7 +102,7 @@ namespace UVtools.Core.GCode
private GCodePositioningTypes _gCodePositioningType = GCodePositioningTypes.Absolute;
private GCodeTimeUnits _gCodeTimeUnit = GCodeTimeUnits.Milliseconds;
private GCodeSpeedUnits _gCodeSpeedUnit = GCodeSpeedUnits.MillimetersPerMinute;
private GCodeShowImageTypes _gCodeShowImageType = GCodeShowImageTypes.FilenameNonZeroPNG;
private GCodeShowImageTypes _gCodeShowImageType = GCodeShowImageTypes.FilenamePng1Started;
private bool _syncMovementsWithDelay;
private bool _useTailComma = true;
private bool _useComments = true;
@@ -308,9 +307,7 @@ namespace UVtools.Core.GCode
public void AppendUVtools()
{
string arch = Environment.Is64BitOperatingSystem ? "64-bits" : "32-bits";
var version = Assembly.GetExecutingAssembly().GetName().Version;
AppendComment($"Generated by {About.Software} v{version.ToString(3)} {arch} @ {DateTime.Now}");
AppendComment($"Generated by {About.Software} v{About.VersionStr} {About.Arch} @ {DateTime.UtcNow}");
}
public void AppendStartGCode()
@@ -538,19 +535,19 @@ namespace UVtools.Core.GCode
public string GetShowImageString(uint layerIndex) => _gCodeShowImageType switch
{
GCodeShowImageTypes.FilenameZeroPNG => $"{layerIndex}.png",
GCodeShowImageTypes.FilenameNonZeroPNG => $"{layerIndex + 1}.png",
GCodeShowImageTypes.LayerIndexZero => $"{layerIndex}",
GCodeShowImageTypes.LayerIndexNonZero => $"{layerIndex + 1}",
GCodeShowImageTypes.FilenamePng0Started => $"{layerIndex}.png",
GCodeShowImageTypes.FilenamePng1Started => $"{layerIndex + 1}.png",
GCodeShowImageTypes.LayerIndex0Started => $"{layerIndex}",
GCodeShowImageTypes.LayerIndex1Started => $"{layerIndex + 1}",
_ => throw new InvalidExpressionException($"Unhandled image type for {_gCodeShowImageType}")
};
public string GetShowImageString(string value) => _gCodeShowImageType switch
{
GCodeShowImageTypes.FilenameZeroPNG => $"{value}.png",
GCodeShowImageTypes.FilenameNonZeroPNG => $"{value}.png",
GCodeShowImageTypes.LayerIndexZero => $"{value}",
GCodeShowImageTypes.LayerIndexNonZero => $"{value}",
GCodeShowImageTypes.FilenamePng0Started => $"{value}.png",
GCodeShowImageTypes.FilenamePng1Started => $"{value}.png",
GCodeShowImageTypes.LayerIndex0Started => $"{value}",
GCodeShowImageTypes.LayerIndex1Started => $"{value}",
_ => throw new InvalidExpressionException($"Unhandled image type for {_gCodeShowImageType}")
};
@@ -752,8 +749,8 @@ namespace UVtools.Core.GCode
if (match.Success && match.Groups.Count >= 2) // Begin new layer
{
var layerIndex = uint.Parse(match.Groups[1].Value);
if (_gCodeShowImageType is GCodeShowImageTypes.FilenameNonZeroPNG or GCodeShowImageTypes
.LayerIndexNonZero) layerIndex--;
if (_gCodeShowImageType is GCodeShowImageTypes.FilenamePng1Started or GCodeShowImageTypes
.LayerIndex1Started) layerIndex--;
if (layerIndex > slicerFile.LayerCount)
{
throw new FileLoadException(