Skip to content

Commit

Permalink
v3.2.0
Browse files Browse the repository at this point in the history
- **Core:**
   - (Add) Machine presets and able to load machine collection from PrusaSlicer
   - (Improvement) Core: Reference EmguCV runtimes into core instead of the UI project
- **File formats:**
   - **CXDLP:**
      - (Add) Detection support for Halot One Pro
      - (Add) Detection support for Halot One Plus
      - (Add) Detection support for Halot Sky Plus
      - (Add) Detection support for Halot Lite
      - (Improvement) Better handling and detection of printer model when converting
      - (Improvement) Discovered more fields meanings on format
      - (Fix) Exposure time in format is `round(time * 10, 1)`
      - (Fix) Speeds in format are in mm/s, was using mm/min before
   - (Add) JXS format for Uniformation GKone [Zip+GCode]
   - (Improvement) Saving and converting files now handle the file backup on Core instead on the UI, which prevents scripts and other projects lose the original file in case of error while saving
   - (Fix) After load files they was flagged as requiring a full encode, preventing fast save a fresh file
- **UVtoolsCmd:**
   - Bring back the commandline project
   - Consult README to see the available commands and syntax
   - Old terminal commands on UVtools still works for now, but consider switch to UVtoolsCmd or redirect the command using `UVtools --cmd "commands"`
- **Tools:**
   - **Change print resolution:**
      - (Add) Allow to change the display size to match the new printer
      - (Add) Machine presets to help set both resolution and display size to a correct printer and auto set fix pixel ratio
      - (Improvement) Real pixel pitch fixer due new display size information, this allow full transfers between different printers "without" invalidating the model size
      - (Improvement) Better arrangement of  the layout
   - (Add) Infill: Option "Reinforce infill if possible", it was always on before, now default is off and configurable
   - (Improvement) Always allow to export settings from tools
- **GCode:**
   - (Improvement) After print the last layer, do one lift with the same layer settings before attempt a fast move to top
   - (Improvement) Use the highest defined speed to send the build plate to top after finish print
   - (Improvement) Append a wait sync command in the end of gcode if needed
   - (Fix) When lift without a retract it still output the motor sync delay for the retract time and the wait time after retract
- **PrusaSlicer:**
   - (Add) Printer: Creality Halot One Pro CL-70
   - (Add) Printer: Creality Halot One Plus CL-79
   - (Add) Printer: Creality Halot Sky Plus CL-92
   - (Add) Printer: Creality Halot Lite CL-89L
   - (Add) Printer: Creality Halot Lite CL-89L
   - (Add) Printer: Creality CT133 Pro
   - (Add) Printer: Creality CT-005 Pro
   - (Add) Printer: Uniformation GKone
   - (Add) Printer: FlashForge Foto 8.9S
   - (Add) Printer: Elegoo Mars 2
   - (Improvement) Rename all Creality printers
   - (Fix) Creality model in print notes
  • Loading branch information
sn4k3 committed Mar 26, 2022
1 parent 1d23048 commit 57b8a9d
Show file tree
Hide file tree
Showing 104 changed files with 3,556 additions and 1,031 deletions.
50 changes: 50 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,55 @@
# Changelog

## 26/03/2022 - v3.2.0

- **Core:**
- (Add) Machine presets and able to load machine collection from PrusaSlicer
- (Improvement) Core: Reference EmguCV runtimes into core instead of the UI project
- **File formats:**
- **CXDLP:**
- (Add) Detection support for Halot One Pro
- (Add) Detection support for Halot One Plus
- (Add) Detection support for Halot Sky Plus
- (Add) Detection support for Halot Lite
- (Improvement) Better handling and detection of printer model when converting
- (Improvement) Discovered more fields meanings on format
- (Fix) Exposure time in format is `round(time * 10, 1)`
- (Fix) Speeds in format are in mm/s, was using mm/min before
- (Add) JXS format for Uniformation GKone [Zip+GCode]
- (Improvement) Saving and converting files now handle the file backup on Core instead on the UI, which prevents scripts and other projects lose the original file in case of error while saving
- (Improvement) When saving files the .tmp extension is no longer shown on `FileFullPath`, which now `TemporaryOutputFileFullPath` is who holds the file.tmp
- (Fix) After load files they was flagged as requiring a full encode, preventing fast save a fresh file
- **UVtoolsCmd:**
- Bring back the commandline project
- Consult README to see the available commands and syntax
- Old terminal commands on UVtools still works for now, but consider switch to UVtoolsCmd or redirect the command using `UVtools --cmd "commands"`
- **Tools:**
- **Change print resolution:**
- (Add) Allow to change the display size to match the new printer
- (Add) Machine presets to help set both resolution and display size to a correct printer and auto set fix pixel ratio
- (Improvement) Real pixel pitch fixer due new display size information, this allow full transfers between different printers "without" invalidating the model size
- (Improvement) Better arrangement of the layout
- (Add) Infill: Option "Reinforce infill if possible", it was always on before, now default is off and configurable
- (Improvement) Always allow to export settings from tools
- **GCode:**
- (Improvement) After print the last layer, do one lift with the same layer settings before attempt a fast move to top
- (Improvement) Use the highest defined speed to send the build plate to top after finish print
- (Improvement) Append a wait sync command in the end of gcode if needed
- (Fix) When lift without a retract it still output the motor sync delay for the retract time and the wait time after retract
- **PrusaSlicer:**
- (Add) Printer: Creality Halot One Pro CL-70
- (Add) Printer: Creality Halot One Plus CL-79
- (Add) Printer: Creality Halot Sky Plus CL-92
- (Add) Printer: Creality Halot Lite CL-89L
- (Add) Printer: Creality Halot Lite CL-89L
- (Add) Printer: Creality CT133 Pro
- (Add) Printer: Creality CT-005 Pro
- (Add) Printer: Uniformation GKone
- (Add) Printer: FlashForge Foto 8.9S
- (Add) Printer: Elegoo Mars 2
- (Improvement) Rename all Creality printers
- (Fix) Creality model in print notes

## 21/03/2022 - v3.1.1

- (Add) Raft relief: Tabs type - Creates tabs around the raft to easily insert a tool under it and detach the raft from build plate
Expand Down
42 changes: 40 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ But also, i need victims for test subject. Proceed at your own risk!
- PWMX (Photon Workshop)
- PWMB (Photon Workshop)
- PWSQ (Photon Workshop)
- JXS (GKone Slicer)
- ZCode (UnizMaker)
- ZCodex (Z-Suite)
- CWS (NovaMaker)
Expand Down Expand Up @@ -146,15 +147,52 @@ Replace the "xxx" by your desired value in the correct units

https://github.com/sn4k3/UVtools/wiki/Sliced-File-Conversion

# Command-line arguments
# Command-line

The UVtools executable allow to set some arguments to do special functions:
## UVtoolsCmd (Console) executable

```bash
Usage:
UVtoolsCmd [command] [options]

Options:
-q, --quiet Make output silent but exceptions error will still show
--no-progress Show no progress
--core-version Show core version information
--version Show version information
-?, -h, --help Show help and usage information

Commands:
run <input-file> <files> Run operations and/or scripts
convert <input-file> <target-type/ext> <output-file> Convert input file into a output file format by a known type or
extension []
extract <input-file> <output-folder> Extract file contents to a folder []
copy-parameters <input-file> <target-files> Copy print parameters from one file to another
print-properties <input-file> Prints available properties
print-layers <input-file> Prints layer(s) properties
print-gcode <input-file> Prints the gcode of the file if available
print-machines Prints machine settings
```
Note: On each command you can use -? to see specific command help and extra options
## UVtools (UI) executable
- **Open file(s):**
- **Syntax:** UVtools \<file1\> [file2] [file3] ...
- **Example 1:** UVtools C:\model.osla
- **Example 2:** UVtools C:\model.zip D:\other_model.osla
- **Note:** When a invalid file is pass, the program will open as default.
- **Redirect a command to UVtoolsCmd:**
- **Syntax:** UVtools --cmd \<commands ...\>
- **Example 1:** UVtools --cmd convert C:\model.osla zip
- **Note:** This can be used when UVtoolsCmd is not directly exposed, for example if you are running via a .AppImage.
All commands will be redirected to `UVtoolsCmd` and the UI will not run. It still shows the terminal window.
### Legacy
The following commands are the old way and commands under the UI executable, they will be removed in near future, try to not use them, please prefer **UVtoolsCmd**.
- **Convert a file into another type(s)**
- **Syntax:** UVtools -c/--convert \<input_file\> \<output_file1_or_ext\> [output_file2_or_ext] ...
- **Example 1:** UVtools -c model.zip osla
Expand Down
21 changes: 12 additions & 9 deletions Scripts/010 Editor/cxdlp.bt
Original file line number Diff line number Diff line change
Expand Up @@ -100,15 +100,18 @@ if(header.Version >= 3){
char SoftwareName[SoftwareNameSize];
uint32 MaterialNameSize;
char MaterialName[MaterialNameSize];
//ubyte offset[67-SoftwareNameSize-MaterialNameSize];
//ubyte offset[20];
uint Unknown;
uint Unknown;
uint Unknown;
uint Unknown;
ubyte Unknown;
ubyte LightPWM;
ushort Unknown;
ubyte DistortionCompensationEnabled;
uint DistortionCompensationThickness;
uint DistortionCompensationFocalLength;
ubyte XYAxisProfileCompensationEnabled;
ushort XYAxisProfileCompensation;
ubyte ZPenetrationCompensationEnabled;
ushort ZPenetrationCompensationLevel;
ubyte AntiAliasEnabled;
ubyte AntiAliasGreyMinValue;
ubyte AntiAliasGreyMaxValue;
ubyte ImageBlurEnabled;
ubyte ImageBlurLevel;
ubyte rn0[2] <fgcolor=cBlack, bgcolor=cRed>;
} slicerInfoV3;
}
Expand Down
206 changes: 108 additions & 98 deletions Scripts/ImportPrusaSlicerData.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,111 +5,121 @@ $output_dir = 'PrusaSlicer'
$print_dir = 'sla_print'
$printer_dir = 'printer'

$printers =
'UVtools Prusa SL1.ini',
'UVtools Prusa SL1S Speed.ini',
'EPAX E6 Mono.ini',
'EPAX E10 Mono.ini',
'EPAX E10 5K.ini',
'EPAX E10 8K.ini',
'EPAX X10 8K.ini',
'EPAX X1.ini',
'EPAX X1 4KS.ini',
'EPAX X1K 2K Mono.ini',
'EPAX X10.ini',
'EPAX X10 4K Mono.ini',
'EPAX X10 5K.ini',
'EPAX X133 4K Mono.ini',
'EPAX X133 6K.ini',
'EPAX X156 4K Color.ini',
'EPAX DX1 Pro.ini',
'EPAX DX10 Pro 5K.ini',
'EPAX DX10 Pro 8K.ini',
'Zortrax Inkspire.ini',
'Nova3D Elfin.ini',
'Nova3D Elfin2.ini',
'Nova3D Elfin2 Mono SE.ini',
'Nova3D Elfin3 Mini.ini',
'Nova3D Bene4.ini',
'Nova3D Bene4 Mono.ini',
'Nova3D Bene5.ini',
'Nova3D Whale.ini',
'Nova3D Whale2.ini',
'AnyCubic Photon.ini',
'AnyCubic Photon S.ini',
'AnyCubic Photon Zero.ini',
'AnyCubic Photon X.ini',
'AnyCubic Photon Ultra.ini',
'AnyCubic Photon Mono.ini',
'AnyCubic Photon Mono 4K.ini',
'AnyCubic Photon Mono SE.ini',
'AnyCubic Photon Mono X.ini',
'AnyCubic Photon Mono X 6K.ini',
'AnyCubic Photon Mono SQ.ini',
'Elegoo Mars.ini',
'Elegoo Mars 2 Pro.ini',
'Elegoo Mars 3.ini',
'Elegoo Mars C.ini',
'Elegoo Saturn.ini',
'Elegoo Jupiter.ini',
'Peopoly Phenom.ini',
'Peopoly Phenom L.ini',
'Peopoly Phenom Noir.ini',
'Peopoly Phenom XXL.ini',
'QIDI Shadow5.5.ini',
'QIDI Shadow6.0 Pro.ini',
'QIDI S-Box.ini',
'QIDI I-Box Mono.ini',
'Phrozen Shuffle.ini',
'Phrozen Shuffle Lite.ini',
'Phrozen Shuffle XL.ini',
'Phrozen Shuffle XL Lite.ini',
'Phrozen Shuffle 16.ini',
'Phrozen Shuffle 4K.ini',
'Phrozen Sonic.ini',
'Phrozen Sonic 4K.ini',
'Phrozen Sonic Mighty 4K.ini',
'Phrozen Sonic Mini.ini',
'Phrozen Sonic Mini 4K.ini',
'Phrozen Sonic Mini 8K.ini',
'Phrozen Transform.ini',
'Phrozen Sonic Mega 8K.ini',
'Kelant S400.ini',
'Wanhao D7.ini',
'Wanhao D8.ini',
'Wanhao CGR Mini Mono.ini',
'Wanhao CGR Mono.ini',
'Creality LD-002R.ini',
'Creality LD-002H.ini',
'Creality LD-006.ini',
'Creality HALOT-ONE CL-60.ini',
'Creality HALOT-SKY CL-89.ini',
'Creality HALOT-MAX CL-133.ini',
'Voxelab Polaris 5.5.ini',
'Voxelab Proxima 6.ini',
'Voxelab Ceres 8.9.ini',
'Longer Orange 10.ini',
'Longer Orange 30.ini',
'Longer Orange 120.ini',
'Longer Orange 4K.ini',
'Uniz IBEE.ini',
'FlashForge Explorer MAX.ini',
'FlashForge Focus 8.9.ini',
'FlashForge Focus 13.3.ini',
'FlashForge Foto 6.0.ini',
'FlashForge Foto 8.9.ini',
'FlashForge Foto 13.3.ini',
'FlashForge Hunter.ini'
;
#$printers =
# 'UVtools Prusa SL1.ini',
# 'UVtools Prusa SL1S Speed.ini',
# 'EPAX E6 Mono.ini',
# 'EPAX E10 Mono.ini',
# 'EPAX E10 5K.ini',
# 'EPAX E10 8K.ini',
# 'EPAX X10 8K.ini',
# 'EPAX X1.ini',
# 'EPAX X1 4KS.ini',
# 'EPAX X1K 2K Mono.ini',
# 'EPAX X10.ini',
# 'EPAX X10 4K Mono.ini',
# 'EPAX X10 5K.ini',
# 'EPAX X133 4K Mono.ini',
# 'EPAX X133 6K.ini',
# 'EPAX X156 4K Color.ini',
# 'EPAX DX1 Pro.ini',
# 'EPAX DX10 Pro 5K.ini',
# 'EPAX DX10 Pro 8K.ini',
# 'Zortrax Inkspire.ini',
# 'Nova3D Elfin.ini',
# 'Nova3D Elfin2.ini',
# 'Nova3D Elfin2 Mono SE.ini',
# 'Nova3D Elfin3 Mini.ini',
# 'Nova3D Bene4.ini',
# 'Nova3D Bene4 Mono.ini',
# 'Nova3D Bene5.ini',
# 'Nova3D Whale.ini',
# 'Nova3D Whale2.ini',
# 'AnyCubic Photon.ini',
# 'AnyCubic Photon S.ini',
# 'AnyCubic Photon Zero.ini',
# 'AnyCubic Photon X.ini',
# 'AnyCubic Photon Ultra.ini',
# 'AnyCubic Photon Mono.ini',
# 'AnyCubic Photon Mono 4K.ini',
# 'AnyCubic Photon Mono SE.ini',
# 'AnyCubic Photon Mono X.ini',
# 'AnyCubic Photon Mono X 6K.ini',
# 'AnyCubic Photon Mono SQ.ini',
# 'Elegoo Mars.ini',
# 'Elegoo Mars 2 Pro.ini',
# 'Elegoo Mars 3.ini',
# 'Elegoo Mars C.ini',
# 'Elegoo Saturn.ini',
# 'Elegoo Jupiter.ini',
# 'Peopoly Phenom.ini',
# 'Peopoly Phenom L.ini',
# 'Peopoly Phenom Noir.ini',
# 'Peopoly Phenom XXL.ini',
# 'QIDI Shadow5.5.ini',
# 'QIDI Shadow6.0 Pro.ini',
# 'QIDI S-Box.ini',
# 'QIDI I-Box Mono.ini',
# 'Phrozen Shuffle.ini',
# 'Phrozen Shuffle Lite.ini',
# 'Phrozen Shuffle XL.ini',
# 'Phrozen Shuffle XL Lite.ini',
# 'Phrozen Shuffle 16.ini',
# 'Phrozen Shuffle 4K.ini',
# 'Phrozen Sonic.ini',
# 'Phrozen Sonic 4K.ini',
# 'Phrozen Sonic Mighty 4K.ini',
# 'Phrozen Sonic Mini.ini',
# 'Phrozen Sonic Mini 4K.ini',
# 'Phrozen Sonic Mini 8K.ini',
# 'Phrozen Transform.ini',
# 'Phrozen Sonic Mega 8K.ini',
# 'Kelant S400.ini',
# 'Wanhao D7.ini',
# 'Wanhao D8.ini',
# 'Wanhao CGR Mini Mono.ini',
# 'Wanhao CGR Mono.ini',
# 'Creality LD-002R.ini',
# 'Creality LD-002H.ini',
# 'Creality LD-006.ini',
# 'Creality HALOT-ONE CL-60.ini',
# 'Creality HALOT-SKY CL-89.ini',
# 'Creality HALOT-MAX CL-133.ini',
# 'Voxelab Polaris 5.5.ini',
# 'Voxelab Proxima 6.ini',
# 'Voxelab Ceres 8.9.ini',
# 'Longer Orange 10.ini',
# 'Longer Orange 30.ini',
# 'Longer Orange 120.ini',
# 'Longer Orange 4K.ini',
# 'Uniz IBEE.ini',
# 'FlashForge Explorer MAX.ini',
# 'FlashForge Focus 8.9.ini',
# 'FlashForge Focus 13.3.ini',
# 'FlashForge Foto 6.0.ini',
# 'FlashForge Foto 8.9.ini',
# 'FlashForge Foto 13.3.ini',
# 'FlashForge Hunter.ini'
#;

Write-Output 'PrusaSlicer Printers Instalation'
Write-Output 'This will replace printers, all changes will be discarded'
Write-Output $input_dir
Write-Output $output_dir

foreach ($printer in $printers) {
xcopy /d /y "$input_dir\$printer_dir\$printer" "$output_dir\$printer_dir"
# Need to ignore FDM printers since they are on the same folder
Get-ChildItem "$input_dir\$printer_dir" -Filter "*.ini" |
Foreach-Object {
$content = Get-Content $_.FullName
$regex = $content -match 'printer_technology.*=.*(SLA)'
if($regex){
xcopy /d /y $_.FullName "$output_dir\$printer_dir"
}
}

#foreach ($printer in $printers) {
# xcopy /d /y "$input_dir\$printer_dir\$printer" "$output_dir\$printer_dir"
#}

Write-Output 'Importing Profiles'
xcopy /i /y /d "$input_dir\$print_dir" "$output_dir\$print_dir"
Loading

0 comments on commit 57b8a9d

Please sign in to comment.