I have more info on where it goes wrong
This doesn't work:
cube = New DarkGDK.Basic3D.Cube(10, texture)
mesh = New DarkGDK.Basic3D.Mesh(cube)
obj = New DarkGDK.Basic3D.Object3D(mesh)
obj.Save("c:\cube.dbo")
But this DOES work...
cube = New DarkGDK.Basic3D.Cube(10, texture)
mesh = New DarkGDK.Basic3D.Mesh(cube)
obj = New DarkGDK.Basic3D.Object3D(mesh, texture)
obj.Save("c:\cube.dbo")
So it looks like the class initiator that just accepts the mesh doesn't work. This is making more sense now, as my whole reason for running this test is that my objects don't appear on screen. Extending this test above, I get the same results - the object doesn't appear on screen unless it is created from the mesh WITH texture.