Files
OrcaSlicer/resources/profiles/Kingroon/process/fdm_process_common.json
Ian Bassi 3db37d004a Fix + Support 'Default' filament option (index 0) (#13887)
* Support 'Default' filament option (index 0)

Treat filament index 0 as the new "Default" (use active object/part filament) instead of using 1. Update config defaults and tooltips for wall/sparse/solid infill filament options (min/default -> 0, tooltip explains "Default"). Adjust normalization and propagation logic to respect explicit feature overrides and only apply base extruder when feature values are zero; only copy sparse->solid infill when sparse > 0. Introduce FeatureFilamentOverrideMask and clamp_feature_filament_to_valid to resolve and clamp feature filaments. Update UI lists and selection behavior to expose a "Default" entry and handle zero-based indices in PartPlate and Plater.

* enable_filament_for_features option

Co-Authored-By: LixNix <105106115+lixnix@users.noreply.github.com>

* \n

* Allow wipe_tower_filament to equal nozzle count

Relax the assertion in Print::extruders to permit wipe_tower_filament == config().nozzle_diameter.size(). The configuration value is 1-based and the code subtracts 1 when pushing the extruder index, so equality should be valid and selecting the last nozzle should not trigger an assertion.

* Revert "Allow wipe_tower_filament to equal nozzle count"

This reverts commit 2c97657432.

* Revert "enable_filament_for_features option"

This reverts commit 01c13baedd.

* Migrate legacy feature filament defaults

Add migration logic to convert legacy feature filament selections from 1 to 0 for older 3mf files. Introduces a local migrate_legacy_feature_filament_defaults lambda in src/OrcaSlicer.cpp and src/slic3r/GUI/Plater.cpp that scans keys (wall_filament, sparse_infill_filament, solid_infill_filament, support_filament, support_interface_filament) on configs/objects/volumes, updates values, counts conversions and logs the result. Also adds a Semver check for "2.4.0-dev" in OrcaSlicer to trigger the migration for files older than that version. This preserves expected default filament selections when loading older project files.

* Update OrcaSlicer.cpp

* Extract migration helper to ConfigMigrations

Centralize legacy feature-filament default migration by moving the duplicated lambda into ConfigMigrations::migrate_legacy_feature_filament_defaults (src/libslic3r/Config.cpp) and declaring it in Config.hpp. Update OrcaSlicer.cpp and slic3r/GUI/Plater.cpp to call the new function instead of inline lambdas. The helper converts specific feature filament keys (wall_filament, sparse_infill_filament, solid_infill_filament, support_filament, support_interface_filament) from int 1 to 0 and returns the count of conversions to avoid duplicated migration logic.

* Remove DynamicFilamentList1Based and consolidate lists

Delete the specialized DynamicFilamentList1Based struct and its global instance. Update Choice registrations to use the single dynamic_filament_list for wall, sparse_infill and solid_infill filaments, and remove the extra update call for the removed instance. This consolidates filament choice handling and removes duplicated logic in Plater.cpp.

* move it

* fix objects

* Update Config.hpp

* Update profiles
2026-05-29 10:54:26 +08:00

187 lines
5.6 KiB
JSON

{
"type": "process",
"name": "fdm_process_common",
"from": "system",
"instantiation": "false",
"accel_to_decel_enable": "0",
"accel_to_decel_factor": "50%",
"bottom_shell_layers": "3",
"bottom_shell_thickness": "0",
"bottom_solid_infill_flow_ratio": "1",
"bottom_surface_pattern": "monotonic",
"bridge_acceleration": "50%",
"adaptive_layer_height": "0",
"bridge_flow": "0.9",
"brim_object_gap": "0.1",
"brim_type": "auto_brim",
"brim_width": "5",
"bridge_no_support": "0",
"bridge_speed": "50",
"bridge_angle": "0",
"bridge_density": "100%",
"compatible_printers_condition": "",
"default_acceleration": "3000",
"default_jerk": "0",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
"detect_thin_wall": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "0",
"enable_overhang_speed": "1",
"enable_prime_tower": "1",
"enable_support": "1",
"compatible_printers": [],
"enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "1",
"exclude_object": "1",
"filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
"filter_out_gap_fill": "0",
"flush_into_infill": "0",
"flush_into_objects": "0",
"flush_into_support": "1",
"fuzzy_skin": "none",
"fuzzy_skin_point_distance": "0.8",
"fuzzy_skin_thickness": "0.3",
"gap_infill_speed": "100",
"tree_support_with_infill": "0",
"overhang_1_4_speed": "50",
"overhang_2_4_speed": "40",
"overhang_3_4_speed": "20",
"overhang_4_4_speed": "10",
"gcode_add_line_number": "0",
"gcode_comments": "0",
"gcode_label_objects": "1",
"independent_support_layer_height": "1",
"infill_anchor": "400%",
"infill_anchor_max": "20",
"infill_combination": "0",
"infill_direction": "45",
"infill_jerk": "9",
"infill_wall_overlap": "25%",
"initial_layer_acceleration": "700",
"initial_layer_infill_speed": "105",
"initial_layer_jerk": "9",
"initial_layer_line_width": "0.5",
"initial_layer_speed": "50",
"initial_layer_travel_speed": "100%",
"inner_wall_acceleration": "300",
"inner_wall_jerk": "9",
"inner_wall_line_width": "0.45",
"inner_wall_speed": "100",
"interface_shells": "0",
"internal_bridge_support_thickness": "0",
"internal_solid_infill_acceleration": "100%",
"internal_solid_infill_line_width": "0.42",
"internal_solid_infill_speed": "100",
"ironing_flow": "10%",
"ironing_spacing": "0.15",
"ironing_speed": "30",
"ironing_type": "no ironing",
"max_bridge_length": "30",
"max_travel_detour_distance": "0",
"min_bead_width": "85%",
"min_feature_size": "25%",
"minimum_sparse_infill_area": "15",
"only_one_wall_first_layer": "0",
"only_one_wall_top": "0",
"ooze_prevention": "0",
"outer_wall_acceleration": "3000",
"outer_wall_jerk": "9",
"outer_wall_line_width": "0.42",
"outer_wall_speed": "80",
"overhang_speed_classic": "0",
"post_process": [],
"precise_outer_wall": "0",
"prime_tower_brim_width": "3",
"prime_tower_width": "60",
"prime_volume": "45",
"print_sequence": "by layer",
"print_settings_id": "",
"raft_contact_distance": "0.1",
"raft_expansion": "1.5",
"raft_first_layer_density": "90%",
"raft_first_layer_expansion": "2",
"raft_layers": "0",
"reduce_infill_retraction": "1",
"resolution": "0.012",
"role_based_wipe_speed": "1",
"reduce_crossing_wall": "0",
"seam_gap": "15%",
"seam_position": "aligned",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "2",
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "0",
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_filament": "0",
"sparse_infill_acceleration": "100%",
"sparse_infill_density": "15%",
"sparse_infill_filament": "0",
"sparse_infill_line_width": "0.45",
"sparse_infill_pattern": "crosshatch",
"sparse_infill_speed": "100",
"spiral_mode": "0",
"standby_temperature_delta": "-5",
"support_angle": "0",
"support_base_pattern": "rectilinear",
"support_base_pattern_spacing": "2.5",
"support_bottom_interface_spacing": "0.5",
"support_bottom_z_distance": "0.2",
"support_critical_regions_only": "0",
"support_expansion": "0",
"support_filament": "0",
"support_interface_bottom_layers": "2",
"support_interface_filament": "0",
"support_interface_loop_pattern": "0",
"support_interface_pattern": "rectilinear",
"support_interface_spacing": "0.5",
"support_interface_speed": "80",
"support_interface_top_layers": "2",
"support_line_width": "0.42",
"support_object_xy_distance": "0.35",
"support_on_build_plate_only": "0",
"support_speed": "150",
"support_style": "default",
"support_threshold_angle": "30",
"support_top_z_distance": "0.2",
"support_type": "tree(auto)",
"thick_bridges": "0",
"timelapse_type": "0",
"top_shell_layers": "4",
"top_shell_thickness": "0.8",
"top_solid_infill_flow_ratio": "1",
"top_surface_acceleration": "3000",
"top_surface_jerk": "9",
"top_surface_line_width": "0.42",
"top_surface_pattern": "monotonicline",
"top_surface_speed": "60",
"travel_acceleration": "3000",
"travel_jerk": "12",
"travel_speed": "150",
"travel_speed_z": "0",
"tree_support_adaptive_layer_height": "1",
"tree_support_auto_brim": "1",
"tree_support_branch_angle": "45",
"tree_support_branch_diameter": "5",
"tree_support_branch_distance": "5",
"tree_support_brim_width": "3",
"tree_support_wall_count": "0",
"wall_distribution_count": "1",
"wall_filament": "0",
"wall_generator": "arachne",
"wall_infill_order": "inner wall/outer wall/infill",
"wall_loops": "3",
"wall_transition_angle": "10",
"wall_transition_filter_deviation": "25%",
"wall_transition_length": "100%",
"wipe_on_loops": "1",
"wipe_speed": "80%",
"wipe_tower_no_sparse_layers": "0",
"xy_contour_compensation": "0",
"xy_hole_compensation": "0"
}