Categorized variables by mode

This commit is contained in:
Ian Bassi
2026-05-04 10:45:43 -03:00
parent 64e41bcf35
commit d828c252d7
5 changed files with 47 additions and 18 deletions

View File

@@ -91,8 +91,9 @@ This function is used to adjust sizes slightly when the objects have assembling
## Elephant foot compensation
[Modes](config_option_mode): `Advanced`, `Expert`.
[Variables](built_in_placeholders_variables): `elefant_foot_compensation`, `elefant_foot_layers_density`, `elefant_foot_compensation_layers`.
[Modes](config_option_mode):
`Advanced` [Variables](built_in_placeholders_variables): `elefant_foot_compensation`, `elefant_foot_compensation_layers`.
`Expert` [Variable](built_in_placeholders_variables): `elefant_foot_layers_density`.
This feature compensates for the "elephant foot" effect, which occurs when the first few layers of a print are wider than the rest due:
- Weight of the material above them.

View File

@@ -98,8 +98,9 @@ Controls the gap in mm or as a percentage of the nozzle size between the two end
### Scarf joint seam
[Modes](config_option_mode): `Advanced`, `Developer`.
[Variables](built_in_placeholders_variables): `seam_slope_type`, `seam_slope_conditional`, `scarf_angle_threshold`, `scarf_overhang_threshold`, `scarf_joint_speed`, `seam_slope_start_height`, `seam_slope_entire_loop`, `seam_slope_min_length`, `seam_slope_steps`, `scarf_joint_flow_ratio`, `seam_slope_inner_walls`.
[Modes](config_option_mode):
`Advanced` [Variables](built_in_placeholders_variables): `seam_slope_type`, `seam_slope_conditional`, `scarf_angle_threshold`, `scarf_overhang_threshold`, `scarf_joint_speed`, `seam_slope_start_height`, `seam_slope_entire_loop`, `seam_slope_min_length`, `seam_slope_steps`, `seam_slope_inner_walls`.
`Developer` [Variable](built_in_placeholders_variables): `scarf_joint_flow_ratio`.
Adjusts the extrusion flow rate at seam points to create a smooth overlap between the start and end of each loop, minimizing visible defects.
![scarf-joint-seam](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/images/seam/scarf-joint-seam.png?raw=true)

View File

@@ -22,8 +22,9 @@ This method does not vary extrusion width and is ideal for fast, predictable sli
## Arachne
[Modes](config_option_mode): `Advanced`, `Expert`.
[Variables](built_in_placeholders_variables): `wall_transition_angle`, `wall_transition_filter_deviation`, `wall_transition_length`, `wall_distribution_count`, `initial_layer_min_bead_width`, `min_bead_width`, `min_feature_size`, `min_length_factor`, `wall_maximum_resolution`, `wall_maximum_deviation`.
[Modes](config_option_mode):
`Advanced` [Variables](built_in_placeholders_variables): `wall_transition_angle`, `wall_transition_filter_deviation`, `wall_transition_length`, `wall_distribution_count`, `initial_layer_min_bead_width`, `min_bead_width`, `min_feature_size`, `min_length_factor`.
`Expert` [Variables](built_in_placeholders_variables): `wall_maximum_resolution`, `wall_maximum_deviation`.
The Arachne wall generator dynamically adjusts extrusion width to follow the shape of the model more closely. This allows better handling of thin features and smooth transitions between wall counts.
![wallgenerator-arachne](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/images/WallGenerator/wallgenerator-arachne.png?raw=true)

View File

@@ -39,8 +39,10 @@ This will cap the speed set by the process if it exceeds these values.
## Acceleration limitation
[Modes](config_option_mode): `Simple`, `Advanced`.
[Variables](built_in_placeholders_variables): `machine_max_acceleration_x`, `machine_max_acceleration_y`, `machine_max_acceleration_e`, `machine_max_acceleration_z`, `machine_max_acceleration_extruding`, `machine_max_acceleration_retracting`, `machine_max_acceleration_travel`.
[Modes](config_option_mode):
`Simple` [Variables](built_in_placeholders_variables): `machine_max_acceleration_extruding`, `machine_max_acceleration_retracting`.
`Advanced` [Variable](built_in_placeholders_variables): `machine_max_acceleration_travel`.
[Variables](built_in_placeholders_variables): `machine_max_acceleration_x`, `machine_max_acceleration_y`, `machine_max_acceleration_z`, `machine_max_acceleration_e`.
Safeguard maximum accelerations for all axes.
This will cap the acceleration set by the process if it exceeds these values.

View File

@@ -460,8 +460,13 @@ foreach ($group in $groupedByFile) {
$distinctModes = New-Object System.Collections.Generic.List[string]
$seenModes = @{}
$modeToVars = @{}
$varsWithoutMode = New-Object System.Collections.Generic.List[string]
foreach ($varName in $vars) {
$formattedVarName = "``$varName``"
if (-not $varModes.ContainsKey($varName)) {
$varsWithoutMode.Add($formattedVarName)
continue
}
@@ -469,21 +474,40 @@ foreach ($group in $groupedByFile) {
if (-not $seenModes.ContainsKey($modeName)) {
$seenModes[$modeName] = $true
$distinctModes.Add($modeName)
$modeToVars[$modeName] = New-Object System.Collections.Generic.List[string]
}
}
$insertModeLine = $null
if ($distinctModes.Count -gt 0) {
$formattedModes = $distinctModes | ForEach-Object { "``$_``" }
$modeLabel = if ($distinctModes.Count -eq 1) { "[Mode](config_option_mode):" } else { "[Modes](config_option_mode):" }
$insertModeLine = "$modeLabel " + ($formattedModes -join ", ") + ". " # ending with two spaces so Markdown line break is forced
$modeToVars[$modeName].Add($formattedVarName)
}
$canonicalLines = New-Object System.Collections.Generic.List[string]
if (-not [string]::IsNullOrWhiteSpace($insertModeLine)) {
$canonicalLines.Add($insertModeLine)
if ($distinctModes.Count -gt 1) {
$canonicalLines.Add("[Modes](config_option_mode): ")
foreach ($modeName in $distinctModes) {
$modeVars = [System.Collections.Generic.List[string]]$modeToVars[$modeName]
$groupVariableLabel = if ($modeVars.Count -eq 1) { "[Variable](built_in_placeholders_variables):" } else { "[Variables](built_in_placeholders_variables):" }
$canonicalLines.Add("``$modeName`` $groupVariableLabel " + ($modeVars -join ", ") + ". ")
}
if ($varsWithoutMode.Count -gt 0) {
$leftoverVariableLabel = if ($varsWithoutMode.Count -eq 1) { "[Variable](built_in_placeholders_variables):" } else { "[Variables](built_in_placeholders_variables):" }
$canonicalLines.Add("$leftoverVariableLabel " + ($varsWithoutMode -join ", ") + ". ")
}
}
else {
$insertModeLine = $null
if ($distinctModes.Count -gt 0) {
$formattedModes = $distinctModes | ForEach-Object { "``$_``" }
$modeLabel = if ($distinctModes.Count -eq 1) { "[Mode](config_option_mode):" } else { "[Modes](config_option_mode):" }
$insertModeLine = "$modeLabel " + ($formattedModes -join ", ") + ". " # ending with two spaces so Markdown line break is forced
}
if (-not [string]::IsNullOrWhiteSpace($insertModeLine)) {
$canonicalLines.Add($insertModeLine)
}
$canonicalLines.Add($insertVariableLine)
}
$canonicalLines.Add($insertVariableLine)
$idx = Find-HeadingLineIndex -Lines $buffer.ToArray() -Anchor $anchor
if ($idx -lt 0) {
@@ -505,7 +529,7 @@ foreach ($group in $groupedByFile) {
$metadataLineIndexes = New-Object System.Collections.Generic.List[int]
for ($k = $idx + 1; $k -le $sectionEnd; $k++) {
if ($buffer[$k] -match '^\s*(?:\[(?:Variable|Variables|Mode|Modes)\]\([^\)]+\)|Variables?|Modes?)\s*:\s*') {
if ($buffer[$k] -match '^\s*(?:\[(?:Variable|Variables|Mode|Modes)\]\([^\)]+\)|`[^`]+`\s+\[(?:Variable|Variables)\]\([^\)]+\)|Variables?|Modes?)\s*:\s*') {
$metadataLineIndexes.Add($k)
}
}