How to make thrusters affect a rigidbody

I am trying to make some maneuvering thrusters apply a force to my rigidbody spacecraft. The main thruster was easy as the force can be applied to the whole craft, but I want the maneuvering thrusters to apply a force to a specific part of the rigidbody to create pitch, roll, and yaw. I have been messing with the AddForceAtPosition function, but I can not figure out how to position where the force is applied.

Maybe if I explain the script refrence Unity - Scripting API: Rigidbody.AddForceAtPosition

firstly at the top it says
“function AddForceAtPosition (force : Vector3, position : Vector3, mode : ForceMode = ForceMode.Force) : void”

Which means you use it by by saying

AddforceAtPosition(force vector wich is a Vector3, position vector which is also a Vector3);

They give this example but I wil add more coments:

  function ApplyForce (body : Rigidbody) {// a sub function where you pass it a
//rigidbody and it adds force to it

//here they are making a vector3 to put in for 1st parameter
        var direction : Vector3 = body.transform.position - transform.position;

//here they call AddForce on the rigidbody
            //rigidbodyVariable.function(         parameter 1   ,      parameter2   );
            body.AddForceAtPosition(direction.normalized, transform.position);
        }

.
.

So what I would do it make some cubes, position them in the engines with Z axis forwards.

Make them children of the ship.

Have a script and add a Transform variable for each cube.

say rigidbody.AddForceAtPosition(cube.position , cube.forward * amountOfForceYouWant);
for each engine

Thanks for the reply. This seems to be working, but I am having trouble making the force vector stay relative to the cube and not the global space.

#pragma strict
var bottomNoseThruster : GameObject;
var topNoseThruster : GameObject;

bottomNoseThruster = GameObject.Find("Bottom_Nose_Thruster");
topNoseThruster = GameObject.Find("Top_Nose_Thruster");

function Start () 
{

}

function FixedUpdate () 
{
	if(Input.GetAxis("Pitch") > 0)
	{
		rigidbody.AddForceAtPosition (topNoseThruster.transform.position, ThrustDirection(topNoseThruster.transform.localRotation) * 2);
		
	}
	
	if(Input.GetAxis("Pitch") < 0)
	{
		rigidbody.AddForceAtPosition( bottomNoseThruster.transform.position, ThrustDirection(bottomNoseThruster.transform.localRotation) * 2); 
	}

}


function ThrustDirection(rotate : Quaternion) : Vector3
{
	return rotate * Vector3.up;
}

This is what I am working with. Right now the nose pitches up to the top then jerks around as the force is still being applied upwards instead of rotating all the way around.

Thanks for the help I really appreciate it.