mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-07-20 11:34:23 +08:00
83 lines
4.8 KiB
Markdown
83 lines
4.8 KiB
Markdown
# How to customize the setting UI
|
|
|
|
## How it works
|
|
The software will search for each tab the needed ui files
|
|
* for fff printers:
|
|
* "print.ui" for the Print Settings tab
|
|
* "filament.ui" for the Filament Settings tab
|
|
* "printer.ui" for the Printer Settings tab
|
|
* for slaprinters:
|
|
* "sla_print.ui" for the Print Settings tab
|
|
* "sla_material.ui" for the Filament Settings tab
|
|
* "sla_printer.ui" for the Printer Settings tab
|
|
If a ui file isn't here, it will build the tab with the default (harcoded) layout.
|
|
## syntax
|
|
The tree is composed of page, group, lines and settings
|
|
A group has to be inside a page.
|
|
A line has to be inside a group.
|
|
A setting has to be inside a group or a line.
|
|
Each object has parameters
|
|
### syntax of each object
|
|
STR represent a label that can conatins any character but ':', leading and trailing space and tabs are removed.
|
|
INT represent an integer
|
|
parameters that are inside [] are optionals
|
|
each parameter is separated by ':'
|
|
* Page:
|
|
page[:idx]:STR:STR
|
|
* first STR is for the label and the second for the icon, with or without the .svg / .png
|
|
* idx : append the index of the page (for extruder ui) to the name
|
|
* Group:
|
|
group[:nolabel][:title_width$INT][:label_width$INT][:sidetext_width$INT][:EVENT][:id$INT][:idx]:STR
|
|
* EVENT can be extruders_count_event if the group contains extruders_count and is a printer tab ; silent_mode_event if the group contains silent_mode and is a printer tab ; material_density_event if the group contains material_density.
|
|
* title_width$INT is used to set the size of the left column, where labels are draw.
|
|
* label_width$INT is used to set the size of the labels on lines.
|
|
* sidetext_width$INT is used to set the size of the suffix label (see sidetext in setting).
|
|
* EVENT can be extruders_count_event (TabPrinter only), silent_mode_event (TabPrinter only), material_density_event.
|
|
* nolabel is used to remove the left column, where labels are draw.
|
|
* Line:
|
|
line:STR
|
|
* setting:
|
|
setting[label$STR][label_width$INT][:full_label][:full_width][:sidetext$STR][sidetext_width$INT][:simple|advanced|expert][:width$INT][:height$INT][:id$INT]:STR
|
|
* STR, the last parameter: the id name of the setting.
|
|
* label$STR : to override the label by this new one (if it ends with '_' it won't have a ':' ; if empty it won't have a length).
|
|
* label_width$INT: change the width of the label. Only works if it's in a line. Override the group one. 0 for auto.
|
|
* full_label: to override the label by the "full one".
|
|
* full_width: to tell to create a field that span the full width.
|
|
* sidetext$STR: the suffix at the right of the widget (like 'mm').
|
|
* sidetext_width$INT: the suffix label length (override the group one). 0 for auto.
|
|
* simple|advanced|expert: add one of these to modify the mode in which this setting appear.
|
|
* width$INT: change the width of the field. Shouod work on most type of settings.
|
|
* height$INT: change the height of the field. Don't works with every type of setting.
|
|
* id $INT : for setting only a single value of a setting array.
|
|
* idx : for setting only a single value of a setting array, with the index of the page (for extruder ui page)
|
|
* recommended_thin_wall_thickness_description: create a text widget to explain recommended thin wall thickness (only in a fff print tab).
|
|
* parent_preset_description: create a text widget to explain parent preset.
|
|
* cooling_description: create a text widget to explain cooling (only in a filament tab).
|
|
* volumetric_speed_description: create a text widget to explain volumetric speed (only in a filament tab).
|
|
* filament_ramming_parameters: create a widget for filament ramming.
|
|
* filament_overrides_page: create a page for overrides (only in a filament tab).
|
|
* unregular_pages: create needed special pages for a fff printer tab.
|
|
* printhost: create printhost settings for the group (only in a printer tab).
|
|
* bed_shape: create bed shape widget (only in a printer tab).
|
|
* extruders_count: create extruders_count setting (only in a fff printer tab).
|
|
* logs: activated logs.
|
|
### ui file syntax
|
|
trailing & leading tabs & spaces are removed, so you can indent as you want.
|
|
If the first character is '#', then this line is ignored
|
|
You can end page, group and line section by end_page, end_group but it's not mandatory as they do nothing. You have to use end_line because it indicates when the line end and you have to stop adding settings inside. Note that it's added automatically when line, group or page is called.
|
|
|
|
exemple:
|
|
|
|
page:my page:my icon name
|
|
group:my group name
|
|
setting:label$Choose your base layer height, if you dare:layer_height
|
|
line:perimeters
|
|
settings:label$count:perimeters
|
|
settings:label$only one is spiral:spiral_vase
|
|
end_line
|
|
end_group
|
|
end_page
|
|
|
|
## notes
|
|
A print.ui.legacy is here with the prusaslicer tabs, just rename print.ui and remove the .legacy to switch from the SuperSlicer print layout to prusaslicer print layout.
|