user: Describe CurvePaintSettings(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # CurvePaintSettings(bpy_struct)

base class — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")

*class* bpy.types.CurvePaintSettings(*bpy_struct*)
:   corner_angle
    :   Angles above this are considered corners

        Type:
        :   float in [0, 3.14159], default 1.22173

    curve_type
    :   Type of curve to use for new strokes

        Type:
        :   enum in [`'POLY'`, `'BEZIER'`], default `'BEZIER'`

    depth_mode
    :   Method of projecting depth

        Type:
        :   enum in [`'CURSOR'`, `'SURFACE'`], default `'CURSOR'`

    error_threshold
    :   Allow deviation for a smoother, less precise line

        Type:
        :   int in [1, 100], default 8

    fit_method
    :   Curve fitting method

        Type:
        :   enum in [Curve Fit Method Items](bpy_types_enum_items/curve_fit_method_items.html#rna-enum-curve-fit-method-items), default `'REFIT'`

    radius_max
    :   Radius to use when the maximum pressure is applied (or when a tablet isn’t used)

        Type:
        :   float in [0, 100], default 1.0

    radius_min
    :   Minimum radius when the minimum pressure is applied (also the minimum when tapering)

        Type:
        :   float in [0, 100], default 0.0

    radius_taper_end
    :   Taper factor for the radius of each point along the curve

        Type:
        :   float in [0, 10], default 0.0

    radius_taper_start
    :   Taper factor for the radius of each point along the curve

        Type:
        :   float in [0, 1], default 0.0

    surface_offset
    :   Offset the stroke from the surface

        Type:
        :   float in [-10, 10], default 0.0

    surface_plane
    :   Plane for projected stroke

        - `NORMAL_VIEW`
          Normal to Surface – Draw in a plane perpendicular to the surface.
        - `NORMAL_SURFACE`
          Tangent to Surface – Draw in the surface plane.
        - `VIEW`
          View – Draw in a plane aligned to the viewport.

        Type:
        :   enum in [`'NORMAL_VIEW'`, `'NORMAL_SURFACE'`, `'VIEW'`], default `'NORMAL_VIEW'`

    use_corners_detect
    :   Detect corners and use non-aligned handles

        Type:
        :   boolean, default True

    use_offset_absolute
    :   Apply a fixed offset (don’t scale by the radius)

        Type:
        :   boolean, default False

    use_pressure_radius
    :   Map tablet pressure to curve radius

        Type:
        :   boolean, default False

    use_project_only_selected
    :   Project the strokes only onto selected objects

        Type:
        :   boolean, default False

    use_stroke_endpoints
    :   Use the start of the stroke for the depth

        Type:
        :   boolean, default False

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type