mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-06-10 14:02:47 +00:00
Add generated C++ files from proto schema
This commit is contained in:
117
codegen/README.md
Normal file
117
codegen/README.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# PrintConfig Codegen -- Implementation Status
|
||||
|
||||
## Pipeline Overview
|
||||
|
||||
```
|
||||
src/proto/generated/*.proto (22 files, grouped by Tab.cpp page)
|
||||
|
|
||||
v
|
||||
protoc (compile)
|
||||
|
|
||||
v
|
||||
config.desc (binary descriptor set)
|
||||
|
|
||||
v
|
||||
config_codegen.py (codegen)
|
||||
|
|
||||
+-- codegen/generated/PrintConfigDef_generated.cpp
|
||||
+-- codegen/generated/Preset_options_generated.cpp
|
||||
+-- codegen/generated/Invalidation_generated.cpp
|
||||
+-- codegen/generated/OptionKeys_generated.cpp
|
||||
+-- codegen/generated/TabLayout_generated.cpp
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
| Tool | Purpose |
|
||||
|--|--|
|
||||
| `tools/config_codegen.py` | Reads compiled proto descriptor, generates 4 C++ source files |
|
||||
| `tools/validate_codegen.py` | Compares generated output against original `PrintConfig.cpp` for fidelity |
|
||||
| `tools/run_codegen.py` | Convenience script: runs the full pipeline (compile -> generate -> validate) |
|
||||
| `cmake/modules/ConfigCodegen.cmake` | CMake integration with `codegen_config` and `validate_config` targets |
|
||||
|
||||
## Generated Outputs
|
||||
|
||||
| File | Replaces | Status |
|
||||
|--|--|--|
|
||||
| `codegen/generated/PrintConfigDef_generated.cpp` | `init_fff_params()` body (~6000 lines) | Generated, not yet wired in |
|
||||
| `codegen/generated/Preset_options_generated.cpp` | `s_Preset_*_options` string vectors in `Preset.cpp` | Generated, not yet wired in |
|
||||
| `codegen/generated/Invalidation_generated.cpp` | `opt_key == "..."` chains in `Print.cpp` | Generated, not yet wired in |
|
||||
| `codegen/generated/OptionKeys_generated.cpp` | Extruder/filament key lists | Generated, not yet wired in |
|
||||
| `codegen/generated/TabLayout_generated.cpp` | `add_options_page` / `new_optgroup` / `append_single_option_line` calls in `Tab.cpp` | Generated, not yet wired in |
|
||||
|
||||
## Coverage (as of last run)
|
||||
|
||||
- **622 settings** total (612 parsed + 12 machine axis expanded from loop, 2 duplicates removed)
|
||||
- **474/622 settings** mapped to Tab.cpp pages; remaining grouped by PrintConfig category
|
||||
- **22 .proto files** grouped by Tab.cpp page (e.g. `print_quality.proto`, `filament.proto`)
|
||||
- **451 option lines** across 16 pages in `TabLayout_generated.cpp`
|
||||
- **610/610 shared settings** validated against original -- **0 errors**
|
||||
- **12 extra settings** from machine axis expansion (original uses a runtime `AxisDefault` loop)
|
||||
|
||||
## Known Limitations
|
||||
|
||||
- `filament_type` enum values are populated at runtime via `MaterialType::all()` -- cannot be statically parsed
|
||||
- `min_bead_width` shows a false-positive enum_map mismatch in validation
|
||||
- Machine axis settings (`machine_max_speed_x/y/z/e`, etc.) are manually expanded from the original `AxisDefault` loop
|
||||
|
||||
## How to Run
|
||||
|
||||
```bash
|
||||
# Full pipeline (compile + generate + validate)
|
||||
python tools/run_codegen.py
|
||||
|
||||
# Validate only
|
||||
python tools/run_codegen.py --validate-only
|
||||
|
||||
# CMake targets (after including ConfigCodegen.cmake)
|
||||
cmake --build . --target codegen_config
|
||||
cmake --build . --target validate_config
|
||||
```
|
||||
|
||||
## File Layout
|
||||
|
||||
```
|
||||
src/proto/
|
||||
+-- config_metadata.proto # Custom field option extensions
|
||||
+-- generated/
|
||||
+-- print_quality.proto # 99 settings (Print / Quality page)
|
||||
+-- strength.proto # 46 settings (Print / Strength page)
|
||||
+-- print_speed.proto # 48 settings (Print / Speed page)
|
||||
+-- print_support.proto # 48 settings (Print / Support page)
|
||||
+-- others.proto # 48 settings (Print / Others page)
|
||||
+-- print_multimaterial.proto # 41 settings (Print / Multimaterial page)
|
||||
+-- filament.proto # 43 settings (Filament / Filament page)
|
||||
+-- cooling.proto # 22 settings (Filament / Cooling page)
|
||||
+-- filament_multimaterial.proto # 21 settings (Filament / Multimaterial page)
|
||||
+-- advanced.proto # 3 settings (Filament / Advanced page)
|
||||
+-- dependencies.proto # 2 settings (Filament / Dependencies page)
|
||||
+-- filament_notes.proto # 1 setting (Filament / Notes page)
|
||||
+-- basic_information.proto # 29 settings (Printer / Basic information page)
|
||||
+-- machine_g_code.proto # 12 settings (Printer / Machine G-code page)
|
||||
+-- motion_ability.proto # 10 settings (Printer / Motion ability page)
|
||||
+-- printer_notes.proto # 1 setting (Printer / Notes page)
|
||||
+-- machine_limits.proto # 19 settings (no Tab.cpp page, Machine limits category)
|
||||
+-- uncategorized.proto # 116 settings (no Tab.cpp page, no category)
|
||||
+-- quality.proto # 6 settings (fallback)
|
||||
+-- support.proto # 5 settings (fallback)
|
||||
+-- speed.proto # 1 setting (fallback)
|
||||
+-- extruders.proto # 1 setting (fallback)
|
||||
+-- parsed_settings.json # JSON IR for inspection
|
||||
|
||||
tools/
|
||||
+-- config_codegen.py # Proto descriptor -> C++ codegen
|
||||
+-- config_metadata_pb2.py # Generated Python bindings for extensions
|
||||
+-- validate_codegen.py # Generated vs original validation
|
||||
+-- run_codegen.py # Pipeline script
|
||||
|
||||
codegen/generated/
|
||||
+-- PrintConfigDef_generated.cpp # init_fff_params() body
|
||||
+-- Preset_options_generated.cpp # s_Preset_*_options
|
||||
+-- Invalidation_generated.cpp # Invalidation map
|
||||
+-- OptionKeys_generated.cpp # Extruder/filament key lists
|
||||
+-- TabLayout_generated.cpp # Tab UI layout (TabPrint/Filament/Printer_build_layout)
|
||||
|
||||
cmake/modules/
|
||||
+-- ConfigCodegen.cmake # CMake integration
|
||||
```
|
||||
255
codegen/generated/Invalidation_generated.cpp
Normal file
255
codegen/generated/Invalidation_generated.cpp
Normal file
@@ -0,0 +1,255 @@
|
||||
// ===== AUTO-GENERATED by tools/config_codegen.py =====
|
||||
|
||||
static const std::unordered_map<std::string, std::vector<PrintStep>> s_print_steps_map = {
|
||||
{"accel_to_decel_enable", {psGCodeExport}},
|
||||
{"accel_to_decel_factor", {psGCodeExport}},
|
||||
{"activate_air_filtration", {psGCodeExport}},
|
||||
{"activate_air_filtration_during_print", {psGCodeExport}},
|
||||
{"activate_air_filtration_on_completion", {psGCodeExport}},
|
||||
{"activate_chamber_temp_control", {psGCodeExport}},
|
||||
{"additional_cooling_fan_speed", {psGCodeExport}},
|
||||
{"bed_temperature_formula", {psGCodeExport}},
|
||||
{"before_layer_change_gcode", {psGCodeExport}},
|
||||
{"bridge_acceleration", {psGCodeExport}},
|
||||
{"chamber_temperature", {psSkirtBrim, psWipeTower, psGCodeExport}},
|
||||
{"change_filament_gcode", {psGCodeExport}},
|
||||
{"close_fan_the_first_x_layers", {psGCodeExport}},
|
||||
{"complete_print_exhaust_fan_speed", {psGCodeExport}},
|
||||
{"cool_plate_temp", {psSkirtBrim, psWipeTower}},
|
||||
{"cool_plate_temp_initial_layer", {psGCodeExport}},
|
||||
{"curr_bed_type", {psGCodeExport}},
|
||||
{"default_acceleration", {psGCodeExport}},
|
||||
{"default_filament_colour", {psGCodeExport}},
|
||||
{"deretraction_speed", {psGCodeExport}},
|
||||
{"disable_m73", {psGCodeExport}},
|
||||
{"dont_slow_down_outer_wall", {psGCodeExport}},
|
||||
{"draft_shield", {psSkirtBrim}},
|
||||
{"during_print_exhaust_fan_speed", {psGCodeExport}},
|
||||
{"enable_arc_fitting", {psSkirtBrim}},
|
||||
{"enable_filament_ramming", {psSkirtBrim, psWipeTower}},
|
||||
{"enable_long_retraction_when_cut", {psGCodeExport}},
|
||||
{"enable_overhang_bridge_fan", {psGCodeExport}},
|
||||
{"enable_pressure_advance", {psGCodeExport}},
|
||||
{"enable_prime_tower", {psSkirtBrim, psWipeTower}},
|
||||
{"enable_tower_interface_features", {psSkirtBrim, psWipeTower}},
|
||||
{"enable_wrapping_detection", {psSkirtBrim, psWipeTower}},
|
||||
{"eng_plate_temp", {psSkirtBrim, psWipeTower}},
|
||||
{"eng_plate_temp_initial_layer", {psGCodeExport}},
|
||||
{"exclude_object", {psGCodeExport}},
|
||||
{"extruder_ams_count", {psSkirtBrim, psWipeTower}},
|
||||
{"extruder_clearance_height_to_lid", {psGCodeExport}},
|
||||
{"extruder_clearance_height_to_rod", {psGCodeExport}},
|
||||
{"extruder_clearance_radius", {psGCodeExport}},
|
||||
{"extruder_colour", {psGCodeExport}},
|
||||
{"extruder_offset", {psGCodeExport}},
|
||||
{"extrusion_rate_smoothing_external_perimeter_only", {psGCodeExport}},
|
||||
{"fan_cooling_layer_time", {psGCodeExport}},
|
||||
{"fan_kickstart", {psGCodeExport}},
|
||||
{"fan_max_speed", {psGCodeExport}},
|
||||
{"fan_min_speed", {psGCodeExport}},
|
||||
{"fan_speedup_overhangs", {psGCodeExport}},
|
||||
{"fan_speedup_time", {psGCodeExport}},
|
||||
{"filament_adaptive_volumetric_speed", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_adhesiveness_category", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_change_length", {psWipeTower}},
|
||||
{"filament_colour", {psGCodeExport}},
|
||||
{"filament_cooling_final_speed", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_cooling_initial_speed", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_cooling_moves", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_cost", {psGCodeExport}},
|
||||
{"filament_density", {psGCodeExport}},
|
||||
{"filament_diameter", {psGCodeExport}},
|
||||
{"filament_end_gcode", {psGCodeExport}},
|
||||
{"filament_flow_ratio", {psGCodeExport}},
|
||||
{"filament_is_support", {psWipeTower}},
|
||||
{"filament_loading_speed", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_loading_speed_start", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_map", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_map_mode", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_max_volumetric_speed", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_minimal_purge_on_wipe_tower", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_multitool_ramming", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_multitool_ramming_flow", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_multitool_ramming_volume", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_notes", {psGCodeExport}},
|
||||
{"filament_printable", {psWipeTower}},
|
||||
{"filament_ramming_parameters", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_soluble", {psWipeTower}},
|
||||
{"filament_stamping_distance", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_stamping_loading_speed", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_start_gcode", {psGCodeExport}},
|
||||
{"filament_toolchange_delay", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_tower_interface_pre_extrusion_dist", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_tower_interface_pre_extrusion_length", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_tower_interface_print_temp", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_tower_interface_purge_volume", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_tower_ironing_area", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_type", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_unloading_speed", {psSkirtBrim, psWipeTower}},
|
||||
{"filament_unloading_speed_start", {psSkirtBrim, psWipeTower}},
|
||||
{"filename_format", {psGCodeExport}},
|
||||
{"first_layer_print_sequence", {psSkirtBrim, psWipeTower}},
|
||||
{"flush_into_infill", {psSkirtBrim, psWipeTower}},
|
||||
{"flush_into_support", {psSkirtBrim, psWipeTower}},
|
||||
{"flush_volumes_matrix", {psSkirtBrim, psWipeTower}},
|
||||
{"full_fan_speed_layer", {psGCodeExport}},
|
||||
{"gcode_add_line_number", {psGCodeExport}},
|
||||
{"gcode_comments", {psGCodeExport}},
|
||||
{"gcode_flavor", {psSkirtBrim, psWipeTower}},
|
||||
{"gcode_label_objects", {psGCodeExport}},
|
||||
{"grab_length", {psGCodeExport}},
|
||||
{"hot_plate_temp", {psSkirtBrim, psWipeTower}},
|
||||
{"hot_plate_temp_initial_layer", {psGCodeExport}},
|
||||
{"idle_temperature", {psSkirtBrim, psWipeTower}},
|
||||
{"independent_support_layer_height", {psWipeTower}},
|
||||
{"initial_layer_acceleration", {psGCodeExport}},
|
||||
{"initial_layer_infill_speed", {psSkirtBrim, psWipeTower}},
|
||||
{"initial_layer_line_width", {psSkirtBrim}},
|
||||
{"initial_layer_speed", {psSkirtBrim, psWipeTower}},
|
||||
{"initial_layer_travel_acceleration", {psSkirtBrim, psWipeTower}},
|
||||
{"initial_layer_travel_jerk", {psSkirtBrim, psWipeTower}},
|
||||
{"initial_layer_travel_speed", {psSkirtBrim, psWipeTower}},
|
||||
{"inner_wall_acceleration", {psGCodeExport}},
|
||||
{"internal_bridge_fan_speed", {psGCodeExport}},
|
||||
{"internal_solid_infill_acceleration", {psGCodeExport}},
|
||||
{"ironing_fan_speed", {psGCodeExport}},
|
||||
{"is_infill_first", {psGCodeExport}},
|
||||
{"layer_change_gcode", {psGCodeExport}},
|
||||
{"long_retractions_when_cut", {psGCodeExport}},
|
||||
{"machine_end_gcode", {psGCodeExport}},
|
||||
{"machine_start_gcode", {psGCodeExport}},
|
||||
{"manual_filament_change", {psGCodeExport}},
|
||||
{"max_layer_height", {psSkirtBrim}},
|
||||
{"max_travel_detour_distance", {psGCodeExport}},
|
||||
{"max_volumetric_extrusion_rate_slope", {psGCodeExport}},
|
||||
{"max_volumetric_extrusion_rate_slope_segment_length", {psGCodeExport}},
|
||||
{"min_layer_height", {psSkirtBrim}},
|
||||
{"min_skirt_length", {psSkirtBrim}},
|
||||
{"nozzle_height", {psGCodeExport}},
|
||||
{"nozzle_hrc", {psGCodeExport}},
|
||||
{"nozzle_temperature", {psSkirtBrim, psWipeTower}},
|
||||
{"nozzle_temperature_initial_layer", {psSkirtBrim, psWipeTower}},
|
||||
{"nozzle_volume", {psGCodeExport}},
|
||||
{"ooze_prevention", {psSkirtBrim}},
|
||||
{"other_layers_print_sequence", {psSkirtBrim, psWipeTower}},
|
||||
{"other_layers_print_sequence_nums", {psSkirtBrim, psWipeTower}},
|
||||
{"outer_wall_acceleration", {psGCodeExport}},
|
||||
{"overhang_fan_speed", {psGCodeExport}},
|
||||
{"overhang_fan_threshold", {psGCodeExport}},
|
||||
{"part_cooling_fan_min_pwm", {psGCodeExport}},
|
||||
{"post_process", {psGCodeExport}},
|
||||
{"preheat_steps", {psGCodeExport}},
|
||||
{"preheat_time", {psGCodeExport}},
|
||||
{"pressure_advance", {psGCodeExport}},
|
||||
{"prime_tower_brim_width", {psSkirtBrim, psWipeTower}},
|
||||
{"prime_tower_enable_framework", {psSkirtBrim, psWipeTower}},
|
||||
{"prime_tower_flat_ironing", {psSkirtBrim, psWipeTower}},
|
||||
{"prime_tower_skip_points", {psSkirtBrim, psWipeTower}},
|
||||
{"prime_tower_width", {psSkirtBrim, psWipeTower}},
|
||||
{"prime_volume", {psSkirtBrim, psWipeTower}},
|
||||
{"print_order", {psSkirtBrim}},
|
||||
{"print_sequence", {psSkirtBrim, psWipeTower}},
|
||||
{"printer_notes", {psGCodeExport}},
|
||||
{"printing_by_object_gcode", {psGCodeExport}},
|
||||
{"purge_in_prime_tower", {psSkirtBrim, psWipeTower}},
|
||||
{"reduce_crossing_wall", {psGCodeExport}},
|
||||
{"reduce_fan_stop_start_freq", {psGCodeExport}},
|
||||
{"reduce_infill_retraction", {psGCodeExport}},
|
||||
{"required_nozzle_HRC", {psGCodeExport}},
|
||||
{"resolution", {psSkirtBrim}},
|
||||
{"retract_before_wipe", {psGCodeExport}},
|
||||
{"retract_length_toolchange", {psGCodeExport}},
|
||||
{"retract_lift_above", {psGCodeExport}},
|
||||
{"retract_lift_below", {psGCodeExport}},
|
||||
{"retract_lift_enforce", {psGCodeExport}},
|
||||
{"retract_restart_extra", {psGCodeExport}},
|
||||
{"retract_restart_extra_toolchange", {psGCodeExport}},
|
||||
{"retract_when_changing_layer", {psGCodeExport}},
|
||||
{"retraction_distances_when_cut", {psGCodeExport}},
|
||||
{"retraction_length", {psGCodeExport}},
|
||||
{"retraction_minimum_travel", {psGCodeExport}},
|
||||
{"retraction_speed", {psGCodeExport}},
|
||||
{"role_based_wipe_speed", {psGCodeExport}},
|
||||
{"seam_gap", {psGCodeExport}},
|
||||
{"single_extruder_multi_material", {psSkirtBrim, psWipeTower}},
|
||||
{"single_extruder_multi_material_priming", {psGCodeExport}},
|
||||
{"single_loop_draft_shield", {psSkirtBrim}},
|
||||
{"skirt_distance", {psSkirtBrim}},
|
||||
{"skirt_height", {psSkirtBrim}},
|
||||
{"skirt_loops", {psSkirtBrim}},
|
||||
{"skirt_speed", {psSkirtBrim}},
|
||||
{"skirt_start_angle", {psSkirtBrim}},
|
||||
{"skirt_type", {psSkirtBrim}},
|
||||
{"slow_down_for_layer_cooling", {psGCodeExport}},
|
||||
{"slow_down_layer_time", {psGCodeExport}},
|
||||
{"slow_down_layers", {psSkirtBrim, psWipeTower}},
|
||||
{"slow_down_min_speed", {psGCodeExport}},
|
||||
{"sparse_infill_acceleration", {psGCodeExport}},
|
||||
{"standby_temperature_delta", {psGCodeExport}},
|
||||
{"supertack_plate_temp", {psSkirtBrim, psWipeTower}},
|
||||
{"supertack_plate_temp_initial_layer", {psGCodeExport}},
|
||||
{"support_material_interface_fan_speed", {psGCodeExport}},
|
||||
{"support_multi_bed_types", {psSkirtBrim, psWipeTower}},
|
||||
{"textured_cool_plate_temp", {psSkirtBrim, psWipeTower}},
|
||||
{"textured_cool_plate_temp_initial_layer", {psGCodeExport}},
|
||||
{"textured_plate_temp", {psSkirtBrim, psWipeTower}},
|
||||
{"textured_plate_temp_initial_layer", {psGCodeExport}},
|
||||
{"thumbnails", {psGCodeExport}},
|
||||
{"thumbnails_format", {psGCodeExport}},
|
||||
{"time_lapse_gcode", {psGCodeExport}},
|
||||
{"tool_change_on_wipe_tower", {psSkirtBrim, psWipeTower}},
|
||||
{"top_surface_acceleration", {psGCodeExport}},
|
||||
{"travel_acceleration", {psGCodeExport}},
|
||||
{"travel_slope", {psGCodeExport}},
|
||||
{"travel_speed", {psSkirtBrim, psWipeTower}},
|
||||
{"travel_speed_z", {psSkirtBrim, psWipeTower}},
|
||||
{"upward_compatible_machine", {psGCodeExport}},
|
||||
{"use_firmware_retraction", {psGCodeExport}},
|
||||
{"use_relative_e_distances", {psGCodeExport}},
|
||||
{"volumetric_speed_coefficients", {psGCodeExport}},
|
||||
{"wall_sequence", {psSkirtBrim}},
|
||||
{"wipe", {psGCodeExport}},
|
||||
{"wipe_distance", {psGCodeExport}},
|
||||
{"wipe_on_loops", {psGCodeExport}},
|
||||
{"wipe_speed", {psGCodeExport}},
|
||||
{"wipe_tower_bridging", {psSkirtBrim, psWipeTower}},
|
||||
{"wipe_tower_cone_angle", {psSkirtBrim, psWipeTower}},
|
||||
{"wipe_tower_extra_flow", {psSkirtBrim, psWipeTower}},
|
||||
{"wipe_tower_extra_rib_length", {psSkirtBrim, psWipeTower}},
|
||||
{"wipe_tower_extra_spacing", {psSkirtBrim, psWipeTower}},
|
||||
{"wipe_tower_filament", {psSkirtBrim, psWipeTower}},
|
||||
{"wipe_tower_fillet_wall", {psSkirtBrim, psWipeTower}},
|
||||
{"wipe_tower_max_purge_speed", {psSkirtBrim, psWipeTower}},
|
||||
{"wipe_tower_no_sparse_layers", {psSkirtBrim, psWipeTower}},
|
||||
{"wipe_tower_rib_width", {psSkirtBrim, psWipeTower}},
|
||||
{"wipe_tower_rotation_angle", {psSkirtBrim}},
|
||||
{"wipe_tower_type", {psSkirtBrim, psWipeTower}},
|
||||
{"wipe_tower_wall_type", {psSkirtBrim, psWipeTower}},
|
||||
{"wipe_tower_x", {psSkirtBrim}},
|
||||
{"wipe_tower_y", {psSkirtBrim}},
|
||||
{"wiping_volumes_extruders", {psSkirtBrim, psWipeTower}},
|
||||
{"wrapping_detection_gcode", {psGCodeExport}},
|
||||
{"z_hop", {psGCodeExport}},
|
||||
{"z_offset", {psSkirtBrim, psWipeTower}},
|
||||
};
|
||||
|
||||
static const std::unordered_map<std::string, std::vector<PrintObjectStep>> s_object_steps_map = {
|
||||
{"enable_arc_fitting", {posSupportMaterial, posInfill, posPerimeters}},
|
||||
{"filament_change_length", {posSupportMaterial}},
|
||||
{"filament_is_support", {posSupportMaterial}},
|
||||
{"filament_printable", {posSupportMaterial}},
|
||||
{"filament_shrink", {posSlice}},
|
||||
{"filament_shrinkage_compensation_z", {posSlice}},
|
||||
{"filament_soluble", {posSupportMaterial}},
|
||||
{"independent_support_layer_height", {posSupportMaterial}},
|
||||
{"initial_layer_line_width", {posSupportMaterial, posInfill, posPerimeters}},
|
||||
{"initial_layer_print_height", {posSlice}},
|
||||
{"max_layer_height", {posSupportMaterial, posInfill, posPerimeters}},
|
||||
{"min_layer_height", {posSupportMaterial, posInfill, posPerimeters}},
|
||||
{"nozzle_diameter", {posSlice}},
|
||||
{"precise_z_height", {posSlice}},
|
||||
{"print_order", {posSupportMaterial, posInfill, posPerimeters}},
|
||||
{"resolution", {posSupportMaterial, posInfill, posPerimeters, posSlice}},
|
||||
{"spiral_mode", {posSlice}},
|
||||
{"wall_sequence", {posSupportMaterial, posInfill, posPerimeters}},
|
||||
};
|
||||
61
codegen/generated/OptionKeys_generated.cpp
Normal file
61
codegen/generated/OptionKeys_generated.cpp
Normal file
@@ -0,0 +1,61 @@
|
||||
// ===== AUTO-GENERATED by tools/config_codegen.py =====
|
||||
|
||||
static const std::vector<std::string> s_extruder_option_keys = {
|
||||
"default_filament_profile",
|
||||
"default_nozzle_volume_type",
|
||||
"deretraction_speed",
|
||||
"extruder_colour",
|
||||
"extruder_offset",
|
||||
"extruder_type",
|
||||
"long_retractions_when_cut",
|
||||
"max_layer_height",
|
||||
"min_layer_height",
|
||||
"nozzle_diameter",
|
||||
"nozzle_flush_dataset",
|
||||
"nozzle_type",
|
||||
"nozzle_volume",
|
||||
"retract_before_wipe",
|
||||
"retract_length_toolchange",
|
||||
"retract_lift_above",
|
||||
"retract_lift_below",
|
||||
"retract_lift_enforce",
|
||||
"retract_restart_extra",
|
||||
"retract_restart_extra_toolchange",
|
||||
"retract_when_changing_layer",
|
||||
"retraction_distances_when_cut",
|
||||
"retraction_length",
|
||||
"retraction_minimum_travel",
|
||||
"retraction_speed",
|
||||
"travel_slope",
|
||||
"wipe",
|
||||
"wipe_distance",
|
||||
"z_hop",
|
||||
"z_hop_types",
|
||||
};
|
||||
|
||||
static const std::vector<std::string> s_filament_option_keys = {
|
||||
"default_filament_profile",
|
||||
"deretraction_speed",
|
||||
"filament_colour",
|
||||
"filament_diameter",
|
||||
"long_retractions_when_cut",
|
||||
"max_layer_height",
|
||||
"min_layer_height",
|
||||
"retract_before_wipe",
|
||||
"retract_length_toolchange",
|
||||
"retract_lift_above",
|
||||
"retract_lift_below",
|
||||
"retract_lift_enforce",
|
||||
"retract_restart_extra",
|
||||
"retract_restart_extra_toolchange",
|
||||
"retract_when_changing_layer",
|
||||
"retraction_distances_when_cut",
|
||||
"retraction_length",
|
||||
"retraction_minimum_travel",
|
||||
"retraction_speed",
|
||||
"volumetric_speed_coefficients",
|
||||
"wipe",
|
||||
"wipe_distance",
|
||||
"z_hop",
|
||||
"z_hop_types",
|
||||
};
|
||||
718
codegen/generated/Preset_options_generated.cpp
Normal file
718
codegen/generated/Preset_options_generated.cpp
Normal file
@@ -0,0 +1,718 @@
|
||||
// ===== AUTO-GENERATED by tools/config_codegen.py =====
|
||||
|
||||
static const std::vector<std::string> s_Preset_print_options = {
|
||||
"accel_to_decel_enable",
|
||||
"accel_to_decel_factor",
|
||||
"adaptive_layer_height",
|
||||
"align_infill_direction_to_model",
|
||||
"alternate_extra_wall",
|
||||
"bbl_calib_mark_logo",
|
||||
"bed_temperature_formula",
|
||||
"bottom_shell_layers",
|
||||
"bottom_shell_thickness",
|
||||
"bottom_solid_infill_flow_ratio",
|
||||
"bottom_surface_density",
|
||||
"bottom_surface_pattern",
|
||||
"bridge_acceleration",
|
||||
"bridge_angle",
|
||||
"bridge_density",
|
||||
"bridge_flow",
|
||||
"bridge_no_support",
|
||||
"bridge_speed",
|
||||
"brim_ears",
|
||||
"brim_ears_detection_length",
|
||||
"brim_ears_max_angle",
|
||||
"brim_flow_ratio",
|
||||
"brim_object_gap",
|
||||
"brim_type",
|
||||
"brim_use_efc_outline",
|
||||
"brim_width",
|
||||
"calib_flowrate_topinfill_special_order",
|
||||
"combine_brims",
|
||||
"compatible_machine_expression_group",
|
||||
"compatible_printers",
|
||||
"compatible_prints",
|
||||
"compatible_process_expression_group",
|
||||
"cooling_tube_length",
|
||||
"cooling_tube_retraction",
|
||||
"counterbore_hole_bridging",
|
||||
"curr_bed_type",
|
||||
"default_acceleration",
|
||||
"default_bed_type",
|
||||
"default_filament_profile",
|
||||
"default_jerk",
|
||||
"default_junction_deviation",
|
||||
"default_nozzle_volume_type",
|
||||
"default_print_profile",
|
||||
"deretraction_speed",
|
||||
"detect_narrow_internal_solid_infill",
|
||||
"detect_overhang_wall",
|
||||
"detect_thin_wall",
|
||||
"different_settings_to_system",
|
||||
"dont_filter_internal_bridges",
|
||||
"draft_shield",
|
||||
"emit_machine_limits_to_gcode",
|
||||
"enable_arc_fitting",
|
||||
"enable_extra_bridge_layer",
|
||||
"enable_filament_dynamic_map",
|
||||
"enable_filament_ramming",
|
||||
"enable_long_retraction_when_cut",
|
||||
"enable_overhang_speed",
|
||||
"enable_prime_tower",
|
||||
"enable_support",
|
||||
"enable_tower_interface_cooldown_during_tower",
|
||||
"enable_tower_interface_features",
|
||||
"enable_wrapping_detection",
|
||||
"enforce_support_layers",
|
||||
"ensure_vertical_shell_thickness",
|
||||
"exclude_object",
|
||||
"extra_loading_move",
|
||||
"extra_perimeters_on_overhangs",
|
||||
"extra_solid_infills",
|
||||
"extruder",
|
||||
"extruder_ams_count",
|
||||
"extruder_colour",
|
||||
"extruder_offset",
|
||||
"extruder_type",
|
||||
"extruder_variant_list",
|
||||
"extrusion_rate_smoothing_external_perimeter_only",
|
||||
"filament_colour",
|
||||
"filament_colour_type",
|
||||
"filament_extruder_id",
|
||||
"filament_flush_temp",
|
||||
"filament_ids",
|
||||
"filament_map",
|
||||
"filament_map_mode",
|
||||
"filament_multi_colour",
|
||||
"filament_ramming_parameters",
|
||||
"filament_self_index",
|
||||
"filament_settings_id",
|
||||
"filename_format",
|
||||
"fill_multiline",
|
||||
"filter_out_gap_fill",
|
||||
"first_layer_flow_ratio",
|
||||
"first_layer_print_sequence",
|
||||
"first_layer_sequence_choice",
|
||||
"flush_into_infill",
|
||||
"flush_into_objects",
|
||||
"flush_into_support",
|
||||
"flush_multiplier",
|
||||
"flush_volumes_matrix",
|
||||
"flush_volumes_vector",
|
||||
"fuzzy_skin",
|
||||
"fuzzy_skin_first_layer",
|
||||
"fuzzy_skin_layers_between_ripple_offset",
|
||||
"fuzzy_skin_mode",
|
||||
"fuzzy_skin_noise_type",
|
||||
"fuzzy_skin_octaves",
|
||||
"fuzzy_skin_persistence",
|
||||
"fuzzy_skin_point_distance",
|
||||
"fuzzy_skin_ripple_offset",
|
||||
"fuzzy_skin_ripples_per_layer",
|
||||
"fuzzy_skin_scale",
|
||||
"fuzzy_skin_thickness",
|
||||
"gap_fill_flow_ratio",
|
||||
"gap_fill_target",
|
||||
"gap_infill_speed",
|
||||
"gcode_add_line_number",
|
||||
"gcode_comments",
|
||||
"gcode_label_objects",
|
||||
"grab_length",
|
||||
"gyroid_optimized",
|
||||
"has_filament_switcher",
|
||||
"has_scarf_joint_seam",
|
||||
"head_wrap_detect_zone",
|
||||
"high_current_on_filament_swap",
|
||||
"hole_to_polyhole",
|
||||
"hole_to_polyhole_threshold",
|
||||
"hole_to_polyhole_twisted",
|
||||
"host_type",
|
||||
"independent_support_layer_height",
|
||||
"infill_anchor",
|
||||
"infill_anchor_max",
|
||||
"infill_combination",
|
||||
"infill_combination_max_layer_height",
|
||||
"infill_direction",
|
||||
"infill_jerk",
|
||||
"infill_lock_depth",
|
||||
"infill_overhang_angle",
|
||||
"infill_shift_step",
|
||||
"infill_wall_overlap",
|
||||
"inherits",
|
||||
"inherits_group",
|
||||
"initial_layer_acceleration",
|
||||
"initial_layer_infill_speed",
|
||||
"initial_layer_jerk",
|
||||
"initial_layer_line_width",
|
||||
"initial_layer_min_bead_width",
|
||||
"initial_layer_print_height",
|
||||
"initial_layer_speed",
|
||||
"initial_layer_travel_acceleration",
|
||||
"initial_layer_travel_jerk",
|
||||
"initial_layer_travel_speed",
|
||||
"inner_wall_acceleration",
|
||||
"inner_wall_flow_ratio",
|
||||
"inner_wall_jerk",
|
||||
"inner_wall_line_width",
|
||||
"inner_wall_speed",
|
||||
"input_shaping_damp_x",
|
||||
"input_shaping_damp_y",
|
||||
"input_shaping_emit",
|
||||
"input_shaping_freq_x",
|
||||
"input_shaping_freq_y",
|
||||
"input_shaping_type",
|
||||
"interface_shells",
|
||||
"interlocking_beam",
|
||||
"interlocking_beam_layer_count",
|
||||
"interlocking_beam_width",
|
||||
"interlocking_boundary_avoidance",
|
||||
"interlocking_depth",
|
||||
"interlocking_orientation",
|
||||
"internal_bridge_angle",
|
||||
"internal_bridge_density",
|
||||
"internal_bridge_flow",
|
||||
"internal_bridge_speed",
|
||||
"internal_solid_infill_acceleration",
|
||||
"internal_solid_infill_flow_ratio",
|
||||
"internal_solid_infill_line_width",
|
||||
"internal_solid_infill_pattern",
|
||||
"internal_solid_infill_speed",
|
||||
"ironing_angle",
|
||||
"ironing_angle_fixed",
|
||||
"ironing_expansion",
|
||||
"ironing_flow",
|
||||
"ironing_inset",
|
||||
"ironing_pattern",
|
||||
"ironing_spacing",
|
||||
"ironing_speed",
|
||||
"ironing_type",
|
||||
"is_infill_first",
|
||||
"lateral_lattice_angle_1",
|
||||
"lateral_lattice_angle_2",
|
||||
"line_width",
|
||||
"long_retractions_when_cut",
|
||||
"machine_load_filament_time",
|
||||
"machine_max_acceleration_e",
|
||||
"machine_max_acceleration_extruding",
|
||||
"machine_max_acceleration_retracting",
|
||||
"machine_max_acceleration_travel",
|
||||
"machine_max_acceleration_x",
|
||||
"machine_max_acceleration_y",
|
||||
"machine_max_acceleration_z",
|
||||
"machine_max_jerk_e",
|
||||
"machine_max_jerk_x",
|
||||
"machine_max_jerk_y",
|
||||
"machine_max_jerk_z",
|
||||
"machine_max_junction_deviation",
|
||||
"machine_max_speed_e",
|
||||
"machine_max_speed_x",
|
||||
"machine_max_speed_y",
|
||||
"machine_max_speed_z",
|
||||
"machine_min_extruding_rate",
|
||||
"machine_min_travel_rate",
|
||||
"machine_tool_change_time",
|
||||
"machine_unload_filament_time",
|
||||
"make_overhang_printable",
|
||||
"make_overhang_printable_angle",
|
||||
"make_overhang_printable_hole_size",
|
||||
"manual_filament_change",
|
||||
"master_extruder_id",
|
||||
"max_bridge_length",
|
||||
"max_layer_height",
|
||||
"max_resonance_avoidance_speed",
|
||||
"max_travel_detour_distance",
|
||||
"max_volumetric_extrusion_rate_slope",
|
||||
"max_volumetric_extrusion_rate_slope_segment_length",
|
||||
"min_bead_width",
|
||||
"min_feature_size",
|
||||
"min_layer_height",
|
||||
"min_length_factor",
|
||||
"min_resonance_avoidance_speed",
|
||||
"min_skirt_length",
|
||||
"min_width_top_surface",
|
||||
"minimum_sparse_infill_area",
|
||||
"mmu_segmented_region_interlocking_depth",
|
||||
"mmu_segmented_region_max_width",
|
||||
"notes",
|
||||
"nozzle_diameter",
|
||||
"nozzle_flush_dataset",
|
||||
"nozzle_height",
|
||||
"nozzle_volume",
|
||||
"nozzle_volume_type",
|
||||
"only_one_wall_first_layer",
|
||||
"only_one_wall_top",
|
||||
"ooze_prevention",
|
||||
"other_layers_print_sequence",
|
||||
"other_layers_print_sequence_nums",
|
||||
"other_layers_sequence_choice",
|
||||
"outer_wall_acceleration",
|
||||
"outer_wall_flow_ratio",
|
||||
"outer_wall_jerk",
|
||||
"outer_wall_line_width",
|
||||
"outer_wall_speed",
|
||||
"overhang_1_4_speed",
|
||||
"overhang_2_4_speed",
|
||||
"overhang_3_4_speed",
|
||||
"overhang_4_4_speed",
|
||||
"overhang_flow_ratio",
|
||||
"overhang_reverse",
|
||||
"overhang_reverse_internal_only",
|
||||
"overhang_reverse_threshold",
|
||||
"parking_pos_retraction",
|
||||
"physical_extruder_map",
|
||||
"post_process",
|
||||
"precise_outer_wall",
|
||||
"precise_z_height",
|
||||
"preheat_steps",
|
||||
"preheat_time",
|
||||
"prime_tower_brim_width",
|
||||
"prime_tower_enable_framework",
|
||||
"prime_tower_flat_ironing",
|
||||
"prime_tower_infill_gap",
|
||||
"prime_tower_skip_points",
|
||||
"prime_tower_width",
|
||||
"prime_volume",
|
||||
"print_compatible_printers",
|
||||
"print_extruder_id",
|
||||
"print_extruder_variant",
|
||||
"print_flow_ratio",
|
||||
"print_order",
|
||||
"print_sequence",
|
||||
"print_settings_id",
|
||||
"printer_extruder_id",
|
||||
"printer_extruder_variant",
|
||||
"printer_model",
|
||||
"printer_settings_id",
|
||||
"printer_variant",
|
||||
"process_change_extrusion_role_gcode",
|
||||
"purge_in_prime_tower",
|
||||
"raft_contact_distance",
|
||||
"raft_expansion",
|
||||
"raft_first_layer_density",
|
||||
"raft_first_layer_expansion",
|
||||
"raft_layers",
|
||||
"reduce_crossing_wall",
|
||||
"reduce_infill_retraction",
|
||||
"resolution",
|
||||
"resonance_avoidance",
|
||||
"retract_before_wipe",
|
||||
"retract_length_toolchange",
|
||||
"retract_lift_above",
|
||||
"retract_lift_below",
|
||||
"retract_lift_enforce",
|
||||
"retract_restart_extra",
|
||||
"retract_restart_extra_toolchange",
|
||||
"retract_when_changing_layer",
|
||||
"retraction_distances_when_cut",
|
||||
"retraction_length",
|
||||
"retraction_minimum_travel",
|
||||
"retraction_speed",
|
||||
"role_based_wipe_speed",
|
||||
"scarf_angle_threshold",
|
||||
"scarf_joint_flow_ratio",
|
||||
"scarf_joint_speed",
|
||||
"scarf_overhang_threshold",
|
||||
"seam_gap",
|
||||
"seam_position",
|
||||
"seam_slope_conditional",
|
||||
"seam_slope_entire_loop",
|
||||
"seam_slope_inner_walls",
|
||||
"seam_slope_min_length",
|
||||
"seam_slope_start_height",
|
||||
"seam_slope_steps",
|
||||
"seam_slope_type",
|
||||
"set_other_flow_ratios",
|
||||
"silent_mode",
|
||||
"single_extruder_multi_material",
|
||||
"single_extruder_multi_material_priming",
|
||||
"single_loop_draft_shield",
|
||||
"skeleton_infill_density",
|
||||
"skeleton_infill_line_width",
|
||||
"skin_infill_density",
|
||||
"skin_infill_depth",
|
||||
"skin_infill_line_width",
|
||||
"skirt_distance",
|
||||
"skirt_height",
|
||||
"skirt_loops",
|
||||
"skirt_speed",
|
||||
"skirt_start_angle",
|
||||
"skirt_type",
|
||||
"slice_closing_radius",
|
||||
"slicing_mode",
|
||||
"slow_down_layers",
|
||||
"slowdown_for_curled_perimeters",
|
||||
"small_area_infill_flow_compensation",
|
||||
"small_area_infill_flow_compensation_model",
|
||||
"small_perimeter_speed",
|
||||
"small_perimeter_threshold",
|
||||
"solid_infill_direction",
|
||||
"solid_infill_filament",
|
||||
"solid_infill_rotate_template",
|
||||
"spaghetti_detector",
|
||||
"sparse_infill_acceleration",
|
||||
"sparse_infill_density",
|
||||
"sparse_infill_filament",
|
||||
"sparse_infill_flow_ratio",
|
||||
"sparse_infill_line_width",
|
||||
"sparse_infill_pattern",
|
||||
"sparse_infill_rotate_template",
|
||||
"sparse_infill_speed",
|
||||
"spiral_finishing_flow_ratio",
|
||||
"spiral_mode",
|
||||
"spiral_mode_max_xy_smoothing",
|
||||
"spiral_mode_smooth",
|
||||
"spiral_starting_flow_ratio",
|
||||
"staggered_inner_seams",
|
||||
"standby_temperature_delta",
|
||||
"start_end_points",
|
||||
"support_angle",
|
||||
"support_base_pattern",
|
||||
"support_base_pattern_spacing",
|
||||
"support_bottom_interface_spacing",
|
||||
"support_bottom_z_distance",
|
||||
"support_critical_regions_only",
|
||||
"support_expansion",
|
||||
"support_filament",
|
||||
"support_flow_ratio",
|
||||
"support_interface_bottom_layers",
|
||||
"support_interface_filament",
|
||||
"support_interface_flow_ratio",
|
||||
"support_interface_loop_pattern",
|
||||
"support_interface_not_for_body",
|
||||
"support_interface_pattern",
|
||||
"support_interface_spacing",
|
||||
"support_interface_speed",
|
||||
"support_interface_top_layers",
|
||||
"support_ironing",
|
||||
"support_ironing_flow",
|
||||
"support_ironing_pattern",
|
||||
"support_ironing_spacing",
|
||||
"support_line_width",
|
||||
"support_object_first_layer_gap",
|
||||
"support_object_skip_flush",
|
||||
"support_object_xy_distance",
|
||||
"support_on_build_plate_only",
|
||||
"support_remove_small_overhang",
|
||||
"support_speed",
|
||||
"support_style",
|
||||
"support_threshold_angle",
|
||||
"support_threshold_overlap",
|
||||
"support_top_z_distance",
|
||||
"support_type",
|
||||
"symmetric_infill_y_axis",
|
||||
"thick_bridges",
|
||||
"thick_internal_bridges",
|
||||
"thumbnails_format",
|
||||
"timelapse_type",
|
||||
"tool_change_on_wipe_tower",
|
||||
"top_bottom_infill_wall_overlap",
|
||||
"top_shell_layers",
|
||||
"top_shell_thickness",
|
||||
"top_solid_infill_flow_ratio",
|
||||
"top_surface_acceleration",
|
||||
"top_surface_density",
|
||||
"top_surface_jerk",
|
||||
"top_surface_line_width",
|
||||
"top_surface_pattern",
|
||||
"top_surface_speed",
|
||||
"travel_acceleration",
|
||||
"travel_jerk",
|
||||
"travel_slope",
|
||||
"travel_speed",
|
||||
"travel_speed_z",
|
||||
"tree_support_angle_slow",
|
||||
"tree_support_auto_brim",
|
||||
"tree_support_branch_angle",
|
||||
"tree_support_branch_angle_organic",
|
||||
"tree_support_branch_diameter",
|
||||
"tree_support_branch_diameter_angle",
|
||||
"tree_support_branch_diameter_organic",
|
||||
"tree_support_branch_distance",
|
||||
"tree_support_branch_distance_organic",
|
||||
"tree_support_brim_width",
|
||||
"tree_support_tip_diameter",
|
||||
"tree_support_top_rate",
|
||||
"tree_support_wall_count",
|
||||
"tree_support_with_infill",
|
||||
"upward_compatible_machine",
|
||||
"volumetric_speed_coefficients",
|
||||
"wall_direction",
|
||||
"wall_distribution_count",
|
||||
"wall_filament",
|
||||
"wall_generator",
|
||||
"wall_loops",
|
||||
"wall_maximum_deviation",
|
||||
"wall_maximum_resolution",
|
||||
"wall_sequence",
|
||||
"wall_transition_angle",
|
||||
"wall_transition_filter_deviation",
|
||||
"wall_transition_length",
|
||||
"wipe",
|
||||
"wipe_before_external_loop",
|
||||
"wipe_distance",
|
||||
"wipe_on_loops",
|
||||
"wipe_speed",
|
||||
"wipe_tower_bridging",
|
||||
"wipe_tower_cone_angle",
|
||||
"wipe_tower_extra_flow",
|
||||
"wipe_tower_extra_rib_length",
|
||||
"wipe_tower_extra_spacing",
|
||||
"wipe_tower_filament",
|
||||
"wipe_tower_fillet_wall",
|
||||
"wipe_tower_max_purge_speed",
|
||||
"wipe_tower_no_sparse_layers",
|
||||
"wipe_tower_rib_width",
|
||||
"wipe_tower_rotation_angle",
|
||||
"wipe_tower_type",
|
||||
"wipe_tower_wall_type",
|
||||
"wipe_tower_x",
|
||||
"wipe_tower_y",
|
||||
"wiping_volumes_extruders",
|
||||
"wrapping_detection_layers",
|
||||
"wrapping_exclude_area",
|
||||
"xy_contour_compensation",
|
||||
"xy_hole_compensation",
|
||||
"z_hop",
|
||||
"z_hop_types",
|
||||
"zaa_dont_alternate_fill_direction",
|
||||
"zaa_enabled",
|
||||
"zaa_min_z",
|
||||
"zaa_minimize_perimeter_height",
|
||||
};
|
||||
|
||||
static const std::vector<std::string> s_Preset_filament_options = {
|
||||
"activate_air_filtration",
|
||||
"activate_air_filtration_during_print",
|
||||
"activate_air_filtration_on_completion",
|
||||
"activate_chamber_temp_control",
|
||||
"adaptive_pressure_advance",
|
||||
"adaptive_pressure_advance_bridges",
|
||||
"adaptive_pressure_advance_model",
|
||||
"adaptive_pressure_advance_overhangs",
|
||||
"additional_cooling_fan_speed",
|
||||
"additional_fan_full_speed_layer",
|
||||
"chamber_temperature",
|
||||
"close_additional_fan_first_x_layers",
|
||||
"close_fan_the_first_x_layers",
|
||||
"compatible_printers",
|
||||
"compatible_printers_condition",
|
||||
"compatible_prints",
|
||||
"compatible_prints_condition",
|
||||
"complete_print_exhaust_fan_speed",
|
||||
"cool_plate_temp",
|
||||
"cool_plate_temp_initial_layer",
|
||||
"default_filament_colour",
|
||||
"dont_slow_down_outer_wall",
|
||||
"during_print_exhaust_fan_speed",
|
||||
"enable_overhang_bridge_fan",
|
||||
"enable_pressure_advance",
|
||||
"eng_plate_temp",
|
||||
"eng_plate_temp_initial_layer",
|
||||
"fan_cooling_layer_time",
|
||||
"fan_max_speed",
|
||||
"fan_min_speed",
|
||||
"filament_adaptive_volumetric_speed",
|
||||
"filament_adhesiveness_category",
|
||||
"filament_change_extrusion_role_gcode",
|
||||
"filament_change_length",
|
||||
"filament_cooling_before_tower",
|
||||
"filament_cooling_final_speed",
|
||||
"filament_cooling_initial_speed",
|
||||
"filament_cooling_moves",
|
||||
"filament_cost",
|
||||
"filament_density",
|
||||
"filament_deretraction_speed",
|
||||
"filament_diameter",
|
||||
"filament_end_gcode",
|
||||
"filament_extruder_variant",
|
||||
"filament_flow_ratio",
|
||||
"filament_flush_temp",
|
||||
"filament_flush_volumetric_speed",
|
||||
"filament_ironing_flow",
|
||||
"filament_ironing_inset",
|
||||
"filament_ironing_spacing",
|
||||
"filament_ironing_speed",
|
||||
"filament_is_support",
|
||||
"filament_loading_speed",
|
||||
"filament_loading_speed_start",
|
||||
"filament_long_retractions_when_cut",
|
||||
"filament_max_volumetric_speed",
|
||||
"filament_minimal_purge_on_wipe_tower",
|
||||
"filament_multitool_ramming",
|
||||
"filament_multitool_ramming_flow",
|
||||
"filament_multitool_ramming_volume",
|
||||
"filament_notes",
|
||||
"filament_printable",
|
||||
"filament_retract_before_wipe",
|
||||
"filament_retract_lift_above",
|
||||
"filament_retract_lift_below",
|
||||
"filament_retract_lift_enforce",
|
||||
"filament_retract_restart_extra",
|
||||
"filament_retract_when_changing_layer",
|
||||
"filament_retraction_distances_when_cut",
|
||||
"filament_retraction_length",
|
||||
"filament_retraction_minimum_travel",
|
||||
"filament_retraction_speed",
|
||||
"filament_shrink",
|
||||
"filament_shrinkage_compensation_z",
|
||||
"filament_soluble",
|
||||
"filament_stamping_distance",
|
||||
"filament_stamping_loading_speed",
|
||||
"filament_start_gcode",
|
||||
"filament_toolchange_delay",
|
||||
"filament_tower_interface_pre_extrusion_dist",
|
||||
"filament_tower_interface_pre_extrusion_length",
|
||||
"filament_tower_interface_print_temp",
|
||||
"filament_tower_interface_purge_volume",
|
||||
"filament_tower_ironing_area",
|
||||
"filament_type",
|
||||
"filament_unloading_speed",
|
||||
"filament_unloading_speed_start",
|
||||
"filament_vendor",
|
||||
"filament_wipe",
|
||||
"filament_wipe_distance",
|
||||
"filament_z_hop",
|
||||
"filament_z_hop_types",
|
||||
"first_x_layer_fan_speed",
|
||||
"full_fan_speed_layer",
|
||||
"hot_plate_temp",
|
||||
"hot_plate_temp_initial_layer",
|
||||
"idle_temperature",
|
||||
"inherits",
|
||||
"internal_bridge_fan_speed",
|
||||
"ironing_fan_speed",
|
||||
"long_retractions_when_ec",
|
||||
"nozzle_temperature",
|
||||
"nozzle_temperature_initial_layer",
|
||||
"nozzle_temperature_range_high",
|
||||
"nozzle_temperature_range_low",
|
||||
"overhang_fan_speed",
|
||||
"overhang_fan_threshold",
|
||||
"pellet_flow_coefficient",
|
||||
"pressure_advance",
|
||||
"reduce_fan_stop_start_freq",
|
||||
"required_nozzle_HRC",
|
||||
"retraction_distances_when_ec",
|
||||
"slow_down_for_layer_cooling",
|
||||
"slow_down_layer_time",
|
||||
"slow_down_min_speed",
|
||||
"supertack_plate_temp",
|
||||
"supertack_plate_temp_initial_layer",
|
||||
"support_material_interface_fan_speed",
|
||||
"temperature_vitrification",
|
||||
"textured_cool_plate_temp",
|
||||
"textured_cool_plate_temp_initial_layer",
|
||||
"textured_plate_temp",
|
||||
"textured_plate_temp_initial_layer",
|
||||
};
|
||||
|
||||
static const std::vector<std::string> s_Preset_printer_options = {
|
||||
"adaptive_bed_mesh_margin",
|
||||
"auxiliary_fan",
|
||||
"bbl_use_printhost",
|
||||
"bed_custom_model",
|
||||
"bed_custom_texture",
|
||||
"bed_exclude_area",
|
||||
"bed_mesh_max",
|
||||
"bed_mesh_min",
|
||||
"bed_mesh_probe_distance",
|
||||
"bed_temperature_formula",
|
||||
"before_layer_change_gcode",
|
||||
"best_object_pos",
|
||||
"change_extrusion_role_gcode",
|
||||
"change_filament_gcode",
|
||||
"cooling_tube_length",
|
||||
"cooling_tube_retraction",
|
||||
"default_bed_type",
|
||||
"default_nozzle_volume_type",
|
||||
"default_print_profile",
|
||||
"disable_m73",
|
||||
"emit_machine_limits_to_gcode",
|
||||
"enable_filament_ramming",
|
||||
"enable_long_retraction_when_cut",
|
||||
"enable_power_loss_recovery",
|
||||
"extra_loading_move",
|
||||
"extruder_clearance_height_to_lid",
|
||||
"extruder_clearance_height_to_rod",
|
||||
"extruder_clearance_radius",
|
||||
"extruder_printable_area",
|
||||
"extruder_printable_height",
|
||||
"extruder_type",
|
||||
"extruder_variant_list",
|
||||
"fan_kickstart",
|
||||
"fan_speedup_overhangs",
|
||||
"fan_speedup_time",
|
||||
"file_start_gcode",
|
||||
"gcode_flavor",
|
||||
"grab_length",
|
||||
"head_wrap_detect_zone",
|
||||
"high_current_on_filament_swap",
|
||||
"host_type",
|
||||
"inherits",
|
||||
"layer_change_gcode",
|
||||
"long_retractions_when_cut",
|
||||
"machine_end_gcode",
|
||||
"machine_load_filament_time",
|
||||
"machine_pause_gcode",
|
||||
"machine_start_gcode",
|
||||
"machine_tool_change_time",
|
||||
"machine_unload_filament_time",
|
||||
"manual_filament_change",
|
||||
"master_extruder_id",
|
||||
"nozzle_flush_dataset",
|
||||
"nozzle_height",
|
||||
"nozzle_hrc",
|
||||
"nozzle_type",
|
||||
"nozzle_volume",
|
||||
"parking_pos_retraction",
|
||||
"part_cooling_fan_min_pwm",
|
||||
"pellet_modded_printer",
|
||||
"physical_extruder_map",
|
||||
"preferred_orientation",
|
||||
"print_host",
|
||||
"print_host_webui",
|
||||
"printable_area",
|
||||
"printable_height",
|
||||
"printer_agent",
|
||||
"printer_extruder_id",
|
||||
"printer_extruder_variant",
|
||||
"printer_model",
|
||||
"printer_notes",
|
||||
"printer_structure",
|
||||
"printer_technology",
|
||||
"printer_variant",
|
||||
"printhost_apikey",
|
||||
"printhost_authorization_type",
|
||||
"printhost_cafile",
|
||||
"printhost_password",
|
||||
"printhost_port",
|
||||
"printhost_ssl_ignore_revoke",
|
||||
"printhost_user",
|
||||
"printing_by_object_gcode",
|
||||
"purge_in_prime_tower",
|
||||
"retract_lift_enforce",
|
||||
"retraction_distances_when_cut",
|
||||
"scan_first_layer",
|
||||
"silent_mode",
|
||||
"single_extruder_multi_material",
|
||||
"support_air_filtration",
|
||||
"support_chamber_temp_control",
|
||||
"support_multi_bed_types",
|
||||
"support_object_skip_flush",
|
||||
"template_custom_gcode",
|
||||
"thumbnails",
|
||||
"thumbnails_format",
|
||||
"time_cost",
|
||||
"time_lapse_gcode",
|
||||
"tool_change_on_wipe_tower",
|
||||
"travel_slope",
|
||||
"upward_compatible_machine",
|
||||
"use_firmware_retraction",
|
||||
"use_relative_e_distances",
|
||||
"wipe_tower_type",
|
||||
"wrapping_detection_gcode",
|
||||
"wrapping_detection_layers",
|
||||
"wrapping_exclude_area",
|
||||
"z_hop_types",
|
||||
"z_offset",
|
||||
};
|
||||
5531
codegen/generated/PrintConfigDef_generated.cpp
Normal file
5531
codegen/generated/PrintConfigDef_generated.cpp
Normal file
File diff suppressed because it is too large
Load Diff
999
codegen/generated/TabLayout_generated.cpp
Normal file
999
codegen/generated/TabLayout_generated.cpp
Normal file
@@ -0,0 +1,999 @@
|
||||
// ===== AUTO-GENERATED by tools/parse_printconfig.py =====
|
||||
// DO NOT EDIT MANUALLY. Re-run tools/run_codegen.py to regenerate.
|
||||
//
|
||||
// Provides the basic UI layout (add_options_page / new_optgroup /
|
||||
// append_single_option_line) for each settings tab.
|
||||
// Include from the corresponding Tab::build() after dynamic toggle logic.
|
||||
|
||||
// Constants mirroring local variables from the original build functions.
|
||||
namespace { constexpr int gcode_field_height = 15; }
|
||||
namespace { constexpr int notes_field_height = 25; }
|
||||
|
||||
inline void TabPrint_build_layout(TabPrint& tab)
|
||||
{
|
||||
auto page = tab.add_options_page(L("Quality"), "custom-gcode_quality");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Layer height"), L"param_layer_height");
|
||||
optgroup->append_single_option_line("layer_height", "quality_settings_layer_height");
|
||||
optgroup->append_single_option_line("initial_layer_print_height", "quality_settings_layer_height");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Line width"), L"param_line_width");
|
||||
optgroup->append_single_option_line("line_width", "quality_settings_line_width");
|
||||
optgroup->append_single_option_line("initial_layer_line_width", "quality_settings_line_width");
|
||||
optgroup->append_single_option_line("outer_wall_line_width", "quality_settings_line_width");
|
||||
optgroup->append_single_option_line("inner_wall_line_width", "quality_settings_line_width");
|
||||
optgroup->append_single_option_line("top_surface_line_width", "quality_settings_line_width");
|
||||
optgroup->append_single_option_line("sparse_infill_line_width", "quality_settings_line_width");
|
||||
optgroup->append_single_option_line("internal_solid_infill_line_width", "quality_settings_line_width");
|
||||
optgroup->append_single_option_line("support_line_width", "quality_settings_line_width");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Seam"), L"param_seam");
|
||||
optgroup->append_single_option_line("seam_position", "quality_settings_seam#seam-position");
|
||||
optgroup->append_single_option_line("staggered_inner_seams", "quality_settings_seam#staggered-inner-seams");
|
||||
optgroup->append_single_option_line("seam_gap", "quality_settings_seam#seam-gap");
|
||||
optgroup->append_single_option_line("seam_slope_type", "quality_settings_seam#scarf-joint-seam");
|
||||
optgroup->append_single_option_line("seam_slope_conditional", "quality_settings_seam#scarf-joint-seam");
|
||||
optgroup->append_single_option_line("scarf_angle_threshold", "quality_settings_seam#scarf-joint-seam");
|
||||
optgroup->append_single_option_line("scarf_overhang_threshold", "quality_settings_seam#scarf-joint-seam");
|
||||
optgroup->append_single_option_line("scarf_joint_speed", "quality_settings_seam#scarf-joint-seam");
|
||||
optgroup->append_single_option_line("seam_slope_start_height", "quality_settings_seam#scarf-joint-seam");
|
||||
optgroup->append_single_option_line("seam_slope_entire_loop", "quality_settings_seam#scarf-joint-seam");
|
||||
optgroup->append_single_option_line("seam_slope_min_length", "quality_settings_seam#scarf-joint-seam");
|
||||
optgroup->append_single_option_line("seam_slope_steps", "quality_settings_seam#scarf-joint-seam");
|
||||
optgroup->append_single_option_line("scarf_joint_flow_ratio", "quality_settings_seam#scarf-joint-seam");
|
||||
optgroup->append_single_option_line("seam_slope_inner_walls", "quality_settings_seam#scarf-joint-seam");
|
||||
optgroup->append_single_option_line("role_based_wipe_speed", "quality_settings_seam#role-based-wipe-speed");
|
||||
optgroup->append_single_option_line("wipe_speed", "quality_settings_seam#wipe-speed");
|
||||
optgroup->append_single_option_line("wipe_on_loops", "quality_settings_seam#wipe-on-loop-inward-movement");
|
||||
optgroup->append_single_option_line("wipe_before_external_loop", "quality_settings_seam#wipe-before-external");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Precision"), L"param_precision");
|
||||
optgroup->append_single_option_line("slice_closing_radius", "quality_settings_precision#slice-gap-closing-radius");
|
||||
optgroup->append_single_option_line("resolution", "quality_settings_precision#resolution");
|
||||
optgroup->append_single_option_line("enable_arc_fitting", "quality_settings_precision#arc-fitting");
|
||||
optgroup->append_single_option_line("xy_hole_compensation", "quality_settings_precision#x-y-compensation");
|
||||
optgroup->append_single_option_line("xy_contour_compensation", "quality_settings_precision#x-y-compensation");
|
||||
optgroup->append_single_option_line("elefant_foot_compensation", "quality_settings_precision#elephant-foot-compensation");
|
||||
optgroup->append_single_option_line("elefant_foot_layers_density", "quality_settings_precision#elephant-foot-compensation-density");
|
||||
optgroup->append_single_option_line("elefant_foot_compensation_layers", "quality_settings_precision#elephant-foot-compensation");
|
||||
optgroup->append_single_option_line("precise_outer_wall", "quality_settings_precision#precise-wall");
|
||||
optgroup->append_single_option_line("precise_z_height", "quality_settings_precision#precise-z-height");
|
||||
optgroup->append_single_option_line("hole_to_polyhole", "quality_settings_precision#polyholes");
|
||||
optgroup->append_single_option_line("hole_to_polyhole_threshold", "quality_settings_precision#polyholes");
|
||||
optgroup->append_single_option_line("hole_to_polyhole_twisted", "quality_settings_precision#polyholes");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Ironing"), L"param_ironing");
|
||||
optgroup->append_single_option_line("ironing_type", "quality_settings_ironing#type");
|
||||
optgroup->append_single_option_line("ironing_pattern", "quality_settings_ironing#pattern");
|
||||
optgroup->append_single_option_line("ironing_flow", "quality_settings_ironing#flow");
|
||||
optgroup->append_single_option_line("ironing_spacing", "quality_settings_ironing#line-spacing");
|
||||
optgroup->append_single_option_line("ironing_inset", "quality_settings_ironing#inset");
|
||||
optgroup->append_single_option_line("ironing_angle", "quality_settings_ironing#angle-offset");
|
||||
optgroup->append_single_option_line("ironing_angle_fixed", "quality_settings_ironing#fixed-angle");
|
||||
optgroup->append_single_option_line("zaa_enabled", "quality_settings_z_contouring");
|
||||
optgroup->append_single_option_line("zaa_minimize_perimeter_height", "quality_settings_z_contouring#minimize-wall-height-angle");
|
||||
optgroup->append_single_option_line("zaa_min_z", "quality_settings_z_contouring#minimum-z-height");
|
||||
optgroup->append_single_option_line("zaa_dont_alternate_fill_direction", "quality_settings_z_contouring#dont-alternate-fill-direction");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Wall generator"), L"param_wall_generator");
|
||||
optgroup->append_single_option_line("wall_generator", "quality_settings_wall_generator");
|
||||
optgroup->append_single_option_line("wall_transition_angle", "quality_settings_wall_generator#wall-transitioning-threshhold-angle");
|
||||
optgroup->append_single_option_line("wall_transition_filter_deviation", "quality_settings_wall_generator#wall-transitioning-filter-margin");
|
||||
optgroup->append_single_option_line("wall_transition_length", "quality_settings_wall_generator#wall-transitioning-length");
|
||||
optgroup->append_single_option_line("wall_distribution_count", "quality_settings_wall_generator#wall-distribution-count");
|
||||
optgroup->append_single_option_line("initial_layer_min_bead_width", "quality_settings_wall_generator#first-layer-minimum-wall-width");
|
||||
optgroup->append_single_option_line("min_bead_width", "quality_settings_wall_generator#minimum-wall-width");
|
||||
optgroup->append_single_option_line("min_feature_size", "quality_settings_wall_generator#minimum-feature-size");
|
||||
optgroup->append_single_option_line("min_length_factor", "quality_settings_wall_generator#minimum-wall-length");
|
||||
optgroup->append_single_option_line("wall_maximum_resolution", "quality_settings_wall_generator#maximum-wall-resolution");
|
||||
optgroup->append_single_option_line("wall_maximum_deviation", "quality_settings_wall_generator#maximum-wall-deviation");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Walls and surfaces"), L"param_wall_surface");
|
||||
optgroup->append_single_option_line("wall_sequence", "quality_settings_wall_and_surfaces#walls-printing-order");
|
||||
optgroup->append_single_option_line("is_infill_first", "quality_settings_wall_and_surfaces#print-infill-first");
|
||||
optgroup->append_single_option_line("wall_direction", "quality_settings_wall_and_surfaces#wall-loop-direction");
|
||||
optgroup->append_single_option_line("print_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
|
||||
optgroup->append_single_option_line("top_solid_infill_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
|
||||
optgroup->append_single_option_line("bottom_solid_infill_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
|
||||
optgroup->append_single_option_line("set_other_flow_ratios", "quality_settings_wall_and_surfaces#surface-flow-ratio");
|
||||
optgroup->append_single_option_line("first_layer_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
|
||||
optgroup->append_single_option_line("outer_wall_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
|
||||
optgroup->append_single_option_line("inner_wall_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
|
||||
optgroup->append_single_option_line("overhang_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
|
||||
optgroup->append_single_option_line("sparse_infill_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
|
||||
optgroup->append_single_option_line("internal_solid_infill_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
|
||||
optgroup->append_single_option_line("gap_fill_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
|
||||
optgroup->append_single_option_line("support_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
|
||||
optgroup->append_single_option_line("support_interface_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
|
||||
optgroup->append_single_option_line("only_one_wall_first_layer", "quality_settings_wall_and_surfaces#only-one-wall");
|
||||
optgroup->append_single_option_line("only_one_wall_top", "quality_settings_wall_and_surfaces#only-one-wall");
|
||||
optgroup->append_single_option_line("min_width_top_surface", "quality_settings_wall_and_surfaces#threshold");
|
||||
optgroup->append_single_option_line("reduce_crossing_wall", "quality_settings_wall_and_surfaces#avoid-crossing-walls");
|
||||
optgroup->append_single_option_line("max_travel_detour_distance", "quality_settings_wall_and_surfaces#max-detour-length");
|
||||
optgroup->append_single_option_line("small_area_infill_flow_compensation", "quality_settings_wall_and_surfaces#small-area-flow-compensation");
|
||||
{
|
||||
Option option = optgroup->get_option("small_area_infill_flow_compensation_model");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = 15;
|
||||
optgroup->append_single_option_line(option, "quality_settings_wall_and_surfaces#small-area-flow-compensation");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Bridging"), L"param_bridge");
|
||||
optgroup->append_single_option_line("bridge_flow", "quality_settings_bridging#flow-ratio");
|
||||
optgroup->append_single_option_line("internal_bridge_flow", "quality_settings_bridging#flow-ratio");
|
||||
optgroup->append_single_option_line("bridge_density", "quality_settings_bridging#bridge-density");
|
||||
optgroup->append_single_option_line("internal_bridge_density", "quality_settings_bridging#bridge-density");
|
||||
optgroup->append_single_option_line("thick_bridges", "quality_settings_bridging#thick-bridges");
|
||||
optgroup->append_single_option_line("thick_internal_bridges", "quality_settings_bridging#thick-bridges");
|
||||
optgroup->append_single_option_line("enable_extra_bridge_layer", "quality_settings_bridging#extra-bridge-layers");
|
||||
optgroup->append_single_option_line("dont_filter_internal_bridges", "quality_settings_bridging#filter-out-small-internal-bridges");
|
||||
optgroup->append_single_option_line("counterbore_hole_bridging", "quality_settings_bridging#bridge-counterbore-hole");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Overhangs"), L"param_overhang");
|
||||
optgroup->append_single_option_line("detect_overhang_wall", "quality_settings_overhangs#detect-overhang-wall");
|
||||
optgroup->append_single_option_line("make_overhang_printable", "quality_settings_overhangs#make-overhang-printable");
|
||||
optgroup->append_single_option_line("make_overhang_printable_angle", "quality_settings_overhangs#maximum-angle");
|
||||
optgroup->append_single_option_line("make_overhang_printable_hole_size", "quality_settings_overhangs#hole-area");
|
||||
optgroup->append_single_option_line("extra_perimeters_on_overhangs", "quality_settings_overhangs#extra-perimeters-on-overhangs");
|
||||
optgroup->append_single_option_line("overhang_reverse", "quality_settings_overhangs#reverse-on-even");
|
||||
optgroup->append_single_option_line("overhang_reverse_internal_only", "quality_settings_overhangs#reverse-internal-only");
|
||||
optgroup->append_single_option_line("overhang_reverse_threshold", "quality_settings_overhangs#reverse-threshold");
|
||||
}
|
||||
auto page = tab.add_options_page(L("Strength"), "custom-gcode_strength");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Walls"), L"param_wall");
|
||||
optgroup->append_single_option_line("wall_loops", "strength_settings_walls#wall-loops");
|
||||
optgroup->append_single_option_line("alternate_extra_wall", "strength_settings_walls#alternate-extra-wall");
|
||||
optgroup->append_single_option_line("detect_thin_wall", "strength_settings_walls#detect-thin-wall");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Top/bottom shells"), L"param_shell");
|
||||
optgroup->append_single_option_line("top_shell_layers", "strength_settings_top_bottom_shells#shell-layers");
|
||||
optgroup->append_single_option_line("top_shell_thickness", "strength_settings_top_bottom_shells#shell-thickness");
|
||||
optgroup->append_single_option_line("top_surface_density", "strength_settings_top_bottom_shells#surface-density");
|
||||
optgroup->append_single_option_line("top_surface_pattern", "strength_settings_top_bottom_shells#surface-pattern");
|
||||
optgroup->append_single_option_line("bottom_shell_layers", "strength_settings_top_bottom_shells#shell-layers");
|
||||
optgroup->append_single_option_line("bottom_shell_thickness", "strength_settings_top_bottom_shells#shell-thickness");
|
||||
optgroup->append_single_option_line("bottom_surface_density", "strength_settings_top_bottom_shells#surface-density");
|
||||
optgroup->append_single_option_line("bottom_surface_pattern", "strength_settings_top_bottom_shells#surface-pattern");
|
||||
optgroup->append_single_option_line("top_bottom_infill_wall_overlap", "strength_settings_top_bottom_shells#infillwall-overlap");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Infill"), L"param_infill");
|
||||
optgroup->append_single_option_line("sparse_infill_density", "strength_settings_infill#sparse-infill-density");
|
||||
optgroup->append_single_option_line("fill_multiline", "strength_settings_infill#fill-multiline");
|
||||
optgroup->append_single_option_line("sparse_infill_pattern", "strength_settings_infill#sparse-infill-pattern");
|
||||
optgroup->append_single_option_line("gyroid_optimized", "strength_settings_patterns#gyroid-optimized");
|
||||
optgroup->append_single_option_line("infill_direction", "strength_settings_infill#direction");
|
||||
optgroup->append_single_option_line("sparse_infill_rotate_template", "strength_settings_infill_rotation_template_metalanguage");
|
||||
optgroup->append_single_option_line("skin_infill_density", "strength_settings_patterns#locked-zag");
|
||||
optgroup->append_single_option_line("skeleton_infill_density", "strength_settings_patterns#locked-zag");
|
||||
optgroup->append_single_option_line("infill_lock_depth", "strength_settings_patterns#locked-zag");
|
||||
optgroup->append_single_option_line("skin_infill_depth", "strength_settings_patterns#locked-zag");
|
||||
optgroup->append_single_option_line("skin_infill_line_width", "strength_settings_patterns#locked-zag");
|
||||
optgroup->append_single_option_line("skeleton_infill_line_width", "strength_settings_patterns#locked-zag");
|
||||
optgroup->append_single_option_line("symmetric_infill_y_axis", "strength_settings_infill#symmetric-infill-y-axis");
|
||||
optgroup->append_single_option_line("infill_shift_step", "strength_settings_patterns#cross-hatch");
|
||||
optgroup->append_single_option_line("lateral_lattice_angle_1", "strength_settings_patterns#lateral-lattice");
|
||||
optgroup->append_single_option_line("lateral_lattice_angle_2", "strength_settings_patterns#lateral-lattice");
|
||||
optgroup->append_single_option_line("infill_overhang_angle", "strength_settings_patterns#lateral-honeycomb");
|
||||
optgroup->append_single_option_line("infill_anchor_max", "strength_settings_infill#anchor");
|
||||
optgroup->append_single_option_line("infill_anchor", "strength_settings_infill#anchor");
|
||||
optgroup->append_single_option_line("internal_solid_infill_pattern", "strength_settings_infill#internal-solid-infill");
|
||||
optgroup->append_single_option_line("solid_infill_direction", "strength_settings_infill#direction");
|
||||
optgroup->append_single_option_line("solid_infill_rotate_template", "strength_settings_infill_rotation_template_metalanguage");
|
||||
optgroup->append_single_option_line("gap_fill_target", "strength_settings_infill#apply-gap-fill");
|
||||
optgroup->append_single_option_line("filter_out_gap_fill", "strength_settings_infill#filter-out-tiny-gaps");
|
||||
optgroup->append_single_option_line("infill_wall_overlap", "strength_settings_infill#infill-wall-overlap");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
|
||||
optgroup->append_single_option_line("align_infill_direction_to_model", "strength_settings_advanced#align-infill-direction-to-model");
|
||||
optgroup->append_single_option_line("extra_solid_infills", "strength_settings_infill#extra-solid-infill");
|
||||
optgroup->append_single_option_line("bridge_angle", "strength_settings_advanced#bridge-infill-direction");
|
||||
optgroup->append_single_option_line("internal_bridge_angle", "strength_settings_advanced#bridge-infill-direction");
|
||||
optgroup->append_single_option_line("minimum_sparse_infill_area", "strength_settings_advanced#minimum-sparse-infill-threshold");
|
||||
optgroup->append_single_option_line("infill_combination", "strength_settings_advanced#infill-combination");
|
||||
optgroup->append_single_option_line("infill_combination_max_layer_height", "strength_settings_advanced#max-layer-height");
|
||||
optgroup->append_single_option_line("detect_narrow_internal_solid_infill", "strength_settings_advanced#detect-narrow-internal-solid-infill");
|
||||
optgroup->append_single_option_line("ensure_vertical_shell_thickness", "strength_settings_advanced#ensure-vertical-shell-thickness");
|
||||
}
|
||||
auto page = tab.add_options_page(L("Speed"), "custom-gcode_speed");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("First layer speed"), L"param_speed_first", 15);
|
||||
optgroup->append_single_option_line("initial_layer_speed", "speed_settings_initial_layer_speed#initial-layer");
|
||||
optgroup->append_single_option_line("initial_layer_infill_speed", "speed_settings_initial_layer_speed#initial-layer-infill");
|
||||
optgroup->append_single_option_line("initial_layer_travel_speed", "speed_settings_initial_layer_speed#initial-layer-travel-speed");
|
||||
optgroup->append_single_option_line("slow_down_layers", "speed_settings_initial_layer_speed#number-of-slow-layers");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Other layers speed"), L"param_speed", 15);
|
||||
optgroup->append_single_option_line("outer_wall_speed", "speed_settings_other_layers_speed#outer-wall");
|
||||
optgroup->append_single_option_line("inner_wall_speed", "speed_settings_other_layers_speed#inner-wall");
|
||||
optgroup->append_single_option_line("small_perimeter_speed", "speed_settings_other_layers_speed#small-perimeters");
|
||||
optgroup->append_single_option_line("small_perimeter_threshold", "speed_settings_other_layers_speed#small-perimeters-threshold");
|
||||
optgroup->append_single_option_line("sparse_infill_speed", "speed_settings_other_layers_speed#sparse-infill");
|
||||
optgroup->append_single_option_line("internal_solid_infill_speed", "speed_settings_other_layers_speed#internal-solid-infill");
|
||||
optgroup->append_single_option_line("top_surface_speed", "speed_settings_other_layers_speed#top-surface");
|
||||
optgroup->append_single_option_line("gap_infill_speed", "speed_settings_other_layers_speed#gap-infill");
|
||||
optgroup->append_single_option_line("ironing_speed", "speed_settings_other_layers_speed#ironing-speed");
|
||||
optgroup->append_single_option_line("support_speed", "speed_settings_other_layers_speed#support");
|
||||
optgroup->append_single_option_line("support_interface_speed", "speed_settings_other_layers_speed#support-interface");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Overhang speed"), L"param_overhang_speed", 15);
|
||||
optgroup->append_single_option_line("enable_overhang_speed", "speed_settings_overhang_speed#slow-down-for-overhang");
|
||||
optgroup->append_single_option_line("slowdown_for_curled_perimeters", "speed_settings_overhang_speed#slow-down-for-curled-perimeters");
|
||||
{
|
||||
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")};
|
||||
line.label_path = "speed_settings_overhang_speed#speed";
|
||||
line.append_option(optgroup->get_option("overhang_1_4_speed"));
|
||||
line.append_option(optgroup->get_option("overhang_2_4_speed"));
|
||||
line.append_option(optgroup->get_option("overhang_3_4_speed"));
|
||||
line.append_option(optgroup->get_option("overhang_4_4_speed"));
|
||||
optgroup->append_line(line);
|
||||
}
|
||||
optgroup->append_separator();
|
||||
{
|
||||
Line line = {L("Bridge"), L("Set speed for external and internal bridges")};
|
||||
line.append_option(optgroup->get_option("bridge_speed"));
|
||||
line.append_option(optgroup->get_option("internal_bridge_speed"));
|
||||
optgroup->append_line(line);
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Travel speed"), L"param_travel_speed", 15);
|
||||
optgroup->append_single_option_line("travel_speed", "speed_settings_travel");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Acceleration"), L"param_acceleration", 15);
|
||||
optgroup->append_single_option_line("default_acceleration", "speed_settings_acceleration#normal-printing");
|
||||
optgroup->append_single_option_line("outer_wall_acceleration", "speed_settings_acceleration#outer-wall");
|
||||
optgroup->append_single_option_line("inner_wall_acceleration", "speed_settings_acceleration#inner-wall");
|
||||
optgroup->append_single_option_line("bridge_acceleration", "speed_settings_acceleration#bridge");
|
||||
optgroup->append_single_option_line("sparse_infill_acceleration", "speed_settings_acceleration#sparse-infill");
|
||||
optgroup->append_single_option_line("internal_solid_infill_acceleration", "speed_settings_acceleration#internal-solid-infill");
|
||||
optgroup->append_single_option_line("initial_layer_acceleration", "speed_settings_acceleration#initial-layer");
|
||||
optgroup->append_single_option_line("initial_layer_travel_acceleration", "speed_settings_acceleration#initial-layer-travel");
|
||||
optgroup->append_single_option_line("top_surface_acceleration", "speed_settings_acceleration#top-surface");
|
||||
optgroup->append_single_option_line("travel_acceleration", "speed_settings_acceleration#travel");
|
||||
optgroup->append_single_option_line("accel_to_decel_enable", "speed_settings_acceleration");
|
||||
optgroup->append_single_option_line("accel_to_decel_factor", "speed_settings_acceleration");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Jerk(XY)"), L"param_jerk", 15);
|
||||
optgroup->append_single_option_line("default_junction_deviation", "speed_settings_jerk_xy#junction-deviation");
|
||||
optgroup->append_single_option_line("default_jerk", "speed_settings_jerk_xy#default");
|
||||
optgroup->append_single_option_line("outer_wall_jerk", "speed_settings_jerk_xy#outer-wall");
|
||||
optgroup->append_single_option_line("inner_wall_jerk", "speed_settings_jerk_xy#inner-wall");
|
||||
optgroup->append_single_option_line("infill_jerk", "speed_settings_jerk_xy#infill");
|
||||
optgroup->append_single_option_line("top_surface_jerk", "speed_settings_jerk_xy#top-surface");
|
||||
optgroup->append_single_option_line("initial_layer_jerk", "speed_settings_jerk_xy#initial-layer");
|
||||
optgroup->append_single_option_line("initial_layer_travel_jerk", "speed_settings_jerk_xy#initial-layer-travel");
|
||||
optgroup->append_single_option_line("travel_jerk", "speed_settings_jerk_xy#travel");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Advanced"), L"param_advanced", 15);
|
||||
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope", "speed_settings_advanced");
|
||||
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_segment_length", "speed_settings_advanced");
|
||||
optgroup->append_single_option_line("extrusion_rate_smoothing_external_perimeter_only", "speed_settings_advanced");
|
||||
}
|
||||
auto page = tab.add_options_page(L("Support"), "custom-gcode_support");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Support"), L"param_support");
|
||||
optgroup->append_single_option_line("enable_support", "support_settings_support");
|
||||
optgroup->append_single_option_line("support_type", "support_settings_support#type");
|
||||
optgroup->append_single_option_line("support_style", "support_settings_support#style");
|
||||
optgroup->append_single_option_line("support_threshold_angle", "support_settings_support#threshold-angle");
|
||||
optgroup->append_single_option_line("support_threshold_overlap", "support_settings_support#threshold-overlap");
|
||||
optgroup->append_single_option_line("raft_first_layer_density", "support_settings_support#initial-layer-density");
|
||||
optgroup->append_single_option_line("raft_first_layer_expansion", "support_settings_support#initial-layer-expansion");
|
||||
optgroup->append_single_option_line("support_on_build_plate_only", "support_settings_support#on-build-plate-only");
|
||||
optgroup->append_single_option_line("support_critical_regions_only", "support_settings_support#support-critical-regions-only");
|
||||
optgroup->append_single_option_line("support_remove_small_overhang", "support_settings_support#ignore-small-overhangs");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Raft"), L"param_raft");
|
||||
optgroup->append_single_option_line("raft_layers", "support_settings_raft");
|
||||
optgroup->append_single_option_line("raft_contact_distance", "support_settings_raft");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Support filament"), L"param_support_filament");
|
||||
optgroup->append_single_option_line("support_filament", "support_settings_filament#base");
|
||||
optgroup->append_single_option_line("support_interface_filament", "support_settings_filament#interface");
|
||||
optgroup->append_single_option_line("support_interface_not_for_body", "support_settings_filament#avoid-interface-filament-for-base");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Support ironing"), L"param_ironing");
|
||||
optgroup->append_single_option_line("support_ironing", "support_settings_ironing");
|
||||
optgroup->append_single_option_line("support_ironing_pattern", "support_settings_ironing#pattern");
|
||||
optgroup->append_single_option_line("support_ironing_flow", "support_settings_ironing#flow");
|
||||
optgroup->append_single_option_line("support_ironing_spacing", "support_settings_ironing#line-spacing");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
|
||||
optgroup->append_single_option_line("support_top_z_distance", "support_settings_advanced#z-distance");
|
||||
optgroup->append_single_option_line("support_bottom_z_distance", "support_settings_advanced#z-distance");
|
||||
optgroup->append_single_option_line("tree_support_wall_count", "support_settings_advanced#support-wall-loops");
|
||||
optgroup->append_single_option_line("support_base_pattern", "support_settings_advanced#base-pattern");
|
||||
optgroup->append_single_option_line("support_base_pattern_spacing", "support_settings_advanced#base-pattern-spacing");
|
||||
optgroup->append_single_option_line("support_angle", "support_settings_advanced#pattern-angle");
|
||||
optgroup->append_single_option_line("support_interface_top_layers", "support_settings_advanced#interface-layers");
|
||||
optgroup->append_single_option_line("support_interface_bottom_layers", "support_settings_advanced#interface-layers");
|
||||
optgroup->append_single_option_line("support_interface_pattern", "support_settings_advanced#interface-pattern");
|
||||
optgroup->append_single_option_line("support_interface_spacing", "support_settings_advanced#interface-spacing");
|
||||
optgroup->append_single_option_line("support_bottom_interface_spacing", "support_settings_advanced#interface-spacing");
|
||||
optgroup->append_single_option_line("support_expansion", "support_settings_advanced#normal-support-expansion");
|
||||
optgroup->append_single_option_line("support_object_xy_distance", "support_settings_advanced#supportobject-xy-distance");
|
||||
optgroup->append_single_option_line("support_object_first_layer_gap", "support_settings_advanced#supportobject-first-layer-gap");
|
||||
optgroup->append_single_option_line("bridge_no_support", "support_settings_advanced#dont-support-bridges");
|
||||
optgroup->append_single_option_line("max_bridge_length", "support_settings_advanced");
|
||||
optgroup->append_single_option_line("independent_support_layer_height", "support_settings_advanced#independent-support-layer-height");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Tree supports"), L"param_support_tree");
|
||||
optgroup->append_single_option_line("tree_support_tip_diameter", "support_settings_tree#tip-diameter");
|
||||
optgroup->append_single_option_line("tree_support_branch_distance", "support_settings_tree#branch-distance");
|
||||
optgroup->append_single_option_line("tree_support_branch_distance_organic", "support_settings_tree#branch-distance");
|
||||
optgroup->append_single_option_line("tree_support_top_rate", "support_settings_tree#branch-density");
|
||||
optgroup->append_single_option_line("tree_support_branch_diameter", "support_settings_tree#branch-diameter");
|
||||
optgroup->append_single_option_line("tree_support_branch_diameter_organic", "support_settings_tree#branch-diameter");
|
||||
optgroup->append_single_option_line("tree_support_branch_diameter_angle", "support_settings_tree#branch-diameter-angle");
|
||||
optgroup->append_single_option_line("tree_support_branch_angle", "support_settings_tree#branch-angle");
|
||||
optgroup->append_single_option_line("tree_support_branch_angle_organic", "support_settings_tree#branch-angle");
|
||||
optgroup->append_single_option_line("tree_support_angle_slow", "support_settings_tree#preferred-branch-angle");
|
||||
optgroup->append_single_option_line("tree_support_auto_brim", "support_settings_tree");
|
||||
optgroup->append_single_option_line("tree_support_brim_width", "support_settings_tree");
|
||||
}
|
||||
auto page = tab.add_options_page(L("Multimaterial"), "custom-gcode_multi_material");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Prime tower"), L"param_tower");
|
||||
optgroup->append_single_option_line("enable_prime_tower", "multimaterial_settings_prime_tower");
|
||||
optgroup->append_single_option_line("prime_tower_skip_points", "multimaterial_settings_prime_tower");
|
||||
optgroup->append_single_option_line("enable_tower_interface_features", "multimaterial_settings_prime_tower");
|
||||
optgroup->append_single_option_line("enable_tower_interface_cooldown_during_tower", "multimaterial_settings_prime_tower");
|
||||
optgroup->append_single_option_line("prime_tower_enable_framework", "multimaterial_settings_prime_tower");
|
||||
optgroup->append_single_option_line("prime_tower_width", "multimaterial_settings_prime_tower#width");
|
||||
optgroup->append_single_option_line("prime_volume", "multimaterial_settings_prime_tower");
|
||||
optgroup->append_single_option_line("prime_tower_brim_width", "multimaterial_settings_prime_tower#brim-width");
|
||||
optgroup->append_single_option_line("prime_tower_infill_gap", "multimaterial_settings_prime_tower");
|
||||
optgroup->append_single_option_line("wipe_tower_rotation_angle", "multimaterial_settings_prime_tower#wipe-tower-rotation-angle");
|
||||
optgroup->append_single_option_line("wipe_tower_bridging", "multimaterial_settings_prime_tower#maximal-bridging-distance");
|
||||
optgroup->append_single_option_line("wipe_tower_extra_spacing", "multimaterial_settings_prime_tower#wipe-tower-purge-lines-spacing");
|
||||
optgroup->append_single_option_line("wipe_tower_extra_flow", "multimaterial_settings_prime_tower#extra-flow-for-purge");
|
||||
optgroup->append_single_option_line("wipe_tower_max_purge_speed", "multimaterial_settings_prime_tower#maximum-wipe-tower-print-speed");
|
||||
optgroup->append_single_option_line("wipe_tower_wall_type", "multimaterial_settings_prime_tower#wall-type");
|
||||
optgroup->append_single_option_line("wipe_tower_cone_angle", "multimaterial_settings_prime_tower#stabilization-cone-apex-angle");
|
||||
optgroup->append_single_option_line("wipe_tower_extra_rib_length", "multimaterial_settings_prime_tower#extra-rib-length");
|
||||
optgroup->append_single_option_line("wipe_tower_rib_width", "multimaterial_settings_prime_tower#rib-width");
|
||||
optgroup->append_single_option_line("wipe_tower_fillet_wall", "multimaterial_settings_prime_tower#fillet-wall");
|
||||
optgroup->append_single_option_line("wipe_tower_no_sparse_layers", "multimaterial_settings_prime_tower#no-sparse-layers");
|
||||
optgroup->append_single_option_line("single_extruder_multi_material_priming", "multimaterial_settings_prime_tower");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Filament for Features"), L"param_filament_for_features");
|
||||
optgroup->append_single_option_line("wall_filament", "multimaterial_settings_filament_for_features#walls");
|
||||
optgroup->append_single_option_line("sparse_infill_filament", "multimaterial_settings_filament_for_features#infill");
|
||||
optgroup->append_single_option_line("solid_infill_filament", "multimaterial_settings_filament_for_features#solid-infill");
|
||||
optgroup->append_single_option_line("wipe_tower_filament", "multimaterial_settings_filament_for_features#wipe-tower");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Ooze prevention"), L"param_ooze_prevention");
|
||||
optgroup->append_single_option_line("ooze_prevention", "multimaterial_settings_ooze_prevention");
|
||||
optgroup->append_single_option_line("standby_temperature_delta", "multimaterial_settings_ooze_prevention#temperature-variation");
|
||||
optgroup->append_single_option_line("preheat_time", "multimaterial_settings_ooze_prevention#preheat-time");
|
||||
optgroup->append_single_option_line("preheat_steps", "multimaterial_settings_ooze_prevention#preheat-steps");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Flush options"), L"param_flush");
|
||||
optgroup->append_single_option_line("flush_into_infill", "multimaterial_settings_flush_options#flush-into-objects-infill");
|
||||
optgroup->append_single_option_line("flush_into_objects", "multimaterial_settings_flush_options");
|
||||
optgroup->append_single_option_line("flush_into_support", "multimaterial_settings_flush_options#flush-into-objects-support");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Advanced"), L"advanced");
|
||||
optgroup->append_single_option_line("interlocking_beam", "multimaterial_settings_advanced#interlocking-beam");
|
||||
optgroup->append_single_option_line("interface_shells", "multimaterial_settings_advanced#interface-shells");
|
||||
optgroup->append_single_option_line("mmu_segmented_region_max_width", "multimaterial_settings_advanced#maximum-width-of-segmented-region");
|
||||
optgroup->append_single_option_line("mmu_segmented_region_interlocking_depth", "multimaterial_settings_advanced#interlocking-depth-of-segmented-region");
|
||||
optgroup->append_single_option_line("interlocking_beam_width", "multimaterial_settings_advanced#interlocking-beam-width");
|
||||
optgroup->append_single_option_line("interlocking_orientation", "multimaterial_settings_advanced#interlocking-direction");
|
||||
optgroup->append_single_option_line("interlocking_beam_layer_count", "multimaterial_settings_advanced#interlocking-beam-layers");
|
||||
optgroup->append_single_option_line("interlocking_depth", "multimaterial_settings_advanced#interlocking-depth");
|
||||
optgroup->append_single_option_line("interlocking_boundary_avoidance", "multimaterial_settings_advanced#interlocking-boundary-avoidance");
|
||||
}
|
||||
auto page = tab.add_options_page(L("Others"), "custom-gcode_other");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Skirt"), L"param_skirt");
|
||||
optgroup->append_single_option_line("skirt_loops", "others_settings_skirt#loops");
|
||||
optgroup->append_single_option_line("skirt_type", "others_settings_skirt#type");
|
||||
optgroup->append_single_option_line("min_skirt_length", "others_settings_skirt#minimum-extrusion-length");
|
||||
optgroup->append_single_option_line("skirt_distance", "others_settings_skirt#distance");
|
||||
optgroup->append_single_option_line("skirt_start_angle", "others_settings_skirt#start-point");
|
||||
optgroup->append_single_option_line("skirt_speed", "others_settings_skirt#speed");
|
||||
optgroup->append_single_option_line("skirt_height", "others_settings_skirt#height");
|
||||
optgroup->append_single_option_line("draft_shield", "others_settings_skirt#shield");
|
||||
optgroup->append_single_option_line("single_loop_draft_shield", "others_settings_skirt#single-loop-after-first-layer");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Brim"), L"param_adhension");
|
||||
optgroup->append_single_option_line("brim_type", "others_settings_brim#type");
|
||||
optgroup->append_single_option_line("brim_width", "others_settings_brim#width");
|
||||
optgroup->append_single_option_line("brim_object_gap", "others_settings_brim#brim-object-gap");
|
||||
optgroup->append_single_option_line("brim_flow_ratio", "others_settings_brim#brim-flow-ratio");
|
||||
optgroup->append_single_option_line("brim_use_efc_outline", "others_settings_brim#brim-use-efc-outline");
|
||||
optgroup->append_single_option_line("combine_brims", "others_settings_brim#combine-brims");
|
||||
optgroup->append_single_option_line("brim_ears_max_angle", "others_settings_brim#ear-max-angle");
|
||||
optgroup->append_single_option_line("brim_ears_detection_length", "others_settings_brim#ear-detection-radius");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Special mode"), L"param_special");
|
||||
optgroup->append_single_option_line("slicing_mode", "others_settings_special_mode#slicing-mode");
|
||||
optgroup->append_single_option_line("print_sequence", "others_settings_special_mode#print-sequence");
|
||||
optgroup->append_single_option_line("print_order", "others_settings_special_mode#intra-layer-order");
|
||||
optgroup->append_single_option_line("spiral_mode", "others_settings_special_mode#spiral-vase");
|
||||
optgroup->append_single_option_line("spiral_mode_smooth", "others_settings_special_mode#smooth-spiral");
|
||||
optgroup->append_single_option_line("spiral_mode_max_xy_smoothing", "others_settings_special_mode#max-xy-smoothing");
|
||||
optgroup->append_single_option_line("spiral_starting_flow_ratio", "others_settings_special_mode#spiral-starting-flow-ratio");
|
||||
optgroup->append_single_option_line("spiral_finishing_flow_ratio", "others_settings_special_mode#spiral-finishing-flow-ratio");
|
||||
optgroup->append_single_option_line("timelapse_type", "others_settings_special_mode#timelapse");
|
||||
optgroup->append_single_option_line("enable_wrapping_detection");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Fuzzy Skin"), L"fuzzy_skin");
|
||||
optgroup->append_single_option_line("fuzzy_skin", "others_settings_fuzzy_skin");
|
||||
optgroup->append_single_option_line("fuzzy_skin_mode", "others_settings_fuzzy_skin#fuzzy-skin-mode");
|
||||
optgroup->append_single_option_line("fuzzy_skin_noise_type", "others_settings_fuzzy_skin#noise-type");
|
||||
optgroup->append_single_option_line("fuzzy_skin_point_distance", "others_settings_fuzzy_skin#point-distance");
|
||||
optgroup->append_single_option_line("fuzzy_skin_thickness", "others_settings_fuzzy_skin#skin-thickness");
|
||||
optgroup->append_single_option_line("fuzzy_skin_scale", "others_settings_fuzzy_skin#skin-feature-size");
|
||||
optgroup->append_single_option_line("fuzzy_skin_octaves", "others_settings_fuzzy_skin#skin-noise-octaves");
|
||||
optgroup->append_single_option_line("fuzzy_skin_persistence", "others_settings_fuzzy_skin#skin-noise-persistence");
|
||||
optgroup->append_single_option_line("fuzzy_skin_ripples_per_layer", "others_settings_fuzzy_skin#ripples-per-layer");
|
||||
optgroup->append_single_option_line("fuzzy_skin_ripple_offset", "others_settings_fuzzy_skin#ripple-offset");
|
||||
optgroup->append_single_option_line("fuzzy_skin_layers_between_ripple_offset", "others_settings_fuzzy_skin#layers-between-ripple-offset");
|
||||
optgroup->append_single_option_line("fuzzy_skin_first_layer", "others_settings_fuzzy_skin#apply-fuzzy-skin-to-first-layer");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("G-code output"), L"param_gcode");
|
||||
optgroup->append_single_option_line("reduce_infill_retraction", "others_settings_g_code_output#reduce-infill-retraction");
|
||||
optgroup->append_single_option_line("gcode_add_line_number", "others_settings_g_code_output#add-line-number");
|
||||
optgroup->append_single_option_line("gcode_comments", "others_settings_g_code_output#verbose-g-code");
|
||||
optgroup->append_single_option_line("gcode_label_objects", "others_settings_g_code_output#label-objects");
|
||||
optgroup->append_single_option_line("exclude_object", "others_settings_g_code_output#exclude-objects");
|
||||
{
|
||||
Option option = optgroup->get_option("filename_format");
|
||||
option.opt.is_code = true;
|
||||
option.opt.multiline = true;
|
||||
optgroup->append_single_option_line(option, "others_settings_g_code_output#filename-format");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Change extrusion role G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("process_change_extrusion_role_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = 15;
|
||||
optgroup->append_single_option_line(option);
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Post-processing Scripts"), L"param_gcode", 0);
|
||||
{
|
||||
Option option = optgroup->get_option("post_process");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = 15;
|
||||
optgroup->append_single_option_line(option, "others_settings_post_processing_scripts");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Notes"), L"note", 0);
|
||||
{
|
||||
Option option = optgroup->get_option("notes");
|
||||
option.opt.full_width = true;
|
||||
option.opt.height = 25;
|
||||
optgroup->append_single_option_line(option, "others_settings_notes");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline void TabFilament_build_layout(TabFilament& tab)
|
||||
{
|
||||
auto page = tab.add_options_page(L("Filament"), "custom-gcode_filament");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Basic information"), L"param_information");
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->append_single_option_line("filament_type", "material_basic_information#type");
|
||||
optgroup->append_single_option_line("filament_vendor", "material_basic_information#vendor");
|
||||
optgroup->append_single_option_line("filament_soluble", "material_basic_information#soluble-material");
|
||||
optgroup->append_single_option_line("filament_is_support", "material_basic_information#support-material");
|
||||
optgroup->append_single_option_line("filament_change_length", "material_basic_information#filament-ramming-length");
|
||||
optgroup->append_single_option_line("required_nozzle_HRC", "material_basic_information#required-nozzle-hrc");
|
||||
optgroup->append_single_option_line("default_filament_colour", "material_basic_information#default-color");
|
||||
optgroup->append_single_option_line("filament_diameter", "material_basic_information#diameter");
|
||||
optgroup->append_single_option_line("filament_adhesiveness_category", "material_basic_information#adhesiveness-category");
|
||||
optgroup->append_single_option_line("filament_density", "material_basic_information#density");
|
||||
optgroup->append_single_option_line("filament_shrink", "material_basic_information#shrinkage-xy");
|
||||
optgroup->append_single_option_line("filament_shrinkage_compensation_z", "material_basic_information#shrinkage-z");
|
||||
optgroup->append_single_option_line("filament_cost", "material_basic_information#price");
|
||||
optgroup->append_single_option_line("temperature_vitrification", "material_basic_information#softening-temperature");
|
||||
optgroup->append_single_option_line("idle_temperature", "material_basic_information#idle-temperature");
|
||||
{
|
||||
Line line = {L("Recommended nozzle temperature"), L("Recommended nozzle temperature range of this filament. 0 means no set")};
|
||||
line.append_option(optgroup->get_option("nozzle_temperature_range_low"));
|
||||
line.append_option(optgroup->get_option("nozzle_temperature_range_high"));
|
||||
optgroup->append_line(line);
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Flow ratio and Pressure Advance"), L"param_flow_ratio_and_pressure_advance");
|
||||
optgroup->append_single_option_line("pellet_flow_coefficient", "printer_basic_information_advanced#pellet-modded-printer");
|
||||
optgroup->append_single_option_line("filament_flow_ratio", "material_flow_ratio_and_pressure_advance#flow-ratio");
|
||||
optgroup->append_single_option_line("enable_pressure_advance", "material_flow_ratio_and_pressure_advance#pressure-advance");
|
||||
optgroup->append_single_option_line("pressure_advance", "material_flow_ratio_and_pressure_advance#pressure-advance");
|
||||
optgroup->append_single_option_line("adaptive_pressure_advance", "material_flow_ratio_and_pressure_advance#enable-adaptive-pressure-advance-beta");
|
||||
optgroup->append_single_option_line("adaptive_pressure_advance_overhangs", "material_flow_ratio_and_pressure_advance#enable-adaptive-pressure-advance-for-overhangs-beta");
|
||||
optgroup->append_single_option_line("adaptive_pressure_advance_bridges", "material_flow_ratio_and_pressure_advance#pressure-advance-for-bridges");
|
||||
{
|
||||
Option option = optgroup->get_option("adaptive_pressure_advance_model");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = 15;
|
||||
optgroup->append_single_option_line(option);
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Print chamber temperature"), L"param_chamber_temp");
|
||||
optgroup->append_single_option_line("activate_chamber_temp_control", "material_temperatures#print-chamber-temperature");
|
||||
optgroup->append_single_option_line("chamber_temperature", "material_temperatures#print-chamber-temperature");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Print temperature"), L"param_extruder_temp");
|
||||
{
|
||||
Line line = {L("Nozzle"), L("Nozzle temperature when printing")};
|
||||
line.label_path = "material_temperatures#nozzle";
|
||||
line.append_option(optgroup->get_option("nozzle_temperature_initial_layer"));
|
||||
line.append_option(optgroup->get_option("nozzle_temperature"));
|
||||
optgroup->append_line(line);
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Bed temperature"), L"param_bed_temp");
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Volumetric speed limitation"), L"param_volumetric_speed");
|
||||
optgroup->append_single_option_line("filament_adaptive_volumetric_speed", "material_volumetric_speed_limitation#adaptive-volumetric-speed");
|
||||
optgroup->append_single_option_line("filament_max_volumetric_speed", "material_volumetric_speed_limitation#max-volumetric-speed");
|
||||
}
|
||||
auto page = tab.add_options_page(L("Cooling"), "custom-gcode_cooling_fan");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Cooling for specific layer"), L"param_cooling_specific_layer");
|
||||
optgroup->append_single_option_line("close_fan_the_first_x_layers", "material_cooling#no-cooling-for-the-first");
|
||||
optgroup->append_single_option_line("full_fan_speed_layer", "material_cooling#full-fan-speed-at-layer");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Part cooling fan"), L"param_cooling_part_fan");
|
||||
{
|
||||
Line line = {L("Min fan speed threshold"), L("Part cooling fan speed will start to run at min speed when the estimated layer time is no longer than the layer time in setting. When layer time is shorter than threshold, fan speed is interpolated between the minimum and maximum fan speed according to layer printing time")};
|
||||
line.label_path = "material_cooling#material-part-cooling-fan";
|
||||
line.append_option(optgroup->get_option("fan_min_speed"));
|
||||
line.append_option(optgroup->get_option("fan_cooling_layer_time"));
|
||||
optgroup->append_line(line);
|
||||
}
|
||||
{
|
||||
Line line = {L("Max fan speed threshold"), L("Part cooling fan speed will be max when the estimated layer time is shorter than the setting value")};
|
||||
line.label_path = "material_cooling#material-part-cooling-fan";
|
||||
line.append_option(optgroup->get_option("fan_max_speed"));
|
||||
line.append_option(optgroup->get_option("slow_down_layer_time"));
|
||||
optgroup->append_line(line);
|
||||
}
|
||||
optgroup->append_single_option_line("reduce_fan_stop_start_freq", "material_cooling#keep-fan-always-on");
|
||||
optgroup->append_single_option_line("slow_down_for_layer_cooling", "material_cooling#slow-printing-down-for-better-layer-cooling");
|
||||
optgroup->append_single_option_line("dont_slow_down_outer_wall", "material_cooling#dont-slow-down-outer-walls");
|
||||
optgroup->append_single_option_line("slow_down_min_speed", "material_cooling#min-print-speed");
|
||||
optgroup->append_single_option_line("enable_overhang_bridge_fan", "material_cooling#force-cooling-for-overhangs-and-bridges");
|
||||
optgroup->append_single_option_line("overhang_fan_threshold", "material_cooling#overhang-cooling-activation-threshold");
|
||||
optgroup->append_single_option_line("overhang_fan_speed", "material_cooling#overhangs-and-external-bridges-fan-speed");
|
||||
optgroup->append_single_option_line("internal_bridge_fan_speed", "material_cooling#internal-bridges-fan-speed");
|
||||
optgroup->append_single_option_line("support_material_interface_fan_speed", "material_cooling#support-interface-fan-speed");
|
||||
optgroup->append_single_option_line("ironing_fan_speed", "material_cooling#ironing-fan-speed");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Auxiliary part cooling fan"), L"param_cooling_aux_fan");
|
||||
optgroup->append_single_option_line("additional_cooling_fan_speed", "material_cooling#auxiliary-part-cooling-fan");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Exhaust fan"), L"param_cooling_exhaust");
|
||||
optgroup->append_single_option_line("activate_air_filtration", "material_cooling#activate-air-filtration");
|
||||
}
|
||||
auto page = tab.add_options_page(L("Advanced"), "custom-gcode_advanced");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Filament start G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("filament_start_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option);
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Change extrusion role G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("filament_change_extrusion_role_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option);
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Filament end G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("filament_end_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option);
|
||||
}
|
||||
}
|
||||
auto page = tab.add_options_page(L("Multimaterial"), "custom-gcode_multi_material");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Wipe tower parameters"), L"param_tower");
|
||||
optgroup->append_single_option_line("filament_minimal_purge_on_wipe_tower", "material_multimaterial#multimaterial-wipe-tower-parameters");
|
||||
optgroup->append_single_option_line("filament_tower_interface_pre_extrusion_dist", "material_multimaterial#multimaterial-wipe-tower-parameters");
|
||||
optgroup->append_single_option_line("filament_tower_interface_pre_extrusion_length", "material_multimaterial#multimaterial-wipe-tower-parameters");
|
||||
optgroup->append_single_option_line("filament_tower_ironing_area", "material_multimaterial#multimaterial-wipe-tower-parameters");
|
||||
optgroup->append_single_option_line("filament_tower_interface_purge_volume", "material_multimaterial#multimaterial-wipe-tower-parameters");
|
||||
optgroup->append_single_option_line("filament_tower_interface_print_temp", "material_multimaterial#multimaterial-wipe-tower-parameters");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Multi Filament"));
|
||||
optgroup->append_single_option_line("long_retractions_when_ec", "material_multimaterial#multi-filament");
|
||||
optgroup->append_single_option_line("retraction_distances_when_ec", "material_multimaterial#multi-filament");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Tool change parameters with single extruder MM printers"), L"param_toolchange");
|
||||
optgroup->append_single_option_line("filament_loading_speed_start", "material_multimaterial#loading-speed-at-the-start");
|
||||
optgroup->append_single_option_line("filament_loading_speed", "material_multimaterial#loading-speed");
|
||||
optgroup->append_single_option_line("filament_unloading_speed_start", "material_multimaterial#unloading-speed-at-the-start");
|
||||
optgroup->append_single_option_line("filament_unloading_speed", "material_multimaterial#unloading-speed");
|
||||
optgroup->append_single_option_line("filament_toolchange_delay", "material_multimaterial#delay-after-unloading");
|
||||
optgroup->append_single_option_line("filament_cooling_moves", "material_multimaterial#number-of-cooling-moves");
|
||||
optgroup->append_single_option_line("filament_cooling_initial_speed", "material_multimaterial#speed-of-the-first-cooling-move");
|
||||
optgroup->append_single_option_line("filament_cooling_final_speed", "material_multimaterial#speed-of-the-last-cooling-move");
|
||||
optgroup->append_single_option_line("filament_stamping_loading_speed", "material_multimaterial#stamping-loading-speed");
|
||||
optgroup->append_single_option_line("filament_stamping_distance", "material_multimaterial#stamping-distance");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Tool change parameters with multi extruder MM printers"), L"param_toolchange_multi_extruder");
|
||||
optgroup->append_single_option_line("filament_multitool_ramming", "material_multimaterial#tool-change-parameters-with-multi-extruder");
|
||||
optgroup->append_single_option_line("filament_multitool_ramming_volume", "material_multimaterial#multi-tool-ramming-volume");
|
||||
optgroup->append_single_option_line("filament_multitool_ramming_flow", "material_multimaterial#multi-tool-ramming-flow");
|
||||
}
|
||||
auto page = tab.add_options_page(L("Dependencies"), "advanced");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Compatible printers"), L"param_dependencies_printers");
|
||||
{
|
||||
Option option = optgroup->get_option("compatible_printers_condition");
|
||||
option.opt.full_width = true;
|
||||
optgroup->append_single_option_line(option, "material_dependencies#compatible-printers");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Compatible process profiles"), L"param_dependencies_presets");
|
||||
{
|
||||
Option option = optgroup->get_option("compatible_prints_condition");
|
||||
option.opt.full_width = true;
|
||||
optgroup->append_single_option_line(option, "material_dependencies#compatible-process-profiles");
|
||||
}
|
||||
}
|
||||
auto page = tab.add_options_page(L("Notes"), "custom-gcode_note");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Notes"), L"note", 0);
|
||||
{
|
||||
Option option = optgroup->get_option("filament_notes");
|
||||
option.opt.full_width = true;
|
||||
option.opt.height = notes_field_height;
|
||||
optgroup->append_single_option_line(option);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline void TabPrinter_build_fff_layout(TabPrinter& tab)
|
||||
{
|
||||
auto page = tab.add_options_page(L("Basic information"), "custom-gcode_object-info");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Printable space"), L"param_printable_space");
|
||||
{
|
||||
Option option = optgroup->get_option("bed_exclude_area");
|
||||
option.opt.full_width = true;
|
||||
optgroup->append_single_option_line(option, "printer_basic_information_printable_space#excluded-bed-area");
|
||||
}
|
||||
optgroup->append_single_option_line("printable_height", "printer_basic_information_printable_space#printable-height");
|
||||
optgroup->append_single_option_line("support_multi_bed_types", "printer_basic_information_printable_space#support-multi-bed-types");
|
||||
optgroup->append_single_option_line("best_object_pos", "printer_basic_information_printable_space#best-object-position");
|
||||
optgroup->append_single_option_line("z_offset", "printer_basic_information_printable_space#z-offset");
|
||||
optgroup->append_single_option_line("preferred_orientation", "printer_basic_information_printable_space#preferred-orientation");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->append_single_option_line("printer_structure", "printer_basic_information_advanced#printer-structure");
|
||||
optgroup->append_single_option_line("gcode_flavor", "printer_basic_information_advanced#g-code-flavor");
|
||||
optgroup->append_single_option_line("pellet_modded_printer", "printer_basic_information_advanced#pellet-modded-printer");
|
||||
optgroup->append_single_option_line("bbl_use_printhost", "printer_basic_information_advanced#use-3rd-party-print-host");
|
||||
optgroup->append_single_option_line("scan_first_layer", "printer_basic_information_advanced#scan-first-layer");
|
||||
optgroup->append_single_option_line("enable_power_loss_recovery", "printer_basic_information_advanced#power-loss-recovery");
|
||||
optgroup->append_single_option_line("disable_m73", "printer_basic_information_advanced#disable-set-remaining-print-time");
|
||||
{
|
||||
Option option = optgroup->get_option("thumbnails");
|
||||
option.opt.full_width = true;
|
||||
optgroup->append_single_option_line(option, "printer_basic_information_advanced#g-code-thumbnails");
|
||||
}
|
||||
optgroup->append_single_option_line("use_relative_e_distances", "printer_basic_information_advanced#use-relative-e-distances");
|
||||
optgroup->append_single_option_line("use_firmware_retraction", "printer_basic_information_advanced#use-firmware-retraction");
|
||||
optgroup->append_single_option_line("time_cost", "printer_basic_information_advanced#time-cost");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Cooling Fan"), L"param_cooling_fan");
|
||||
optgroup->append_single_option_line("fan_kickstart", "printer_basic_information_cooling_fan#fan-kick-start-time");
|
||||
optgroup->append_single_option_line("part_cooling_fan_min_pwm", "printer_basic_information_cooling_fan#minimum-non-zero-part-cooling-fan-speed");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Extruder Clearance"), L"param_extruder_clearance");
|
||||
optgroup->append_single_option_line("extruder_clearance_radius", "printer_basic_information_extruder_clearance#radius");
|
||||
optgroup->append_single_option_line("extruder_clearance_height_to_rod", "printer_basic_information_extruder_clearance#height-to-rod");
|
||||
optgroup->append_single_option_line("extruder_clearance_height_to_lid", "printer_basic_information_extruder_clearance#height-to-lid");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Adaptive bed mesh"), L"param_adaptive_mesh");
|
||||
optgroup->append_single_option_line("bed_mesh_min", "printer_basic_information_adaptive_bed_mesh#bed-mesh");
|
||||
optgroup->append_single_option_line("bed_mesh_max", "printer_basic_information_adaptive_bed_mesh#bed-mesh");
|
||||
optgroup->append_single_option_line("bed_mesh_probe_distance", "printer_basic_information_adaptive_bed_mesh#probe-point-distance");
|
||||
optgroup->append_single_option_line("adaptive_bed_mesh_margin", "printer_basic_information_adaptive_bed_mesh#mesh-margin");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Accessory"), L"param_accessory");
|
||||
optgroup->append_single_option_line("nozzle_type", "printer_basic_information_accessory#nozzle-type");
|
||||
optgroup->append_single_option_line("nozzle_hrc", "printer_basic_information_accessory#nozzle-hrc");
|
||||
optgroup->append_single_option_line("auxiliary_fan", "printer_basic_information_accessory#auxiliary-part-cooling-fan");
|
||||
optgroup->append_single_option_line("support_chamber_temp_control", "printer_basic_information_accessory#support-controlling-chamber-temperature");
|
||||
optgroup->append_single_option_line("support_air_filtration", "printer_basic_information_accessory#support-air-filtration");
|
||||
}
|
||||
auto page = tab.add_options_page(L("Machine G-code"), "custom-gcode_gcode");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("File header G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("file_start_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = 8;
|
||||
optgroup->append_single_option_line(option);
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Machine start G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("machine_start_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option, "printer_machine_gcode#machine-start-g-code");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Machine end G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("machine_end_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option, "printer_machine_gcode#machine-end-g-code");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Printing by object G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("printing_by_object_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option, "printer_machine_gcode#printing-by-object-g-code");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Before layer change G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("before_layer_change_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option, "printer_machine_gcode#before-layer-change-g-code");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Layer change G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("layer_change_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option, "printer_machine_gcode#layer-change-g-code");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Timelapse G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("time_lapse_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option, "printer_machine_gcode#timelapse-g-code");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Clumping Detection G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("wrapping_detection_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option, "printer_machine_gcode#clumping-detection-g-code");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Change filament G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("change_filament_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option, "printer_machine_gcode#change-filament-g-code");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Change extrusion role G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("change_extrusion_role_gcode");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option, "printer_machine_gcode#change-extrusion-role-g-code");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Pause G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("machine_pause_gcode");
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option, "printer_machine_gcode#pause-g-code");
|
||||
}
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Template Custom G-code"), L"param_gcode", 0);
|
||||
optgroup->m_on_change = [&tab, &optgroup_title = optgroup->title](const t_config_option_key& opt_key, const boost::any& value) {
|
||||
validate_custom_gcode_cb(&tab, optgroup_title, opt_key, value);
|
||||
};
|
||||
optgroup->edit_custom_gcode = [&tab](const t_config_option_key& opt_key) { tab.edit_custom_gcode(opt_key); };
|
||||
{
|
||||
Option option = optgroup->get_option("template_custom_gcode");
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = gcode_field_height;
|
||||
optgroup->append_single_option_line(option, "printer_machine_gcode#template-custom-g-code");
|
||||
}
|
||||
}
|
||||
auto page = tab.add_options_page(L("Notes"), "custom-gcode_note");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Notes"), L"note", 0);
|
||||
{
|
||||
Option option = optgroup->get_option("printer_notes");
|
||||
option.opt.full_width = true;
|
||||
option.opt.height = notes_field_height;
|
||||
optgroup->append_single_option_line(option);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline void TabPrinter_build_kinematics_layout(TabPrinter& tab)
|
||||
{
|
||||
auto page = tab.add_options_page(L("Motion ability"), "custom-gcode_motion");
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
|
||||
optgroup->append_single_option_line("emit_machine_limits_to_gcode", "printer_motion_ability#emit-limits-to-g-code");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Resonance Compensation"), L"param_resonance_avoidance");
|
||||
optgroup->append_single_option_line("resonance_avoidance", "printer_motion_ability#resonance-avoidance");
|
||||
optgroup->append_single_option_line("input_shaping_emit", "printer_motion_ability#input-shaping");
|
||||
optgroup->append_single_option_line("input_shaping_type", "printer_motion_ability#input-shaping-type");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Speed limitation"), L"param_speed");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Acceleration limitation"), L"param_acceleration");
|
||||
}
|
||||
{
|
||||
auto optgroup = page->new_optgroup(L("Jerk limitation"), L"param_jerk");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user