I slightly modified the above code to allow arrays of objects that were duplicated and translated into the scene. I am currently using document.writeln and then manually copy and paste into the document.
var l = parent.length; var j = 0; while (l--) { var numVerts = parent[l].children[0].geometry.vertices.length; document.writeln(THREE.saveGeometryToObj(parent[l].children[0],j*(numVerts))); j++; } THREE.saveGeometryToObj = function (geo,nums) { geo.updateMatrixWorld(); var num = parseInt(nums); var s = ''; for (i = 0; i < geo.geometry.vertices.length; i++) { var vector = new THREE.Vector3( geo.geometry.vertices[i].x, geo.geometry.vertices[i].y, geo.geometry.vertices[i].z ); geo.matrixWorld.multiplyVector3( vector ); s+= 'v '+(vector.x) + ' ' + vector.y + ' '+ vector.z + '</br>'; } for (i = 0; i < geo.geometry.faces.length; i++) { s+= 'f '+ (geo.geometry.faces[i].a+1+num) + ' ' + (geo.geometry.faces[i].b+1+num) + ' '+ (geo.geometry.faces[i].c+1+num); if (geo.geometry.faces[i].d!==undefined) { s+= ' '+ (geo.geometry.faces[i].d+1+num); } s+= '</br>'; } return s;
}
david lobser
source share