Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sn4k3/UVtools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'UVtools.ScriptSample/ScriptTester.cs')
-rw-r--r--UVtools.ScriptSample/ScriptTester.cs68
1 files changed, 68 insertions, 0 deletions
diff --git a/UVtools.ScriptSample/ScriptTester.cs b/UVtools.ScriptSample/ScriptTester.cs
new file mode 100644
index 0000000..2027740
--- /dev/null
+++ b/UVtools.ScriptSample/ScriptTester.cs
@@ -0,0 +1,68 @@
+/*
+ * 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;
+using System.IO;
+using UVtools.Core.Extensions;
+
+namespace UVtools.ScriptSample
+{
+ /// <summary>
+ /// Change layer properties to random values
+ /// </summary>
+ public class ScriptChangeLayesrPropertiesSample : 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()
+ {
+ string path = @"c:\temp\UVToolAreaExp_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";
+
+ Progress.Reset("Changing layers", Operation.LayerRangeCount); // Sets the progress name and number of items to process
+
+ using var sw = File.CreateText(path);
+ for (uint layerIndex = Operation.LayerIndexStart; layerIndex <= Operation.LayerIndexEnd; layerIndex++)
+ {
+ Progress.Token.ThrowIfCancellationRequested(); // Abort operation, user requested cancellation
+ var layer = SlicerFile[layerIndex]; // Unpack and expose layer variable for easier use
+
+ sw.WriteLine($@"{layerIndex}\{layer.NonZeroPixelCount}\{layer.BoundingRectangleMillimeters.Area()}");
+ //sw.WriteLine(SlicerFile.GetName);
+
+ Progress++; // Increment progress bar by 1
+ }
+ sw.Close();
+
+ // return true if not cancelled by user
+ return !Progress.Token.IsCancellationRequested;
+ }
+ }
+} \ No newline at end of file