Bu script nasıl calısıyor veya elinde olan varsa vere bilir mi çok lazım.
n4s6p.inapple.com/lgo/
n4s6p.inapple.com/objlgo/
Bu script nasıl calısıyor olan??
4
●104
- 05-12-2013, 06:03:13Üyeliği durduruldujava biliyorsanız
import bpy import sys argv = sys.argv argv = argv[argv.index("--") + 1:] # get all args after "--" obj_out = argv[0] bpy.ops.export_scene.obj(filepath=obj_out, axis_forward='-Z', axis_up='Y')gibi. İki uzantınında syntaxlarını cok iyi bilip uyarlamanız lazım.
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 06:03:13 -->-> Daha önceki mesaj 05:58:14 --
.obj 'den .bmp'ye convert eden script kodları.
/* Juan Quiroz Creates a PGM file from an .obj file. ImageMagick is then called to convert the PGM file to bitmap. The name of the obj file is passed on the command line with the -f flag. Code is given as is! */ #include <stdio.h> #include <math.h> #include <fstream> #include <string> // Default map size const int MAPSIZE = 369; const int GRAYSCALE = 255; using namespace std; struct Point3d{ float x,y,z; }; void usage() { // Print how to use command printf("\ncreatebitmap.cpp -f file.obj\n\n"); exit(0); } int main(int argc, char **argv) { extern char *optarg; extern int optind; int c=0; string fileName="testing.obj"; string outFileName; bool noNegative=false, belowWater=true, normalize=false, convert=true; int bitmap[MAPSIZE][MAPSIZE]={0}; // Parse command line while(( c=getopt(argc, argv, "f:hnpis")) != EOF) { switch(c) { // Retrieve .obj file name case 'f': fileName = string(optarg); outFileName = fileName; break; case 'h': usage(); break; case 'n': noNegative=true; break; case 'p': belowWater=false; break; case 'i': for ( int i=0; i < MAPSIZE; ++i ) for ( int j=0; j < MAPSIZE; ++j ) bitmap[i][j]=255; break; case 'c': convert=false; break; case 's': normalize=true; } } FILE *fin=NULL; char check, dummy[120]; Point3d point; int i=1, index=0; long size=0; float minX, minY, maxX, maxY, maxZ, minZ; float xOffset=0, zOffset=0,yOffset=0; int tempx=0, tempy=0, tempz=0; bool minSet=false; Point3d *coords=NULL; Point3d *copyCoords=NULL; point.x=point.y=point.z=0; minX=minY=maxX=maxY=maxZ=minZ=0; // count the number of vertices on obj file string systemCall = "cat " + fileName + " | egrep '^v ' | wc -l > countxyz"; system(systemCall.c_str()); // Read in the number of vertices fin = fopen("countxyz", "r"); fscanf(fin, "%ld", &size); fclose(fin); // Exit if invalid file name provided if ( size == 0 ) { printf("Invalid file.\n"); usage(); } coords = new Point3d[size]; copyCoords = new Point3d[size]; fin = fopen(fileName.c_str(), "r"); if ( fin == NULL ) { printf("Could not open file for reading.\n"); return 1; } // Read in geometric data from obj file while ( !feof(fin) ) { fgets(dummy,120,fin); // if line contains vertex data if ( dummy[0] == 'v' && dummy[1]==' ') { // Retrieve x, y, z values sscanf(dummy, "%c %f %f %f", &check,&point.x,&point.y,&point.z); // set minimum to first vertex if ( !minSet ) { minX = point.x; minY = point.y; maxX = point.x; maxY = point.y; maxZ = point.z; minZ = point.z; minSet=true; } else { // Find the min and max for all x,y,z if ( point.x < minX ) minX = point.x; else if ( point.x > maxX ) maxX = point.x; if ( point.y > maxY ) maxY = point.y; else if ( point.y < minY ) minY = point.y; if ( point.z > maxZ ) maxZ = point.z; else if ( point.z < minZ ) minZ = point.z; } coords[i]=point; ++i; } } fclose(fin); printf("Stats:\n"); printf("x Min: %f,\tx Max: %f\n", minX, maxX); printf("y Min: %f,\ty Max: %f\n", minY, maxY); printf("z Min: %f,\tz Max: %f\n", minZ, maxZ); // Compute the offset which makes all x and z coordinates non-negative if ( minX < 0 ) xOffset = -minX; if ( minZ < 0 ) zOffset = -minZ; if ( minY < 0 ) yOffset = -minY; maxX += xOffset; maxZ += zOffset; maxY += yOffset; if (belowWater) { for (i=0; i < size; ++i) { tempz = (int)rint(((coords[i].x+xOffset)/maxX)*(MAPSIZE-1)); tempx = (int)rint(((coords[i].z+zOffset)/maxZ)*(MAPSIZE-1)); if ( coords[i].y >= 0) bitmap[tempx][tempz]=GRAYSCALE; else bitmap[tempx][tempz]=GRAYSCALE-(int) rint((coords[i].y/minY)*GRAYSCALE); } } else if ( noNegative ) { for (i=0; i < size; ++i) { tempx = (int)rint(((coords[i].x+xOffset)/maxX)*(MAPSIZE-1)); tempz = (int)rint(((coords[i].z+zOffset)/maxZ)*(MAPSIZE-1)); bitmap[tempx][tempz]=(int) rint(((coords[i].y+yOffset)/maxY)*GRAYSCALE); } } else { for (i=0; i < size; ++i) { tempz = (int)rint(((coords[i].x+xOffset)/maxX)*(MAPSIZE-1)); tempx = (int)rint(((coords[i].z+zOffset)/maxZ)*(MAPSIZE-1)); if ( coords[i].y <= 0 ) bitmap[tempx][tempz]=0; else bitmap[tempx][tempz]= (int)rint((coords[i].y/maxY)*GRAYSCALE); } } // If normalize flag is set, then average each point with all its neighbors if ( normalize ) { int sum=0; for (int i=1; i<MAPSIZE-1; ++i) for (int j=1; j<MAPSIZE-1; ++j) { sum=0; for ( int k=i-1; k < i+2; ++k ) for ( int l=j-1; l < j+2; ++l ) sum+=bitmap[k][l]; bitmap[i][j] = (int)rint((float)sum/9.0); } } // Write bitmap to PGM format ofstream ofp; outFileName += ".pgm"; ofp.open(outFileName.c_str(), ios::out); //Output header data ofp << "P5\n"; ofp << MAPSIZE << " " << MAPSIZE<<endl; ofp << GRAYSCALE << endl; unsigned char *image; image = (unsigned char *) new unsigned char[MAPSIZE*MAPSIZE]; // Convert bitmap data to unsigned char array for (int i=0; i<MAPSIZE; ++i) for (int j=0; j<MAPSIZE; ++j) image[i*MAPSIZE+j]=(unsigned char)bitmap[i][j]; // Write image to file ofp.write( reinterpret_cast<char *>(image), (MAPSIZE*MAPSIZE)*sizeof(unsigned char)); ofp.close(); delete [] image; system("rm countxyz"); // Convert the PGM to bitmap if ( convert ) { string sysConvert = "convert " + outFileName + " " + fileName + ".bmp"; system(sysConvert.c_str()); } return 0; }