mirror of
https://github.com/riegera2412/UVtools.git
synced 2026-07-09 18:12:32 +02:00
a626cfdc72
- (Add) Allow to pause and resume operations (#654) - (Add) `Layer.FirstTransitionLayer` - (Add) `Layer.LastTransitionLayer` - (Add) File format: Elegoo GOO - (Add) PrusaSlicer Printer: Elegoo Mars 4 - (Improvement) Allocate maximum GPU memory for Skia up to 256 MB - (Improvement) Set and sanitize transition layers exposure time from last bottom layer and first normal layer instead of global times (#659) - (Change) CXDLP: Default version from 2 to 3 - (Fix) UI was not rendering with GPU (ANGLE) - (Fix) `Layer.IsTransitionLayer` was returning the wrong value - (Upgrade) .NET from 6.0.13 to 6.0.14
64 lines
2.3 KiB
C#
64 lines
2.3 KiB
C#
/*
|
|
* GNU AFFERO GENERAL PUBLIC LICENSE
|
|
* Version 3, 19 November 2007
|
|
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
|
* Everyone is permitted to copy and distribute verbatim copies
|
|
* of this license document, but changing it is not allowed.
|
|
*/
|
|
|
|
using System;
|
|
using UVtools.Core.Scripting;
|
|
|
|
namespace UVtools.ScriptSample;
|
|
|
|
/// <summary>
|
|
/// Change layer properties to random values
|
|
/// </summary>
|
|
public class ScriptChangeLayerPropertiesSample : ScriptGlobals
|
|
{
|
|
/// <summary>
|
|
/// Set configurations here, this function trigger just after load a script
|
|
/// </summary>
|
|
public void ScriptInit()
|
|
{
|
|
Script.Name = "Change layer properties";
|
|
Script.Description = "Change layer properties to random values :D";
|
|
Script.Author = "Tiago Conceição";
|
|
Script.Version = new Version(0, 1);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Validate user inputs here, this function trigger when user click on execute
|
|
/// </summary>
|
|
/// <returns>A error message, empty or null if validation passes.</returns>
|
|
public string? ScriptValidate()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Execute the script, this function trigger when when user click on execute and validation passes
|
|
/// </summary>
|
|
/// <returns>True if executes successfully to the end, otherwise false.</returns>
|
|
public bool ScriptExecute()
|
|
{
|
|
Progress.Reset("Changing layers", Operation.LayerRangeCount); // Sets the progress name and number of items to process
|
|
|
|
Random random = new();
|
|
|
|
for (uint layerIndex = Operation.LayerIndexStart; layerIndex <= Operation.LayerIndexEnd; layerIndex++)
|
|
{
|
|
Progress.PauseOrCancelIfRequested(); // Abort operation, user requested cancellation
|
|
var layer = SlicerFile[layerIndex]; // Unpack and expose layer variable for easier use
|
|
|
|
layer.LiftHeight = random.Next(3, 10); // Random value from 3 to 10
|
|
layer.LiftSpeed = random.Next(50, 200); // Random value from 50 to 200
|
|
layer.RetractSpeed = random.Next(50, 200); // Random value from 50 to 200
|
|
|
|
Progress++; // Increment progress bar by 1
|
|
}
|
|
|
|
// return true if not cancelled by user
|
|
return !Progress.Token.IsCancellationRequested;
|
|
}
|
|
} |