mirror of
https://github.com/riegera2412/UVtools.git
synced 2026-07-08 17:42:31 +02:00
v1.3.5
* (Add) Pixel Dimming: Chamfer - Allow the number of walls pixels to be gradually varied as the operation progresses from the starting layer to the ending layer (#106) * (Add) PrusaSlicer print profiles: 0.01, 0.02, 0.03, 0.04, 0.15, 0.2 * (Change) Morph: "Fade" to "Chamfer" naming, created profiles need redo * (Change) Pixel Dimming: Allow start with 0px walls when using "Walls Only" * (Change) PrusaSlicer print profiles names, reduced bottom layers and raft height * (Remove) PrusaSlicer print profiles with 3 digit z precision (0.025 and 0.035) * (Fix) PW0, PWS, PWMX, PWMO, PWMS, PWX file formats, where 4 offsets (16 bytes) were missing on preview image, leading to wrong table size. Previous converted files with UVtools wont open from now on, you need to reconvert them. (ezrec/uv3dp#124) * (Fix) Unable to run Re-Height tool due a rounding problem on some cases (#101) * (Fix) Layer preview end with exception when no per layer settings are available (SL1 case)
This commit is contained in:
@@ -1,5 +1,17 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 04/11/2020 - v1.3.5
|
||||||
|
|
||||||
|
* (Add) Pixel Dimming: Chamfer - Allow the number of walls pixels to be gradually varied as the operation progresses from the starting layer to the ending layer (#106)
|
||||||
|
* (Add) PrusaSlicer print profiles: 0.01, 0.02, 0.03, 0.04, 0.15, 0.2
|
||||||
|
* (Change) Morph: "Fade" to "Chamfer" naming, created profiles need redo
|
||||||
|
* (Change) Pixel Dimming: Allow start with 0px walls when using "Walls Only"
|
||||||
|
* (Change) PrusaSlicer print profiles names, reduced bottom layers and raft height
|
||||||
|
* (Remove) PrusaSlicer print profiles with 3 digit z precision (0.025 and 0.035)
|
||||||
|
* (Fix) PW0, PWS, PWMX, PWMO, PWMS, PWX file formats, where 4 offsets (16 bytes) were missing on preview image, leading to wrong table size. Previous converted files with UVtools wont open from now on, you need to reconvert them. (ezrec/uv3dp#124)
|
||||||
|
* (Fix) Unable to run Re-Height tool due a rounding problem on some cases (#101)
|
||||||
|
* (Fix) Layer preview end with exception when no per layer settings are available (SL1 case)
|
||||||
|
|
||||||
## 26/11/2020 - v1.3.4
|
## 26/11/2020 - v1.3.4
|
||||||
|
|
||||||
* (Add) Infill: CubicDynamicLink - Alternates centers with lateral links, consume same resin as center linked and make model/infill stronger.
|
* (Add) Infill: CubicDynamicLink - Alternates centers with lateral links, consume same resin as center linked and make model/infill stronger.
|
||||||
|
|||||||
+3
-3
@@ -1,4 +1,4 @@
|
|||||||
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:37:18 UTC
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:52:44 UTC
|
||||||
compatible_printers =
|
compatible_printers =
|
||||||
compatible_printers_condition =
|
compatible_printers_condition =
|
||||||
default_sla_print_profile =
|
default_sla_print_profile =
|
||||||
@@ -8,7 +8,7 @@ hollowing_enable = 0
|
|||||||
hollowing_min_thickness = 3
|
hollowing_min_thickness = 3
|
||||||
hollowing_quality = 0.5
|
hollowing_quality = 0.5
|
||||||
inherits = 0.025 UltraDetail
|
inherits = 0.025 UltraDetail
|
||||||
layer_height = 0.025
|
layer_height = 0.01
|
||||||
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
||||||
pad_around_object = 0
|
pad_around_object = 0
|
||||||
pad_around_object_everywhere = 0
|
pad_around_object_everywhere = 0
|
||||||
@@ -21,7 +21,7 @@ pad_object_connector_width = 0.5
|
|||||||
pad_object_gap = 1
|
pad_object_gap = 1
|
||||||
pad_wall_height = 0
|
pad_wall_height = 0
|
||||||
pad_wall_slope = 90
|
pad_wall_slope = 90
|
||||||
pad_wall_thickness = 1
|
pad_wall_thickness = 0.4
|
||||||
sla_print_settings_id =
|
sla_print_settings_id =
|
||||||
slice_closing_radius = 0.005
|
slice_closing_radius = 0.005
|
||||||
support_base_diameter = 3
|
support_base_diameter = 3
|
||||||
+3
-3
@@ -1,4 +1,4 @@
|
|||||||
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:36:13 UTC
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:52:52 UTC
|
||||||
compatible_printers =
|
compatible_printers =
|
||||||
compatible_printers_condition =
|
compatible_printers_condition =
|
||||||
default_sla_print_profile =
|
default_sla_print_profile =
|
||||||
@@ -8,7 +8,7 @@ hollowing_enable = 0
|
|||||||
hollowing_min_thickness = 3
|
hollowing_min_thickness = 3
|
||||||
hollowing_quality = 0.5
|
hollowing_quality = 0.5
|
||||||
inherits = 0.025 UltraDetail
|
inherits = 0.025 UltraDetail
|
||||||
layer_height = 0.025
|
layer_height = 0.01
|
||||||
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
||||||
pad_around_object = 0
|
pad_around_object = 0
|
||||||
pad_around_object_everywhere = 0
|
pad_around_object_everywhere = 0
|
||||||
@@ -21,7 +21,7 @@ pad_object_connector_width = 0.5
|
|||||||
pad_object_gap = 1
|
pad_object_gap = 1
|
||||||
pad_wall_height = 0
|
pad_wall_height = 0
|
||||||
pad_wall_slope = 90
|
pad_wall_slope = 90
|
||||||
pad_wall_thickness = 1
|
pad_wall_thickness = 0.4
|
||||||
sla_print_settings_id =
|
sla_print_settings_id =
|
||||||
slice_closing_radius = 0.005
|
slice_closing_radius = 0.005
|
||||||
support_base_diameter = 3
|
support_base_diameter = 3
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:51:04 UTC
|
||||||
|
compatible_printers =
|
||||||
|
compatible_printers_condition =
|
||||||
|
default_sla_print_profile =
|
||||||
|
faded_layers = 6
|
||||||
|
hollowing_closing_distance = 2
|
||||||
|
hollowing_enable = 0
|
||||||
|
hollowing_min_thickness = 3
|
||||||
|
hollowing_quality = 0.5
|
||||||
|
inherits = 0.025 UltraDetail
|
||||||
|
layer_height = 0.02
|
||||||
|
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
||||||
|
pad_around_object = 0
|
||||||
|
pad_around_object_everywhere = 0
|
||||||
|
pad_brim_size = 1.6
|
||||||
|
pad_enable = 1
|
||||||
|
pad_max_merge_distance = 50
|
||||||
|
pad_object_connector_penetration = 0.3
|
||||||
|
pad_object_connector_stride = 10
|
||||||
|
pad_object_connector_width = 0.5
|
||||||
|
pad_object_gap = 1
|
||||||
|
pad_wall_height = 0
|
||||||
|
pad_wall_slope = 90
|
||||||
|
pad_wall_thickness = 0.4
|
||||||
|
sla_print_settings_id =
|
||||||
|
slice_closing_radius = 0.005
|
||||||
|
support_base_diameter = 3
|
||||||
|
support_base_height = 1
|
||||||
|
support_base_safety_distance = 1
|
||||||
|
support_buildplate_only = 0
|
||||||
|
support_critical_angle = 45
|
||||||
|
support_head_front_diameter = 1
|
||||||
|
support_head_penetration = 0.6
|
||||||
|
support_head_width = 2
|
||||||
|
support_max_bridge_length = 10
|
||||||
|
support_max_bridges_on_pillar = 3
|
||||||
|
support_max_pillar_link_distance = 10
|
||||||
|
support_object_elevation = 5
|
||||||
|
support_pillar_connection_mode = zigzag
|
||||||
|
support_pillar_diameter = 1.5
|
||||||
|
support_pillar_widening_factor = 0
|
||||||
|
support_points_density_relative = 100
|
||||||
|
support_points_minimal_distance = 1
|
||||||
|
supports_enable = 1
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:50:13 UTC
|
||||||
|
compatible_printers =
|
||||||
|
compatible_printers_condition =
|
||||||
|
default_sla_print_profile =
|
||||||
|
faded_layers = 6
|
||||||
|
hollowing_closing_distance = 2
|
||||||
|
hollowing_enable = 0
|
||||||
|
hollowing_min_thickness = 3
|
||||||
|
hollowing_quality = 0.5
|
||||||
|
inherits = 0.025 UltraDetail
|
||||||
|
layer_height = 0.02
|
||||||
|
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
||||||
|
pad_around_object = 0
|
||||||
|
pad_around_object_everywhere = 0
|
||||||
|
pad_brim_size = 1.6
|
||||||
|
pad_enable = 1
|
||||||
|
pad_max_merge_distance = 50
|
||||||
|
pad_object_connector_penetration = 0.3
|
||||||
|
pad_object_connector_stride = 10
|
||||||
|
pad_object_connector_width = 0.5
|
||||||
|
pad_object_gap = 1
|
||||||
|
pad_wall_height = 0
|
||||||
|
pad_wall_slope = 90
|
||||||
|
pad_wall_thickness = 0.4
|
||||||
|
sla_print_settings_id =
|
||||||
|
slice_closing_radius = 0.005
|
||||||
|
support_base_diameter = 3
|
||||||
|
support_base_height = 1
|
||||||
|
support_base_safety_distance = 1
|
||||||
|
support_buildplate_only = 0
|
||||||
|
support_critical_angle = 45
|
||||||
|
support_head_front_diameter = 0.8
|
||||||
|
support_head_penetration = 0.4
|
||||||
|
support_head_width = 2
|
||||||
|
support_max_bridge_length = 10
|
||||||
|
support_max_bridges_on_pillar = 3
|
||||||
|
support_max_pillar_link_distance = 10
|
||||||
|
support_object_elevation = 5
|
||||||
|
support_pillar_connection_mode = zigzag
|
||||||
|
support_pillar_diameter = 1.2
|
||||||
|
support_pillar_widening_factor = 0
|
||||||
|
support_points_density_relative = 100
|
||||||
|
support_points_minimal_distance = 1
|
||||||
|
supports_enable = 1
|
||||||
+4
-4
@@ -1,14 +1,14 @@
|
|||||||
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:34:54 UTC
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:52:05 UTC
|
||||||
compatible_printers =
|
compatible_printers =
|
||||||
compatible_printers_condition =
|
compatible_printers_condition =
|
||||||
default_sla_print_profile =
|
default_sla_print_profile =
|
||||||
faded_layers = 10
|
faded_layers = 4
|
||||||
hollowing_closing_distance = 2
|
hollowing_closing_distance = 2
|
||||||
hollowing_enable = 0
|
hollowing_enable = 0
|
||||||
hollowing_min_thickness = 3
|
hollowing_min_thickness = 3
|
||||||
hollowing_quality = 0.5
|
hollowing_quality = 0.5
|
||||||
inherits = 0.035 Detail
|
inherits = 0.035 Detail
|
||||||
layer_height = 0.035
|
layer_height = 0.03
|
||||||
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
||||||
pad_around_object = 0
|
pad_around_object = 0
|
||||||
pad_around_object_everywhere = 0
|
pad_around_object_everywhere = 0
|
||||||
@@ -21,7 +21,7 @@ pad_object_connector_width = 0.5
|
|||||||
pad_object_gap = 1
|
pad_object_gap = 1
|
||||||
pad_wall_height = 0
|
pad_wall_height = 0
|
||||||
pad_wall_slope = 90
|
pad_wall_slope = 90
|
||||||
pad_wall_thickness = 1
|
pad_wall_thickness = 0.4
|
||||||
sla_print_settings_id =
|
sla_print_settings_id =
|
||||||
slice_closing_radius = 0.005
|
slice_closing_radius = 0.005
|
||||||
support_base_diameter = 3
|
support_base_diameter = 3
|
||||||
+4
-4
@@ -1,14 +1,14 @@
|
|||||||
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:34:31 UTC
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:52:15 UTC
|
||||||
compatible_printers =
|
compatible_printers =
|
||||||
compatible_printers_condition =
|
compatible_printers_condition =
|
||||||
default_sla_print_profile =
|
default_sla_print_profile =
|
||||||
faded_layers = 10
|
faded_layers = 4
|
||||||
hollowing_closing_distance = 2
|
hollowing_closing_distance = 2
|
||||||
hollowing_enable = 0
|
hollowing_enable = 0
|
||||||
hollowing_min_thickness = 3
|
hollowing_min_thickness = 3
|
||||||
hollowing_quality = 0.5
|
hollowing_quality = 0.5
|
||||||
inherits = 0.035 Detail
|
inherits = 0.035 Detail
|
||||||
layer_height = 0.035
|
layer_height = 0.03
|
||||||
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
||||||
pad_around_object = 0
|
pad_around_object = 0
|
||||||
pad_around_object_everywhere = 0
|
pad_around_object_everywhere = 0
|
||||||
@@ -21,7 +21,7 @@ pad_object_connector_width = 0.5
|
|||||||
pad_object_gap = 1
|
pad_object_gap = 1
|
||||||
pad_wall_height = 0
|
pad_wall_height = 0
|
||||||
pad_wall_slope = 90
|
pad_wall_slope = 90
|
||||||
pad_wall_thickness = 1
|
pad_wall_thickness = 0.4
|
||||||
sla_print_settings_id =
|
sla_print_settings_id =
|
||||||
slice_closing_radius = 0.005
|
slice_closing_radius = 0.005
|
||||||
support_base_diameter = 3
|
support_base_diameter = 3
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:53:43 UTC
|
||||||
|
compatible_printers =
|
||||||
|
compatible_printers_condition =
|
||||||
|
default_sla_print_profile =
|
||||||
|
faded_layers = 4
|
||||||
|
hollowing_closing_distance = 2
|
||||||
|
hollowing_enable = 0
|
||||||
|
hollowing_min_thickness = 3
|
||||||
|
hollowing_quality = 0.5
|
||||||
|
inherits = 0.05 Normal
|
||||||
|
layer_height = 0.04
|
||||||
|
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
||||||
|
pad_around_object = 0
|
||||||
|
pad_around_object_everywhere = 0
|
||||||
|
pad_brim_size = 1.6
|
||||||
|
pad_enable = 1
|
||||||
|
pad_max_merge_distance = 50
|
||||||
|
pad_object_connector_penetration = 0.3
|
||||||
|
pad_object_connector_stride = 10
|
||||||
|
pad_object_connector_width = 0.5
|
||||||
|
pad_object_gap = 1
|
||||||
|
pad_wall_height = 0
|
||||||
|
pad_wall_slope = 90
|
||||||
|
pad_wall_thickness = 0.4
|
||||||
|
sla_print_settings_id =
|
||||||
|
slice_closing_radius = 0.005
|
||||||
|
support_base_diameter = 3
|
||||||
|
support_base_height = 1
|
||||||
|
support_base_safety_distance = 1
|
||||||
|
support_buildplate_only = 0
|
||||||
|
support_critical_angle = 45
|
||||||
|
support_head_front_diameter = 1
|
||||||
|
support_head_penetration = 0.6
|
||||||
|
support_head_width = 3
|
||||||
|
support_max_bridge_length = 10
|
||||||
|
support_max_bridges_on_pillar = 3
|
||||||
|
support_max_pillar_link_distance = 10
|
||||||
|
support_object_elevation = 5
|
||||||
|
support_pillar_connection_mode = zigzag
|
||||||
|
support_pillar_diameter = 1.5
|
||||||
|
support_pillar_widening_factor = 0
|
||||||
|
support_points_density_relative = 100
|
||||||
|
support_points_minimal_distance = 1
|
||||||
|
supports_enable = 1
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:53:55 UTC
|
||||||
|
compatible_printers =
|
||||||
|
compatible_printers_condition =
|
||||||
|
default_sla_print_profile =
|
||||||
|
faded_layers = 4
|
||||||
|
hollowing_closing_distance = 2
|
||||||
|
hollowing_enable = 0
|
||||||
|
hollowing_min_thickness = 3
|
||||||
|
hollowing_quality = 0.5
|
||||||
|
inherits = 0.05 Normal
|
||||||
|
layer_height = 0.04
|
||||||
|
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
||||||
|
pad_around_object = 0
|
||||||
|
pad_around_object_everywhere = 0
|
||||||
|
pad_brim_size = 1.6
|
||||||
|
pad_enable = 1
|
||||||
|
pad_max_merge_distance = 50
|
||||||
|
pad_object_connector_penetration = 0.3
|
||||||
|
pad_object_connector_stride = 10
|
||||||
|
pad_object_connector_width = 0.5
|
||||||
|
pad_object_gap = 1
|
||||||
|
pad_wall_height = 0
|
||||||
|
pad_wall_slope = 90
|
||||||
|
pad_wall_thickness = 0.4
|
||||||
|
sla_print_settings_id =
|
||||||
|
slice_closing_radius = 0.005
|
||||||
|
support_base_diameter = 3
|
||||||
|
support_base_height = 1
|
||||||
|
support_base_safety_distance = 1
|
||||||
|
support_buildplate_only = 0
|
||||||
|
support_critical_angle = 45
|
||||||
|
support_head_front_diameter = 0.8
|
||||||
|
support_head_penetration = 0.4
|
||||||
|
support_head_width = 3
|
||||||
|
support_max_bridge_length = 10
|
||||||
|
support_max_bridges_on_pillar = 3
|
||||||
|
support_max_pillar_link_distance = 10
|
||||||
|
support_object_elevation = 5
|
||||||
|
support_pillar_connection_mode = zigzag
|
||||||
|
support_pillar_diameter = 1.2
|
||||||
|
support_pillar_widening_factor = 0
|
||||||
|
support_points_density_relative = 100
|
||||||
|
support_points_minimal_distance = 1
|
||||||
|
supports_enable = 1
|
||||||
+3
-3
@@ -1,8 +1,8 @@
|
|||||||
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:24:57 UTC
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:54:04 UTC
|
||||||
compatible_printers =
|
compatible_printers =
|
||||||
compatible_printers_condition =
|
compatible_printers_condition =
|
||||||
default_sla_print_profile =
|
default_sla_print_profile =
|
||||||
faded_layers = 10
|
faded_layers = 3
|
||||||
hollowing_closing_distance = 2
|
hollowing_closing_distance = 2
|
||||||
hollowing_enable = 0
|
hollowing_enable = 0
|
||||||
hollowing_min_thickness = 3
|
hollowing_min_thickness = 3
|
||||||
@@ -21,7 +21,7 @@ pad_object_connector_width = 0.5
|
|||||||
pad_object_gap = 1
|
pad_object_gap = 1
|
||||||
pad_wall_height = 0
|
pad_wall_height = 0
|
||||||
pad_wall_slope = 90
|
pad_wall_slope = 90
|
||||||
pad_wall_thickness = 1
|
pad_wall_thickness = 0.4
|
||||||
sla_print_settings_id =
|
sla_print_settings_id =
|
||||||
slice_closing_radius = 0.005
|
slice_closing_radius = 0.005
|
||||||
support_base_diameter = 3
|
support_base_diameter = 3
|
||||||
+3
-3
@@ -1,8 +1,8 @@
|
|||||||
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:23:55 UTC
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:54:10 UTC
|
||||||
compatible_printers =
|
compatible_printers =
|
||||||
compatible_printers_condition =
|
compatible_printers_condition =
|
||||||
default_sla_print_profile =
|
default_sla_print_profile =
|
||||||
faded_layers = 10
|
faded_layers = 3
|
||||||
hollowing_closing_distance = 2
|
hollowing_closing_distance = 2
|
||||||
hollowing_enable = 0
|
hollowing_enable = 0
|
||||||
hollowing_min_thickness = 3
|
hollowing_min_thickness = 3
|
||||||
@@ -21,7 +21,7 @@ pad_object_connector_width = 0.5
|
|||||||
pad_object_gap = 1
|
pad_object_gap = 1
|
||||||
pad_wall_height = 0
|
pad_wall_height = 0
|
||||||
pad_wall_slope = 90
|
pad_wall_slope = 90
|
||||||
pad_wall_thickness = 1
|
pad_wall_thickness = 0.4
|
||||||
sla_print_settings_id =
|
sla_print_settings_id =
|
||||||
slice_closing_radius = 0.005
|
slice_closing_radius = 0.005
|
||||||
support_base_diameter = 3
|
support_base_diameter = 3
|
||||||
+3
-3
@@ -1,8 +1,8 @@
|
|||||||
# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:30:54 UTC
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:55:43 UTC
|
||||||
compatible_printers =
|
compatible_printers =
|
||||||
compatible_printers_condition =
|
compatible_printers_condition =
|
||||||
default_sla_print_profile =
|
default_sla_print_profile =
|
||||||
faded_layers = 10
|
faded_layers = 3
|
||||||
hollowing_closing_distance = 2
|
hollowing_closing_distance = 2
|
||||||
hollowing_enable = 0
|
hollowing_enable = 0
|
||||||
hollowing_min_thickness = 3
|
hollowing_min_thickness = 3
|
||||||
@@ -21,7 +21,7 @@ pad_object_connector_width = 0.5
|
|||||||
pad_object_gap = 1
|
pad_object_gap = 1
|
||||||
pad_wall_height = 0
|
pad_wall_height = 0
|
||||||
pad_wall_slope = 90
|
pad_wall_slope = 90
|
||||||
pad_wall_thickness = 1
|
pad_wall_thickness = 0.4
|
||||||
sla_print_settings_id =
|
sla_print_settings_id =
|
||||||
slice_closing_radius = 0.005
|
slice_closing_radius = 0.005
|
||||||
support_base_diameter = 3
|
support_base_diameter = 3
|
||||||
+3
-3
@@ -1,8 +1,8 @@
|
|||||||
# generated by PrusaSlicer 2.2.0+win64 on 2020-09-05 at 15:51:14 UTC
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:55:50 UTC
|
||||||
compatible_printers =
|
compatible_printers =
|
||||||
compatible_printers_condition =
|
compatible_printers_condition =
|
||||||
default_sla_print_profile =
|
default_sla_print_profile =
|
||||||
faded_layers = 10
|
faded_layers = 3
|
||||||
hollowing_closing_distance = 2
|
hollowing_closing_distance = 2
|
||||||
hollowing_enable = 0
|
hollowing_enable = 0
|
||||||
hollowing_min_thickness = 3
|
hollowing_min_thickness = 3
|
||||||
@@ -21,7 +21,7 @@ pad_object_connector_width = 0.5
|
|||||||
pad_object_gap = 1
|
pad_object_gap = 1
|
||||||
pad_wall_height = 0
|
pad_wall_height = 0
|
||||||
pad_wall_slope = 90
|
pad_wall_slope = 90
|
||||||
pad_wall_thickness = 1
|
pad_wall_thickness = 0.4
|
||||||
sla_print_settings_id =
|
sla_print_settings_id =
|
||||||
slice_closing_radius = 0.005
|
slice_closing_radius = 0.005
|
||||||
support_base_diameter = 3
|
support_base_diameter = 3
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:57:42 UTC
|
||||||
|
compatible_printers =
|
||||||
|
compatible_printers_condition =
|
||||||
|
default_sla_print_profile =
|
||||||
|
faded_layers = 3
|
||||||
|
hollowing_closing_distance = 2
|
||||||
|
hollowing_enable = 0
|
||||||
|
hollowing_min_thickness = 3
|
||||||
|
hollowing_quality = 0.5
|
||||||
|
inherits = 0.1 Fast
|
||||||
|
layer_height = 0.15
|
||||||
|
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
||||||
|
pad_around_object = 0
|
||||||
|
pad_around_object_everywhere = 0
|
||||||
|
pad_brim_size = 1.6
|
||||||
|
pad_enable = 1
|
||||||
|
pad_max_merge_distance = 50
|
||||||
|
pad_object_connector_penetration = 0.3
|
||||||
|
pad_object_connector_stride = 10
|
||||||
|
pad_object_connector_width = 0.5
|
||||||
|
pad_object_gap = 1
|
||||||
|
pad_wall_height = 0
|
||||||
|
pad_wall_slope = 90
|
||||||
|
pad_wall_thickness = 0.4
|
||||||
|
sla_print_settings_id =
|
||||||
|
slice_closing_radius = 0.005
|
||||||
|
support_base_diameter = 3
|
||||||
|
support_base_height = 1
|
||||||
|
support_base_safety_distance = 1
|
||||||
|
support_buildplate_only = 0
|
||||||
|
support_critical_angle = 45
|
||||||
|
support_head_front_diameter = 1
|
||||||
|
support_head_penetration = 0.7
|
||||||
|
support_head_width = 3
|
||||||
|
support_max_bridge_length = 10
|
||||||
|
support_max_bridges_on_pillar = 3
|
||||||
|
support_max_pillar_link_distance = 10
|
||||||
|
support_object_elevation = 5
|
||||||
|
support_pillar_connection_mode = zigzag
|
||||||
|
support_pillar_diameter = 1.5
|
||||||
|
support_pillar_widening_factor = 0
|
||||||
|
support_points_density_relative = 100
|
||||||
|
support_points_minimal_distance = 1
|
||||||
|
supports_enable = 1
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:57:49 UTC
|
||||||
|
compatible_printers =
|
||||||
|
compatible_printers_condition =
|
||||||
|
default_sla_print_profile =
|
||||||
|
faded_layers = 3
|
||||||
|
hollowing_closing_distance = 2
|
||||||
|
hollowing_enable = 0
|
||||||
|
hollowing_min_thickness = 3
|
||||||
|
hollowing_quality = 0.5
|
||||||
|
inherits = 0.1 Fast
|
||||||
|
layer_height = 0.15
|
||||||
|
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
||||||
|
pad_around_object = 0
|
||||||
|
pad_around_object_everywhere = 0
|
||||||
|
pad_brim_size = 1.6
|
||||||
|
pad_enable = 1
|
||||||
|
pad_max_merge_distance = 50
|
||||||
|
pad_object_connector_penetration = 0.3
|
||||||
|
pad_object_connector_stride = 10
|
||||||
|
pad_object_connector_width = 0.5
|
||||||
|
pad_object_gap = 1
|
||||||
|
pad_wall_height = 0
|
||||||
|
pad_wall_slope = 90
|
||||||
|
pad_wall_thickness = 0.4
|
||||||
|
sla_print_settings_id =
|
||||||
|
slice_closing_radius = 0.005
|
||||||
|
support_base_diameter = 3
|
||||||
|
support_base_height = 1
|
||||||
|
support_base_safety_distance = 1
|
||||||
|
support_buildplate_only = 0
|
||||||
|
support_critical_angle = 45
|
||||||
|
support_head_front_diameter = 0.9
|
||||||
|
support_head_penetration = 0.5
|
||||||
|
support_head_width = 3
|
||||||
|
support_max_bridge_length = 10
|
||||||
|
support_max_bridges_on_pillar = 3
|
||||||
|
support_max_pillar_link_distance = 10
|
||||||
|
support_object_elevation = 5
|
||||||
|
support_pillar_connection_mode = zigzag
|
||||||
|
support_pillar_diameter = 1.3
|
||||||
|
support_pillar_widening_factor = 0
|
||||||
|
support_points_density_relative = 100
|
||||||
|
support_points_minimal_distance = 1
|
||||||
|
supports_enable = 1
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:58:16 UTC
|
||||||
|
compatible_printers =
|
||||||
|
compatible_printers_condition =
|
||||||
|
default_sla_print_profile =
|
||||||
|
faded_layers = 3
|
||||||
|
hollowing_closing_distance = 2
|
||||||
|
hollowing_enable = 0
|
||||||
|
hollowing_min_thickness = 3
|
||||||
|
hollowing_quality = 0.5
|
||||||
|
inherits = 0.1 Fast
|
||||||
|
layer_height = 0.2
|
||||||
|
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
||||||
|
pad_around_object = 0
|
||||||
|
pad_around_object_everywhere = 0
|
||||||
|
pad_brim_size = 1.6
|
||||||
|
pad_enable = 1
|
||||||
|
pad_max_merge_distance = 50
|
||||||
|
pad_object_connector_penetration = 0.3
|
||||||
|
pad_object_connector_stride = 10
|
||||||
|
pad_object_connector_width = 0.5
|
||||||
|
pad_object_gap = 1
|
||||||
|
pad_wall_height = 0
|
||||||
|
pad_wall_slope = 90
|
||||||
|
pad_wall_thickness = 0.4
|
||||||
|
sla_print_settings_id =
|
||||||
|
slice_closing_radius = 0.005
|
||||||
|
support_base_diameter = 3
|
||||||
|
support_base_height = 1
|
||||||
|
support_base_safety_distance = 1
|
||||||
|
support_buildplate_only = 0
|
||||||
|
support_critical_angle = 45
|
||||||
|
support_head_front_diameter = 1
|
||||||
|
support_head_penetration = 0.7
|
||||||
|
support_head_width = 3
|
||||||
|
support_max_bridge_length = 10
|
||||||
|
support_max_bridges_on_pillar = 3
|
||||||
|
support_max_pillar_link_distance = 10
|
||||||
|
support_object_elevation = 5
|
||||||
|
support_pillar_connection_mode = zigzag
|
||||||
|
support_pillar_diameter = 1.5
|
||||||
|
support_pillar_widening_factor = 0
|
||||||
|
support_points_density_relative = 100
|
||||||
|
support_points_minimal_distance = 1
|
||||||
|
supports_enable = 1
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:58:26 UTC
|
||||||
|
compatible_printers =
|
||||||
|
compatible_printers_condition =
|
||||||
|
default_sla_print_profile =
|
||||||
|
faded_layers = 3
|
||||||
|
hollowing_closing_distance = 2
|
||||||
|
hollowing_enable = 0
|
||||||
|
hollowing_min_thickness = 3
|
||||||
|
hollowing_quality = 0.5
|
||||||
|
inherits = 0.1 Fast
|
||||||
|
layer_height = 0.2
|
||||||
|
output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1
|
||||||
|
pad_around_object = 0
|
||||||
|
pad_around_object_everywhere = 0
|
||||||
|
pad_brim_size = 1.6
|
||||||
|
pad_enable = 1
|
||||||
|
pad_max_merge_distance = 50
|
||||||
|
pad_object_connector_penetration = 0.3
|
||||||
|
pad_object_connector_stride = 10
|
||||||
|
pad_object_connector_width = 0.5
|
||||||
|
pad_object_gap = 1
|
||||||
|
pad_wall_height = 0
|
||||||
|
pad_wall_slope = 90
|
||||||
|
pad_wall_thickness = 0.4
|
||||||
|
sla_print_settings_id =
|
||||||
|
slice_closing_radius = 0.005
|
||||||
|
support_base_diameter = 3
|
||||||
|
support_base_height = 1
|
||||||
|
support_base_safety_distance = 1
|
||||||
|
support_buildplate_only = 0
|
||||||
|
support_critical_angle = 45
|
||||||
|
support_head_front_diameter = 0.9
|
||||||
|
support_head_penetration = 0.5
|
||||||
|
support_head_width = 3
|
||||||
|
support_max_bridge_length = 10
|
||||||
|
support_max_bridges_on_pillar = 3
|
||||||
|
support_max_pillar_link_distance = 10
|
||||||
|
support_object_elevation = 5
|
||||||
|
support_pillar_connection_mode = zigzag
|
||||||
|
support_pillar_diameter = 1.3
|
||||||
|
support_pillar_widening_factor = 0
|
||||||
|
support_points_density_relative = 100
|
||||||
|
support_points_minimal_distance = 1
|
||||||
|
supports_enable = 1
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="System.CommandLine" Version="2.0.0-beta1.20427.1" />
|
<PackageReference Include="System.CommandLine" Version="2.0.0-beta1.20574.7" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
|
||||||
namespace UVtools.Core.Extensions
|
namespace UVtools.Core.Extensions
|
||||||
{
|
{
|
||||||
@@ -76,5 +77,38 @@ namespace UVtools.Core.Extensions
|
|||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static uint DecimalDigits(this float val)
|
||||||
|
{
|
||||||
|
var valStr = val.ToString(CultureInfo.InvariantCulture).TrimEnd('0');
|
||||||
|
if (string.IsNullOrEmpty(valStr)) return 0;
|
||||||
|
|
||||||
|
var index = valStr.IndexOf('.');
|
||||||
|
if (index < 0) return 0;
|
||||||
|
|
||||||
|
return (uint) (valStr.Substring(index).Length - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static uint DecimalDigits(this double val)
|
||||||
|
{
|
||||||
|
var valStr = val.ToString(CultureInfo.InvariantCulture).TrimEnd('0');
|
||||||
|
if (string.IsNullOrEmpty(valStr)) return 0;
|
||||||
|
|
||||||
|
var index = valStr.IndexOf('.');
|
||||||
|
if (index < 0) return 0;
|
||||||
|
|
||||||
|
return (uint)(valStr.Substring(index).Length - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static uint DecimalDigits(this decimal val)
|
||||||
|
{
|
||||||
|
var valStr = val.ToString(CultureInfo.InvariantCulture).TrimEnd('0');
|
||||||
|
if (string.IsNullOrEmpty(valStr) || valStr[valStr.Length-1] == '.') return 0;
|
||||||
|
|
||||||
|
var index = valStr.IndexOf('.');
|
||||||
|
if (index < 0) return 0;
|
||||||
|
|
||||||
|
return (uint)(valStr.Substring(index).Length - 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -268,6 +268,11 @@ namespace UVtools.Core.FileFormats
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[FieldOrder(3)] public uint Height { get; set; } = 168;
|
[FieldOrder(3)] public uint Height { get; set; } = 168;
|
||||||
|
|
||||||
|
[FieldOrder(4)] public uint Offset1 { get; set; }
|
||||||
|
[FieldOrder(5)] public uint Offset2 { get; set; }
|
||||||
|
[FieldOrder(6)] public uint Offset3 { get; set; }
|
||||||
|
[FieldOrder(7)] public uint Offset4 { get; set; }
|
||||||
|
|
||||||
[Ignore] public uint DataSize => Width * Height * 2;
|
[Ignore] public uint DataSize => Width * Height * 2;
|
||||||
|
|
||||||
// little-endian 16bit colors, RGB 565 encoded.
|
// little-endian 16bit colors, RGB 565 encoded.
|
||||||
@@ -1133,7 +1138,7 @@ namespace UVtools.Core.FileFormats
|
|||||||
Debug.Write("Preview -> ");
|
Debug.Write("Preview -> ");
|
||||||
Debug.WriteLine(PreviewSettings);
|
Debug.WriteLine(PreviewSettings);
|
||||||
|
|
||||||
//PreviewSettings.Validate((int) PreviewSettings.DataSize);
|
PreviewSettings.Validate((int) PreviewSettings.DataSize);
|
||||||
|
|
||||||
PreviewSettings.Data = new byte[PreviewSettings.DataSize];
|
PreviewSettings.Data = new byte[PreviewSettings.DataSize];
|
||||||
inputFile.ReadBytes(PreviewSettings.Data);
|
inputFile.ReadBytes(PreviewSettings.Data);
|
||||||
|
|||||||
@@ -839,13 +839,24 @@ namespace UVtools.Core
|
|||||||
alternatePatternMask = patternMask;
|
alternatePatternMask = patternMask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int wallThickness = LayerManager.MutateGetIterationChamfer(
|
||||||
|
Index,
|
||||||
|
operation.LayerIndexStart,
|
||||||
|
operation.LayerIndexEnd,
|
||||||
|
(int)operation.WallThicknessStart,
|
||||||
|
(int)operation.WallThicknessEnd,
|
||||||
|
operation.Chamfer
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
using (Mat dst = LayerMat)
|
using (Mat dst = LayerMat)
|
||||||
using (Mat erode = new Mat())
|
using (Mat erode = new Mat())
|
||||||
using (Mat diff = new Mat())
|
using (Mat diff = new Mat())
|
||||||
{
|
{
|
||||||
Mat target = operation.GetRoiOrDefault(dst);
|
Mat target = operation.GetRoiOrDefault(dst);
|
||||||
|
|
||||||
CvInvoke.Erode(target, erode, kernel, anchor, (int) operation.WallThickness, BorderType.Reflect101, default);
|
|
||||||
|
CvInvoke.Erode(target, erode, kernel, anchor, wallThickness, BorderType.Reflect101, default);
|
||||||
CvInvoke.Subtract(target, erode, diff);
|
CvInvoke.Subtract(target, erode, diff);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -494,7 +494,7 @@ namespace UVtools.Core
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MutateGetVarsIterationFade(uint startLayerIndex, uint endLayerIndex, int iterationsStart, int iterationsEnd, ref bool isFade, out float iterationSteps, out int maxIteration)
|
public static void MutateGetVarsIterationChamfer(uint startLayerIndex, uint endLayerIndex, int iterationsStart, int iterationsEnd, ref bool isFade, out float iterationSteps, out int maxIteration)
|
||||||
{
|
{
|
||||||
iterationSteps = 0;
|
iterationSteps = 0;
|
||||||
maxIteration = 0;
|
maxIteration = 0;
|
||||||
@@ -504,7 +504,7 @@ namespace UVtools.Core
|
|||||||
maxIteration = Math.Max(iterationsStart, iterationsEnd);
|
maxIteration = Math.Max(iterationsStart, iterationsEnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int MutateGetIterationVar(bool isFade, int iterationsStart, int iterationsEnd, float iterationSteps, int maxIteration, uint startLayerIndex, uint layerIndex)
|
public static int MutateGetIterationVar(bool isFade, int iterationsStart, int iterationsEnd, float iterationSteps, int maxIteration, uint startLayerIndex, uint layerIndex)
|
||||||
{
|
{
|
||||||
if (!isFade) return iterationsStart;
|
if (!isFade) return iterationsStart;
|
||||||
// calculate iterations based on range
|
// calculate iterations based on range
|
||||||
@@ -513,7 +513,15 @@ namespace UVtools.Core
|
|||||||
: iterationsStart - (layerIndex - startLayerIndex) * iterationSteps);
|
: iterationsStart - (layerIndex - startLayerIndex) * iterationSteps);
|
||||||
|
|
||||||
// constrain
|
// constrain
|
||||||
return Math.Min(Math.Max(1, iterations), maxIteration);
|
return Math.Min(Math.Max(0, iterations), maxIteration);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int MutateGetIterationChamfer(uint layerIndex, uint startLayerIndex, uint endLayerIndex, int iterationsStart,
|
||||||
|
int iterationsEnd, bool isFade)
|
||||||
|
{
|
||||||
|
MutateGetVarsIterationChamfer(startLayerIndex, endLayerIndex, iterationsStart, iterationsEnd, ref isFade,
|
||||||
|
out float iterationSteps, out int maxIteration);
|
||||||
|
return MutateGetIterationVar(isFade, iterationsStart, iterationsEnd, iterationSteps, maxIteration, startLayerIndex, layerIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Morph(OperationMorph operation, BorderType borderType = BorderType.Default, MCvScalar borderValue = default, OperationProgress progress = null)
|
public void Morph(OperationMorph operation, BorderType borderType = BorderType.Default, MCvScalar borderValue = default, OperationProgress progress = null)
|
||||||
@@ -521,8 +529,8 @@ namespace UVtools.Core
|
|||||||
if (progress is null) progress = new OperationProgress();
|
if (progress is null) progress = new OperationProgress();
|
||||||
progress.Reset(operation.ProgressAction, operation.LayerRangeCount);
|
progress.Reset(operation.ProgressAction, operation.LayerRangeCount);
|
||||||
|
|
||||||
var isFade = operation.FadeInOut;
|
var isFade = operation.Chamfer;
|
||||||
MutateGetVarsIterationFade(
|
MutateGetVarsIterationChamfer(
|
||||||
operation.LayerIndexStart,
|
operation.LayerIndexStart,
|
||||||
operation.LayerIndexEnd,
|
operation.LayerIndexEnd,
|
||||||
(int) operation.IterationsStart,
|
(int) operation.IterationsStart,
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using UVtools.Core.Extensions;
|
||||||
using UVtools.Core.Objects;
|
using UVtools.Core.Objects;
|
||||||
|
|
||||||
namespace UVtools.Core.Operations
|
namespace UVtools.Core.Operations
|
||||||
@@ -65,32 +66,24 @@ namespace UVtools.Core.Operations
|
|||||||
|
|
||||||
public static OperationLayerReHeightItem[] GetItems(uint layerCount, decimal layerHeight)
|
public static OperationLayerReHeightItem[] GetItems(uint layerCount, decimal layerHeight)
|
||||||
{
|
{
|
||||||
List<OperationLayerReHeightItem> list = new List<OperationLayerReHeightItem>();
|
var list = new List<OperationLayerReHeightItem>();
|
||||||
for (byte i = 2; i < 255; i++) // Lower
|
for (byte i = 2; i < 255; i++) // Go lower heights
|
||||||
{
|
{
|
||||||
if (layerHeight / i < 0.01m) break;
|
if (layerHeight / i < 0.01m) break;
|
||||||
var countStr = (layerCount / (decimal)i).ToString(CultureInfo.InvariantCulture);
|
if ((layerCount * (decimal)i).DecimalDigits() > 0) continue; // Cant multiply layers, no half layers!
|
||||||
if (countStr.IndexOf(".", StringComparison.Ordinal) >= 0) continue; // Cant multiply layers
|
if ((layerHeight / i).DecimalDigits() > 2) continue; // Cant divide height, more than 2 digits
|
||||||
countStr = (layerHeight / i).ToString(CultureInfo.InvariantCulture);
|
|
||||||
int decimalCount = countStr.Substring(countStr.IndexOf(".", StringComparison.Ordinal)).Length - 1;
|
|
||||||
if (decimalCount > 2) continue; // Cant multiply height
|
|
||||||
|
|
||||||
var item = new OperationLayerReHeightItem(false, i, layerHeight / i, layerCount * i);
|
var item = new OperationLayerReHeightItem(false, i, Math.Round(layerHeight / i, 2), layerCount * i);
|
||||||
list.Add(item);
|
list.Add(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (byte i = 2; i < 255; i++) // Higher
|
for (byte i = 2; i < 255; i++) // Go higher heights
|
||||||
{
|
{
|
||||||
if (layerHeight * i > 0.2m) break;
|
if (layerHeight * i > 0.2m) break;
|
||||||
var countStr = (layerCount / (decimal)i).ToString(CultureInfo.InvariantCulture);
|
if ((layerCount / (decimal)i).DecimalDigits() > 0) continue; // Cant divide layers, no half layers!
|
||||||
if (countStr.IndexOf(".", StringComparison.Ordinal) >= 0) continue; // Cant multiply layers
|
if ((layerHeight * i).DecimalDigits() > 2) continue; // Cant multiply height, more than 2 digits
|
||||||
|
|
||||||
|
var item = new OperationLayerReHeightItem(true, i, Math.Round(layerHeight * i, 2), layerCount / i);
|
||||||
countStr = (layerHeight * i).ToString(CultureInfo.InvariantCulture);
|
|
||||||
int decimalCount = countStr.Substring(countStr.IndexOf(".", StringComparison.Ordinal)).Length - 1;
|
|
||||||
if (decimalCount > 2) continue; // Cant multiply height
|
|
||||||
|
|
||||||
var item = new OperationLayerReHeightItem(true, i, layerHeight * i, layerCount / i);
|
|
||||||
list.Add(item);
|
list.Add(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace UVtools.Core.Operations
|
|||||||
private MorphOp _morphOperation = MorphOp.Erode;
|
private MorphOp _morphOperation = MorphOp.Erode;
|
||||||
private uint _iterationsStart = 1;
|
private uint _iterationsStart = 1;
|
||||||
private uint _iterationsEnd = 1;
|
private uint _iterationsEnd = 1;
|
||||||
private bool _fadeInOut;
|
private bool _chamfer;
|
||||||
|
|
||||||
#region Overrides
|
#region Overrides
|
||||||
|
|
||||||
@@ -80,10 +80,10 @@ namespace UVtools.Core.Operations
|
|||||||
set => RaiseAndSetIfChanged(ref _iterationsEnd, value);
|
set => RaiseAndSetIfChanged(ref _iterationsEnd, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool FadeInOut
|
public bool Chamfer
|
||||||
{
|
{
|
||||||
get => _fadeInOut;
|
get => _chamfer;
|
||||||
set => RaiseAndSetIfChanged(ref _fadeInOut, value);
|
set => RaiseAndSetIfChanged(ref _chamfer, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
[XmlIgnore]
|
[XmlIgnore]
|
||||||
@@ -91,7 +91,7 @@ namespace UVtools.Core.Operations
|
|||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
var result = $"[{_morphOperation}] [Iterations: {_iterationsStart}/{_iterationsEnd}] [Fade: {_fadeInOut}]" + LayerRangeString;
|
var result = $"[{_morphOperation}] [Iterations: {_iterationsStart}/{_iterationsEnd}] [Chamfer: {_chamfer}]" + LayerRangeString;
|
||||||
if (!string.IsNullOrEmpty(ProfileName)) result = $"{ProfileName}: {result}";
|
if (!string.IsNullOrEmpty(ProfileName)) result = $"{ProfileName}: {result}";
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -102,7 +102,7 @@ namespace UVtools.Core.Operations
|
|||||||
|
|
||||||
private bool Equals(OperationMorph other)
|
private bool Equals(OperationMorph other)
|
||||||
{
|
{
|
||||||
return _morphOperation == other._morphOperation && _iterationsStart == other._iterationsStart && _iterationsEnd == other._iterationsEnd && _fadeInOut == other._fadeInOut;
|
return _morphOperation == other._morphOperation && _iterationsStart == other._iterationsStart && _iterationsEnd == other._iterationsEnd && _chamfer == other._chamfer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool Equals(object obj)
|
public override bool Equals(object obj)
|
||||||
@@ -117,7 +117,7 @@ namespace UVtools.Core.Operations
|
|||||||
var hashCode = (int) _morphOperation;
|
var hashCode = (int) _morphOperation;
|
||||||
hashCode = (hashCode * 397) ^ (int) _iterationsStart;
|
hashCode = (hashCode * 397) ^ (int) _iterationsStart;
|
||||||
hashCode = (hashCode * 397) ^ (int) _iterationsEnd;
|
hashCode = (hashCode * 397) ^ (int) _iterationsEnd;
|
||||||
hashCode = (hashCode * 397) ^ _fadeInOut.GetHashCode();
|
hashCode = (hashCode * 397) ^ _chamfer.GetHashCode();
|
||||||
return hashCode;
|
return hashCode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,8 +17,10 @@ namespace UVtools.Core.Operations
|
|||||||
[Serializable]
|
[Serializable]
|
||||||
public class OperationPixelDimming : Operation
|
public class OperationPixelDimming : Operation
|
||||||
{
|
{
|
||||||
private uint _wallThickness = 5;
|
private uint _wallThicknessStart = 5;
|
||||||
|
private uint _wallThicknessEnd = 5;
|
||||||
private bool _wallsOnly;
|
private bool _wallsOnly;
|
||||||
|
private bool _chamfer;
|
||||||
private Matrix<byte> _pattern;
|
private Matrix<byte> _pattern;
|
||||||
private Matrix<byte> _alternatePattern;
|
private Matrix<byte> _alternatePattern;
|
||||||
private ushort _alternatePatternPerLayers = 1;
|
private ushort _alternatePatternPerLayers = 1;
|
||||||
@@ -44,10 +46,10 @@ namespace UVtools.Core.Operations
|
|||||||
public override StringTag Validate(params object[] parameters)
|
public override StringTag Validate(params object[] parameters)
|
||||||
{
|
{
|
||||||
var sb = new StringBuilder();
|
var sb = new StringBuilder();
|
||||||
if (WallThickness == 0 && WallsOnly)
|
/*if (WallThicknessStart == 0 && WallsOnly)
|
||||||
{
|
{
|
||||||
sb.AppendLine("Border size must be positive in order to use \"Dim only borders\" function.");
|
sb.AppendLine("Border size must be positive in order to use \"Dim only borders\" function.");
|
||||||
}
|
}*/
|
||||||
|
|
||||||
if (Pattern is null && AlternatePattern is null)
|
if (Pattern is null && AlternatePattern is null)
|
||||||
{
|
{
|
||||||
@@ -60,10 +62,16 @@ namespace UVtools.Core.Operations
|
|||||||
|
|
||||||
#region Properties
|
#region Properties
|
||||||
|
|
||||||
public uint WallThickness
|
public uint WallThicknessStart
|
||||||
{
|
{
|
||||||
get => _wallThickness;
|
get => _wallThicknessStart;
|
||||||
set => RaiseAndSetIfChanged(ref _wallThickness, value);
|
set => RaiseAndSetIfChanged(ref _wallThicknessStart, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public uint WallThicknessEnd
|
||||||
|
{
|
||||||
|
get => _wallThicknessEnd;
|
||||||
|
set => RaiseAndSetIfChanged(ref _wallThicknessEnd, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool WallsOnly
|
public bool WallsOnly
|
||||||
@@ -72,6 +80,12 @@ namespace UVtools.Core.Operations
|
|||||||
set => RaiseAndSetIfChanged(ref _wallsOnly, value);
|
set => RaiseAndSetIfChanged(ref _wallsOnly, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool Chamfer
|
||||||
|
{
|
||||||
|
get => _chamfer;
|
||||||
|
set => RaiseAndSetIfChanged(ref _chamfer, value);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Use the alternate pattern every <see cref="AlternatePatternPerLayers"/> layers
|
/// Use the alternate pattern every <see cref="AlternatePatternPerLayers"/> layers
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -108,7 +122,7 @@ namespace UVtools.Core.Operations
|
|||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
var result = $"[Border: {_wallThickness}px] [Only borders: {_wallsOnly}] [Alternate every: {_alternatePatternPerLayers}]" + LayerRangeString;
|
var result = $"[Border: {_wallThicknessStart}px to {_wallThicknessEnd}px] [Chamfer: {_chamfer}] [Only borders: {_wallsOnly}] [Alternate every: {_alternatePatternPerLayers}]" + LayerRangeString;
|
||||||
if (!string.IsNullOrEmpty(ProfileName)) result = $"{ProfileName}: {result}";
|
if (!string.IsNullOrEmpty(ProfileName)) result = $"{ProfileName}: {result}";
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -119,7 +133,7 @@ namespace UVtools.Core.Operations
|
|||||||
|
|
||||||
protected bool Equals(OperationPixelDimming other)
|
protected bool Equals(OperationPixelDimming other)
|
||||||
{
|
{
|
||||||
return _wallThickness == other._wallThickness && _wallsOnly == other._wallsOnly;
|
return _wallThicknessStart == other._wallThicknessStart && _wallsOnly == other._wallsOnly;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool Equals(object obj)
|
public override bool Equals(object obj)
|
||||||
@@ -134,7 +148,7 @@ namespace UVtools.Core.Operations
|
|||||||
{
|
{
|
||||||
unchecked
|
unchecked
|
||||||
{
|
{
|
||||||
return ((int) _wallThickness * 397) ^ _wallsOnly.GetHashCode();
|
return ((int) _wallThicknessStart * 397) ^ _wallsOnly.GetHashCode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
|
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
|
||||||
<PackageProjectUrl>https://github.com/sn4k3/UVtools</PackageProjectUrl>
|
<PackageProjectUrl>https://github.com/sn4k3/UVtools</PackageProjectUrl>
|
||||||
<Description>MSLA/DLP, file analysis, repair, conversion and manipulation</Description>
|
<Description>MSLA/DLP, file analysis, repair, conversion and manipulation</Description>
|
||||||
<Version>1.3.4</Version>
|
<Version>1.3.5</Version>
|
||||||
<Copyright>Copyright © 2020 PTRTECH</Copyright>
|
<Copyright>Copyright © 2020 PTRTECH</Copyright>
|
||||||
<PackageIcon>UVtools.png</PackageIcon>
|
<PackageIcon>UVtools.png</PackageIcon>
|
||||||
<Platforms>AnyCPU;x64</Platforms>
|
<Platforms>AnyCPU;x64</Platforms>
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace UVtools.GUI.Controls.Tools
|
|||||||
base.UpdateOperation();
|
base.UpdateOperation();
|
||||||
Operation.IterationsStart = (uint) nmIterationsStart.Value;
|
Operation.IterationsStart = (uint) nmIterationsStart.Value;
|
||||||
Operation.IterationsEnd = (uint) nmIterationsEnd.Value;
|
Operation.IterationsEnd = (uint) nmIterationsEnd.Value;
|
||||||
Operation.FadeInOut = cbIterationsFade.Checked;
|
Operation.Chamfer = cbIterationsFade.Checked;
|
||||||
Operation.MorphOperation = (MorphOp)((StringTag) cbMorphOperation.SelectedItem).Tag;
|
Operation.MorphOperation = (MorphOp)((StringTag) cbMorphOperation.SelectedItem).Tag;
|
||||||
Operation.Kernel.Anchor = ctrlKernel.KernelAnchor;
|
Operation.Kernel.Anchor = ctrlKernel.KernelAnchor;
|
||||||
Operation.Kernel.Matrix = ctrlKernel.GetMatrix();
|
Operation.Kernel.Matrix = ctrlKernel.GetMatrix();
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ namespace UVtools.GUI.Controls.Tools
|
|||||||
public override bool UpdateOperation()
|
public override bool UpdateOperation()
|
||||||
{
|
{
|
||||||
base.UpdateOperation();
|
base.UpdateOperation();
|
||||||
Operation.WallThickness = (uint) nmBorderSize.Value;
|
Operation.WallThicknessStart = (uint) nmBorderSize.Value;
|
||||||
Operation.WallsOnly = cbDimsOnlyBorders.Checked;
|
Operation.WallsOnly = cbDimsOnlyBorders.Checked;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1003,29 +1003,53 @@
|
|||||||
</Component>
|
</Component>
|
||||||
</Directory>
|
</Directory>
|
||||||
<Directory Id="owd324203F33CD6B2D491618D3D363F997F" Name="sla_print">
|
<Directory Id="owd324203F33CD6B2D491618D3D363F997F" Name="sla_print">
|
||||||
<Component Id="owc41FE63F25880E5E4D3CEA71EBD852385" Guid="1ba12bdd-a46f-fc86-8cc3-7da5b8f14609">
|
<Component Id="owc988205CB4C2FC6EA3D41704B657C5681" Guid="5dd3f394-0e58-76db-f891-78c219b5339e">
|
||||||
<File Id="owf41FE63F25880E5E4D3CEA71EBD852385" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.025 UltraDetail - Heavy Supports.ini" KeyPath="yes" />
|
<File Id="owf988205CB4C2FC6EA3D41704B657C5681" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.01 - Heavy Supports.ini" KeyPath="yes" />
|
||||||
</Component>
|
</Component>
|
||||||
<Component Id="owcA0B8FBCBD1A4173B45BA94F0E1E1C67E" Guid="0128c1a1-a9c4-ee47-bf69-56e64bdbf266">
|
<Component Id="owc4F3C7BA82787F7CE088482EF33C78BC7" Guid="93f4648f-2a87-6bb3-7307-e3b2fe27591f">
|
||||||
<File Id="owfA0B8FBCBD1A4173B45BA94F0E1E1C67E" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.025 UltraDetail - Medium Supports.ini" KeyPath="yes" />
|
<File Id="owf4F3C7BA82787F7CE088482EF33C78BC7" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.01 - Medium Supports.ini" KeyPath="yes" />
|
||||||
</Component>
|
</Component>
|
||||||
<Component Id="owcF7480920216B5D545244DAD3B157F915" Guid="37497b06-511e-8000-454b-f6cc91ad8e3c">
|
<Component Id="owc32F3B55EC604E72AB3E2CBF3284ED826" Guid="064f01a1-52a6-8f88-a160-13fee848444c">
|
||||||
<File Id="owfF7480920216B5D545244DAD3B157F915" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.035 Detail - Heavy Supports.ini" KeyPath="yes" />
|
<File Id="owf32F3B55EC604E72AB3E2CBF3284ED826" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.02 - Heavy Supports.ini" KeyPath="yes" />
|
||||||
</Component>
|
</Component>
|
||||||
<Component Id="owc3EC82AA8BBA5F58285C6B572699C3EEA" Guid="51996820-0c91-375a-d43a-a71610706d06">
|
<Component Id="owc43A40112BBFB048562D12C4E2E58C8B5" Guid="01e92245-916a-7b5a-e545-a7c6394041f5">
|
||||||
<File Id="owf3EC82AA8BBA5F58285C6B572699C3EEA" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.035 Detail - Medium Supports.ini" KeyPath="yes" />
|
<File Id="owf43A40112BBFB048562D12C4E2E58C8B5" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.02 - Medium Supports.ini" KeyPath="yes" />
|
||||||
</Component>
|
</Component>
|
||||||
<Component Id="owcC4EC407B090C47EBE3ABDE911C434B63" Guid="4bcff130-af1a-1715-f04f-8b22e50680dd">
|
<Component Id="owcA27D4D8B15C011B3790643C4A1B00661" Guid="249c6c1e-5613-e22c-fd9f-36d549071815">
|
||||||
<File Id="owfC4EC407B090C47EBE3ABDE911C434B63" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.05 Normal - Heavy Supports.ini" KeyPath="yes" />
|
<File Id="owfA27D4D8B15C011B3790643C4A1B00661" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.03 - Heavy Supports.ini" KeyPath="yes" />
|
||||||
</Component>
|
</Component>
|
||||||
<Component Id="owc5C47C07A27D86292990E17E9F5C68987" Guid="57884306-5184-0776-b0be-5aaf576ff822">
|
<Component Id="owc34F74C04D60157E217A40D1B948F4B62" Guid="1016acd9-7e5e-6764-1511-e4dba988d3f2">
|
||||||
<File Id="owf5C47C07A27D86292990E17E9F5C68987" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.05 Normal - Medium Supports.ini" KeyPath="yes" />
|
<File Id="owf34F74C04D60157E217A40D1B948F4B62" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.03 - Medium Supports.ini" KeyPath="yes" />
|
||||||
</Component>
|
</Component>
|
||||||
<Component Id="owcB8B31F13E6BE0274BB89D48BB3C5DA65" Guid="3eaaf9a4-3327-7d66-a578-42c8a53214de">
|
<Component Id="owc7904A21F5D16A27BDCBF240575031DE0" Guid="46bbf031-1607-56f4-3b51-f8f627a1f7f4">
|
||||||
<File Id="owfB8B31F13E6BE0274BB89D48BB3C5DA65" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.1 Fast - Heavy Supports.ini" KeyPath="yes" />
|
<File Id="owf7904A21F5D16A27BDCBF240575031DE0" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.04 - Heavy Supports.ini" KeyPath="yes" />
|
||||||
</Component>
|
</Component>
|
||||||
<Component Id="owcD02936F8537D5E1A8838BA53E493CA0B" Guid="05d01723-d21f-c5de-e159-54d916c4865c">
|
<Component Id="owc2B441689691FEC00B7B263EAD5C86002" Guid="36d4eee3-4ef4-135a-78b3-22e7daa37092">
|
||||||
<File Id="owfD02936F8537D5E1A8838BA53E493CA0B" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.1 Fast - Medium Supports.ini" KeyPath="yes" />
|
<File Id="owf2B441689691FEC00B7B263EAD5C86002" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.04 - Medium Supports.ini" KeyPath="yes" />
|
||||||
|
</Component>
|
||||||
|
<Component Id="owc815E6AD1B21376FEEF54113695A5C221" Guid="08a67749-8d90-9d25-d535-d5a0c8b2b7dd">
|
||||||
|
<File Id="owf815E6AD1B21376FEEF54113695A5C221" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.05 - Heavy Supports.ini" KeyPath="yes" />
|
||||||
|
</Component>
|
||||||
|
<Component Id="owcB7DCBF9D6771C07DED7DFD3475A2B942" Guid="2b6a6b3b-cc19-fb01-850e-2b82c9959d05">
|
||||||
|
<File Id="owfB7DCBF9D6771C07DED7DFD3475A2B942" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.05 - Medium Supports.ini" KeyPath="yes" />
|
||||||
|
</Component>
|
||||||
|
<Component Id="owc0D8987D85101CB001DC4DC10FA5289AD" Guid="8b33c25d-8466-ad61-abdd-485fdf1b686e">
|
||||||
|
<File Id="owf0D8987D85101CB001DC4DC10FA5289AD" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.10 - Heavy Supports.ini" KeyPath="yes" />
|
||||||
|
</Component>
|
||||||
|
<Component Id="owc50D2BF90F467F36608822CBBEA7AAD24" Guid="7816893f-d916-c266-286e-c305755f4274">
|
||||||
|
<File Id="owf50D2BF90F467F36608822CBBEA7AAD24" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.10 - Medium Supports.ini" KeyPath="yes" />
|
||||||
|
</Component>
|
||||||
|
<Component Id="owc4ED39C8A5521E8D8F652122F1391BEE7" Guid="f5d525d9-36a8-8f20-7132-a3837ac667c8">
|
||||||
|
<File Id="owf4ED39C8A5521E8D8F652122F1391BEE7" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.15 - Heavy Supports.ini" KeyPath="yes" />
|
||||||
|
</Component>
|
||||||
|
<Component Id="owc67CE50B90C2334EE96FD81F894C657CE" Guid="91a69bac-800a-7280-0763-0a907778bbea">
|
||||||
|
<File Id="owf67CE50B90C2334EE96FD81F894C657CE" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.15 - Medium Supports.ini" KeyPath="yes" />
|
||||||
|
</Component>
|
||||||
|
<Component Id="owc4EBB2288E3F6027567BCA149BD247731" Guid="c36f9208-8fe7-e520-313f-eac6f7487c10">
|
||||||
|
<File Id="owf4EBB2288E3F6027567BCA149BD247731" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.20 - Heavy Supports.ini" KeyPath="yes" />
|
||||||
|
</Component>
|
||||||
|
<Component Id="owc33EDBA249FAD8C66CFD67EF0812F9D99" Guid="7b49a51b-8a43-11c8-de4c-4e82552700fc">
|
||||||
|
<File Id="owf33EDBA249FAD8C66CFD67EF0812F9D99" Source="$(var.SourceDir)\Assets\PrusaSlicer\sla_print\Universal 0.20 - Medium Supports.ini" KeyPath="yes" />
|
||||||
</Component>
|
</Component>
|
||||||
</Directory>
|
</Directory>
|
||||||
</Directory>
|
</Directory>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace UVtools.WPF.Controls.Tools
|
|||||||
{
|
{
|
||||||
public OperationLayerReHeight Operation => BaseOperation as OperationLayerReHeight;
|
public OperationLayerReHeight Operation => BaseOperation as OperationLayerReHeight;
|
||||||
|
|
||||||
public OperationLayerReHeight.OperationLayerReHeightItem[] Presets { get; } = OperationLayerReHeight.GetItems(
|
public OperationLayerReHeight.OperationLayerReHeightItem[] Presets => OperationLayerReHeight.GetItems(
|
||||||
App.SlicerFile.LayerCount,
|
App.SlicerFile.LayerCount,
|
||||||
(decimal)App.SlicerFile.LayerHeight);
|
(decimal)App.SlicerFile.LayerHeight);
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<Grid RowDefinitions="Auto,10,Auto" ColumnDefinitions="Auto,10,*">
|
<Grid RowDefinitions="Auto,10,Auto" ColumnDefinitions="Auto,10,*">
|
||||||
<TextBlock
|
<TextBlock
|
||||||
ToolTip.Tip="Selects the number of iterations/passes to perform on each layer using this mutator.
|
ToolTip.Tip="Selects the number of iterations/passes to perform on each layer using this mutator.
|
||||||

Enable the 'Fade in/out' to fade the iteration over layers, you can use a start iteration higher than end to perform a inverse fade.
|

Enable the 'Chamfer' to chamfer the iteration over layers, you can use a start iteration higher than end to perform a inverse chamfer.
|
||||||

WARNING: Using high iteration values can destroy your model depending on the mutator being used, please use low values or with caution!"
|

WARNING: Using high iteration values can destroy your model depending on the mutator being used, please use low values or with caution!"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Text="Iterations:"/>
|
Text="Iterations:"/>
|
||||||
@@ -30,19 +30,19 @@
|
|||||||
<TextBlock
|
<TextBlock
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Text="To:"
|
Text="To:"
|
||||||
IsEnabled="{Binding Operation.FadeInOut}"/>
|
IsEnabled="{Binding Operation.Chamfer}"/>
|
||||||
|
|
||||||
<NumericUpDown
|
<NumericUpDown
|
||||||
Minimum="1"
|
Minimum="1"
|
||||||
Width="70"
|
Width="70"
|
||||||
Value="{Binding Operation.IterationsEnd}"
|
Value="{Binding Operation.IterationsEnd}"
|
||||||
IsEnabled="{Binding Operation.FadeInOut}"
|
IsEnabled="{Binding Operation.Chamfer}"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<CheckBox
|
<CheckBox
|
||||||
ToolTip.Tip="Allow the number of iterations to be gradually varied as the operation progresses from the starting layer to the ending layer."
|
ToolTip.Tip="Allow the number of iterations to be gradually varied as the operation progresses from the starting layer to the ending layer."
|
||||||
Content="Fade in/out"
|
Content="Chamfer"
|
||||||
IsChecked="{Binding Operation.FadeInOut}"
|
IsChecked="{Binding Operation.Chamfer}"
|
||||||
/>
|
/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
|||||||
@@ -14,11 +14,33 @@
|
|||||||
Minimum="0"
|
Minimum="0"
|
||||||
Maximum="1000"
|
Maximum="1000"
|
||||||
Width="80"
|
Width="80"
|
||||||
Value="{Binding Operation.WallThickness}"
|
Value="{Binding Operation.WallThicknessStart}"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
<TextBlock
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Text="To:"
|
||||||
|
IsEnabled="{Binding Operation.Chamfer}"
|
||||||
|
/>
|
||||||
|
<NumericUpDown
|
||||||
|
Minimum="0"
|
||||||
|
Maximum="1000"
|
||||||
|
Width="80"
|
||||||
|
Value="{Binding Operation.WallThicknessEnd}"
|
||||||
|
IsEnabled="{Binding Operation.Chamfer}"
|
||||||
/>
|
/>
|
||||||
<TextBlock
|
<TextBlock
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Text="px"
|
Text="px"
|
||||||
|
IsEnabled="{Binding Operation.Chamfer}"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
Margin="20,0,0,0"
|
||||||
|
Content="Chamfer walls"
|
||||||
|
ToolTip.Tip="Allow the number of walls pixels to be gradually varied as the operation progresses from the starting layer to the ending layer."
|
||||||
|
IsChecked="{Binding Operation.Chamfer}"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<CheckBox
|
<CheckBox
|
||||||
|
|||||||
@@ -342,13 +342,19 @@ namespace UVtools.WPF
|
|||||||
//CurrentLayerProperties.Add(new StringTag(nameof(layer.BoundingRectangle), layer.BoundingRectangle.ToString()));
|
//CurrentLayerProperties.Add(new StringTag(nameof(layer.BoundingRectangle), layer.BoundingRectangle.ToString()));
|
||||||
//CurrentLayerProperties.Add(new StringTag(nameof(layer.NonZeroPixelCount), layer.NonZeroPixelCount.ToString()));
|
//CurrentLayerProperties.Add(new StringTag(nameof(layer.NonZeroPixelCount), layer.NonZeroPixelCount.ToString()));
|
||||||
CurrentLayerProperties.Add(new StringTag(nameof(layer.ExposureTime), $"{layer.ExposureTime.ToString(CultureInfo.InvariantCulture)}s"));
|
CurrentLayerProperties.Add(new StringTag(nameof(layer.ExposureTime), $"{layer.ExposureTime.ToString(CultureInfo.InvariantCulture)}s"));
|
||||||
if(SlicerFile.PrintParameterPerLayerModifiers.Contains(FileFormat.PrintParameterModifier.LiftHeight))
|
|
||||||
CurrentLayerProperties.Add(new StringTag(nameof(layer.LiftHeight), $"{layer.LiftHeight.ToString(CultureInfo.InvariantCulture)}mm @ {layer.LiftSpeed.ToString(CultureInfo.InvariantCulture)}mm/min"));
|
if (ReferenceEquals(SlicerFile.PrintParameterPerLayerModifiers, null)) return;
|
||||||
|
|
||||||
|
if (SlicerFile.PrintParameterPerLayerModifiers.Contains(FileFormat.PrintParameterModifier.LiftHeight))
|
||||||
|
CurrentLayerProperties.Add(new StringTag(nameof(layer.LiftHeight),
|
||||||
|
$"{layer.LiftHeight.ToString(CultureInfo.InvariantCulture)}mm @ {layer.LiftSpeed.ToString(CultureInfo.InvariantCulture)}mm/min"));
|
||||||
//CurrentLayerProperties.Adnew StringTagg>(nameof(layer.LiftSpeed), $"{layer.LiftSpeed.ToString(CultureInfo.InvariantCulture)}mm/min"));
|
//CurrentLayerProperties.Adnew StringTagg>(nameof(layer.LiftSpeed), $"{layer.LiftSpeed.ToString(CultureInfo.InvariantCulture)}mm/min"));
|
||||||
if (SlicerFile.PrintParameterPerLayerModifiers.Contains(FileFormat.PrintParameterModifier.RetractSpeed))
|
if (SlicerFile.PrintParameterPerLayerModifiers.Contains(FileFormat.PrintParameterModifier.RetractSpeed))
|
||||||
CurrentLayerProperties.Add(new StringTag(nameof(layer.RetractSpeed), $"{layer.RetractSpeed.ToString(CultureInfo.InvariantCulture)}mm/min"));
|
CurrentLayerProperties.Add(new StringTag(nameof(layer.RetractSpeed),
|
||||||
|
$"{layer.RetractSpeed.ToString(CultureInfo.InvariantCulture)}mm/min"));
|
||||||
if (SlicerFile.PrintParameterPerLayerModifiers.Contains(FileFormat.PrintParameterModifier.LayerOffTime))
|
if (SlicerFile.PrintParameterPerLayerModifiers.Contains(FileFormat.PrintParameterModifier.LayerOffTime))
|
||||||
CurrentLayerProperties.Add(new StringTag(nameof(layer.LayerOffTime), $"{layer.LayerOffTime.ToString(CultureInfo.InvariantCulture)}s"));
|
CurrentLayerProperties.Add(new StringTag(nameof(layer.LayerOffTime),
|
||||||
|
$"{layer.LayerOffTime.ToString(CultureInfo.InvariantCulture)}s"));
|
||||||
if (SlicerFile.PrintParameterPerLayerModifiers.Contains(FileFormat.PrintParameterModifier.LightPWM))
|
if (SlicerFile.PrintParameterPerLayerModifiers.Contains(FileFormat.PrintParameterModifier.LightPWM))
|
||||||
CurrentLayerProperties.Add(new StringTag(nameof(layer.LightPWM), layer.LightPWM.ToString()));
|
CurrentLayerProperties.Add(new StringTag(nameof(layer.LightPWM), layer.LightPWM.ToString()));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<PackageLicenseFile>LICENSE</PackageLicenseFile>
|
<PackageLicenseFile>LICENSE</PackageLicenseFile>
|
||||||
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
|
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
|
||||||
<RepositoryType>Git</RepositoryType>
|
<RepositoryType>Git</RepositoryType>
|
||||||
<Version>1.3.4</Version>
|
<Version>1.3.5</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
Reference in New Issue
Block a user