user: How do I use Mesh Operators in Blender? Include parameters, examples, warnings and best practices.

assistant: nal**)*) – Smoothness, Smoothness factor
        - **profile_shape_factor** (*float in* *[**-1000**,* *1000**]**,* *(**optional**)*) – Profile Factor, How much intermediary new edges are shrunk/expanded
        - **profile_shape** (enum in [Proportional Falloff Curve Only Items](bpy_types_enum_items/proportional_falloff_curve_only_items.html#rna-enum-proportional-falloff-curve-only-items), (optional)) – Profile Shape, Shape of the profile

bpy.ops.mesh.symmetrize(*\**, *direction='NEGATIVE_X'*, *threshold=0.0001*)
:   Enforce symmetry (both form and topological) across an axis

    Parameters:
    :   - **direction** (enum in [Symmetrize Direction Items](bpy_types_enum_items/symmetrize_direction_items.html#rna-enum-symmetrize-direction-items), (optional)) – Direction, Which sides to copy from and to
        - **threshold** (*float in* *[**0**,* *10**]**,* *(**optional**)*) – Threshold, Limit for snap middle vertices to the axis center

bpy.ops.mesh.symmetry_snap(*\**, *direction='NEGATIVE_X'*, *threshold=0.05*, *factor=0.5*, *use_center=True*)
:   Snap vertex pairs to their mirrored locations

    Parameters:
    :   - **direction** (enum in [Symmetrize Direction Items](bpy_types_enum_items/symmetrize_direction_items.html#rna-enum-symmetrize-direction-items), (optional)) – Direction, Which sides to copy from and to
        - **threshold** (*float in* *[**0**,* *10**]**,* *(**optional**)*) – Threshold, Distance within which matching vertices are searched
        - **factor** (*float in* *[**0**,* *1**]**,* *(**optional**)*) – Factor, Mix factor of the locations of the vertices
        - **use_center** (*boolean**,* *(**optional**)*) – Center, Snap middle vertices to the axis center

bpy.ops.mesh.tris_convert_to_quads(*\**, *face_threshold=0.698132*, *shape_threshold=0.698132*, *topology_influence=0.0*, *uvs=False*, *vcols=False*, *seam=False*, *sharp=False*, *materials=False*, *deselect_joined=False*)
:   Merge triangles into four sided polygons where possible

    Parameters:
    :   - **face_threshold** (*float in* *[**0**,* *3.14159**]**,* *(**optional**)*) – Max Face Angle, Face angle limit
        - **shape_threshold** (*float in* *[**0**,* *3.14159**]**,* *(**optional**)*) – Max Shape Angle, Shape angle limit
        - **topology_influence** (*float in* *[**0**,* *2**]**,* *(**optional**)*) – Topology Influence, How much to prioritize regular grids of quads as well as quads that touch existing quads
        - **uvs** (*boolean**,* *(**optional**)*) – Compare UVs
        - **vcols** (*boolean**,* *(**optional**)*) – Compare Color Attributes
        - **seam** (*boolean**,* *(**optional**)*) – Compare Seam
        - **sharp** (*boolean**,* *(**optional**)*) – Compare Sharp
        - **materials** (*boolean**,* *(**optional**)*) – Compare Materials
        - **deselect_joined** (*boolean**,* *(**optional**)*) – Deselect Joined, Only select remaining triangles that were not merged

bpy.ops.mesh.unsubdivide(*\**, *iterations=2*)
:   Un-subdivide selected edges and faces

    Parameters:
    :   **iterations** (*int in* *[**1**,* *1000**]**,* *(**optional**)*) – Iterations, Number of times to un-subdivide

bpy.ops.mesh.uv_texture_add()
:   Add UV map

bpy.ops.mesh.uv_texture_remove()
:   Remove UV map

bpy.ops.mesh.uvs_reverse()
:   Flip direction of UV coordinates inside faces

bpy.ops.mesh.uvs_rotate(*\**, *use_ccw=False*)
:   Rotate UV coordinates inside faces

    Parameters:
    :   **use_ccw** (*boolean**,* *(**optional**)*) – Counter Clockwise

bpy.ops.mesh.vert_connect()
:   Connect selected vertices of faces, splitting the face

bpy.ops.mesh.vert_connect_concave()
:   Make all faces convex

bpy.ops.mesh.vert_connect_nonplanar(*\**, *angle_limit=0.0872665*)
:   Split non-planar faces that exceed the angle threshold

    Parameters:
    :   **angle_limit** (*float in* *[**0**,* *3.14159**]**,* *(**optional**)*) – Max Angle, Angle limit

bpy.ops.mesh.vert_connect_path()
:   Connect vertices by their selection order, creating edges, splitting faces

bpy.ops.mesh.vertices_smooth(*\**, *factor=0.0*, *repeat=1*, *xaxis=True*, *yaxis=True*, *zaxis=True*, *wait_for_input=True*)
:   Flatten angles of selected vertices

    Parameters:
    :   - **factor** (*float in* *[**-10**,* *10**]**,* *(**optional**)*) – Smoothing, Smoothing factor
        - **repeat** (*int in* *[**1**,* *1000**]**,* *(**optional**)*) – Repeat, Number of times to smooth the mesh
        - **xaxis** (*boolean**,* *(**optional**)*) – X-Axis, Smooth along the X axis
        - **yaxis** (*boolean**,* *(**optional**)*) – Y-Axis, Smooth along the Y axis
        - **zaxis** (*boolean**,* *(**optional**)*) – Z-Axis, Smooth along the Z axis
        - **wait_for_input** (*boolean**,* *(**optional**)*) – Wait for Input

bpy.ops.mesh.vertices_smooth_laplacian(*\**, *repeat=1*, *lambda_factor=1.0*, *lambda_border=5e-05*, *use_x=True*, *use_y=True*, *use_z=True*, *preserve_volume=True*)
:   Laplacian smooth of selected vertices

    Parameters:
    :   - **repeat** (*int in* *[**1**,* *1000**]**,* *(**optional**)*) – Number of iterations to smooth the mesh
        - **lambda_factor** (*float in* *[**1e-07**,* *1000**]**,* *(**optional**)*) – Lambda factor
        - **lambda_border** (*float in* *[**1e-07**,* *1000**]**,* *(**optional**)*) – Lambda factor in border
        - **use_x** (*boolean**,* *(**optional**)*) – Smooth X Axis, Smooth object along X axis
        - **use_y** (*boolean**,* *(**optional**)*) – Smooth Y Axis, Smooth object along Y axis
        - **use_z** (*boolean**,* *(**optional**)*) – Smooth Z Axis, Smooth object along Z axis
        - **preserve_volume** (*boolean**,* *(**optional**)*) – Preserve Volume, Apply volume preservation after smooth

bpy.ops.mesh.wireframe(*\**, *use_boundary=True*, *use_even_offset=True*, *use_relative_offset=False*, *use_replace=True*, *thickness=0.01*, *offset=0.01*, *use_crease=False*, *crease_weight=0.01*)
:   Create a solid wireframe from faces

    Parameters:
    :   - **use_boundary** (*boolean**,* *(**optional**)*) – Boundary, Inset face boundaries
        - **use_even_offset** (*boolean**,* *(**optional**)*) – Offset Even, Scale the offset to give more even thickness
        - **use_relative_offset** (*boolean**,* *(**optional**)*) – Offset Relative, Scale the offset by surrounding geometry
        - **use_replace** (*boolean**,* *(**optional**)*) – Replace, Remove original faces
        - **thickness** (*float in* *[**0**,* *10000**]**,* *(**optional**)*) – Thickness
        - **offset** (*float in* *[**0**,* *10000**]**,* *(**optional**)*) – Offset
        - **use_crease** (*boolean**,* *(**optional**)*) – Crease, Crease hub edges for an improved subdivision surface
        - **crease_weight** (*float in* *[**0**,* *1000**]**,* *(**optional**)*) – Crease Weight