2981{
2985
2987 auto optgroup = page->new_optgroup(
L(
"Layer height"),
L"param_layer_height");
2988 optgroup->append_single_option_line("layer_height","quality_settings_layer_height");
2989 optgroup->append_single_option_line("initial_layer_print_height","quality_settings_layer_height");
2990 optgroup->append_single_option_line("enable_mixed_color_sublayer");
2991
2992 optgroup = page->new_optgroup(
L(
"Line width"),
L"param_line_width");
2993 optgroup->append_single_option_line("line_width","quality_settings_line_width");
2994 optgroup->append_single_option_line("initial_layer_line_width","quality_settings_line_width#first-layer");
2995 optgroup->append_single_option_line("outer_wall_line_width","quality_settings_line_width#outer-wall");
2996 optgroup->append_single_option_line("inner_wall_line_width","quality_settings_line_width#inner-wall");
2997 optgroup->append_single_option_line("top_surface_line_width","quality_settings_line_width#top-surface");
2998 optgroup->append_single_option_line("sparse_infill_line_width","quality_settings_line_width#sparse-infill");
2999 optgroup->append_single_option_line("internal_solid_infill_line_width","quality_settings_line_width#internal-solid-infill");
3000 optgroup->append_single_option_line("support_line_width","quality_settings_line_width#support");
3001 optgroup->append_single_option_line("bridge_line_width","quality_settings_line_width#bridge");
3002
3003 optgroup = page->new_optgroup(
L(
"Seam"),
L"param_seam");
3004 optgroup->append_single_option_line("seam_position", "quality_settings_seam#seam-position");
3005 optgroup->append_single_option_line("staggered_inner_seams", "quality_settings_seam#staggered-inner-seams");
3006 optgroup->append_single_option_line("seam_gap","quality_settings_seam#seam-gap");
3007 optgroup->append_single_option_line("seam_slope_type", "quality_settings_seam#scarf-joint-seam");
3008 optgroup->append_single_option_line("seam_slope_conditional", "quality_settings_seam#scarf-joint-seam");
3009 optgroup->append_single_option_line("scarf_angle_threshold", "quality_settings_seam#scarf-joint-seam");
3010 optgroup->append_single_option_line("scarf_overhang_threshold", "quality_settings_seam#scarf-joint-seam");
3011 optgroup->append_single_option_line("scarf_joint_speed", "quality_settings_seam#scarf-joint-seam");
3012 optgroup->append_single_option_line("seam_slope_start_height", "quality_settings_seam#scarf-joint-seam");
3013 optgroup->append_single_option_line("seam_slope_entire_loop", "quality_settings_seam#scarf-joint-seam");
3014 optgroup->append_single_option_line("seam_slope_min_length", "quality_settings_seam#scarf-joint-seam");
3015 optgroup->append_single_option_line("seam_slope_steps", "quality_settings_seam#scarf-joint-seam");
3016 optgroup->append_single_option_line("scarf_joint_flow_ratio", "quality_settings_seam#scarf-joint-seam");
3017 optgroup->append_single_option_line("seam_slope_inner_walls", "quality_settings_seam#scarf-joint-seam");
3018 optgroup->append_single_option_line("role_based_wipe_speed","quality_settings_seam#role-based-wipe-speed");
3019 optgroup->append_single_option_line("wipe_speed", "quality_settings_seam#wipe-speed");
3020 optgroup->append_single_option_line("wipe_on_loops","quality_settings_seam#wipe-on-loop-inward-movement");
3021 optgroup->append_single_option_line("wipe_inward", "quality_settings_seam#wipe-inward");
3022 optgroup->append_single_option_line("wipe_inward_distance", "quality_settings_seam#wipe-inward");
3023 optgroup->append_single_option_line("wipe_before_external_loop","quality_settings_seam#wipe-before-external");
3024
3025
3026 optgroup = page->new_optgroup(
L(
"Precision"),
L"param_precision");
3027 optgroup->append_single_option_line("slice_closing_radius", "quality_settings_precision#slice-gap-closing-radius");
3028 optgroup->append_single_option_line("resolution", "quality_settings_precision#resolution");
3029 optgroup->append_single_option_line("enable_arc_fitting", "quality_settings_precision#arc-fitting");
3030 optgroup->append_single_option_line("xy_hole_compensation", "quality_settings_precision#x-y-compensation");
3031 optgroup->append_single_option_line("xy_contour_compensation", "quality_settings_precision#x-y-compensation");
3032 optgroup->append_single_option_line("elefant_foot_compensation", "quality_settings_precision#elephant-foot-compensation");
3033 optgroup->append_single_option_line("elefant_foot_layers_density", "quality_settings_precision#elephant-foot-compensation-density");
3034 optgroup->append_single_option_line("elefant_foot_compensation_layers", "quality_settings_precision#elephant-foot-compensation");
3035 optgroup->append_single_option_line("precise_outer_wall", "quality_settings_precision#precise-wall");
3036 optgroup->append_single_option_line("precise_z_height", "quality_settings_precision#precise-z-height");
3037 optgroup->append_single_option_line("hole_to_polyhole", "quality_settings_precision#polyholes");
3038 optgroup->append_single_option_line("hole_to_polyhole_threshold", "quality_settings_precision#polyhole-detection-margin");
3039 optgroup->append_single_option_line("hole_to_polyhole_twisted", "quality_settings_precision#polyhole-twist");
3040 optgroup->append_single_option_line("hole_to_polyhole_max_edges", "quality_settings_precision#maximum-polyhole-edge-count");
3041
3042 optgroup = page->new_optgroup(
L(
"Ironing"),
L"param_ironing");
3043 optgroup->append_single_option_line("ironing_type", "quality_settings_ironing#type");
3044 optgroup->append_single_option_line("ironing_pattern", "quality_settings_ironing#pattern");
3045 optgroup->append_single_option_line("ironing_flow", "quality_settings_ironing#flow");
3046 optgroup->append_single_option_line("ironing_spacing", "quality_settings_ironing#line-spacing");
3047 optgroup->append_single_option_line("ironing_inset", "quality_settings_ironing#inset");
3048 optgroup->append_single_option_line("ironing_angle", "quality_settings_ironing#angle-offset");
3049 optgroup->append_single_option_line("ironing_angle_fixed", "quality_settings_ironing#fixed-angle");
3050
3051 optgroup = page->new_optgroup(
L(
"Z contouring"),
L"param_z_contouring");
3052 optgroup->append_single_option_line("zaa_enabled", "quality_settings_z_contouring");
3053 optgroup->append_single_option_line("zaa_minimize_perimeter_height", "quality_settings_z_contouring#minimize-wall-height-angle");
3054 optgroup->append_single_option_line("zaa_min_z", "quality_settings_z_contouring#minimum-z-height");
3055 optgroup->append_single_option_line("zaa_dont_alternate_fill_direction", "quality_settings_z_contouring#dont-alternate-fill-direction");
3056
3057
3058
3059 optgroup = page->new_optgroup(
L(
"Wall generator"),
L"param_wall_generator");
3060 optgroup->append_single_option_line("wall_generator", "quality_settings_wall_generator");
3061 optgroup->append_single_option_line("wall_transition_angle", "quality_settings_wall_generator#wall-transitioning-threshold-angle");
3062 optgroup->append_single_option_line("wall_transition_filter_deviation", "quality_settings_wall_generator#wall-transitioning-filter-margin");
3063 optgroup->append_single_option_line("wall_transition_length", "quality_settings_wall_generator#wall-transitioning-length");
3064 optgroup->append_single_option_line("wall_distribution_count", "quality_settings_wall_generator#wall-distribution-count");
3065 optgroup->append_single_option_line("initial_layer_min_bead_width", "quality_settings_wall_generator#first-layer-minimum-wall-width");
3066 optgroup->append_single_option_line("min_bead_width", "quality_settings_wall_generator#minimum-wall-width");
3067 optgroup->append_single_option_line("min_feature_size", "quality_settings_wall_generator#minimum-feature-size");
3068 optgroup->append_single_option_line("min_length_factor", "quality_settings_wall_generator#minimum-wall-length");
3069 optgroup->append_single_option_line("wall_maximum_resolution", "quality_settings_wall_generator#maximum-wall-resolution");
3070 optgroup->append_single_option_line("wall_maximum_deviation", "quality_settings_wall_generator#maximum-wall-deviation");
3071
3072 optgroup = page->new_optgroup(
L(
"Walls and surfaces"),
L"param_wall_surface");
3073 optgroup->append_single_option_line("wall_sequence", "quality_settings_wall_and_surfaces#walls-printing-order");
3074 optgroup->append_single_option_line("is_infill_first", "quality_settings_wall_and_surfaces#print-infill-first");
3075 optgroup->append_single_option_line("wall_direction", "quality_settings_wall_and_surfaces#wall-loop-direction");
3076 optgroup->append_single_option_line("print_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
3077 optgroup->append_single_option_line("top_solid_infill_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio", 0);
3078 optgroup->append_single_option_line("bottom_solid_infill_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
3079 optgroup->append_single_option_line("set_other_flow_ratios", "quality_settings_wall_and_surfaces#surface-flow-ratio");
3080 optgroup->append_single_option_line("first_layer_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
3081 optgroup->append_single_option_line("outer_wall_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
3082 optgroup->append_single_option_line("inner_wall_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
3083 optgroup->append_single_option_line("overhang_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
3084 optgroup->append_single_option_line("sparse_infill_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
3085 optgroup->append_single_option_line("internal_solid_infill_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
3086 optgroup->append_single_option_line("gap_fill_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
3087 optgroup->append_single_option_line("support_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
3088 optgroup->append_single_option_line("support_interface_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
3089 optgroup->append_single_option_line("only_one_wall_first_layer", "quality_settings_wall_and_surfaces#only-one-wall");
3090 optgroup->append_single_option_line("only_one_wall_top", "quality_settings_wall_and_surfaces#only-one-wall");
3091 optgroup->append_single_option_line("min_width_top_surface", "quality_settings_wall_and_surfaces#threshold");
3092 optgroup->append_single_option_line("reduce_crossing_wall", "quality_settings_wall_and_surfaces#avoid-crossing-walls");
3093 optgroup->append_single_option_line("max_travel_detour_distance", "quality_settings_wall_and_surfaces#max-detour-length");
3094
3095 optgroup->append_single_option_line("small_area_infill_flow_compensation", "quality_settings_wall_and_surfaces#small-area-flow-compensation");
3096 Option option = optgroup->get_option("small_area_infill_flow_compensation_model");
3097 option.opt.full_width = true;
3098 option.opt.is_code = true;
3099 option.opt.height = 15;
3100 optgroup->append_single_option_line(option, "quality_settings_wall_and_surfaces#small-area-flow-compensation");
3101
3102 optgroup = page->new_optgroup(
L(
"Bridging"),
L"param_bridge");
3103 optgroup->append_single_option_line("bridge_flow", "quality_settings_bridging#flow-ratio");
3104 optgroup->append_single_option_line("internal_bridge_flow", "quality_settings_bridging#flow-ratio");
3105 optgroup->append_single_option_line("bridge_density", "quality_settings_bridging#bridge-density");
3106 optgroup->append_single_option_line("internal_bridge_density", "quality_settings_bridging#bridge-density");
3107 optgroup->append_single_option_line("thick_bridges", "quality_settings_bridging#thick-bridges");
3108 optgroup->append_single_option_line("thick_internal_bridges", "quality_settings_bridging#thick-bridges");
3109 optgroup->append_single_option_line("enable_extra_bridge_layer", "quality_settings_bridging#extra-bridge-layers");
3110 optgroup->append_single_option_line("dont_filter_internal_bridges", "quality_settings_bridging#filter-out-small-internal-bridges");
3111 optgroup->append_single_option_line("counterbore_hole_bridging", "quality_settings_bridging#bridge-counterbore-hole");
3112
3113 optgroup = page->new_optgroup(
L(
"Overhangs"),
L"param_overhang");
3114 optgroup->append_single_option_line("detect_overhang_wall", "quality_settings_overhangs#detect-overhang-wall");
3115 optgroup->append_single_option_line("unsupported_wall_last", "quality_settings_overhangs#unsupported-wall-last");
3116 optgroup->append_single_option_line("make_overhang_printable", "quality_settings_overhangs#make-overhang-printable");
3117 optgroup->append_single_option_line("make_overhang_printable_angle", "quality_settings_overhangs#maximum-angle");
3118 optgroup->append_single_option_line("make_overhang_printable_hole_size", "quality_settings_overhangs#hole-area");
3119 optgroup->append_single_option_line("extra_perimeters_on_overhangs", "quality_settings_overhangs#extra-perimeters-on-overhangs");
3120 optgroup->append_single_option_line("overhang_reverse", "quality_settings_overhangs#reverse-on-even");
3121 optgroup->append_single_option_line("overhang_reverse_internal_only", "quality_settings_overhangs#reverse-internal-only");
3122 optgroup->append_single_option_line("overhang_reverse_threshold", "quality_settings_overhangs#reverse-threshold");
3123
3125 optgroup = page->new_optgroup(
L(
"Walls"),
L"param_wall");
3126 optgroup->append_single_option_line("wall_loops", "strength_settings_walls#wall-loops");
3127 optgroup->append_single_option_line("alternate_extra_wall", "strength_settings_walls#alternate-extra-wall");
3128 optgroup->append_single_option_line("detect_thin_wall", "strength_settings_walls#detect-thin-wall");
3129
3130 optgroup = page->new_optgroup(
L(
"Top/bottom shells"),
L"param_shell");
3131
3132 optgroup->append_single_option_line("top_shell_layers", "strength_settings_top_bottom_shells#shell-layers");
3133 optgroup->append_single_option_line("top_shell_thickness", "strength_settings_top_bottom_shells#shell-thickness");
3134 optgroup->append_single_option_line("top_color_penetration_layers", "strength_settings_top_bottom_shells#paint-penetration-layers");
3135 optgroup->append_single_option_line("top_surface_density", "strength_settings_top_bottom_shells#surface-density");
3136 optgroup->append_single_option_line("top_surface_pattern", "strength_settings_top_bottom_shells#surface-pattern");
3137 optgroup->append_single_option_line("top_surface_fill_order", "strength_settings_top_bottom_shells#fill-order");
3138 optgroup->append_single_option_line("top_layer_direction", "strength_settings_infill#top-bottom-direction");
3139 optgroup->append_single_option_line("top_surface_expansion", "strength_settings_top_bottom_shells#surface-expansion");
3140 optgroup->append_single_option_line("top_surface_expansion_margin", "strength_settings_top_bottom_shells#surface-expansion-margin");
3141 optgroup->append_single_option_line("top_surface_expansion_direction", "strength_settings_top_bottom_shells#surface-expansion-direction");
3142 optgroup->append_single_option_line("bottom_shell_layers", "strength_settings_top_bottom_shells#shell-layers");
3143 optgroup->append_single_option_line("bottom_shell_thickness", "strength_settings_top_bottom_shells#shell-thickness");
3144 optgroup->append_single_option_line("bottom_color_penetration_layers", "strength_settings_top_bottom_shells#paint-penetration-layers");
3145 optgroup->append_single_option_line("bottom_surface_density", "strength_settings_top_bottom_shells#surface-density");
3146 optgroup->append_single_option_line("bottom_surface_pattern", "strength_settings_top_bottom_shells#surface-pattern");
3147 optgroup->append_single_option_line("bottom_surface_fill_order", "strength_settings_top_bottom_shells#fill-order");
3148 optgroup->append_single_option_line("bottom_layer_direction", "strength_settings_infill#top-bottom-direction");
3149 optgroup->append_single_option_line("center_of_surface_pattern", "strength_settings_top_bottom_shells#center-surface-pattern-on");
3150 optgroup->append_single_option_line("top_bottom_infill_wall_overlap", "strength_settings_top_bottom_shells#infillwall-overlap");
3151
3152 optgroup = page->new_optgroup(
L(
"Infill"),
L"param_infill");
3153 optgroup->append_single_option_line("sparse_infill_density", "strength_settings_infill#sparse-infill-density");
3154 optgroup->append_single_option_line("fill_multiline", "strength_settings_infill#fill-multiline");
3155 optgroup->append_single_option_line("sparse_infill_pattern", "strength_settings_infill#sparse-infill-pattern");
3156 optgroup->append_single_option_line("adaptive_infill_mode", "strength_settings_patterns#adaptive-density");
3157 optgroup->append_single_option_line("adaptive_infill_interior_density", "strength_settings_patterns#interior-density");
3158 optgroup->append_single_option_line("adaptive_infill_gradient", "strength_settings_patterns#adaptive-gradient");
3159 optgroup->append_single_option_line("gyroid_optimized", "strength_settings_patterns#gyroid-optimized");
3160 optgroup->append_single_option_line("sparse_infill_smooth_factor", "strength_settings_infill#sparse-infill-smooth-factor");
3161 optgroup->append_single_option_line("infill_direction", "strength_settings_infill#direction");
3162 optgroup->append_single_option_line("sparse_infill_rotate_template", "strength_settings_infill_rotation_template_metalanguage");
3163 optgroup->append_single_option_line("skin_infill_density", "strength_settings_patterns#locked-zag");
3164 optgroup->append_single_option_line("skeleton_infill_density", "strength_settings_patterns#locked-zag");
3165 optgroup->append_single_option_line("infill_lock_depth", "strength_settings_patterns#locked-zag");
3166 optgroup->append_single_option_line("skin_infill_depth", "strength_settings_patterns#locked-zag");
3167 optgroup->append_single_option_line("skin_infill_line_width", "strength_settings_patterns#locked-zag");
3168 optgroup->append_single_option_line("skeleton_infill_line_width", "strength_settings_patterns#locked-zag");
3169 optgroup->append_single_option_line("symmetric_infill_y_axis", "strength_settings_infill#symmetric-infill-y-axis");
3170 optgroup->append_single_option_line("infill_complete_top", "strength_settings_patterns#fill-pattern-tops");
3171 optgroup->append_single_option_line("infill_shift_step", "strength_settings_patterns#cross-zag");
3172 optgroup->append_single_option_line("lateral_lattice_angle_1", "strength_settings_patterns#lateral-lattice");
3173 optgroup->append_single_option_line("lateral_lattice_angle_2", "strength_settings_patterns#lateral-lattice");
3174 optgroup->append_single_option_line("infill_overhang_angle", "strength_settings_patterns#lateral-honeycomb");
3175 optgroup->append_single_option_line("lightning_overhang_angle", "strength_settings_patterns#lightning");
3176 optgroup->append_single_option_line("lightning_prune_angle", "strength_settings_patterns#lightning");
3177 optgroup->append_single_option_line("lightning_straightening_angle", "strength_settings_patterns#lightning");
3178 optgroup->append_single_option_line("infill_anchor_max", "strength_settings_infill#anchor");
3179 optgroup->append_single_option_line("infill_anchor", "strength_settings_infill#anchor");
3180 optgroup->append_single_option_line("internal_solid_infill_pattern", "strength_settings_infill#internal-solid-infill");
3181 optgroup->append_single_option_line("solid_infill_direction", "strength_settings_infill#direction");
3182 optgroup->append_single_option_line("solid_infill_rotate_template", "strength_settings_infill_rotation_template_metalanguage");
3183 optgroup->append_single_option_line("gap_fill_target", "strength_settings_infill#apply-gap-fill");
3184 optgroup->append_single_option_line("filter_out_gap_fill", "strength_settings_infill#filter-out-tiny-gaps");
3185 optgroup->append_single_option_line("separated_infills", "strength_settings_infill#separated-infills");
3186 optgroup->append_single_option_line("infill_wall_overlap", "strength_settings_infill#infill-wall-overlap");
3187
3188 optgroup = page->new_optgroup(
L(
"Advanced"),
L"param_advanced");
3189 optgroup->append_single_option_line("align_infill_direction_to_model", "strength_settings_advanced#align-directions-to-model");
3190 optgroup->append_single_option_line("extra_solid_infills", "strength_settings_infill#extra-solid-infill");
3191 optgroup->append_single_option_line("bridge_angle", "strength_settings_advanced#bridge-infill-direction");
3192 optgroup->append_single_option_line("internal_bridge_angle", "strength_settings_advanced#bridge-infill-direction");
3193 optgroup->append_single_option_line("relative_bridge_angle", "strength_settings_advanced#relative-bridge-angle");
3194 optgroup->append_single_option_line("minimum_sparse_infill_area", "strength_settings_advanced#minimum-sparse-infill-threshold");
3195 optgroup->append_single_option_line("infill_combination", "strength_settings_advanced#infill-combination");
3196 optgroup->append_single_option_line("infill_combination_max_layer_height", "strength_settings_advanced#max-layer-height");
3197 optgroup->append_single_option_line("detect_narrow_internal_solid_infill", "strength_settings_advanced#detect-narrow-internal-solid-infill");
3198 optgroup->append_single_option_line("ensure_vertical_shell_thickness", "strength_settings_advanced#ensure-vertical-shell-thickness");
3199
3201 optgroup = page->new_optgroup(
L(
"First layer speed"),
L"param_speed_first", 15);
3202 optgroup->append_single_option_line("initial_layer_speed", "speed_settings_initial_layer_speed#initial-layer", 0);
3203 optgroup->append_single_option_line("initial_layer_infill_speed", "speed_settings_initial_layer_speed#initial-layer-infill", 0);
3204 optgroup->append_single_option_line("initial_layer_travel_speed", "speed_settings_initial_layer_speed#initial-layer-travel-speed", 0);
3205 optgroup->append_single_option_line("slow_down_layers", "speed_settings_initial_layer_speed#number-of-slow-layers");
3206 optgroup = page->new_optgroup(
L(
"Other layers speed"),
L"param_speed", 15);
3207 optgroup->append_single_option_line("outer_wall_speed", "speed_settings_other_layers_speed#outer-wall", 0);
3208 optgroup->append_single_option_line("inner_wall_speed", "speed_settings_other_layers_speed#inner-wall", 0);
3209 optgroup->append_single_option_line("small_perimeter_speed", "speed_settings_other_layers_speed#small-perimeters", 0);
3210 optgroup->append_single_option_line("small_perimeter_threshold", "speed_settings_other_layers_speed#small-perimeters-threshold", 0);
3211 optgroup->append_single_option_line("sparse_infill_speed", "speed_settings_other_layers_speed#sparse-infill", 0);
3212 optgroup->append_single_option_line("internal_solid_infill_speed", "speed_settings_other_layers_speed#internal-solid-infill", 0);
3213 optgroup->append_single_option_line("top_surface_speed", "speed_settings_other_layers_speed#top-surface", 0);
3214 optgroup->append_single_option_line("gap_infill_speed", "speed_settings_other_layers_speed#gap-infill", 0);
3215 optgroup->append_single_option_line("ironing_speed", "speed_settings_other_layers_speed#ironing-speed");
3216 optgroup->append_single_option_line("support_speed", "speed_settings_other_layers_speed#support", 0);
3217 optgroup->append_single_option_line("support_interface_speed", "speed_settings_other_layers_speed#support-interface", 0);
3218 optgroup->append_single_option_line("small_support_perimeter_speed", "speed_settings_other_layers_speed#small-tree-support-perimeters", 0);
3219 optgroup->append_single_option_line("small_support_perimeter_threshold", "speed_settings_other_layers_speed#small-tree-support-perimeters-threshold", 0);
3220 optgroup = page->new_optgroup(
L(
"Overhang speed"),
L"param_overhang_speed", 15);
3221 optgroup->append_single_option_line("enable_overhang_speed", "speed_settings_overhang_speed#slow-down-for-overhang", 0);
3222
3223 optgroup->append_single_option_line("slowdown_for_curled_perimeters", "speed_settings_overhang_speed#slow-down-for-curled-perimeters", 0);
3224 Line line = {
L(
"Overhang speed"),
L(
"This is the speed for various overhang degrees. Overhang degrees are expressed as a percentage of line width. 0 speed means no slowing down for the overhang degree range and wall speed is used") };
3225 line.label_path = "speed_settings_overhang_speed#speed";
3226 line.append_option(optgroup->get_option("overhang_1_4_speed", 0));
3227 line.append_option(optgroup->get_option("overhang_2_4_speed", 0));
3228 line.append_option(optgroup->get_option("overhang_3_4_speed", 0));
3229 line.append_option(optgroup->get_option("overhang_4_4_speed", 0));
3230 optgroup->append_line(line);
3231 optgroup->append_separator();
3232 line = {
L(
"Bridge"),
L(
"Set speed for external and internal bridges") };
3233 line.append_option(optgroup->get_option("bridge_speed", 0));
3234 line.append_option(optgroup->get_option("internal_bridge_speed", 0));
3235 optgroup->append_line(line);
3236
3237 optgroup = page->new_optgroup(
L(
"Travel speed"),
L"param_travel_speed", 15);
3238 optgroup->append_single_option_line("travel_speed", "speed_settings_travel", 0);
3239
3240 optgroup = page->new_optgroup(
L(
"Acceleration"),
L"param_acceleration", 15);
3241 optgroup->append_single_option_line("default_acceleration", "speed_settings_acceleration#normal-printing", 0);
3242 optgroup->append_single_option_line("outer_wall_acceleration", "speed_settings_acceleration#outer-wall", 0);
3243 optgroup->append_single_option_line("inner_wall_acceleration", "speed_settings_acceleration#inner-wall", 0);
3244 optgroup->append_single_option_line("bridge_acceleration", "speed_settings_acceleration#bridge", 0);
3245 optgroup->append_single_option_line("sparse_infill_acceleration", "speed_settings_acceleration#sparse-infill", 0);
3246 optgroup->append_single_option_line("internal_solid_infill_acceleration", "speed_settings_acceleration#internal-solid-infill", 0);
3247 optgroup->append_single_option_line("initial_layer_acceleration", "speed_settings_acceleration#initial-layer", 0);
3248 optgroup->append_single_option_line("initial_layer_travel_acceleration", "speed_settings_acceleration#initial-layer-travel", 0);
3249 optgroup->append_single_option_line("top_surface_acceleration", "speed_settings_acceleration#top-surface", 0);
3250 optgroup->append_single_option_line("travel_acceleration", "speed_settings_acceleration#travel", 0);
3251 optgroup->append_single_option_line("accel_to_decel_enable", "speed_settings_acceleration#enable-accel-to-decel");
3252 optgroup->append_single_option_line("accel_to_decel_factor", "speed_settings_acceleration#accel-to-decel");
3253
3254 optgroup = page->new_optgroup(
L(
"Junction Deviation"),
L"param_junction_deviation", 15);
3255 optgroup->append_single_option_line("default_junction_deviation", "speed_settings_jerk_xy#junction-deviation", 0);
3256
3257 optgroup = page->new_optgroup(
L(
"Jerk(XY)"),
L"param_jerk", 15);
3258 optgroup->append_single_option_line("default_jerk", "speed_settings_jerk_xy#default", 0);
3259 optgroup->append_single_option_line("outer_wall_jerk", "speed_settings_jerk_xy#outer-wall", 0);
3260 optgroup->append_single_option_line("inner_wall_jerk", "speed_settings_jerk_xy#inner-wall", 0);
3261 optgroup->append_single_option_line("infill_jerk", "speed_settings_jerk_xy#infill", 0);
3262 optgroup->append_single_option_line("top_surface_jerk", "speed_settings_jerk_xy#top-surface", 0);
3263 optgroup->append_single_option_line("initial_layer_jerk", "speed_settings_jerk_xy#initial-layer", 0);
3264 optgroup->append_single_option_line("initial_layer_travel_jerk", "speed_settings_jerk_xy#initial-layer-travel", 0);
3265 optgroup->append_single_option_line("travel_jerk", "speed_settings_jerk_xy#travel", 0);
3266
3267 optgroup = page->new_optgroup(
L(
"Advanced"),
L"param_advanced", 15);
3268 optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope", "speed_settings_advanced");
3269 optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_segment_length", "speed_settings_advanced");
3270 optgroup->append_single_option_line("extrusion_rate_smoothing_external_perimeter_only", "speed_settings_advanced#apply-only-on-external-features");
3271
3273 optgroup = page->new_optgroup(
L(
"Support"),
L"param_support");
3274 optgroup->append_single_option_line("enable_support", "support_settings_support");
3275 optgroup->append_single_option_line("support_type", "support_settings_support#type");
3276 optgroup->append_single_option_line("support_style", "support_settings_support#style");
3277 optgroup->append_single_option_line("support_threshold_angle", "support_settings_support#threshold-angle");
3278 optgroup->append_single_option_line("support_threshold_overlap", "support_settings_support#threshold-overlap");
3279 optgroup->append_single_option_line("raft_first_layer_density", "support_settings_support#initial-layer-density");
3280 optgroup->append_single_option_line("raft_first_layer_expansion", "support_settings_support#initial-layer-expansion");
3281 optgroup->append_single_option_line("support_on_build_plate_only", "support_settings_support#on-build-plate-only");
3282 optgroup->append_single_option_line("support_critical_regions_only", "support_settings_support#support-critical-regions-only");
3283 optgroup->append_single_option_line("support_remove_small_overhang", "support_settings_support#ignore-small-overhangs");
3284
3285
3286 optgroup = page->new_optgroup(
L(
"Raft"),
L"param_raft");
3287 optgroup->append_single_option_line("raft_layers", "support_settings_raft");
3288 optgroup->append_single_option_line("raft_contact_distance", "support_settings_raft");
3289 optgroup->append_single_option_line("raft_expansion", "support_settings_raft");
3290
3291 optgroup = page->new_optgroup(
L(
"Filament for Supports"),
L"param_support_filament");
3292 optgroup->append_single_option_line("support_filament", "support_settings_filament#base");
3293 optgroup->append_single_option_line("support_interface_filament", "support_settings_filament#interface");
3294 optgroup->append_single_option_line("support_interface_not_for_body", "support_settings_filament#avoid-interface-filament-for-base");
3295
3296 optgroup = page->new_optgroup(
L(
"Support ironing"),
L"param_ironing");
3297 optgroup->append_single_option_line("support_ironing", "support_settings_ironing");
3298 optgroup->append_single_option_line("support_ironing_pattern", "support_settings_ironing#pattern");
3299 optgroup->append_single_option_line("support_ironing_flow", "support_settings_ironing#flow");
3300 optgroup->append_single_option_line("support_ironing_spacing", "support_settings_ironing#line-spacing");
3301
3302
3303
3304
3305 optgroup = page->new_optgroup(
L(
"Advanced"),
L"param_advanced");
3306 optgroup->append_single_option_line("support_top_z_distance", "support_settings_advanced#z-distance");
3307 optgroup->append_single_option_line("support_bottom_z_distance", "support_settings_advanced#z-distance");
3308 optgroup->append_single_option_line("tree_support_wall_count", "support_settings_advanced#support-wall-loops");
3309 optgroup->append_single_option_line("support_base_pattern", "support_settings_advanced#base-pattern");
3310 optgroup->append_single_option_line("support_base_pattern_spacing", "support_settings_advanced#base-pattern-spacing");
3311 optgroup->append_single_option_line("support_angle", "support_settings_advanced#pattern-angle");
3312 optgroup->append_single_option_line("support_interface_top_layers", "support_settings_advanced#interface-layers");
3313 optgroup->append_single_option_line("support_interface_bottom_layers", "support_settings_advanced#interface-layers");
3314 optgroup->append_single_option_line("support_interface_pattern", "support_settings_advanced#interface-pattern");
3315 optgroup->append_single_option_line("support_interface_spacing", "support_settings_advanced#interface-spacing");
3316 optgroup->append_single_option_line("support_bottom_interface_spacing", "support_settings_advanced#interface-spacing");
3317 optgroup->append_single_option_line("support_expansion", "support_settings_advanced#normal-support-expansion");
3318
3319
3320 optgroup->append_single_option_line("support_object_xy_distance", "support_settings_advanced#supportobject-xy-distance");
3321 optgroup->append_single_option_line("support_object_first_layer_gap", "support_settings_advanced#supportobject-first-layer-gap");
3322 optgroup->append_single_option_line("bridge_no_support", "support_settings_advanced#dont-support-bridges");
3323 optgroup->append_single_option_line("max_bridge_length", "support_settings_advanced#max-bridge-length");
3324 optgroup->append_single_option_line("independent_support_layer_height", "support_settings_advanced#independent-support-layer-height");
3325
3326 optgroup = page->new_optgroup(
L(
"Tree supports"),
L"param_support_tree");
3327 optgroup->append_single_option_line("tree_support_tip_diameter", "support_settings_tree#tip-diameter");
3328 optgroup->append_single_option_line("tree_support_branch_distance", "support_settings_tree#branch-distance");
3329 optgroup->append_single_option_line("tree_support_branch_distance_organic", "support_settings_tree#branch-distance");
3330 optgroup->append_single_option_line("tree_support_top_rate", "support_settings_tree#branch-density");
3331 optgroup->append_single_option_line("tree_support_branch_diameter", "support_settings_tree#branch-diameter");
3332 optgroup->append_single_option_line("tree_support_branch_diameter_organic", "support_settings_tree#branch-diameter");
3333 optgroup->append_single_option_line("tree_support_branch_diameter_angle", "support_settings_tree#branch-diameter-angle");
3334 optgroup->append_single_option_line("tree_support_branch_angle", "support_settings_tree#branch-angle");
3335 optgroup->append_single_option_line("tree_support_branch_angle_organic", "support_settings_tree#branch-angle");
3336 optgroup->append_single_option_line("tree_support_angle_slow", "support_settings_tree#preferred-branch-angle");
3337 optgroup->append_single_option_line("tree_support_auto_brim", "support_settings_tree#auto-brim-width");
3338 optgroup->append_single_option_line("tree_support_brim_width", "support_settings_tree#tree-support-brim-width");
3339
3341 optgroup = page->new_optgroup(
L(
"Prime tower"),
L"param_tower");
3342 optgroup->append_single_option_line("enable_prime_tower", "multimaterial_settings_prime_tower");
3343 optgroup->append_single_option_line("prime_tower_skip_points", "multimaterial_settings_prime_tower#skip-points");
3344 optgroup->append_single_option_line("enable_tower_interface_features", "multimaterial_settings_prime_tower#enable-tower-interface-features");
3345 optgroup->append_single_option_line("enable_tower_interface_cooldown_during_tower", "multimaterial_settings_prime_tower#cool-down-from-interface-boost-during-prime-tower");
3346 optgroup->append_single_option_line("prime_tower_enable_framework", "multimaterial_settings_prime_tower#internal-ribs");
3347 optgroup->append_single_option_line("prime_tower_width", "multimaterial_settings_prime_tower#width");
3348 optgroup->append_single_option_line("belt_purge_tower_width", "multimaterial_settings_prime_tower#belt-purge-tower-width");
3349 optgroup->append_single_option_line("prime_volume", "multimaterial_settings_prime_tower#prime-volume");
3350 optgroup->append_single_option_line("prime_tower_brim_width", "multimaterial_settings_prime_tower#brim-width");
3351 optgroup->append_single_option_line("prime_tower_infill_gap", "multimaterial_settings_prime_tower#infill-gap");
3352 optgroup->append_single_option_line("wipe_tower_rotation_angle", "multimaterial_settings_prime_tower#wipe-tower-rotation-angle");
3353 optgroup->append_single_option_line("wipe_tower_bridging", "multimaterial_settings_prime_tower#maximal-bridging-distance");
3354 optgroup->append_single_option_line("wipe_tower_extra_spacing", "multimaterial_settings_prime_tower#wipe-tower-purge-lines-spacing");
3355 optgroup->append_single_option_line("wipe_tower_extra_flow", "multimaterial_settings_prime_tower#extra-flow-for-purge");
3356 optgroup->append_single_option_line("wipe_tower_max_purge_speed", "multimaterial_settings_prime_tower#maximum-wipe-tower-print-speed");
3357 optgroup->append_single_option_line("wipe_tower_wall_type", "multimaterial_settings_prime_tower#wall-type");
3358 optgroup->append_single_option_line("wipe_tower_cone_angle", "multimaterial_settings_prime_tower#stabilization-cone-apex-angle");
3359 optgroup->append_single_option_line("wipe_tower_extra_rib_length", "multimaterial_settings_prime_tower#extra-rib-length");
3360 optgroup->append_single_option_line("wipe_tower_rib_width", "multimaterial_settings_prime_tower#rib-width");
3361 optgroup->append_single_option_line("wipe_tower_fillet_wall", "multimaterial_settings_prime_tower#fillet-wall");
3362 optgroup->append_single_option_line("wipe_tower_no_sparse_layers", "multimaterial_settings_prime_tower#no-sparse-layers");
3363 optgroup->append_single_option_line("wipe_tower_sparse_layers_combination", "multimaterial_settings_prime_tower#combine-sparse-layers");
3364 optgroup->append_single_option_line("single_extruder_multi_material_priming", "multimaterial_settings_prime_tower#prime-all-printing-extruders");
3365
3366 optgroup = page->new_optgroup(
L(
"Filament for Features"),
L"param_filament_for_features");
3367 optgroup->append_single_option_line("outer_wall_filament_id", "multimaterial_settings_filament_for_features#outer-walls");
3368 optgroup->append_single_option_line("inner_wall_filament_id", "multimaterial_settings_filament_for_features#inner-walls");
3369 optgroup->append_single_option_line("sparse_infill_filament_id", "multimaterial_settings_filament_for_features#sparse-infill");
3370 optgroup->append_single_option_line("internal_solid_filament_id", "multimaterial_settings_filament_for_features#internal-solid-infill");
3371 optgroup->append_single_option_line("top_surface_filament_id", "multimaterial_settings_filament_for_features#top-surface");
3372 optgroup->append_single_option_line("bottom_surface_filament_id", "multimaterial_settings_filament_for_features#bottom-surface");
3373 optgroup->append_single_option_line("wipe_tower_filament", "multimaterial_settings_filament_for_features#wipe-tower");
3374
3375 optgroup = page->new_optgroup(
L(
"Ooze prevention"),
L"param_ooze_prevention");
3376 optgroup->append_single_option_line("ooze_prevention", "multimaterial_settings_ooze_prevention");
3377 optgroup->append_single_option_line("standby_temperature_delta", "multimaterial_settings_ooze_prevention#temperature-variation");
3378 optgroup->append_single_option_line("preheat_time", "multimaterial_settings_ooze_prevention#preheat-time");
3379 optgroup->append_single_option_line("preheat_steps", "multimaterial_settings_ooze_prevention#preheat-steps");
3380
3381 optgroup = page->new_optgroup(
L(
"Flush options"),
L"param_flush");
3382 optgroup->append_single_option_line("flush_into_infill", "multimaterial_settings_flush_options#flush-into-objects-infill");
3383 optgroup->append_single_option_line("flush_into_objects", "multimaterial_settings_flush_options#flush-into-this-object");
3384 optgroup->append_single_option_line("flush_into_support", "multimaterial_settings_flush_options#flush-into-objects-support");
3385 optgroup = page->new_optgroup(
L(
"Advanced"),
L"advanced");
3386 optgroup->append_single_option_line("interlocking_beam", "multimaterial_settings_advanced#interlocking-beam");
3387 optgroup->append_single_option_line("toolchange_ordering", "multimaterial_settings_advanced#toolchange-ordering");
3388 optgroup->append_single_option_line("toolchange_cyclic_order", "multimaterial_settings_advanced#toolchange-order");
3389 optgroup->append_single_option_line("toolchange_cyclic_first_layer", "multimaterial_settings_advanced#toolchange-order");
3390 optgroup->append_single_option_line("interface_shells", "multimaterial_settings_advanced#interface-shells");
3391 optgroup->append_single_option_line("mmu_segmented_region_max_width", "multimaterial_settings_advanced#maximum-width-of-segmented-region");
3392 optgroup->append_single_option_line("mmu_segmented_region_interlocking_depth", "multimaterial_settings_advanced#interlocking-depth-of-segmented-region");
3393 optgroup->append_single_option_line("interlocking_beam_width", "multimaterial_settings_advanced#interlocking-beam-width");
3394 optgroup->append_single_option_line("interlocking_orientation", "multimaterial_settings_advanced#interlocking-direction");
3395 optgroup->append_single_option_line("interlocking_beam_layer_count", "multimaterial_settings_advanced#interlocking-beam-layers");
3396 optgroup->append_single_option_line("interlocking_depth", "multimaterial_settings_advanced#interlocking-depth");
3397 optgroup->append_single_option_line("interlocking_boundary_avoidance", "multimaterial_settings_advanced#interlocking-boundary-avoidance");
3398
3400 optgroup = page->new_optgroup(
L(
"Skirt"),
L"param_skirt");
3401 optgroup->append_single_option_line("skirt_loops", "others_settings_skirt#loops");
3402 optgroup->append_single_option_line("skirt_type", "others_settings_skirt#type");
3403 optgroup->append_single_option_line("min_skirt_length", "others_settings_skirt#minimum-extrusion-length");
3404 optgroup->append_single_option_line("skirt_distance", "others_settings_skirt#distance");
3405 optgroup->append_single_option_line("skirt_start_angle", "others_settings_skirt#start-point");
3406 optgroup->append_single_option_line("skirt_speed", "others_settings_skirt#speed");
3407 optgroup->append_single_option_line("skirt_height", "others_settings_skirt#height");
3408 optgroup->append_single_option_line("draft_shield", "others_settings_skirt#shield");
3409 optgroup->append_single_option_line("single_loop_draft_shield", "others_settings_skirt#single-loop-after-first-layer");
3410
3411 optgroup = page->new_optgroup(
L(
"Brim"),
L"param_adhension");
3412 optgroup->append_single_option_line("brim_type", "others_settings_brim#type");
3413 optgroup->append_single_option_line("brim_width", "others_settings_brim#width");
3414 optgroup->append_single_option_line("leading_brim_length", "others_settings_brim#leading-length");
3415 optgroup->append_single_option_line("extra_brim_width", "others_settings_brim#extra-width");
3416 optgroup->append_single_option_line("brim_object_gap", "others_settings_brim#brim-object-gap");
3417 optgroup->append_single_option_line("brim_flow_ratio", "others_settings_brim#brim-flow-ratio");
3418 optgroup->append_single_option_line("brim_use_efc_outline", "others_settings_brim#brim-use-efc-outline");
3419 optgroup->append_single_option_line("combine_brims", "others_settings_brim#combine-brims");
3420 optgroup->append_single_option_line("brim_ears_max_angle", "others_settings_brim#ear-max-angle");
3421 optgroup->append_single_option_line("brim_ears_detection_length", "others_settings_brim#ear-detection-radius");
3422 optgroup->append_single_option_line("brim_ears_outer_only", "others_settings_brim#brim-ears-outer-only");
3423
3424 optgroup = page->new_optgroup(
L(
"Special mode"),
L"param_special");
3425 optgroup->append_single_option_line("slicing_mode", "others_settings_special_mode#slicing-mode");
3426 optgroup->append_single_option_line("print_sequence", "others_settings_special_mode#print-sequence");
3427 optgroup->append_single_option_line("print_order", "others_settings_special_mode#intra-layer-order");
3428 optgroup->append_single_option_line("spiral_mode", "others_settings_special_mode#spiral-vase");
3429 optgroup->append_single_option_line("spiral_mode_smooth", "others_settings_special_mode#smooth-spiral");
3430 optgroup->append_single_option_line("spiral_mode_max_xy_smoothing", "others_settings_special_mode#max-xy-smoothing");
3431 optgroup->append_single_option_line("spiral_starting_flow_ratio", "others_settings_special_mode#spiral-starting-flow-ratio");
3432 optgroup->append_single_option_line("spiral_finishing_flow_ratio", "others_settings_special_mode#spiral-finishing-flow-ratio");
3433
3434 optgroup->append_single_option_line("timelapse_type", "others_settings_special_mode#timelapse");
3435 optgroup->append_single_option_line("enable_wrapping_detection", "others_settings_special_mode#enable-clumping-detection");
3436
3437 optgroup = page->new_optgroup(
L(
"Fuzzy skin"),
L"fuzzy_skin");
3438 optgroup->append_single_option_line("fuzzy_skin", "others_settings_fuzzy_skin#fuzzy-skin-mode");
3439 optgroup->append_single_option_line("fuzzy_skin_mode", "others_settings_fuzzy_skin#fuzzy-skin-generator-mode");
3440 optgroup->append_single_option_line("fuzzy_skin_noise_type", "others_settings_fuzzy_skin#noise-type");
3441 optgroup->append_single_option_line("fuzzy_skin_point_distance", "others_settings_fuzzy_skin#point-distance");
3442 optgroup->append_single_option_line("fuzzy_skin_thickness", "others_settings_fuzzy_skin#skin-thickness");
3443 optgroup->append_single_option_line("fuzzy_skin_scale", "others_settings_fuzzy_skin#skin-feature-size");
3444 optgroup->append_single_option_line("fuzzy_skin_octaves", "others_settings_fuzzy_skin#skin-noise-octaves");
3445 optgroup->append_single_option_line("fuzzy_skin_persistence", "others_settings_fuzzy_skin#skin-noise-persistence");
3446 optgroup->append_single_option_line("fuzzy_skin_ripples_per_layer", "others_settings_fuzzy_skin#ripples-per-layer");
3447 optgroup->append_single_option_line("fuzzy_skin_ripple_offset", "others_settings_fuzzy_skin#ripple-offset");
3448 optgroup->append_single_option_line("fuzzy_skin_layers_between_ripple_offset", "others_settings_fuzzy_skin#layers-between-ripple-offset");
3449 optgroup->append_single_option_line("fuzzy_skin_first_layer", "others_settings_fuzzy_skin#apply-fuzzy-skin-to-first-layer");
3450
3451 optgroup = page->new_optgroup(
L(
"G-code output"),
L"param_gcode");
3452 optgroup->append_single_option_line("reduce_infill_retraction", "others_settings_g_code_output#reduce-infill-retraction");
3453 optgroup->append_single_option_line("gcode_add_line_number", "others_settings_g_code_output#add-line-number");
3454 optgroup->append_single_option_line("gcode_comments", "others_settings_g_code_output#verbose-g-code");
3455 optgroup->append_single_option_line("high_precision_gcode", "others_settings_g_code_output#high-precision-g-code");
3456 optgroup->append_single_option_line("gcode_label_objects", "others_settings_g_code_output#label-objects");
3457 optgroup->append_single_option_line("exclude_object", "others_settings_g_code_output#exclude-objects");
3458 optgroup->append_single_option_line("exclude_object_tolerance", "others_settings_g_code_output#outline-tolerance");
3459 option = optgroup->get_option("filename_format");
3460
3461 option.opt.is_code = true;
3462 option.opt.multiline = true;
3463
3464 optgroup->append_single_option_line(option, "others_settings_g_code_output#filename-format");
3465
3466 optgroup = page->new_optgroup(
L(
"Change extrusion role G-code"),
L"param_gcode", 0);
3467 optgroup->m_on_change = [
this, &optgroup_title = optgroup->title](
const t_config_option_key& opt_key,
const boost::any& value) {
3469 };
3471 option = optgroup->get_option("process_change_extrusion_role_gcode");
3472 option.opt.full_width = true;
3473 option.opt.is_code = true;
3474 option.opt.height = 15;
3475 optgroup->append_single_option_line(option, "others_settings_g_code_output#change-extrusion-role-g-code");
3476
3477 optgroup = page->new_optgroup(
L(
"Post-processing Scripts"),
L"param_gcode", 0);
3478 option = optgroup->get_option("post_process");
3479 option.opt.full_width = true;
3480 option.opt.is_code = true;
3481 option.opt.height = 15;
3482 optgroup->append_single_option_line(option, "others_settings_post_processing_scripts");
3483
3484 optgroup = page->new_optgroup(
L(
"Slicing Pipeline Plugin"),
L"param_gcode", 0);
3485 optgroup->hide_labels();
3486 option = optgroup->get_option("slicing_pipeline_plugin");
3487 option.opt.full_width = true;
3488 optgroup->append_single_option_line(option, "plugins_types#slicing-pipeline");
3489
3490
3491
3492 optgroup = page->new_optgroup(
L(
"Plugin Configuration"),
L"param_gcode");
3493 optgroup->append_single_option_line("print_plugin_config_overrides");
3494
3495 optgroup = page->new_optgroup(
L(
"Notes"),
"note", 0);
3496 option = optgroup->get_option("notes");
3497 option.opt.full_width = true;
3498 option.opt.height = 25;
3499 optgroup->append_single_option_line(option, "others_settings_notes");
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514}
void load_initial_data()
Definition Tab.cpp:772
PageShp add_options_page(const wxString &title, const std::string &icon, bool is_extruder_pages=false)
Definition Tab.cpp:781
void edit_custom_gcode(const t_config_option_key &opt_key)
Definition Tab.cpp:4378
static void validate_custom_gcode_cb(Tab *tab, const wxString &title, const t_config_option_key &opt_key, const boost::any &value)
Definition Tab.cpp:4354
std::string t_config_option_key
Definition Config.hpp:96