Yes, there are a couple of ways of doing it.
One is to use:
resid = vsp.CreateGeomResults( geomid, name )
I'm not sure why this was not implemented as a normal 'Analysis' that produced results, but it wasn't. The 'name' parameter is a name assigned to the results set, name it whatever you want.
If the geomid references a MeshGeom, then it will include an indexed triangle set -- i.e. a list of points and then a list of triangles specified by node ID's that point into that list of points. Much like a Cart3D *.tri file.
If the geomid references a normal Geom, then it will output a simple structured mesh file with sets of cross sections. Much like a XSec *.hrm file.
You can look in TestAll.vspscript for some examples of CreateGeomResults.
You can also use the Analysis Manager to perform 'SurfacePatches' analysis. This will only work for 'regular' Geoms (not MeshGeoms), and it will output a structured surface patch corresponding to the wireframe on screen.
However there are some differences between this and CreateGeomResults. First, in addition to the surface points, normal vectors are also output -- these are actually normal vectors based on the analytic Bezier surfaces underlying the representation. Of course, at a sharp corner (think a wingtip), a point has a single value, but the normal vector has multiple values. To handle this, SurfacePatches actually splits the surfaces along the feature lines in OpenVSP and then will output different normal vectors for each patch.