RepRap 3D-Drucker

RepRap 3D-Drucker

Donnerstag, 15. Oktober 2009

Konverter

Hallo zusammen
Ich habe es nun geschafft einen Konverter zu programmieren, der die Exponentialdarstellung in Dezimaldarstellung konvertiert. Der Konverter ist wie folgt aufgebaut:

#include
#include
#include
#include
#include 
#define TEMP_FILE_NAME "STL_$tep$.STL"
void ParseString(char *pcString)
{
  char caVar1[200];
  char caVar5[200];
  float fVar2;
  float fVar3;
  float fVar4;
  if(strstr(pcString,"endfacet"))
    ;
  else if(strstr(pcString,"facet"))
  {
    // "facet normal 0 1 0" parsen
    sscanf(pcString,"  %s %s %f %f %f\n",caVar1, caVar5, &fVar2, &fVar3, &fVar4);
    sprintf(pcString,"   %s %s %f %f %f\n",caVar1, caVar5, fVar2, fVar3, fVar4);
  }
  if(strstr(pcString,"vertex"))
  {
    // "vertex 0 40 16" parsen
    sscanf(pcString,"         %s %f %f %f\n",caVar1, &fVar2, &fVar3, &fVar4);
    sprintf(pcString,"         %s %f %f %f\n",caVar1, fVar2, fVar3, fVar4);
  }
}
int main(int argc, char *argv[])
{
  FILE *pFileRead;    // Datei zum lesen
  FILE *pFileWrite;   // Datei zum schreiben
  //char caOutputFileName[PATH_MAX+1];
  char caSTLBuffer[20000];   // Buffer mit eingelesenem String aus Datei (pFileRead)
  char *pcRc;

  if(argc<2)
  {
    // Fehler: kein Parameter angegeben
    printf("Format: %s \n",argv[0]);
    exit(0);
  }

  pFileRead = fopen(argv[1],"r");
  if(pFileRead==NULL)
  {
    printf("Fehler bei öffnen von Datei \"%s\"\n",argv[1]);
    exit(1);
  }
  pFileWrite = fopen(TEMP_FILE_NAME,"w");
  if(pFileWrite==NULL)
  {
    printf("Fehler beim schreiben");
    exit(2);
  }

  for(;;)
  {
    pcRc=fgets(caSTLBuffer,sizeof(caSTLBuffer),pFileRead);
    if(pcRc==0)
      break;  
    ParseString(caSTLBuffer);
    fprintf(pFileWrite,caSTLBuffer);
  }

  fclose(pFileRead);
  fclose(pFileWrite);

  if(remove(argv[1])==0)
  {
    if(rename(TEMP_FILE_NAME,argv[1])!=0)
    {
      printf("Datei nicht umbenannt\n");
      return(3);
    }
  }
  return(0);
}

Gruss

Jürg Binggeli

Keine Kommentare:

Kommentar veröffentlichen