Skip to content

Commit

Permalink
v4.4.0
Browse files Browse the repository at this point in the history
- **File formats:**
  - (Add) File format: Klipper zip
  - (Add) Properties:
    - `Pause` and `ChangeResin` to layers
    - `BottomLiftAcceleration`
    - `BottomLiftAcceleration2`
    - `LiftAcceleration`
    - `LiftAcceleration2`
    - `BottomRetractAcceleration`
    - `BottomRetractAcceleration2`
    - `RetractAcceleration`
    - `RetractAcceleration2`
  - (Add) PrusaSlicer Keywords:
    - `FILECLASS_xxx` to define the file class directly instead of a file extension
    - `BottomLiftAcceleration`
    - `BottomLiftAcceleration2`
    - `BottomRetractAcceleration`
    - `BottomRetractAcceleration2`
    - `LiftAcceleration`
    - `LiftAcceleration2`
    - `RetractAcceleration`
    - `RetractAcceleration2`
  - (Add) Property `HaveTiltingVat` to know if the printer have a tilting vat
  - (Add) Compatibility with tilting vat Saturn 4 Ultra which also fixes print time estimate (#906)
  - (Add) Encrypted CTB: Tries to predict tilting vat printers from set parameters
  - (Change) CWS: Append `;<Slice>` as first line in the layer instead when required
  - (Change) VDT: Move FTL previews to top to be used as first in conversion
  - (Improvement) Anycubic: Write the image color table based on the AntiAliasing level (#899)
  - (Improvement) Encrypted CTB: Implement the `ModifiedTimestampMinutes` and `AntiAliasLevel` field
  - (Fix) nanoDLP `slicer.json` deserialize problem on some files
  - (Fix) SL1: The keyword `TransitionLayerCount_xxx` not being set on the file (#902)
  - (Fix) PHZ: Generated invalid thumbnail data (#903)
- **Tools:**
  - (Improvement) Pixel arithmetic: Add extra checks to ignore empty size and layers
  - (Change) Edit print parameters: Allow set lift and retract speeds to 0 (#906)
- **UI:**
  - (Add) Menu - File - Copy parameters to files: Allow to copy parameters from current file to another file(s) (#852)
  - (Improvement) Menu - File - Reset layer properties: Hold SHIFT key to also rebuild layers position with the file layer height (#870)
  - (Improvement) Save as and convert file save dialog: Force the correct file extension if been tampered (#909)
  - (Improvement) Exposure time finder: Disable incompatible panels instead of hide them
  - (Add) Layer preview shortcuts: A/W/S/D to pan the layer image and Q/E to go to previous/next layer (#871)
  - (Fix) Prevent CTRL + SHIFT + Up/Down (Issue navigation shortcut) from change layer
- (Add) PrusaSlicer printer: Elegoo Saturn 4 Ultra
- (Fix) Linux AppImage: Failed to change to directory "~" (No such file of directory) (#891)
- (Upgrade) OpenCV from 4.8.0 to 4.9.0
- (Upgrade) AvaloniaUI from 11.0.10 to 11.1.1 (Fixes #872)
- (Upgrade) .NET from 6.0.29 to 6.0.32
  • Loading branch information
sn4k3 committed Jul 30, 2024
1 parent 2cf889e commit d683d33
Show file tree
Hide file tree
Showing 65 changed files with 4,033 additions and 1,338 deletions.
50 changes: 50 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,55 @@
# Changelog

## 30/07/2024 - v4.4.0

- **File formats:**
- (Add) File format: Klipper zip
- (Add) Properties:
- `Pause` and `ChangeResin` to layers
- `BottomLiftAcceleration`
- `BottomLiftAcceleration2`
- `LiftAcceleration`
- `LiftAcceleration2`
- `BottomRetractAcceleration`
- `BottomRetractAcceleration2`
- `RetractAcceleration`
- `RetractAcceleration2`
- (Add) PrusaSlicer Keywords:
- `FILECLASS_xxx` to define the file class directly instead of a file extension
- `BottomLiftAcceleration`
- `BottomLiftAcceleration2`
- `BottomRetractAcceleration`
- `BottomRetractAcceleration2`
- `LiftAcceleration`
- `LiftAcceleration2`
- `RetractAcceleration`
- `RetractAcceleration2`
- (Add) Property `HaveTiltingVat` to know if the printer have a tilting vat
- (Add) Compatibility with tilting vat Saturn 4 Ultra which also fixes print time estimate (#906)
- (Add) Encrypted CTB: Tries to predict tilting vat printers from set parameters
- (Change) CWS: Append `;<Slice>` as first line in the layer instead when required
- (Change) VDT: Move FTL previews to top to be used as first in conversion
- (Improvement) Anycubic: Write the image color table based on the AntiAliasing level (#899)
- (Improvement) Encrypted CTB: Implement the `ModifiedTimestampMinutes` and `AntiAliasLevel` field
- (Fix) nanoDLP `slicer.json` deserialize problem on some files
- (Fix) SL1: The keyword `TransitionLayerCount_xxx` not being set on the file (#902)
- (Fix) PHZ: Generated invalid thumbnail data (#903)
- **Tools:**
- (Improvement) Pixel arithmetic: Add extra checks to ignore empty size and layers
- (Change) Edit print parameters: Allow set lift and retract speeds to 0 (#906)
- **UI:**
- (Add) Menu - File - Copy parameters to files: Allow to copy parameters from current file to another file(s) (#852)
- (Improvement) Menu - File - Reset layer properties: Hold SHIFT key to also rebuild layers position with the file layer height (#870)
- (Improvement) Save as and convert file save dialog: Force the correct file extension if been tampered (#909)
- (Improvement) Exposure time finder: Disable incompatible panels instead of hide them
- (Add) Layer preview shortcuts: A/W/S/D to pan the layer image and Q/E to go to previous/next layer (#871)
- (Fix) Prevent CTRL + SHIFT + Up/Down (Issue navigation shortcut) from change layer
- (Add) PrusaSlicer printer: Elegoo Saturn 4 Ultra
- (Fix) Linux AppImage: Failed to change to directory "~" (No such file of directory) (#891)
- (Upgrade) OpenCV from 4.8.0 to 4.9.0
- (Upgrade) AvaloniaUI from 11.0.10 to 11.1.1 (Fixes #872)
- (Upgrade) .NET from 6.0.29 to 6.0.32

## 19/04/2024 - v4.3.2

- (Fix) "Index was outside the bounds of the array" when detecting issues (Fixes #869)
Expand Down
3 changes: 2 additions & 1 deletion CREDITS.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,4 +92,5 @@
- Michael Pullen
- Landry David
- Jeremy Conoley
- Brady George
- Brady George
- Ryan Skow
4 changes: 2 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@

<CommonPublishDir>$(MSBuildThisFileDirectory)publish</CommonPublishDir>

<UVtoolsVersion>4.3.2</UVtoolsVersion>
<AvaloniaVersion>11.0.7</AvaloniaVersion>
<UVtoolsVersion>4.4.0</UVtoolsVersion>
<AvaloniaVersion>11.1.1</AvaloniaVersion>
</PropertyGroup>

<ItemGroup>
Expand Down
43 changes: 43 additions & 0 deletions PrusaSlicer/printer/Elegoo Saturn 4 Ultra.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# generated by PrusaSlicer 2.8.0+win64 on 2024-07-24 at 21:26:44 UTC
absolute_correction = 0
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,218.88x0,218.88x122.88,0x122.88
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 122.88
display_mirror_x = 1
display_mirror_y = 0
display_orientation = landscape
display_pixels_x = 11520
display_pixels_y = 5120
display_width = 218.88
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
high_viscosity_tilt_time = 10
host_type = octoprint
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 220
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_SATURN4_ULTRA\nFILEFORMAT_ENCRYPTED.CTB\n\nSTART_CUSTOM_VALUES\nBottomLiftHeight_0.05\nLiftHeight_0.05\nBottomLiftSpeed_0.05\nLiftSpeed_0.05\nRetractSpeed_0.05\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
relative_correction_x = 1
relative_correction_y = 1
relative_correction_z = 1
sla_archive_format = SL1
sla_output_precision = 0.001
slow_tilt_time = 8
thumbnails = 290x290/PNG, 116x116/PNG
44 changes: 44 additions & 0 deletions PrusaSlicer/printer/Uniz IBEE (Klipper).ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# generated by PrusaSlicer 2.7.4+win64 on 2024-05-17 at 23:45:35 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 = 3840
display_pixels_y = 2400
display_width = 192
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
high_viscosity_tilt_time = 10
host_type = octoprint
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 220
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_UNIZ\nPRINTER_MODEL_IBEE\nFILEFORMAT_ZIP\nFILECLASS_KLIPPER\n\nSTART_CUSTOM_VALUES\nBottomLiftHeight_4\nBottomLiftSpeed_600\nBottomLiftAcceleration_5\nBottomLiftHeight2_2\nBottomLiftSpeed2_600\nBottomLiftAcceleration2_100\nBottomWaitTimeAfterLift_0\nBottomRetractSpeed_600\nBottomRetractAcceleration_100\nBottomRetractHeight2_1.5\nBottomRetractSpeed2_600\nBottomRetractAcceleration2_5\nBottomWaitTimeBeforeCure_3\nBottomWaitTimeAfterCure_3\n\nLiftHeight_4\nLiftSpeed_600\nLiftAcceleration_5\nLiftHeight2_2\nLiftSpeed2_600\nLiftAcceleration2_100\nWaitTimeAfterLift_0\nRetractSpeed_600\nRetractAcceleration_100\nRetractHeight2_1.5\nRetractSpeed2_600\nRetractAcceleration2_5\nWaitTimeBeforeCure_2\nWaitTimeAfterCure_1\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
relative_correction_x = 1
relative_correction_y = 1
relative_correction_z = 1
sla_archive_format = SL1
sla_output_precision = 0.001
slow_tilt_time = 8
thumbnails = 32x32/PNG, 400x300/PNG
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ But also, I need victims for test subject. Proceed at your own risk!
- UVJ (Vendor-neutral format for manual manipulation)
- VDT (Voxeldance Tango), VDA.ZIP (Voxeldance Additive)
- ZIP (Generic / Phrozen Zip)
- ZIP (Klipper)
- Image files (png, jpg, jpeg, jp2, tif, bmp, pbm, pgm, ras, sr)

# PrusaSlicer
Expand Down Expand Up @@ -163,6 +164,7 @@ But also, I need victims for test subject. Proceed at your own risk!
- **BottomLightPWM_xxx:** Sets the bottom LED light power (0-255)
- **LightPWM_xxx:** Sets the LED light power (0-255)
- **FILEVERSION_n:** Sets the output file format version/revision
- **FILECLASS_xxx:** Sets the output file format class to be auto converted once open on UVtools
- **FILEFORMAT_xxx:** Sets the output file format extension to be auto converted once open on UVtools
- **LAYERIMAGEFORMAT_xxx:** Sets the layer image format required for the converted file if the format have multiple options (For Archives with PNG's)

Expand Down
48 changes: 47 additions & 1 deletion RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,48 @@
- (Fix) "Index was outside the bounds of the array" when detecting issues (Fixes #869)
- **File formats:**
- (Add) File format: Klipper zip
- (Add) Properties:
- `Pause` and `ChangeResin` to layers
- `BottomLiftAcceleration`
- `BottomLiftAcceleration2`
- `LiftAcceleration`
- `LiftAcceleration2`
- `BottomRetractAcceleration`
- `BottomRetractAcceleration2`
- `RetractAcceleration`
- `RetractAcceleration2`
- (Add) PrusaSlicer Keywords:
- `FILECLASS_xxx` to define the file class directly instead of a file extension
- `BottomLiftAcceleration`
- `BottomLiftAcceleration2`
- `BottomRetractAcceleration`
- `BottomRetractAcceleration2`
- `LiftAcceleration`
- `LiftAcceleration2`
- `RetractAcceleration`
- `RetractAcceleration2`
- (Add) Property `HaveTiltingVat` to know if the printer have a tilting vat
- (Add) Compatibility with tilting vat Saturn 4 Ultra which also fixes print time estimate (#906)
- (Add) Encrypted CTB: Tries to predict tilting vat printers from set parameters
- (Change) CWS: Append `;<Slice>` as first line in the layer instead when required
- (Change) VDT: Move FTL previews to top to be used as first in conversion
- (Improvement) Anycubic: Write the image color table based on the AntiAliasing level (#899)
- (Improvement) Encrypted CTB: Implement the `ModifiedTimestampMinutes` and `AntiAliasLevel` field
- (Fix) nanoDLP `slicer.json` deserialize problem on some files
- (Fix) SL1: The keyword `TransitionLayerCount_xxx` not being set on the file (#902)
- (Fix) PHZ: Generated invalid thumbnail data (#903)
- **Tools:**
- (Improvement) Pixel arithmetic: Add extra checks to ignore empty size and layers
- (Change) Edit print parameters: Allow set lift and retract speeds to 0 (#906)
- **UI:**
- (Add) Menu - File - Copy parameters to files: Allow to copy parameters from current file to another file(s) (#852)
- (Improvement) Menu - File - Reset layer properties: Hold SHIFT key to also rebuild layers position with the file layer height (#870)
- (Improvement) Save as and convert file save dialog: Force the correct file extension if been tampered (#909)
- (Improvement) Exposure time finder: Disable incompatible panels instead of hide them
- (Add) Layer preview shortcuts: A/W/S/D to pan the layer image and Q/E to go to previous/next layer (#871)
- (Fix) Prevent CTRL + SHIFT + Up/Down (Issue navigation shortcut) from change layer
- (Add) PrusaSlicer printer: Elegoo Saturn 4 Ultra
- (Fix) Linux AppImage: Failed to change to directory "~" (No such file of directory) (#891)
- (Upgrade) OpenCV from 4.8.0 to 4.9.0
- (Upgrade) AvaloniaUI from 11.0.10 to 11.1.1 (Fixes #872)
- (Upgrade) .NET from 6.0.29 to 6.0.32

4 changes: 2 additions & 2 deletions Scripts/010 Editor/ctb_decrypted.bt
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ struct DECRYPTED_HEADER {
ubyte AntiAliasFlag <fgcolor=cBlack, bgcolor=cRed>; // 7(0x7) [No AA] / 15(0x0F) [AA]
ushort Padding <fgcolor=cBlack, bgcolor=cRed>;
ubyte PerLayerSettings <fgcolor=cBlack, bgcolor=cRed, format=hex>; // 0 to not support, 0x40 or 0x50, 16 * version?
uint unknown4;
uint unknown5;
uint ModifiedTimestampMinutes;
uint AntiAliasLevel;
float RestTimeAfterRetract;
float RestTimeAfterLift;
uint TransitionLayerCount;
Expand Down
26 changes: 13 additions & 13 deletions Scripts/UVtools.ScriptSample/ScriptCustomGCode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,13 @@ public bool ScriptExecute()
float feedrate = gcode.ConvertFromMillimetersPerMinute(150);
float lightoff = gcode.ConvertFromSeconds(1f);

gcode.AppendStartGCode();
gcode.AppendStartGCode(SlicerFile);
//gcode.AppendShowImageM6054(gcode.GetShowImageString(0));
//gcode.AppendWaitG4(gcode.ConvertFromSeconds(2));
//gcode.AppendTurnLightM106(255);
gcode.AppendWaitG4(gcode.ConvertFromSeconds(1));
//gcode.AppendTurnLightM106(0);
gcode.AppendLiftMoveG0(20, feedrate, pos, feedrate);
gcode.AppendLiftMoveG0(20, feedrate,0, pos, feedrate, 0);
gcode.AppendWaitG4(gcode.ConvertFromSeconds(5));

// 0.025 test
Expand Down Expand Up @@ -117,17 +117,17 @@ public bool ScriptExecute()
}
*/

gcode.AppendLiftMoveG0(20, gcode.ConvertFromMillimetersPerMinute(150), 1, gcode.ConvertFromMillimetersPerMinute(150));
gcode.AppendWaitG4(lightoff);
gcode.AppendLiftMoveG0(20, gcode.ConvertFromMillimetersPerMinute(180), 1.5f, gcode.ConvertFromMillimetersPerMinute(180));
gcode.AppendWaitG4(lightoff);
gcode.AppendLiftMoveG0(20, gcode.ConvertFromMillimetersPerMinute(195), 2, gcode.ConvertFromMillimetersPerMinute(195));
gcode.AppendWaitG4(lightoff);
gcode.AppendLiftMoveG0(20, gcode.ConvertFromMillimetersPerMinute(200), 2.5f, gcode.ConvertFromMillimetersPerMinute(200));
gcode.AppendWaitG4(lightoff);
gcode.AppendLiftMoveG0(20, gcode.ConvertFromMillimetersPerMinute(250), 3f, gcode.ConvertFromMillimetersPerMinute(250));
gcode.AppendWaitG4(lightoff);
gcode.AppendLiftMoveG0(20, gcode.ConvertFromMillimetersPerMinute(300), 3.5f, gcode.ConvertFromMillimetersPerMinute(300));
gcode.AppendLiftMoveG0(20, gcode.ConvertFromMillimetersPerMinute(150), 0, 1, gcode.ConvertFromMillimetersPerMinute(150), 0);
gcode.AppendWaitG4(lightoff);
gcode.AppendLiftMoveG0(20, gcode.ConvertFromMillimetersPerMinute(180), 0, 1.5f, gcode.ConvertFromMillimetersPerMinute(180), 0);
gcode.AppendWaitG4(lightoff);
gcode.AppendLiftMoveG0(20, gcode.ConvertFromMillimetersPerMinute(195), 0, 2, gcode.ConvertFromMillimetersPerMinute(195), 0);
gcode.AppendWaitG4(lightoff);
gcode.AppendLiftMoveG0(20, gcode.ConvertFromMillimetersPerMinute(200), 0, 2.5f, gcode.ConvertFromMillimetersPerMinute(200), 0);
gcode.AppendWaitG4(lightoff);
gcode.AppendLiftMoveG0(20, gcode.ConvertFromMillimetersPerMinute(250), 0, 3f, gcode.ConvertFromMillimetersPerMinute(250), 0);
gcode.AppendWaitG4(lightoff);
gcode.AppendLiftMoveG0(20, gcode.ConvertFromMillimetersPerMinute(300), 0, 3.5f, gcode.ConvertFromMillimetersPerMinute(300), 0);
gcode.AppendWaitG4(lightoff);

gcode.AppendMoveG0(100, feedrate);
Expand Down
Loading

0 comments on commit d683d33

Please sign in to comment.