Oki doki, here comes the final function which works perfectly her. I'm accelerating a rocket with it...
Define the direction of force by _vecx#, _vecy# and _vecz# values. If you want to have an effect along the local y-axis of the object, just asign _vecy# value 1.0 and x/z with 0.0.
By the way in my AppGameKit world one AppGameKit unit is equal to 1 m in real world.
function addforcetoobject(obj,_vecx#,_vecy#,_vecz#,_force#,_deltatime#)
// _deltatime# in seconds (time difference since the last function call)
_force# = _force#*9.81 // _force# comes as kg unit - needs to be converted into Newton (delete line if force comes in as Newton)
curposx# = GetObjectX(obj)
curposy# = GetObjectY(obj)
curposz# = GetObjectZ(obj)
currotx# = GetObjectAngleX(obj)
curroty# = GetObjectAngleY(obj)
currotz# = GetObjectAngleZ(obj)
forceobj = CreateObjectBox(1.0,1.0,1.0)
SetObjectPosition(forceobj,curposx#,curposy#,curposz#)
SetObjectRotation(forceobj,currotx#,curroty#,currotz#)
MoveObjectLocalX(forceobj,_vecx#)
MoveObjectLocalY(forceobj,_vecy#)
MoveObjectLocalZ(forceobj,_vecz#)
newposx# = GetObjectX(forceobj)
newposy# = GetObjectY(forceobj)
newposz# = GetObjectZ(forceobj)
deleteobject(forceobj)
deltax# = newposx# - curposx#
deltay# = newposy# - curposy#
deltaz# = newposz# - curposz#
xspeed# = GetObject3DPhysicsLinearVelocityX(obj)
yspeed# = GetObject3DPhysicsLinearVelocityY(obj)
zspeed# = GetObject3DPhysicsLinearVelocityZ(obj)
curspeedvector = CreateVector3(xspeed#,yspeed#,zspeed#)
forcevector = CreateVector3(deltax#,deltay#,deltaz#)
mass# = GetObject3DPhysicsMass(obj) // mass in kg
deltaspeed# = (_force#*_deltatime#) / mass#
GetVector3Multiply(forcevector,deltaspeed#)
GetVector3Add(curspeedvector,forcevector)
totalspeed# = GetVector3Length(curspeedvector)
SetObject3DPhysicsLinearVelocity(obj,curspeedvector,totalspeed#)
endfunction