mirror of
https://github.com/riegera2412/UVtools.git
synced 2026-07-09 01:52:32 +02:00
v2.2.0
* (Add) FDG file format for Voxelab Printers (ezrec/uv3dp#129) * (Add) PrusaSlicer printer: Voxelab Ceres 8.9 * (Change) Print time display to hours and minutes: 00h00m
This commit is contained in:
+4
-2
@@ -1,8 +1,10 @@
|
||||
# Changelog
|
||||
|
||||
## 07/01/2021 - v2.2.0
|
||||
## 10/01/2021 - v2.2.0
|
||||
|
||||
* (Add) FDG file format for Voxelab Printers
|
||||
* (Add) FDG file format for Voxelab Printers (ezrec/uv3dp#129)
|
||||
* (Add) PrusaSlicer printer: Voxelab Ceres 8.9
|
||||
* (Change) Print time display to hours and minutes: 00h00m
|
||||
|
||||
## 07/01/2021 - v2.1.3
|
||||
|
||||
|
||||
@@ -56,11 +56,12 @@ SET files[46]=Wanhao CGR Mono.ini
|
||||
SET files[47]=Creality LD-002R.ini
|
||||
SET files[48]=Creality LD-002H.ini
|
||||
SET files[49]=Creality LD-006.ini
|
||||
SET files[50]=Voxelab Polaris.ini
|
||||
SET files[51]=Voxelab Proxima.ini
|
||||
SET files[52]=Longer Orange 10.ini
|
||||
SET files[53]=Longer Orange 30.ini
|
||||
SET files[54]=Longer Orange4K.ini
|
||||
SET files[50]=Voxelab Polaris 5.5.ini
|
||||
SET files[51]=Voxelab Proxima 6.ini
|
||||
SET files[52]=Voxelab Ceres 8.9.ini
|
||||
SET files[53]=Longer Orange 10.ini
|
||||
SET files[54]=Longer Orange 30.ini
|
||||
SET files[55]=Longer Orange4K.ini
|
||||
|
||||
echo PrusaSlicer Printers Instalation
|
||||
echo This will replace printers, all changes will be discarded
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
# generated by PrusaSlicer 2.2.0+win64 on 2021-01-09 at 22:10:08 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 = 2400
|
||||
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_VOXELAB\nPRINTER_MODEL_CERES_8.9\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_8\nLiftHeight_8\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\nFORMAT_FDG\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
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:27:58 UTC
|
||||
# generated by PrusaSlicer 2.2.0+win64 on 2021-01-09 at 22:08:12 UTC
|
||||
absolute_correction = 0
|
||||
area_fill = 50
|
||||
bed_custom_model =
|
||||
@@ -25,7 +25,7 @@ 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\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_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_5.5\n\nSTART_CUSTOM_VALUES\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\nFORMAT_FDG\nEND_CUSTOM_VALUES
|
||||
printer_settings_id =
|
||||
printer_technology = SLA
|
||||
printer_variant = default
|
||||
@@ -1,4 +1,4 @@
|
||||
# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:18:23 UTC
|
||||
# generated by PrusaSlicer 2.2.0+win64 on 2021-01-09 at 22:08:28 UTC
|
||||
absolute_correction = 0
|
||||
area_fill = 50
|
||||
bed_custom_model =
|
||||
@@ -25,7 +25,7 @@ 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_PROXIMA\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_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_PROXIMA_6\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\nFORMAT_FDG\nEND_CUSTOM_VALUES
|
||||
printer_settings_id =
|
||||
printer_technology = SLA
|
||||
printer_variant = default
|
||||
@@ -59,12 +59,13 @@ But also, i need victims for test subject. Proceed at your own risk!
|
||||
* CBDDLP (Chitubox)
|
||||
* CBT (Chitubox)
|
||||
* PHZ (Chitubox)
|
||||
* FDG (Voxelab)
|
||||
* PWS (Photon Workshop)
|
||||
* PW0 (Photon Workshop)
|
||||
* PWX (Photon Workshop) [Not confirmed]
|
||||
* PWMO (Photon Workshop) [Not confirmed]
|
||||
* PWMS (Photon Workshop) [Not confirmed]
|
||||
* PWMX (Photon Workshop) [Not confirmed]
|
||||
* PWX (Photon Workshop)
|
||||
* PWMO (Photon Workshop)
|
||||
* PWMS (Photon Workshop)
|
||||
* PWMX (Photon Workshop)
|
||||
* ZCodex (Z-Suite)
|
||||
* CWS (NovaMaker)
|
||||
* LGS (Longer Orange 10)
|
||||
@@ -120,8 +121,9 @@ But also, i need victims for test subject. Proceed at your own risk!
|
||||
* Creality LD-002R
|
||||
* Creality LD-002H
|
||||
* Creality LD-006
|
||||
* Voxelab Polaris
|
||||
* Voxelab Proxima
|
||||
* Voxelab Polaris 5.5
|
||||
* Voxelab Proxima 6
|
||||
* Voxelab Ceres 8.9
|
||||
* Longer Orange 10
|
||||
* Longer Orange 30
|
||||
* Longer Orange4K
|
||||
|
||||
@@ -661,7 +661,7 @@ namespace UVtools.Core.FileFormats
|
||||
public override FileFormatType FileType => FileFormatType.Binary;
|
||||
|
||||
public override FileExtension[] FileExtensions { get; } = {
|
||||
new("fdg", "Chitubox FDG"),
|
||||
new("fdg", "Voxelab FDG"),
|
||||
};
|
||||
|
||||
public override Type[] ConvertToFormats { get; } =
|
||||
@@ -985,9 +985,7 @@ namespace UVtools.Core.FileFormats
|
||||
{
|
||||
HeaderSettings.PreviewLargeOffsetAddress = currentOffset;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Preview preview = new Preview
|
||||
{
|
||||
ResolutionX = (uint) image.Width,
|
||||
|
||||
@@ -489,6 +489,7 @@ namespace UVtools.Core.FileFormats
|
||||
RaisePropertyChanged(nameof(PrintTimeOrComputed));
|
||||
RaisePropertyChanged(nameof(PrintTimeComputed));
|
||||
RaisePropertyChanged(nameof(PrintTimeHours));
|
||||
RaisePropertyChanged(nameof(PrintTimeString));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -536,6 +537,8 @@ namespace UVtools.Core.FileFormats
|
||||
|
||||
public float PrintTimeHours => (float) Math.Round(PrintTimeOrComputed / 3600, 2);
|
||||
|
||||
public string PrintTimeString => TimeSpan.FromSeconds(PrintTimeOrComputed).ToString("hh\\hmm\\m");
|
||||
|
||||
public virtual float UsedMaterial { get; set; }
|
||||
|
||||
public virtual float MaterialCost { get; set; }
|
||||
|
||||
@@ -253,6 +253,11 @@ namespace UVtools.Core.FileFormats
|
||||
/// </summary>
|
||||
float PrintTimeHours { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the estimate print time in hours and minutes formatted
|
||||
/// </summary>
|
||||
string PrintTimeString { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the estimate used material in ml
|
||||
/// </summary>
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace UVtools.Core.FileFormats
|
||||
{
|
||||
public class PhotonSFile : FileFormat
|
||||
{
|
||||
public const byte RLEEncodingLimit = 128; // 128;
|
||||
public const byte RLEEncodingLimit = 0x7f - 2; // 128;
|
||||
|
||||
#region Sub Classes
|
||||
|
||||
@@ -101,13 +101,52 @@ namespace UVtools.Core.FileFormats
|
||||
public unsafe byte[] Encode(Mat mat)
|
||||
{
|
||||
List<byte> rawData = new List<byte>();
|
||||
List<byte> chunk = new List<byte>();
|
||||
var spanMat = mat.GetBytePointer();
|
||||
var imageLength = mat.GetLength();
|
||||
|
||||
|
||||
int rep = 0;
|
||||
byte color = 0;
|
||||
|
||||
void AddRep()
|
||||
{
|
||||
if (rep <= 0) return;
|
||||
rep--;
|
||||
byte rle =
|
||||
(byte) (((rep & 1) > 0 ? 128 : 0) |
|
||||
((rep & 2) > 0 ? 64 : 0) |
|
||||
((rep & 4) > 0 ? 32 : 0) |
|
||||
((rep & 8) > 0 ? 16 : 0) |
|
||||
((rep & 16) > 0 ? 8 : 0) |
|
||||
((rep & 32) > 0 ? 4 : 0) |
|
||||
((rep & 64) > 0 ? 2 : 0) | color);
|
||||
|
||||
rawData.Add(rle);
|
||||
}
|
||||
|
||||
for (int i = 0; i < imageLength; i++)
|
||||
{
|
||||
color = color <= 127 ? 0 : 255; // Sanitize no AA
|
||||
if (spanMat[i] != color)
|
||||
{
|
||||
AddRep();
|
||||
color = spanMat[i];
|
||||
rep = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
rep++;
|
||||
if (rep == RLEEncodingLimit)
|
||||
{
|
||||
AddRep();
|
||||
rep = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AddRep();
|
||||
|
||||
EncodedRle = rawData.ToArray();
|
||||
DataSize = (uint)(EncodedRle.Length * 8 + 32);
|
||||
DataSize = (uint)(EncodedRle.Length * 8 + 4);
|
||||
return EncodedRle;
|
||||
}
|
||||
|
||||
@@ -400,6 +439,7 @@ namespace UVtools.Core.FileFormats
|
||||
{
|
||||
outputFile.WriteSerialize(HeaderSettings);
|
||||
outputFile.WriteBytes(PreviewEncode(Thumbnails[0]));
|
||||
LayerSettings.LayerCount = LayerCount;
|
||||
outputFile.WriteSerialize(LayerSettings);
|
||||
|
||||
LayerData[] layerData = new LayerData[LayerCount];
|
||||
|
||||
@@ -298,6 +298,7 @@ namespace UVtools.Core.FileFormats
|
||||
typeof(ChituboxZipFile),
|
||||
typeof(PHZFile),
|
||||
typeof(FDGFile),
|
||||
typeof(PhotonSFile),
|
||||
typeof(PhotonWorkshopFile),
|
||||
typeof(ZCodexFile),
|
||||
typeof(CWSFile),
|
||||
@@ -1013,6 +1014,32 @@ namespace UVtools.Core.FileFormats
|
||||
return true;
|
||||
}
|
||||
|
||||
if (to == typeof(PhotonSFile))
|
||||
{
|
||||
PhotonSFile defaultFormat = (PhotonSFile)FindByType(typeof(PhotonSFile));
|
||||
PhotonSFile file = new PhotonSFile
|
||||
{
|
||||
LayerManager = LayerManager,
|
||||
HeaderSettings =
|
||||
{
|
||||
BottomExposureSeconds = MaterialSettings.InitialExposureTime,
|
||||
BottomLayerCount = PrintSettings.FadedLayers,
|
||||
ExposureSeconds = MaterialSettings.ExposureTime,
|
||||
LayerHeight = PrintSettings.LayerHeight,
|
||||
LayerOffSeconds = LookupCustomValue<double>(Keyword_LayerOffTime, DefaultLightOffDelay),
|
||||
LiftHeight = LookupCustomValue<double>(Keyword_LiftHeight, DefaultLiftHeight),
|
||||
LiftSpeed = LookupCustomValue<double>(Keyword_LiftSpeed, DefaultLiftSpeed),
|
||||
RetractSpeed = LookupCustomValue<float>(Keyword_RetractSpeed, DefaultRetractSpeed),
|
||||
Volume = OutputConfigSettings.UsedMaterial,
|
||||
}
|
||||
};
|
||||
|
||||
file.SetThumbnails(Thumbnails);
|
||||
file.Encode(fileFullPath, progress);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
if (to == typeof(ZCodexFile))
|
||||
{
|
||||
ZCodexFile defaultFormat = (ZCodexFile)FindByType(typeof(ZCodexFile));
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
|
||||
<PackageProjectUrl>https://github.com/sn4k3/UVtools</PackageProjectUrl>
|
||||
<Description>MSLA/DLP, file analysis, calibration, repair, conversion and manipulation</Description>
|
||||
<Version>2.1.3</Version>
|
||||
<Version>2.2.0</Version>
|
||||
<Copyright>Copyright © 2020 PTRTECH</Copyright>
|
||||
<PackageIcon>UVtools.png</PackageIcon>
|
||||
<Platforms>AnyCPU;x64</Platforms>
|
||||
|
||||
@@ -975,11 +975,14 @@
|
||||
<Component Id="owc696F0AF8084A6AA7624CA0947E245A47" Guid="6aa7d092-d68b-a44d-f2c7-0a590404b19f">
|
||||
<File Id="owf696F0AF8084A6AA7624CA0947E245A47" Source="$(var.SourceDir)\Assets\PrusaSlicer\printer\QIDI Shadow6.0 Pro.ini" KeyPath="yes" />
|
||||
</Component>
|
||||
<Component Id="owcF90F5AD6941B0C5CF8C0CB134ED5C5D5" Guid="186b397e-cd3b-855a-524e-cd48a48d5758">
|
||||
<File Id="owfF90F5AD6941B0C5CF8C0CB134ED5C5D5" Source="$(var.SourceDir)\Assets\PrusaSlicer\printer\Voxelab Polaris.ini" KeyPath="yes" />
|
||||
<Component Id="owc2D767EDC65A9490BE5587F5807220F67" Guid="1b34ea21-cadd-c887-3f4e-8655903ef11a">
|
||||
<File Id="owf2D767EDC65A9490BE5587F5807220F67" Source="$(var.SourceDir)\Assets\PrusaSlicer\printer\Voxelab Ceres 8.9.ini" KeyPath="yes" />
|
||||
</Component>
|
||||
<Component Id="owc7F9A29B71850B673CBE3B2BE64A68AAA" Guid="08fa14b5-632c-7453-8805-078ce4e7ef9d">
|
||||
<File Id="owf7F9A29B71850B673CBE3B2BE64A68AAA" Source="$(var.SourceDir)\Assets\PrusaSlicer\printer\Voxelab Proxima.ini" KeyPath="yes" />
|
||||
<Component Id="owc90539A9197EF7BEC5C7BE8507C05CAB3" Guid="9dc6bfc4-de9d-312e-d562-bf3574c4f527">
|
||||
<File Id="owf90539A9197EF7BEC5C7BE8507C05CAB3" Source="$(var.SourceDir)\Assets\PrusaSlicer\printer\Voxelab Polaris 5.5.ini" KeyPath="yes" />
|
||||
</Component>
|
||||
<Component Id="owc1F3FB53972C06D8DF37D9F829AC83D16" Guid="d245e99b-d664-d9f6-351f-d8cf26532427">
|
||||
<File Id="owf1F3FB53972C06D8DF37D9F829AC83D16" Source="$(var.SourceDir)\Assets\PrusaSlicer\printer\Voxelab Proxima 6.ini" KeyPath="yes" />
|
||||
</Component>
|
||||
<Component Id="owc7C7E45D1C452D2676768409E4CA9CC60" Guid="860c70fe-c0a8-cd0a-e957-f1a6a9430509">
|
||||
<File Id="owf7C7E45D1C452D2676768409E4CA9CC60" Source="$(var.SourceDir)\Assets\PrusaSlicer\printer\Wanhao CGR Mini Mono.ini" KeyPath="yes" />
|
||||
|
||||
@@ -279,7 +279,7 @@
|
||||
|
||||
<TextBlock IsVisible="{Binding SlicerFile.PrintTimeHours}" Text=" | "/>
|
||||
<TextBlock IsVisible="{Binding SlicerFile.PrintTimeHours}"
|
||||
Text="{Binding SlicerFile.PrintTimeHours, StringFormat=Print time: \{0\}h}"/>
|
||||
Text="{Binding SlicerFile.PrintTimeString, StringFormat=Print time: \{0\}}"/>
|
||||
|
||||
|
||||
<TextBlock IsVisible="{Binding SlicerFile.UsedMaterial}" Text=" | "/>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<PackageLicenseFile>LICENSE</PackageLicenseFile>
|
||||
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
|
||||
<RepositoryType>Git</RepositoryType>
|
||||
<Version>2.1.3</Version>
|
||||
<Version>2.2.0</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
Reference in New Issue
Block a user