*batchparams_update

Updates the global mesh parameter values.

Syntax

*batchparams_update <param1>=<value1> ?<param2>=<value2>? ... ?<paramN>=<valueN>?

Type

HyperMesh Tcl Modify Command

Description

Updates the global mesh parameter values.

Inputs

Basic:
create_mesh=<value>
Enable this flag to generate mesh on the cleaned-up geometry:
0 – Disabled
1 – Enabled
element_order=<value>
The element order for meshing. Valid values are first and second.
element_organization=<value>
The component organization for meshing. Valid values are:
current_component
surface_component
element_size=<value>
The target element size for meshing.
element_type=<value>
The element type for meshing. Valid values are mixed, quad, and tria.
geometry_cleanup=<value>
Enable this flag to enable geometry cleanup and the feature related options:
0 - Disabled
1 - Enabled
import_model_tolerance=<value>
The tolerance used while importing the CAD model. Set to auto (recommended) to automatically calculate the tolerance based on the type and dimensions of the model.
midmesh_extract=<value>
Enable this flag to enable midmesh extraction and its related options:
0 - Disabled
1 - Enabled
midsurface_extract=<value>
Enable this flag to enable midsurface extraction and its related options:
0 - Disabled
1 - Enabled
Midsurface:
midsurface_method=<value>
The midsurface algorithm:
offset
offset_planes
offset_planes_sweeps
skin_offset
midsurface_pre_cleanup=<value>
Perform geometry cleanup steps on the model before midsurface extraction:
0 - Disabled
1 - Enabled
thin_solids_feature_angle=<value>
The minimum angle used to distinguish top and bottom faces of a thin solid from its sides. Angles less than this value are treated as if they were flat for purposes of midsurface extraction. Used when thin_solids_only=1.
thin_solids_max_ratio=<value>
The maximum ratio between the approximate thickness of the thin solid part (shortest dimension) and its approximate width (2nd shortest dimension), used to limit the midsurface extraction to parts for which the thickness is smaller than the length and the width. Used when thin_solids_only=1.
thin_solids_only=<value>
Extract midsurfaces for thin (sheet metals) solids only:
0 - Disabled
1 - Enabled
thin_solids_max_thickness=<value>
Ignore thin solids with a thickness less than this value. Used when thin_solids_only=1.
Midmesh:
midmesh_defeature_ribs=<value>
Enable this flag to defeature ribs:
0 – Disabled
1 – Enabled
midmesh_defeature_ribs_factor=<value>
The minimum size factor for removing small ribs. Ribs closer than this factor times the minimum size are suppressed.
midmesh_extract_element_size=<value>
The element size for direct midmesh. By default, it is set to target element size.
midmesh_flat_edges_ignore=<value>
Imprint flat edges from the input geometry onto the midmesh:
0 - Disabled
1 - Enabled
midmesh_holes_defeature=<value>
Remove small holes/openings less than midmesh_holes_defeature_width:
0 - Disabled
1 - Enabled
midmesh_holes_defeature_width=<value>
The width to use when midmesh_holes_defeature=1.
midmesh_non_manifold_edges_combine=<value>
Join non-manifold edges closer than midmesh_proximity_edge_suppression_factor * minimum element size.
midmesh_non_manifold_edges_combine_factor=<value>
The factor to use when midmesh_non_manifold_edges_combine=1.
midmesh_proximity_edge_suppression=<value>
Suppress small edges in proximity closer than midmesh_proximity_edge_suppression_factor * minimum element size.
midmesh_proximity_edge_suppression_factor=<value>
The factor to use when midmesh_proximity_edge_suppression=1.
midmesh_ribs_flatten=<value>
Flatten/align ribs and t-connections:
0 - Disabled
1 - Enabled
midmesh_step_offset_mode=<value>
This option allows finer control of how stepped geometry (one side continuous surface, and opposite side steps) is captured. This option is valid only when midmesh_ribs_flatten is enabled. Valid values are:
auto - Steps of different thickness across a common base surface are automatically offset to a uniform distance from the base surface.
middle_everywhere - Each step is placed in the middle.
middle_thickest_plate - All steps that share a common base are moved to the middle of the thickest step.
middle_thinnest_plate - All steps that share a common base are moved to the middle of the thinnest step.
Geometry Cleanup:
flat_feature_suppression_character_size_method=<value>
The method to calculate the feature character size, which is defined by an element size or calculated automatically based on characteristic dimensions of the part. Valid values are:
auto - Automatically calculate feature character size based on characteristics of the part
element_size - Feature character size is set element size
user_defined - Specify feature character size using flat_feature_suppression_character_size
flat_feature_suppression_character_size=<value>
The custom feature character size which is used to calculate curvature break angle when flat_feature_suppression_character_size_method=user_defined.
flat_feature_suppression_feature_angle=<value>
The custom feature angle when flat_feature_suppression_level=user_defined.
flat_feature_suppression_level=<value>
Suppress feature edges based on different levels of curvature break angle. Valid values are:
very_low
low
medium
high
very_high
user_defined - Specify the feature angle using flat_feature_suppression_feature_angle.
components_boundary_preserve=<value>
Preserve boundaries between components and do not modify such edges:
0 - Disabled
1 - Enabled
overlapping_surfaces_fix=<value>
Fix overlapping surfaces:
0 - Disabled
1 - Enabled
overlapping_surfaces_fix_max_tanangle=<value>
The tolerance used to find overlapping surfaces when overlapping_surfaces_fix=1. Set to "auto" to calculate the tolerance internally. Specify a value when auto is not sufficient.
surface_duplicates_delete=<value>
Control the deletion of duplicate surfaces within surface_duplicates_delete_tolerance. Valid values are:
all - Consider all the surfaces in all the components against each other
none - Do not remove duplicate surfaces
within_components_only - Consider all the surfaces within components only
surface_duplicates_delete_tolerance=<value>
The tolerance used to find duplicate surfaces for surface_duplicates_delete. Set to "auto" to calculate the tolerance internally. Specify a value when auto is not sufficient.
surface_edges_stitch_allow_non_manifold=<value>
Equivalence t-connections:
0 - Disabled
1 - Enabled
surface_edges_stitch_max_tolerance=<value>
The tolerance used to equivalence edges. Set to "auto" to calculate the tolerance internally. Specify a value when auto is not sufficient.
surface_edges_stitch_within_components_only=<value>
Equivalence edges across components instead of just within:
0 - Disabled
1 - Enabled
surfaces_merge_proximity=<value>
Suppress edges within surfaces_merge_proximity_width to avoid creation of sliver elements and disruptions in the mesh flow:
0 - Disabled
1 - Enabled
surfaces_merge_proximity_width=<value>
The proximity width used to suppress edges when surfaces_merge_proximity=1. This can be specified as a value (e.g. 0.67) or as a multiple of minimum element size (e.g. Lmin*0.67).
surfaces_merge_sharp_edge_proximity=<value>
Suppress sharp steps within surfaces_merge_sharp_edge_proximity_width to avoid creation of sliver elements when surfaces_merge_proximity=1:
0 - Disabled
1 - Enabled
surfaces_merge_sharp_edge_proximity_width=<value>
The proximity width used to suppress sharp steps when surfaces_merge_sharp_edge_proximity=1. This can be specified as a value (e.g. 0.67) or as a multiple of minimum element size (e.g. Lmin*0.67).
Bead Features:
beads_recognition=<value>
Recognize beads on sheet metal parts:
0 - Disabled
1 - Enabled
beads_rounded_midline_preserve=<value>
Enforce node placement along the midline of a rounded beads when beads_recognition=1:
0 - Disabled
1 - Enabled
beads_suppression=<value>
Suppress beads on sheet metal parts when beads_recognition=1:
0 - Disabled
1 - Enabled
beads_suppression_height=<value>
The height of beads to suppress when beads_recognition=1 and beads_suppression=1.
Fillet Features:
edge_fillets_recognition=<value>
Recognize and remove edge fillets of 2D surfaces:
0 - Disabled
1 - Enabled
max_fillet_radius=<value>
The maximum edge fillet radius to defeature when edge_fillets_recognition=1.
surface_fillets_minimize_transitions=<value>
Minimize transitions during fillet meshing:
0 - Disabled, mesh settings can be defined as an exact number of rows. May result in more trias.
1 - Enabled, mesh settings are defined as a minimum number of elements/rows required to meet the maximal chordal deviation. Helps to reduce trias.
surface_fillets_recognition=<value>
Recognize and optionally treat fillets on sheet metal parts. This is useful to prevent the main (long) edges of the fillets from being suppressed, and prevent the nodes of those edges from moving while fixing element quality:
0 - Disabled
1 - Enabled
surface_fillets_table={<operation> <option1>=<value1> ?<option2>=<value2>? ... ?<optionN>=<valueN>?}
Operates on the surface fillets table. Operations are supported for:
Add
Add new rows to the table. The following options are available:
max_chord_dev=<value>
The chordial deviation to be achieved while meshing for the given row. This is required for method=enforce.
method=<value>
The treatment for surface fillets. This is mandatory. Valid values are:
enforce
remove
split
split_suppress
min_num_rows=<value>
The number of elements across the width of the fillets for the given row. This is required for method=enforce.
radius_range=<value>
The radius range of the fillets for the row. Fillets within this range will be recongized and considered for the specified treatment. This is mandatory.
width_range=<value>
The width range of the fillets for the row. Fillets within this range will be recongized and considered for the specified treatment. This is mandatory.
Delete
Delete rows from the table. The following options are available:
row_id=<value>
The index of the row to delete, starting from 0.
Edit
Edit rows of the table. The following options are available:
row_id=<value>
The index of the row to edit, starting from 0. This is mandatory.
max_chord_dev=<value>
The chordial deviation to be achieved while meshing for the given row. This is required for method=enforce, otherwise not required unless setting/changing the value.
method=<value>
The treatment for surface fillets. Not required unless changing the value. Valid values are:
enforce
remove
split
split_suppress
min_num_rows=<value>
The number of elements across the width of the fillets for the given row. This is required for method=enforce, otherwise not required unless setting/changing the value.
radius_range=<value>
The radius range of the fillets for the row. Fillets within this range will be recongized and considered for the specified treatment. Not required unless changing the value.
width_range=<value>
The width range of the fillets for the row. Fillets within this range will be recongized and considered for the specified treatment. Not required unless changing the value.
Flange Features:
flanges_max_width=<value>
The maximum width of flanges to detect when flanges_recognition=1.
flanges_min_width=<value>
The minimum width of flanges to detect when flanges_recognition=1.
flanges_num_elements_across=<value>
The minimum number of elements to be created across the flange width when flanges_recognition=1.
flanges_recognition=<value>
Recognize flanges on sheet metal parts. Flanges may be modified to suppress construction lines, subdivide them into rectangular areas, or otherwise prepare them for proper meshing. As this functionality is not supported for solid geometries, it should be disabled for such models to improve performance:
0 - Disabled
1 - Enabled
flanges_remove_narrow=<value>
Allow removal of narrow flanges when flanges_recognition=1:
0 - Disabled
1 - Enabled
flanges_remove_narrow_width=<value>
The narrow flange width when flanges_remove_narrow=1. Set as "auto" to auto-calculate a relevant narrow width.
Hole 2D Features:
surface_holes_coordinates=<value>
Activate the use of coordinates tables and related functionalities:
0 - Disabled
1 - Enabled
surface_holes_flanges_suppress=<value>
Recognize holes with flanges and remove the flanges:
0 - Disabled
1 - Enabled
surface_holes_flanges_suppress_height=<value>
The maximum height of flanges to remove when surface_holes_flanges_suppress=1. Flanges with a height less than the minimal element size are extended to the minimum element size if not removed.
surface_holes_maintain_narrow_slot_ends=<value>
Create honeycomb and square mesh patterns for narrow slots:
0 - Disabled
1 - Enabled
surface_holes_narrow_slot_type=<value>
The mesh patterns for narrow slots when surface_holes_maintain_narrow_slot_ends=1:
rectangular_ends - Rectangular/square mesh patterns
rounded_ends - Honeycomb/rounded mesh patterns
surface_holes_recognition=<value>
Recognize holes in 2D parts, and allow 2D hole treatment:
0 - Disabled
1 - Enabled
surface_holes_table={<operation> table_id=<value> <option1>=<value1> ?<option2>=<value2>? ... ?<optionN>=<valueN>?}
Operates on the surface holes tables. Operations are supported for:
Add
Add new rows to the table. The following options are available:
num_elems=<value>
The number of elements around the hole. This is mandatory for treatment=seed and treatment=washer. Valid values are:
Auto
Auto_even
(exact, <number_of_elements>)
(min, <number_of_elements>)
row_id=<value>
The index of the row to edit, starting from 0. This is mandatory.
shape=<value>
The type of holes table. This is mandatory. Valid values are:
circle
rectangle
slot
mixed
shape_list=<value>
Add shapes to the mixed table. Valid values are:
rectangle
circle
slot
ellipse
convex_arbitrary
concave_arbitrary
size1_max=<value>
The upper limit of range1 in the specified row.
size2_max=<value>
The upper limit of range2 in the specified row. Valid for shape=rectangle and shape=slot.
table_id=<value>
The index of the table to update. -1 is the default table, coordinate files tables start from 0. This is mandatory.
target_radius=<value>
Adjust holes in the specified radius range to have the specific target radius. The radius can be specified as an exact value (for example, 5.0), or as an expression based on the original radius (for example, radius*1.1, radius-0.5, radius+0.5). Not required unless changing the value.
treatment=<value>
The treatment for 2D holes. This is mandatory. Valid values are:
ignore (valid for coordinates tables only)
remove (valid for default table only)
remove_mark (valid for default table only)
seed
seed_mark
washer
washer_mark
washer_layers={<value1>, ?<value2>?, ... ?<valueN>?}
Create washer around the holes. Multiple layers of washers can be created. Sets the width of the washer layers as a constant value, a scale of the hole radius, for example 0.6*radius or a subtraction formula, for example 14.0-radius. This is mandatory for treatment=washer.
washer_type=<value>
The type of washer. Valid values are:
radial (valid for treatment=washer only)
corner_quads (valid for treatment=washer only)
auto (valid for treatment=seed and shape=slot only)
rectangular_ends (valid for treatment=seed and shape=slot only)
rounded_ends (valid for treatment=seed and shape=slot only)
Delete
Delete rows from the table. The following options are available:
row_id=<value>
The index of the row to delete, starting from 0. This is mandatory.
shape=<value>
The type of holes table. This is mandatory. Valid values are:
circle
rectangle
slot
mixed
table_id=<value>
The index of the table to delete. -1 is the default table, coordinate files tables start from 0. This is mandatory.
Edit
Edit rows of the table. The following options are available:
num_elems=<value>
The number of elements around the hole. This is mandatory for treatment=seed and treatment=washer. Valid values are:
auto
auto_even
(exact, <number_of_elements>)
(min, <number_of_elements>)
row_id=<value>
The index of the row to edit, starting from 0. This is mandatory.
shape=<value>
The type of holes table. This is mandatory. Valid values are:
circle
rectangle
slot
mixed
shape_list={<value1> | ?<value2>? | ... ?<valueN>?}
Add shapes to the mixed table. Valid values are:
rectangle
circle
slot
ellipse
convex_arbitrary
concave_arbitrary
size1_max=<value>
The upper limit of range1 in the specified row.
size2_max=<value>
The upper limit of range2 in the specified row. Valid for shape=rectangle and shape=slot.
table_id=<value>
The index of the table to update. -1 is the default table, coordinate files tables start from 0. This is mandatory.
target_radius=<value>
Adjust holes in the specified radius range to have the specific target radius. The radius can be specified as an exact value (e.g. 5.0), or as an expression based on the original radius (e.g. radius*1.1, radius-0.5, radius+0.5). Not required unless changing the value.
treatment=<value>
The treatment for 2D holes. Valid values are:
ignore (valid for coordinates tables only)
remove (valid for default table only)
remove_mark (valid for default table only)
seed
seed_mark
washer
washer_mark
washer_layers={<value1>, ?<value2>?, ... ?<valueN>?}
Create washer around the holes. Multiple layers of washers can be created. Sets the width of the washer layers as auto, a constant value, a scale of the hole radius, for example 0.6*radius or a subtraction formula, for example 14.0-radius. This is mandatory for treatment=washer.
washer_type=<value>
The type of washer. Valid values are:
radial (valid for treatment=washer only)
corner_quads (valid for treatment=washer only)
auto (valid for treatment=seed and shape=slot only)
rectangular_ends (valid for treatment=seed and shape=slot only)
rounded_ends (valid for treatment=seed and shape=slot only)
surface_holes_washer_trims_remove=<value>
Remove trim lines created during washer creation:
0 - Disabled
1 - Enabled
Hole 3D Features:
solid_holes_recognition=<value>
Recognize holes in 3D parts, and allow 3D hole treatment:
0 - Disabled
1 - Enabled
solid_holes_table={<operation> <option1>=<value1> ?<option2>=<value2>? ... ?<optionN>=<valueN>?}
Operates on the solid holes table. Operations are supported for:
Add
Add new rows to the table. The following options are available:
max_radius=<value>
The maximum 3D hole radius. This should be greater than the maximum radius range of the entire table. Adds the row to the end of the table. If not specified, range must be used.
num_elems=<value>
The minimum/exact number of elements around the hole. This is required for treatment=mark and treatment=seed.
range=<value>
The range of radii. Inserts the row between existing rows. If not specified, max_radius must be used.
treatment=<value>
The treatment for 3D holes. This is mandatory. Valid values are:
mark
remove
remove_mark
seed
Delete
Delete rows from the table. The following options are available:
row_id=<value>
The index of the row to delete, starting from 0.
Edit
Edit rows of the table. The following options are available:
max_radius=<value>
The maximum 3D hole radius. This should be greater than the maximum radius range of the entire table. Not required unless changing the value.
num_elems=<value>
The minimum/exact number of elements around the hole. This is required for treatment=mark and treatment=seed, otherwise not required unless setting/changing the value.
row_id=<value>
The index of the row to edit, starting from 0. This is mandatory.
treatment=<value>
The treatment for 3D holes. Not required unless changing the value. Valid values are:
mark
remove
remove_mark
seed
Logo Features:
logo_max_height=<value>
The maximum height of la letter within a logo to remove when logo_remove=1.
logo_max_size=<value>
The maximum size/width of a letter within a logo to remove when logo_remove=1.
logo_min_concavity=<value>
Creates a filter that provides more flexible control of automatic logo recognition. As this is a heuristic tool, it may remove real features, such as flat bottom round dimples, that were not intended for removal. The value is a quantitative measure of a letters shape complexity. Extend the recognition and removal of logos by reducing this value. Used only when logo_remove=1.
logo_remove=<value>
Remove small features that represent logos:
0 - Disabled
1 - Enabled
Thread Features:
threads_remove=<value>
Recognize and remove features that represent threads by replacing then with a smooth cylinder or cone:
0 - Disabled
1 - Enabled
threads_remove_max_depth=<value>
The maximum depth of cylindrical or conical threads to be replaced when threads_remove=1.
threads_replacement_diameter_type=<value>
The method used to define the diameter for replacing threads with a cylinder or cone when threads_remove=1:
auto - Autodecide, based on the diameter of the blank before thread cutting begins. For inner (hole) threads, it corresponds to the thread minor diameter. For outer (bolt) threads, it corresponds to thread major diameter.
major - Use diameter of thread major
mean - Use dimeter of thread mean
minor - Use diameter of thread minor
Quality Correction:
element_folding_angle=<value>
Elements whose angle exceeds this value are considered folded and are attempted to be cleaned.
feature_angle=<value>
The feature angle to maintain while performing element cleanup.
nodes_keep_on_free_round_holes=<value>
Prevent node movement off of free round holes. This is useful if distortion of holes is not allowed:
0 - Disabled
1 - Enabled
nodes_keep_on_free_round_holes_elements=<value>
Do not allow any nodes to move off the edges of free holes (without washers) with less than this number of elements when nodes_keep_on_free_round_holes=1.
nodes_move_across_free_edges=<value>
Allow node movement across free edges:
0 - Disabled
1 - Enabled
nodes_move_across_free_edges_max=<value>
The maximum allowable node movement across free edges when nodes_move_across_free_edges=1. This can be specified as a value (e.g. 0.1) or as a multiple of minimum element size (e.g. Lmin*0.1) or target element size (e.g. L*0.1).
nodes_move_across_non_manifold_edges=<value>
Allow node movement across non-manifold edges:
0 - Disabled
1 - Enabled
nodes_move_across_non_manifold_edges_max=<value>
The maximum allowable node movement across non-manifold edges when nodes_move_across_non_manifold_edges=1. This can be specified as a value (e.g. 0.1) or as a multiple of minimum element size (e.g. Lmin*0.1) or target element size (e.g. L*0.1).
nodes_move_across_shared_edges=<value>
Allow node movement across shared edges:
0 - Disabled
1 - Enabled
nodes_move_across_shared_edges_max=<value>
The maximum allowable node movement across shared edges when nodes_move_across_shared_edges=1. This can be specified as a value (e.g. 0.1) or as a multiple of minimum element size (e.g. Lmin*0.1) or target element size (e.g. L*0.1).
nodes_move_normal=<value>
Allow node movement normally to surfaces:
0 - Disabled
1 - Enabled
nodes_move_normal_max=<value>
The maximum allowable node movement normal to surfaces when nodes_move_normal=1.
quads_divide_warped=<value>
Split warped quads into trias:
0 - Disabled
1 - Enabled
Special Components:
special_components_add=<value>
The name of a component to add to the special components list.
special_components_remove=<value>
The index of a component, starting from 0, to remove from the special components list.
special_components_selection=<value>
Handling of special components selection:
0 - Disabled
1 - Enabled
special_components_treatment=<value>
Options for meshing of special components when special_components_selection=1:
ignore_and_keep_connectivity - Ignore the listed components while maintaining connectivity to any existing mesh. The mesh and geometry of the ignored components are not modified. The mesh created on other adjacent components is connected to any existing mesh on the ignored components. This is useful for meshing of different components with different criteria/parameters files, or when pre-meshing components interactively or with some other procedure, followed by meshing of other components.
mesh_and_keep_connectivity - Mesh the listed components while maintaining connectivity to any existing mesh. This is useful when components are to be meshed with multiple element sizes but transitions at the common edges of the different sizes are required. Each component should be meshed individually with its own parameter and criteria files with this option enabled.
mesh_without_geometry_cleanup - Mesh the listed components but do not perform any geometry cleanup. Any remaining components that are not listed will be meshed using the normal process, including geometry cleanup. This is useful for models in which some components do not require geometry cleanup while others do.
special_components_wildcard_use=<value>
The component names provided in the special components list are used as a search string to find all matching components in the current model and add them internally to the list when special_components_selection=1:
0 - Disabled
1 - Enabled

Examples

To change the geometry cleanupflag and element size:
*batchparams_update = {geometry_cleanup_flag = 0 element_size = 7.5}
To add a new row to the fillet table:
*batchparams_update surface_fillet_table = {Add radius_range = {0-10} width_range = {5-10} method = enforced min_num_rows = 2 max_chord_dev = 0.2}
To change parameters of circle table in row ID 3:
*batchparams_update surface_holes_table = {Edit table_id=default shape=circle row_id=3 size1_max=3 treatment=washer_mark target_radius=1.1*radius num_elems={exact,4} washer_layers={2,radius-5,auto} washer_type=radial}
To change parameters of rectangle table in row ID 2:
*batchparams_update surface_holes_table = {Edit table_id=default shape=rectangle row_id=2 size1_max=5 size2_max=4 num_elems=auto_even washer_type=corner_quad}
To change parameters of mixed table in row ID 2:
*batchparams_update surface_holes_table = {Edit table_id=default shape=mixed row_id=2 shape_list={convex_arbitrary | concave_arbitrary}}
To change parameters of the first coordinates table:
*batchparams_update surface_holes_table = {Edit table_id=0 row_id=1 shape=circle treatment=ignore}
To add a new row to the circle table:
*batchparams_update surface_holes_table = {Add table_id=default shape=circle row_id=4 size1_max=4 treatment=remove_mark}
To add a new row to the slot table:
*batchparams_update surface_holes_table = {Add table_id=default shape=slot row_id=2 size1_max=4 size2_max=5 treatment=seed num_elems=4 washer_type=rectangle_ends}
To delete the first row of the rectangle table:
*batchparams_update surface_holes_table = {Delete table_id=default shape=rectangle row_id=0}
To delete the entire circle table:
*batchparams_update surface_holes_table = {Delete table_id=default shape=circle}

Errors

Incorrect usage results in a Tcl error. To detect errors, you can use the catch command:
if { [ catch {command_name...} ] } {
   # Handle error
}

Version History

2021

2021.1 - Updated the surface_holes_table options and the list of examples.

2021.2 - Added new options create_mesh, midmesh_defeature_ribs, midmesh_defeature_ribs_factor, and midmesh_step_offset_mode.

2022 - Added auto option for washer layer width.