How about a slider hinge?

Code:
NewtonJoint* newton_createslider(VECTOR* vecPivot, VECTOR* vecDir, ENTITY* entBody1, ENTITY* entBody2, void* fpCallback)
{
	NewtonBody* psBody1 = NULL;
	NewtonBody* psBody2 = NULL;
	NewtonJoint* psJoint;
	float* fpPivot;
	float* fpDir;
	
	/* get Newton bodies */
	if (entBody1 != NULL)
	{
		psBody1 = entBody1->skill99;
	}
	
	if (entBody2 != NULL)
	{
		psBody2 = entBody2->skill99;
	}

	fpPivot = vectorf(vecPivot);
	fpPivot[0] *= QUANTTOMETER;
	fpPivot[1] *= QUANTTOMETER;
	fpPivot[2] *= QUANTTOMETER;

	fpDir = vectorf(vecDir);

	psJoint = NewtonConstraintCreateSlider(psWorld, fpPivot, fpDir, psBody1, psBody2); 
	if (fpCallback != NULL)
	{
		NewtonSliderSetUserCallback (psJoint, fpCallback);
	}
	
	/* store joint pointers in related objects */
	if (entBody1 != NULL)
	{
		entBody1->skill98 = psJoint;
	}
	
	if (entBody2 != NULL)
	{
		entBody2->skill98 = psJoint;
	}
}



Thought I might share this. Almost the same code like for a hinge though.