jms, cambo, and possibly others have done work which has made the following script possible in CVS version of blender. cambo had made this code from that work ->
# Converts particles into a mesh with edges for strands from Blender import Scene, Mathutils, Effect, Mesh, Object scn= Scene.GetCurrent() ob= scn.getActiveObject() me= Mesh.New() effects= Effect.Get() for eff in effects: for p in eff.getParticlesLoc(): # p is either a vector or a list of vectors. me.verts.extend() will deal with either print p me.verts.extend(p) if type(p)==list: # Are we a strand or a pair, then add edges. if len(p)>1: edges= [(i, i+1) for i in range(len(me.verts)-len(p), len(me.verts)-1)] me.edges.extend( edges ) print len(me.verts) ob= Object.New('Mesh') ob.link(me) scn.link(ob)
I have done a quick blend where I went one step further by converting the resulting mesh to a bunch of curves with “Edge to Curve”, and then applied a BevelObject and a Taper to those curves.
Grab the blend here. Again, you need a current build to use the script but you can play with the resulting mesh in 2.42.
Thanks again jms and cambo!