- **File Formats:**
   - (Add) SL1S: Prusa SL1S Speed
   - (Add) CTB v4 support (318570758)
   - (Improvement) PHOTON, CBDDLP, CTB v2, PHZ: Disallow per layer settings, beside the format support, printers never use it
   - (Improvement) Longer Orange format with new found keys
   - (Improvement) CXDLP: Fix the resolution from CL-60 and trigger an error when a invalid resolution was set and unable to detect the printer model
- **Prusa Slicer:**
   - (Add) UVtools Prusa SL1S SPEED
   - (Add) Longer Orange 120
   - (Fix) Creality HALOT-ONE CL-60: Flip resolution & display and remove mirror
   - (Fix) Creality HALOT-SKY CL-89: Remove mirror
   - (Improvement) Longer Orange printers with better default settings
- (Add) Button on `Help - Sponsor`: Open github sponsor webpage
This commit is contained in:
Tiago Conceição
2021-07-03 01:16:17 +01:00
parent 2329074efb
commit ac51b7c4e0
33 changed files with 1008 additions and 206 deletions
+61 -59
View File
@@ -8,65 +8,67 @@ SET PRINT_DIR=sla_print
SET PRINTER_DIR=printer
SET files[0]=UVtools Prusa SL1.ini
SET files[1]=EPAX E6 Mono.ini
SET files[2]=EPAX E10 Mono.ini
SET files[3]=EPAX X1.ini
SET files[4]=EPAX X10.ini
SET files[5]=EPAX X10 4K Mono.ini
SET files[6]=EPAX X133 4K Mono.ini
SET files[7]=EPAX X156 4K Color.ini
SET files[8]=EPAX X1K 2K Mono.ini
SET files[9]=Zortrax Inkspire.ini
SET files[10]=Nova3D Elfin.ini
SET files[11]=Nova3D Bene4 Mono.ini
SET files[12]=AnyCubic Photon.ini
SET files[13]=AnyCubic Photon S.ini
SET files[14]=AnyCubic Photon Zero.ini
SET files[15]=AnyCubic Photon X.ini
SET files[16]=AnyCubic Photon Mono.ini
SET files[17]=AnyCubic Photon Mono SE.ini
SET files[18]=AnyCubic Photon Mono X.ini
SET files[19]=Elegoo Mars.ini
SET files[20]=Elegoo Mars 2 Pro.ini
SET files[21]=Elegoo Mars C.ini
SET files[22]=Elegoo Saturn.ini
SET files[23]=Peopoly Phenom.ini
SET files[24]=Peopoly Phenom L.ini
SET files[25]=Peopoly Phenom Noir.ini
SET files[26]=Peopoly Phenom XXL.ini
SET files[27]=QIDI Shadow5.5.ini
SET files[28]=QIDI Shadow6.0 Pro.ini
SET files[29]=QIDI S-Box.ini
SET files[30]=QIDI I-Box Mono.ini
SET files[31]=Phrozen Shuffle.ini
SET files[32]=Phrozen Shuffle Lite.ini
SET files[33]=Phrozen Shuffle XL.ini
SET files[34]=Phrozen Shuffle XL Lite.ini
SET files[35]=Phrozen Shuffle 16.ini
SET files[36]=Phrozen Shuffle 4K.ini
SET files[37]=Phrozen Sonic.ini
SET files[38]=Phrozen Sonic 4K.ini
SET files[39]=Phrozen Sonic Mighty 4K.ini
SET files[40]=Phrozen Sonic Mini.ini
SET files[41]=Phrozen Sonic Mini 4K.ini
SET files[42]=Phrozen Transform.ini
SET files[43]=Kelant S400.ini
SET files[44]=Wanhao D7.ini
SET files[45]=Wanhao D8.ini
SET files[46]=Wanhao CGR Mini Mono.ini
SET files[47]=Wanhao CGR Mono.ini
SET files[48]=Creality LD-002R.ini
SET files[49]=Creality LD-002H.ini
SET files[50]=Creality LD-006.ini
SET files[51]=Creality HALOT-ONE CL-60.ini
SET files[52]=Creality HALOT-SKY CL-89.ini
SET files[53]=Voxelab Polaris 5.5.ini
SET files[54]=Voxelab Proxima 6.ini
SET files[55]=Voxelab Ceres 8.9.ini
SET files[56]=Longer Orange 10.ini
SET files[57]=Longer Orange 30.ini
SET files[58]=Longer Orange4K.ini
SET files[59]=Uniz IBEE.ini
SET files[1]=UVtools Prusa SL1S Speed.ini
SET files[2]=EPAX E6 Mono.ini
SET files[3]=EPAX E10 Mono.ini
SET files[4]=EPAX X1.ini
SET files[5]=EPAX X10.ini
SET files[6]=EPAX X10 4K Mono.ini
SET files[7]=EPAX X133 4K Mono.ini
SET files[8]=EPAX X156 4K Color.ini
SET files[9]=EPAX X1K 2K Mono.ini
SET files[10]=Zortrax Inkspire.ini
SET files[11]=Nova3D Elfin.ini
SET files[12]=Nova3D Bene4 Mono.ini
SET files[13]=AnyCubic Photon.ini
SET files[14]=AnyCubic Photon S.ini
SET files[15]=AnyCubic Photon Zero.ini
SET files[16]=AnyCubic Photon X.ini
SET files[17]=AnyCubic Photon Mono.ini
SET files[18]=AnyCubic Photon Mono SE.ini
SET files[19]=AnyCubic Photon Mono X.ini
SET files[20]=Elegoo Mars.ini
SET files[21]=Elegoo Mars 2 Pro.ini
SET files[22]=Elegoo Mars C.ini
SET files[23]=Elegoo Saturn.ini
SET files[24]=Peopoly Phenom.ini
SET files[25]=Peopoly Phenom L.ini
SET files[26]=Peopoly Phenom Noir.ini
SET files[27]=Peopoly Phenom XXL.ini
SET files[28]=QIDI Shadow5.5.ini
SET files[29]=QIDI Shadow6.0 Pro.ini
SET files[30]=QIDI S-Box.ini
SET files[31]=QIDI I-Box Mono.ini
SET files[32]=Phrozen Shuffle.ini
SET files[33]=Phrozen Shuffle Lite.ini
SET files[34]=Phrozen Shuffle XL.ini
SET files[35]=Phrozen Shuffle XL Lite.ini
SET files[36]=Phrozen Shuffle 16.ini
SET files[37]=Phrozen Shuffle 4K.ini
SET files[38]=Phrozen Sonic.ini
SET files[39]=Phrozen Sonic 4K.ini
SET files[40]=Phrozen Sonic Mighty 4K.ini
SET files[41]=Phrozen Sonic Mini.ini
SET files[42]=Phrozen Sonic Mini 4K.ini
SET files[43]=Phrozen Transform.ini
SET files[44]=Kelant S400.ini
SET files[45]=Wanhao D7.ini
SET files[46]=Wanhao D8.ini
SET files[47]=Wanhao CGR Mini Mono.ini
SET files[48]=Wanhao CGR Mono.ini
SET files[49]=Creality LD-002R.ini
SET files[50]=Creality LD-002H.ini
SET files[51]=Creality LD-006.ini
SET files[52]=Creality HALOT-ONE CL-60.ini
SET files[53]=Creality HALOT-SKY CL-89.ini
SET files[54]=Voxelab Polaris 5.5.ini
SET files[55]=Voxelab Proxima 6.ini
SET files[56]=Voxelab Ceres 8.9.ini
SET files[57]=Longer Orange 10.ini
SET files[58]=Longer Orange 30.ini
SET files[59]=Longer Orange 120.ini
SET files[60]=Longer Orange 4K.ini
SET files[61]=Uniz IBEE.ini
echo PrusaSlicer Printers Instalation
echo This will replace printers, all changes will be discarded
+212
View File
@@ -0,0 +1,212 @@
//------------------------------------------------
//--- 010 Editor v8.0.1 Binary Template
//
// File: ctb, cbddlp, photon
// Authors: Tiago Conceição
//------------------------------------------------
LittleEndian();
struct HEADER {
uint Magic <fgcolor=cBlack, bgcolor=cRed>;
uint Version <fgcolor=cBlack, bgcolor=cRed>;
float BedSizeX <fgcolor=cBlack, bgcolor=cRed>;
float BedSizeY <fgcolor=cBlack, bgcolor=cRed>;
float BedSizeZ <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown1 <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown2 <fgcolor=cBlack, bgcolor=cRed>;
float TotalHeightMilimeter <fgcolor=cBlack, bgcolor=cRed>;
float LayerHeightMilimeter <fgcolor=cBlack, bgcolor=cRed>;
float LayerExposureSeconds <fgcolor=cBlack, bgcolor=cRed>;
float BottomExposureSeconds <fgcolor=cBlack, bgcolor=cRed>;
float LightOffDelay <fgcolor=cBlack, bgcolor=cRed>;
uint BottomLayersCount <fgcolor=cBlack, bgcolor=cRed>;
uint ResolutionX <fgcolor=cBlack, bgcolor=cRed>;
uint ResolutionY <fgcolor=cBlack, bgcolor=cRed>;
uint PreviewLargeOffsetAddress <fgcolor=cBlack, bgcolor=cRed>;
uint LayersDefinitionOffsetAddress <fgcolor=cBlack, bgcolor=cRed>;
uint LayerCount <fgcolor=cBlack, bgcolor=cRed>;
uint PreviewSmallOffsetAddress <fgcolor=cBlack, bgcolor=cRed>;
uint PrintTime <fgcolor=cBlack, bgcolor=cRed>;
uint ProjectorType <fgcolor=cBlack, bgcolor=cRed>;
uint PrintParametersOffsetAddress <fgcolor=cBlack, bgcolor=cRed>;
uint PrintParametersSize <fgcolor=cBlack, bgcolor=cRed>;
uint AntiAliasLevel <fgcolor=cBlack, bgcolor=cRed>;
ushort LightPWM <fgcolor=cBlack, bgcolor=cRed>;
ushort BottomLightPWM <fgcolor=cBlack, bgcolor=cRed>;
uint EncryptionKey <fgcolor=cBlack, bgcolor=cRed>;
uint SlicerOffset <fgcolor=cBlack, bgcolor=cRed>;
uint SlicerSize <fgcolor=cBlack, bgcolor=cRed>;
} header;
struct PREVIEW {
uint ResolutionX <fgcolor=cBlack, bgcolor=cRed>;
uint ResolutionY <fgcolor=cBlack, bgcolor=cRed>;
uint ImageOffset <fgcolor=cBlack, bgcolor=cRed>;
uint ImageLength <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown1 <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown2 <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown3 <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown4 <fgcolor=cBlack, bgcolor=cRed>;
byte Data[ImageLength] <fgcolor=cBlack, bgcolor=cRed>;
};
struct PRINT_PARAMETERS {
float BottomLiftHeight <fgcolor=cBlack, bgcolor=cRed>;
float BottomLiftSpeed <fgcolor=cBlack, bgcolor=cRed>;
float LiftHeight <fgcolor=cBlack, bgcolor=cRed>;
float LiftSpeed <fgcolor=cBlack, bgcolor=cRed>;
float RetractSpeed <fgcolor=cBlack, bgcolor=cRed>;
float VolumeMl <fgcolor=cBlack, bgcolor=cRed>;
float WeightG <fgcolor=cBlack, bgcolor=cRed>;
float CostDollars <fgcolor=cBlack, bgcolor=cRed>;
float BottomLightOffDelay <fgcolor=cBlack, bgcolor=cRed>;
float LightOffDelay <fgcolor=cBlack, bgcolor=cRed>;
uint BottomLayerCount <fgcolor=cBlack, bgcolor=cRed>;
uint Padding1 <fgcolor=cBlack, bgcolor=cRed>;
uint Padding2 <fgcolor=cBlack, bgcolor=cRed>;
uint Padding3 <fgcolor=cBlack, bgcolor=cRed>;
uint Padding4 <fgcolor=cBlack, bgcolor=cRed>;
};
struct SLICER_INFO {
float BottomLiftDistance2 <fgcolor=cBlack, bgcolor=cRed>;
float BottomLiftSpeed2 <fgcolor=cBlack, bgcolor=cRed>;
float LiftHeight2 <fgcolor=cBlack, bgcolor=cRed>;
float LiftSpeed2 <fgcolor=cBlack, bgcolor=cRed>;
float RetractHeight2 <fgcolor=cBlack, bgcolor=cRed>;
float RetractSpeed2 <fgcolor=cBlack, bgcolor=cRed>;
float RestTimeAfterLift <fgcolor=cBlack, bgcolor=cRed>;
uint MachineNameAddress <fgcolor=cBlack, bgcolor=cRed>;
uint MachineNameSize <fgcolor=cBlack, bgcolor=cRed>;
uint EncryptionMode <fgcolor=cBlack, bgcolor=cRed>; // 0/8 for cbddlp files, 0xF (15) for ctb files, 0x2000000F (536870927) for v3 ctb files allow per layer parameters
uint MysteriousId <fgcolor=cBlack, bgcolor=cRed>; // v3 = 305419896 | v4 = 27087675
uint AntiAliasLevel <fgcolor=cBlack, bgcolor=cRed>;
uint SoftwareVersion <fgcolor=cBlack, bgcolor=cRed>; // ctb v3 = 17171200 | ctb v4 = 16777216
float RestTimeAfterRetract <fgcolor=cBlack, bgcolor=cRed>;
float RestTimeAfterLift2 <fgcolor=cBlack, bgcolor=cRed>;
uint TransitionLayerCount <fgcolor=cBlack, bgcolor=cRed>;
uint Padding1 <fgcolor=cBlack, bgcolor=cRed>;
uint Padding2 <fgcolor=cBlack, bgcolor=cRed>;
uint Padding3 <fgcolor=cBlack, bgcolor=cRed>;
if(MachineNameAddress > 0 && MachineNameSize > 0)
{
char MachineName[MachineNameSize] <fgcolor=cBlack, bgcolor=cRed>;
}
};
if(header.PreviewLargeOffsetAddress > 0)
{
FSeek(header.PreviewLargeOffsetAddress);
PREVIEW previewLarge <fgcolor=cBlack, bgcolor=cYellow>;
}
if(header.PreviewSmallOffsetAddress > 0)
{
FSeek(header.PreviewSmallOffsetAddress);
PREVIEW previewSmall <fgcolor=cBlack, bgcolor=cYellow>;
}
if(header.PrintParametersOffsetAddress > 0){
FSeek(header.PrintParametersOffsetAddress);
PRINT_PARAMETERS parameters <fgcolor=cBlack, bgcolor=cYellow>;
}
if(header.SlicerOffset > 0){
FSeek(header.SlicerOffset);
SLICER_INFO SlicerInfo <fgcolor=cBlack, bgcolor=cYellow>;
}
if(header.Version >= 4)
{
struct PRINT_PARAMETERS_V4
{
char Disclaimer[320] <fgcolor=cBlack, bgcolor=cYellow>;
float BottomRetractSpeed <fgcolor=cWhite, bgcolor=cBlue>;
float BottomRetractSpeed2 <fgcolor=cWhite, bgcolor=cBlue>;
uint Padding1 <fgcolor=cWhite, bgcolor=cBlue>;
float Four1 <fgcolor=cWhite, bgcolor=cBlue>; // 4?
uint Padding2 <fgcolor=cWhite, bgcolor=cBlue>;
float Four2 <fgcolor=cWhite, bgcolor=cBlue>; // 4?
float RestTimeAfterRetract <fgcolor=cWhite, bgcolor=cBlue>;
float RestTimeAfterLift <fgcolor=cWhite, bgcolor=cBlue>;
float RestTimeBeforeLift <fgcolor=cWhite, bgcolor=cBlue>;
float BottomRetractHeight2 <fgcolor=cWhite, bgcolor=cBlue>;
float Unknown1 <fgcolor=cWhite, bgcolor=cBlue>; // 2955.996 or uint:1161347054 but changes
uint Unknown2 <fgcolor=cWhite, bgcolor=cBlue>; // 73470 but changes
uint Unknown3 <fgcolor=cWhite, bgcolor=cBlue>; // 5?
uint Unknown4 <fgcolor=cWhite, bgcolor=cBlue>; // 139 but changes
uint Padding3 <fgcolor=cWhite, bgcolor=cBlue>;
uint Padding4 <fgcolor=cWhite, bgcolor=cBlue>;
uint Padding5 <fgcolor=cWhite, bgcolor=cBlue>;
uint Padding6 <fgcolor=cWhite, bgcolor=cBlue>;
uint Unknown5 <fgcolor=cWhite, bgcolor=cBlue>; // 23047 but changes
uint Unknown6 <fgcolor=cWhite, bgcolor=cBlue>; // 320 but changes
byte Reserved[420] <fgcolor=cWhite, bgcolor=cBlue>;
} printParametersV4;
}
typedef struct() {
float LayerPositionZ <fgcolor=cBlack, bgcolor=cRed>;
float LayerExposure <fgcolor=cBlack, bgcolor=cRed>;
float LightOffSeconds <fgcolor=cBlack, bgcolor=cRed>;
uint DataAddress <fgcolor=cBlack, bgcolor=cRed>;
uint DataSize <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown1 <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown2 <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown3 <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown4 <fgcolor=cBlack, bgcolor=cRed>;
} LAYER_DATA;
typedef struct() {
LAYER_DATA LayerData <fgcolor=cBlack, bgcolor=cRed>;
uint TotalSize <fgcolor=cBlack, bgcolor=cRed>;
float LiftHeight <fgcolor=cBlack, bgcolor=cRed>;
float LiftSpeed <fgcolor=cBlack, bgcolor=cRed>;
float LiftHeight2 <fgcolor=cBlack, bgcolor=cRed>;
float LiftSpeed2 <fgcolor=cBlack, bgcolor=cRed>;
float RetractSpeed <fgcolor=cBlack, bgcolor=cRed>;
float RetractHeight2 <fgcolor=cBlack, bgcolor=cRed>;
float RetractSpeed2 <fgcolor=cBlack, bgcolor=cRed>;
float RestTimeBeforeLift <fgcolor=cBlack, bgcolor=cRed>;
float RestTimeAfterLift <fgcolor=cBlack, bgcolor=cRed>;
float RestTimeAfterRetract <fgcolor=cBlack, bgcolor=cRed>;
float LightPWM <fgcolor=cBlack, bgcolor=cRed>;
} LAYER_DATAEX;
typedef struct(int size) {
byte layerDataBlock[size] <fgcolor=cBlack, bgcolor=cGreen>;
} LAYER_RLE;
FSeek(header.LayersDefinitionOffsetAddress);
struct LAYERS {
local int aa;
local int i;
local uint currentPos;
for( aa = 0; aa < header.AntiAliasLevel; aa++)
{
for( i = 0; i < header.LayerCount; i++ ){
LAYER_DATA layerData <fgcolor=cBlack, bgcolor=cYellow>;
currentPos = FTell();
if(header.Version >= 3)
{
FSeek(layerData.DataAddress - 84);
LAYER_DATAEX layerDataEx;
}
FSeek(layerData.DataAddress);
LAYER_RLE layerRLE(layerData.DataSize);
FSeek(currentPos);
}
}
} layers;
+1 -1
View File
@@ -17,7 +17,7 @@ typedef struct(int size) {
} rgbPreviewImageRawData;
struct HEADER {
char name[8] <fgcolor=cBlack, bgcolor=cWhite>;
char Name[8] <fgcolor=cBlack, bgcolor=cWhite>;
uint32 Uint_08 <fgcolor=cBlack, bgcolor=cRed>;
uint32 Uint_0C <fgcolor=cBlack, bgcolor=cRed>;
uint32 PrinterModel <fgcolor=cBlack, bgcolor=cRed>;