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

assistant: tices

bpy.ops.mesh.mod_weighted_strength(*\**, *set=False*, *face_strength='MEDIUM'*)
:   Set/Get strength of face (used in Weighted Normal modifier)

    Parameters:
    :   - **set** (*boolean**,* *(**optional**)*) – Set Value, Set value of faces
        - **face_strength** (enum in [`'WEAK'`, `'MEDIUM'`, `'STRONG'`], (optional)) – Face Strength, Strength to use for assigning or selecting face influence for weighted normal modifier

bpy.ops.mesh.normals_make_consistent(*\**, *inside=False*)
:   Make face and vertex normals point either outside or inside the mesh

    Parameters:
    :   **inside** (*boolean**,* *(**optional**)*) – Inside

bpy.ops.mesh.normals_tools(*\**, *mode='COPY'*, *absolute=False*)
:   Custom normals tools using Normal Vector of UI

    Parameters:
    :   - **mode** (enum in [`'COPY'`, `'PASTE'`, `'ADD'`, `'MULTIPLY'`, `'RESET'`], (optional)) –

          Mode, Mode of tools taking input from interface

          - `COPY`
            Copy Normal – Copy normal to the internal clipboard.
          - `PASTE`
            Paste Normal – Paste normal from the internal clipboard.
          - `ADD`
            Add Normal – Add normal vector with selection.
          - `MULTIPLY`
            Multiply Normal – Multiply normal vector with selection.
          - `RESET`
            Reset Normal – Reset the internal clipboard and/or normal of selected element.
        - **absolute** (*boolean**,* *(**optional**)*) – Absolute Coordinates, Copy Absolute coordinates of Normal vector

bpy.ops.mesh.offset_edge_loops(*\**, *use_cap_endpoint=False*)
:   Create offset edge loop from the current selection

    Parameters:
    :   **use_cap_endpoint** (*boolean**,* *(**optional**)*) – Cap Endpoint, Extend loop around end-points

bpy.ops.mesh.offset_edge_loops_slide(*\**, *MESH_OT_offset_edge_loops=None*, *TRANSFORM_OT_edge_slide=None*)
:   Offset edge loop slide

    Parameters:
    :   - **MESH_OT_offset_edge_loops** (`MESH_OT_offset_edge_loops`, (optional)) – Offset Edge Loop, Create offset edge loop from the current selection
        - **TRANSFORM_OT_edge_slide** (`TRANSFORM_OT_edge_slide`, (optional)) – Edge Slide, Slide an edge loop along a mesh

bpy.ops.mesh.point_normals(*\**, *mode='COORDINATES'*, *invert=False*, *align=False*, *target_location=(0.0, 0.0, 0.0)*, *spherize=False*, *spherize_strength=0.1*)
:   Point selected custom normals to specified Target

    Parameters:
    :   - **mode** (enum in [`'COORDINATES'`, `'MOUSE'`], (optional)) –

          Mode, How to define coordinates to point custom normals to

          - `COORDINATES`
            Coordinates – Use static coordinates (defined by various means).
          - `MOUSE`
            Mouse – Follow mouse cursor.
        - **invert** (*boolean**,* *(**optional**)*) – Invert, Invert affected normals
        - **align** (*boolean**,* *(**optional**)*) – Align, Make all affected normals parallel
        - **target_location** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Target, Target location to which normals will point
        - **spherize** (*boolean**,* *(**optional**)*) – Spherize, Interpolate between original and new normals
        - **spherize_strength** (*float in* *[**0**,* *1**]**,* *(**optional**)*) – Spherize Strength, Ratio of spherized normal to original normal

bpy.ops.mesh.poke(*\**, *offset=0.0*, *use_relative_offset=False*, *center_mode='MEDIAN_WEIGHTED'*)
:   Split a face into a fan

    Parameters:
    :   - **offset** (*float in* *[**-1000**,* *1000**]**,* *(**optional**)*) – Poke Offset, Poke Offset
        - **use_relative_offset** (*boolean**,* *(**optional**)*) – Offset Relative, Scale the offset by surrounding geometry
        - **center_mode** (enum in [`'MEDIAN_WEIGHTED'`, `'MEDIAN'`, `'BOUNDS'`], (optional)) –

          Poke Center, Poke face center calculation

          - `MEDIAN_WEIGHTED`
            Weighted Median – Weighted median face center.
          - `MEDIAN`
            Median – Median face center.
          - `BOUNDS`
            Bounds – Face bounds center.

bpy.ops.mesh.polybuild_delete_at_cursor(*\**, *mirror=False*, *use_proportional_edit=False*, *proportional_edit_falloff='SMOOTH'*, *proportional_size=1.0*, *use_proportional_connected=False*, *use_proportional_projected=False*, *release_confirm=False*, *use_accurate=False*)
:   Undocumented, consider [contributing](https://developer.blender.org/).

    Parameters:
    :   - **mirror** (*boolean**,* *(**optional**)*) – Mirror Editing
        - **use_proportional_edit** (*boolean**,* *(**optional**)*) – Proportional Editing
        - **proportional_edit_falloff** (enum in [Proportional Falloff Items](bpy_types_enum_items/proportional_falloff_items.html#rna-enum-proportional-falloff-items), (optional)) – Proportional Falloff, Falloff type for proportional editing mode
        - **proportional_size** (*float in* *[**1e-06**,* *inf**]**,* *(**optional**)*) – Proportional Size
        - **use_proportional_connected** (*boolean**,* *(**optional**)*) – Connected
        - **use_proportional_projected** (*boolean**,* *(**optional**)*) – Projected (2D)
        - **release_confirm** (*boolean**,* *(**optional**)*) – Confirm on Release, Always confirm operation when releasing button
        - **use_accurate** (*boolean**,* *(**optional**)*) – Accurate, Use accurate transformation

bpy.ops.mesh.polybuild_dissolve_at_cursor()
:   Undocumented, consider [contributing](https://developer.blender.org/).

bpy.ops.mesh.polybuild_extrude_at_cursor_move(*\**, *MESH_OT_polybuild_transform_at_cursor=None*, *MESH_OT_extrude_edges_indiv=None*, *TRANSFORM_OT_translate=None*)
:   Undocumented, consider [contributing](https://developer.blender.org/).

    Parameters:
    :   - **MESH_OT_polybuild_transform_at_cursor** (`MESH_OT_polybuild_transform_at_cursor`, (optional)) – Poly Build Transform at Cursor
        - **MESH_OT_extrude_edges_indiv** (`MESH_OT_extrude_edges_indiv`, (optional)) – Extrude Only Edges, Extrude individual edges only
        - **TRANSFORM_OT_translate** (`TRANSFORM_OT_translate`, (optional)) – Move, Move selected items

bpy.ops.mesh.polybuild_face_at_cursor(*\**, *create_quads=True*, *mirror=False*, *use_proportional_edit=False*, *proportional_edit_falloff='SMOOTH'*, *proportional_size=1.0*, *use_proportional_connected=False*, *use_proportional_projected=False*, *release_confirm=False*, *use_accurate=False*)
:   Undocumented, consider [contributing](https://developer.blender.org/).

    Parameters:
    :   - **create_quads** (*boolean**,* *(**optional**)*) – Create Quads, Automatically split edges in triangles to maintain quad topology
        - **mirror** (*boolean**,* *(**optional**)*) – Mirror Editing
        - **use_proportional_edit** (*boolean**,* *(**optional**)*) – Proportional Editing
        - **proportional_edit_falloff** (enum in [Proportional Falloff Items](bpy_types_enum_items/proportional_falloff_items.html#rna-enum-proportional-falloff-items), (optional)) – Proportional Falloff, Falloff type for proportional editing mode
        - **proportional_size** (*float in* *[**1e-06**,* *inf**]**,* *(**optional**)*) – Proportional Size
        - **use_proportional_connected** (*boolean**,* *(**optional**)*) – Connected
        - **use_proportional_projected** (*boolean**,* *(**optional**)*) – Projected (2D)
        - **release_confirm** (*boolean**,* *(**optional**)*) – Confirm on Release, Always confirm operation when releasing button
        - **use_accurate** (*boolean**,* *(**optional**)*) – Accurate, Use accurate transformation

bpy.ops.mesh.polybuild_face_at_cursor_move(*\**, *MESH_OT_polybuild_face_at_cursor=None*, *TRANSFORM_OT_translate=None*)
:   Undocumented, consider [contributing](https://developer.blender.org/).

    Parameters:
    :   - **MESH_OT_polybuild_face_at_cursor** (`MESH_OT_polybuild_face_at_cursor`, (optional)) – Poly Build Face at Cursor
        - **TRANSFORM_OT_translate** (`TRANSFORM_OT_translate`, (optional)) – Move, Move selected items

bpy.ops.mesh.polybuild_split_at_cursor(*\**, *mirror=False*, *use_proportional_edit=False*, *proportional_edit_falloff='SMOOTH'*, *proportional_size=1.0*, *use_proportional_connected=False*, *use_proportional_projected=False*, *release_confirm=False*, *use_accurate=False*)
:   Undocumented, consider [contributing](https://developer.blender.org/).

    Parameters:
    :   - **mirror** (*boolean**,* *(**optional**)*) – Mirror Editing
        - **use_proportional_edit** (*boolean**,* *(**optional**)*) – Proportional Editing
        - **proportional_edit_falloff** (enum in [Proportional Falloff Items](bpy_types_enum_items/proportional_falloff_items.html#rna-enum-proportional-falloff-items), (optional)) – Proportional Falloff, Falloff type for proportional editing mode
        - **proportional_size** (*float in* *[**1e-06**,* *inf**]**,* *(**optional**)*) – Proportional Size
        - **use_proportional_connected** (*boolean**,* *(**optional**)*) – Connected
        - **use_proportional_projected** (*boolean**,* *(**optional**)*) – Projected (2D)
        - **release_confirm** (*boolean**,* *(**optional**)*) – Confirm on Release, Always confirm operation when releasing button
        - **use_accurate** (*boolean**,* *(**optional**)*) – Accurate, Use accurate transformation

bpy.ops.mesh.polybuild_split_at_cursor_move(*\**, *MESH_OT_polybuild_split_at_cursor=None*, *TRANSFORM_OT_translate=None*)
:   Undocumented, consider [contributing](https://developer.blender.org/).

    Parameters:
    :   - **MESH_OT_polybuild_split_at_cursor** (`MESH_OT_polybuild_split_at_cursor`, (optional)) – Poly Build Split at Cursor
        - **TRANSFORM_OT_translate** (`TRANSFORM_OT_translate`, (optional)) – Move, Move selected items

bpy.ops.mesh.polybuild_transform_at_cursor(*\**, *mirror=False*, *use_proportional_edit=False*, *proportional_edit_falloff='SMOOTH'*, *proportional_size=1.0*, *use_proportional_connected=False*, *use_proportional_projected=False*, *release_confirm=False*, *use_accurate=False*)
:   Undocumented, consider [contributing](https://developer.blender.org/).

    Parameters:
    :   - **mirror** (*boolean**,* *(**optional**)*) – Mirror Editing
        - **use_proportional_edit** (*boolean**,* *(**optional**)*) – Proportional Editing
        - **proportional_edit_falloff** (enum in [Proportional Falloff Items](bpy_types_enum_items/proportional_falloff_items.html#rna-enum-proportional-falloff-items), (optional)) – Proportional Falloff, Falloff type for proportional editing mode
        - **proportional_size** (*float in* *[**1e-06**,* *inf**]**,* *(**optional**)*) – Proportional Size
        - **use_proportional_connected** (*boolean**,* *(**optional**)*) – Connected
        - **use_proportional_projected** (*boolean**,* *(**optional**)*) – Projected (2D)
        - **release_confirm** (*boolean**,* *(**optional**)*) – Confirm on Release, Always confirm operation when releasing button
        - **use_accurate** (*boolean**,* *(**optional**)*) – Accurate, Use accurate transformation

bpy.ops.mesh.polybuild_transform_at_cursor_move(*\**, *MESH_OT_polybuild_transform_at_cursor=None*, *TRANSFORM_OT_translate=None*)
:   Undocumented, consider [contributing](https://developer.blender.org/).

    Parameters:
    :   - **MESH_OT_polybuild_transform_at_cursor** (`MESH_OT_polybuild_transform_at_cursor`, (optional)) – Poly Build Transform at Cursor
        - **TRANSFORM_OT_translate** (`TRANSFORM_OT_translate`, (optional)) – Move, Move selected items

bpy.ops.mesh.primitive_circle_add(*\**, *vertices=32*, *radius=1.0*, *fill_type='NOTHING'*, *calc_uvs=True*, *enter_editmode=False*, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*)
:   Construct a circle mesh

    Parameters:
    :   - **vertices** (*int in* *[**3**,* *10000000**]**,* *(**optional**)*) – Vertices
        - **radius** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Radius
        - **fill_type** (enum in [`'NOTHING'`, `'NGON'`, `'TRIFAN'`], (optional)) –

          Fill Type

          - `NOTHING`
            Nothing – Don’t fill at all.
          - `NGON`
            N-Gon – Use n-gons.
          - `TRIFAN`
            Triangle Fan – Use triangle fans.
        - **calc_uvs** (*boolean**,* *(**optional**)*) – Generate UVs, Generate a default UV map
        - **enter_editmode** (*boolean**,* *(**optional**)*) – Enter Edit Mode, Enter edit mode when adding this object
        - **align** (enum in [`'WORLD'`, `'VIEW'`, `'CURSOR'`], (optional)) –

          Align, The alignment of the new object

          - `WORLD`
            World – Align the new object to the world.
          - `VIEW`
            View – Align the new object to the view.
          - `CURSOR`
            3D Cursor – Use the 3D cursor orientation for the new object.
        - **location** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
        - **rotation** ([`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
        - **scale** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Scale, Scale for the newly added object

bpy.ops.mesh.primitive_cone_add(*\**, *vertices=32*, *radius1=1.0*, *radius2=0.0*, *depth=2.0*, *end_fill_type='NGON'*, *calc_uvs=True*, *enter_editmode=False*, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*)
:   Construct a conic mesh

    Parameters:
    :   - **vertices** (*int in* *[**3**,* *10000000**]**,* *(**optional**)*) – Vertices
        - **radius1** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Radius 1
        - **radius2** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Radius 2
        - **depth** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Depth
        - **end_fill_type** (enum in [`'NOTHING'`, `'NGON'`, `'TRIFAN'`], (optional)) –

          Base Fill Type

          - `NOTHING`
            Nothing – Don’t fill at all.
          - `NGON`
            N-Gon – Use n-gons.
          - `TRIFAN`
            Triangle Fan – Use triangle fans.
        - **calc_uvs** (*boolean**,* *(**optional**)*) – Generate UVs, Generate a default UV map
        - **enter_editmode** (*boolean**,* *(**optional**)*) – Enter Edit Mode, Enter edit mode when adding this object
        - **align** (enum in [`'WORLD'`, `'VIEW'`, `'CURSOR'`], (optional)) –

          Align, The alignment of the new object

          - `WORLD`
            World – Align the new object to the world.
          - `VIEW`
            View – Align the new object to the view.
          - `CURSOR`
            3D Cursor – Use the 3D cursor orientation for the new object.
        - **location** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
        - **rotation** ([`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
        - **scale** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Scale, Scale for the newly added object

bpy.ops.mesh.primitive_cube_add(*\**, *size=2.0*, *calc_uvs=True*, *enter_editmode=False*, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*)
:   Construct a cube mesh that consists of six square faces

    Parameters:
    :   - **size** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Size
        - **calc_uvs** (*boolean**,* *(**optional**)*) – Generate UVs, Generate a default UV map
        - **enter_editmode** (*boolean**,* *(**optional**)*) – Enter Edit Mode, Enter edit mode when adding this object
        - **align** (enum in [`'WORLD'`, `'VIEW'`, `'CURSOR'`], (optional)) –

          Align, The alignment of the new object

          - `WORLD`
            World – Align the new object to the world.
          - `VIEW`
            View – Align the new object to the view.
          - `CURSOR`
            3D Cursor – Use the 3D cursor orientation for the new object.
        - **location** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
        - **rotation** ([`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
        - **scale** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Scale, Scale for the newly added object

bpy.ops.mesh.primitive_cube_add_gizmo(*\**, *calc_uvs=True*, *enter_editmode=False*, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*, *matrix=((0.0, 0.0, 0.0, 0.0), (0.0, 0.0, 0.0, 0.0), (0.0, 0.0, 0.0, 0.0), (0.0, 0.0, 0.0, 0.0))*)
:   Construct a cube mesh

    Parameters:
    :   - **calc_uvs** (*boolean**,* *(**optional**)*) – Generate UVs, Generate a default UV map
        - **enter_editmode** (*boolean**,* *(**optional**)*) – Enter Edit Mode, Enter edit mode when adding this object
        - **align** (enum in [`'WORLD'`, `'VIEW'`, `'CURSOR'`], (optional)) –

          Align, The alignment of the new object

          - `WORLD`
            World – Align the new object to the world.
          - `VIEW`
            View – Align the new object to the view.
          - `CURSOR`
            3D Cursor – Use the 3D cursor orientation for the new object.
        - **location** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 ite