I found a bug in the ackphysx.dll, but do not know if it has been changed, because I still have the old code from October 2011, please provide the new source code.

I noticed that actor->setGroup((NxActorGroup)_INT(groupID)); in DLLFUNC var pXent_setgroup (ENTITY* entity, var groupID) does not work properly, because it gruops are always the same, like after pXent_settype was used.
Quote:
When an entity is registered for physics (pxent_settype), its group parameter is automatically set to 1.


Should be changed from:
Code:
actor->setGroup((NxActorGroup)_INT(groupID));

to:
Code:
NxU32 nbShapes = actor->getNbShapes();
	NxShape * const*shapes = actor->getShapes();

	while (nbShapes--)
	{
		shapes[nbShapes]->setGroup(_INT(groupID));
	}


Try code below with default ackphysx.dll and my dll.

You can see that default dll works if I use pX_setgroupcollision(0, 1, 0); , but if I try with pX_setgroupcollision(2, 3, 0); still does not work.

Code:
#include <default.c>
#include <ackphysx.h>

BOOL bCollide = 1;

function on_space_event()
{
	while (key_space){wait (1);}

	bCollide = !bCollide;
	
	pX_setgroupcollision (2, 3, bCollide);
}

void main()
{
	physX_open();
	
	level_load(""); pXent_settype(NULL,PH_STATIC,PH_PLANE);	

	vec_set(camera->x, vector(-150, 0, 50));
	vec_set(camera->pan, vector(0, -10, 0));

	ENTITY *Cube1 = ent_create("CUBE.MDL", vector(0, 0, 60), NULL);
	vec_set(Cube1.blue,COLOR_RED); set(Cube1,LIGHT|CAST);
	pXent_settype(Cube1, PH_RIGID, PH_BOX);
	pXent_setgroup(Cube1,2);
	
	ENTITY *Cube2 = ent_create("CUBE.MDL", vector(0, 0, 30), NULL);
	vec_set(Cube2.blue,COLOR_GREEN); set(Cube2,LIGHT|CAST);
	pXent_settype(Cube2, PH_RIGID, PH_BOX);
	pXent_setgroup(Cube2,3);
	
	while(1)
	{
		draw_text("[SPACE] - Toggle collision", 5, 5, COLOR_WHITE);
		pX_pick();
		wait(1);
	}
}



Regards, Robert

Quote
Everything should be made as simple as possible, but not one bit simpler.
by Albert Einstein

PhysX Preview of Cloth, Fluid and Soft Body

A8.47.1P