user: Show practical ways to work with RigidBodyConstraint(bpy_struct) in a Blender add-on or script – include code.

assistant: # RigidBodyConstraint(bpy_struct)

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

*class* bpy.types.RigidBodyConstraint(*bpy_struct*)
:   Constraint influencing Objects inside Rigid Body Simulation

    breaking_threshold
    :   Impulse threshold that must be reached for the constraint to break

        Type:
        :   float in [0, inf], default 10.0

    disable_collisions
    :   Disable collisions between constrained rigid bodies

        Type:
        :   boolean, default False

    enabled
    :   Enable this constraint

        Type:
        :   boolean, default False

    limit_ang_x_lower
    :   Lower limit of X axis rotation

        Type:
        :   float in [-6.28319, 6.28319], default -0.785398

    limit_ang_x_upper
    :   Upper limit of X axis rotation

        Type:
        :   float in [-6.28319, 6.28319], default 0.785398

    limit_ang_y_lower
    :   Lower limit of Y axis rotation

        Type:
        :   float in [-6.28319, 6.28319], default -0.785398

    limit_ang_y_upper
    :   Upper limit of Y axis rotation

        Type:
        :   float in [-6.28319, 6.28319], default 0.785398

    limit_ang_z_lower
    :   Lower limit of Z axis rotation

        Type:
        :   float in [-6.28319, 6.28319], default -0.785398

    limit_ang_z_upper
    :   Upper limit of Z axis rotation

        Type:
        :   float in [-6.28319, 6.28319], default 0.785398

    limit_lin_x_lower
    :   Lower limit of X axis translation

        Type:
        :   float in [-inf, inf], default -1.0

    limit_lin_x_upper
    :   Upper limit of X axis translation

        Type:
        :   float in [-inf, inf], default 1.0

    limit_lin_y_lower
    :   Lower limit of Y axis translation

        Type:
        :   float in [-inf, inf], default -1.0

    limit_lin_y_upper
    :   Upper limit of Y axis translation

        Type:
        :   float in [-inf, inf], default 1.0

    limit_lin_z_lower
    :   Lower limit of Z axis translation

        Type:
        :   float in [-inf, inf], default -1.0

    limit_lin_z_upper
    :   Upper limit of Z axis translation

        Type:
        :   float in [-inf, inf], default 1.0

    motor_ang_max_impulse
    :   Maximum angular motor impulse

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

    motor_ang_target_velocity
    :   Target angular motor velocity

        Type:
        :   float in [-inf, inf], default 1.0

    motor_lin_max_impulse
    :   Maximum linear motor impulse

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

    motor_lin_target_velocity
    :   Target linear motor velocity

        Type:
        :   float in [-inf, inf], default 1.0

    object1
    :   First Rigid Body Object to be constrained

        Type:
        :   [`Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

    object2
    :   Second Rigid Body Object to be constrained

        Type:
        :   [`Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

    solver_iterations
    :   Number of constraint solver iterations made per simulation step (higher values are more accurate but slower)

        Type:
        :   int in [1, 1000], default 10

    spring_damping_ang_x
    :   Damping on the X rotational axis

        Type:
        :   float in [0, inf], default 0.5

    spring_damping_ang_y
    :   Damping on the Y rotational axis

        Type:
        :   float in [0, inf], default 0.5

    spring_damping_ang_z
    :   Damping on the Z rotational axis

        Type:
        :   float in [0, inf], default 0.5

    spring_damping_x
    :   Damping on the X axis

        Type:
        :   float in [0, inf], default 0.5

    spring_damping_y
    :   Damping on the Y axis

        Type:
        :   float in [0, inf], default 0.5

    spring_damping_z
    :   Damping on the Z axis

        Type:
        :   float in [0, inf], default 0.5

    spring_stiffness_ang_x
    :   Stiffness on the X rotational axis

        Type:
        :   float in [0, inf], default 10.0

    spring_stiffness_ang_y
    :   Stiffness on the Y rotational axis

        Type:
        :   float in [0, inf], default 10.0

    spring_stiffness_ang_z
    :   Stiffness on the Z rotational axis

        Type:
        :   float in [0, inf], default 10.0

    spring_stiffness_x
    :   Stiffness on the X axis

        Type:
        :   float in [0, inf], default 10.0

    spring_stiffness_y
    :   Stiffness on the Y axis

        Type:
        :   float in [0, inf], default 10.0

    spring_stiffness_z
    :   Stiffness on the Z axis

        Type:
        :   float in [0, inf], default 10.0

    spring_type
    :   Which implementation of spring to use

        - `SPRING1`
          Blender 2.7 – Spring implementation used in Blender 2.7. Damping is capped at 1.0.
        - `SPRING2`
          Blender 2.8 – New implementation available since 2.8.

        Type:
        :   enum in [`'SPRING1'`, `'SPRING2'`], default `'SPRING1'`

    type
    :   Type of Rigid Body Constraint

        Type:
        :   enum in [Rigidbody Constraint Type Items](bpy_types_enum_items/rigidbody_constraint_type_items.html#rna-enum-rigidbody-constraint-type-items), default `'POINT'`

    use_breaking
    :   Constraint can be broken if it receives an impulse above the threshold

        Type:
        :   boolean, default False

    use_limit_ang_x
    :   Limit rotation around X axis

        Type:
        :   boolean, default False

    use_limit_ang_y
    :   Limit rotation around Y axis

        Type:
        :   boolean, default False

    use_limit_ang_z
    :   Limit rotation around Z axis

        Type:
        :   boolean, default False

    use_limit_lin_x
    :   Limit translation on X axis

        Type:
        :   boolean, default False

    use_limit_lin_y
    :   Limit translation on Y axis

        Type:
        :   boolean, default False

    use_limit_lin_z
    :   Limit translation on Z axis

        Type:
        :   boolean, default False

    use_motor_ang
    :   Enable angular motor

        Type:
        :   boolean, default False

    use_motor_lin
    :   Enable linear motor

        Type:
        :   boolean, default False

    use_override_solver_iterations
    :   Override the number of solver iterations for this constraint

        Type:
        :   boolean, default False

    use_spring_ang_x
    :   Enable spring on X rotational axis

        Type:
        :   boolean, default False

    use_spring_ang_y
    :   Enable spring on Y rotational axis

        Type:
        :   boolean, default False

    use_spring_ang_z
    :   Enable spring on Z rotational axis

        Type:
        :   boolean, default False

    use_spring_x
    :   Enable spring on X axis

        Type:
        :   boolean, default False

    use_spring_y
    :   Enable spring on Y axis

        Type:
        :   boolean, default False

    use_spring_z
    :   Enable spring on Z axis

        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](#bpy.types.RigidBodyConstraint.type "bpy.types.RigidBodyConstraint.type")