Ejemplo n.º 1
0
main(int argc, char **argv) {
   //
   // local vars
   //
   struct fab_vars v;
   init_vars(&v);
   float xmin,ymin,force,velocity;
   //
   // command line args
   //
   if (!((argc == 3) || (argc == 4) || (argc == 5) || (argc == 7))) {
      printf("command line: path_camm in.path out.camm [force [velocity [xmin ymin]]]\n");
      printf("   in.path = input path file\n");
      printf("   out.camm = output Roland vinylcutter file\n");
      printf("   force = cutting force (optional, grams, default 45)\n");
      printf("   velocity = cutting speed (optional, cm/s, default 2)\n");
      printf("   xmin = left position (optional, mm, default path value)\n");
      printf("   ymin = bottom position (optional, mm, default path value)\n");
      exit(-1);
      }
   if (argc == 3) {
      force = 45;
      velocity = 2;
      }
   else if (argc == 4) {
      sscanf(argv[3],"%f",&force);
      velocity = 2;
      }
   else if (argc == 5) {
      sscanf(argv[3],"%f",&force);
      sscanf(argv[4],"%f",&velocity);
      }
   //
   // read path
   //
   fab_read_path(&v,argv[1]);
   //
   // origin
   //
   if (argc == 7) {
      sscanf(argv[5],"%lf",&v.xmin);
      sscanf(argv[6],"%lf",&v.ymin);
      }
   //
   // write .epi
   //
   fab_write_camm(&v,argv[2],force,velocity);
   }
Ejemplo n.º 2
0
main(int argc, char **argv) {
   //
   // local vars
   //
   struct fab_vars v;
   init_vars(&v);
   int power,max_power,speed,focus,rate;
   //
   // command line args
   //
   if (!((argc == 3) || (argc == 4) || (argc == 5) || (argc == 6) || (argc == 8) || (argc == 9) || (argc == 10))) {
      printf("command line: path_epi in.path out.epi [power [speed [focus [xmin ymin [ [rate [max_power]]]]]\n");
      printf("   in.path = input path file\n");
      printf("   out.epi= output Epilog lasercutter file\n");
      printf("   power = percent power (optional, 0-100, default 100)\n");
      printf("   speed = percent speed (optional, 0-100, default 100)\n");
      printf("   focus = autofocus (optional, 0=off | 1=on, default on)\n");
      printf("   xmin = left position (optional, mm, default path, 0 = left side of bed)\n");
      printf("   ymin = front position (optional, mm, default path, 0 = back, front positive)\n");
      printf("   rate = pulse rate (optional, frequency, default 2500)\n");
      printf("   max_power = maximum power for maximum z value (optional, 0-100, default 100)\n");
      exit(-1);
      }
   if (argc == 3) {
      power = 100;
      speed = 100;
      focus = 1;
      rate = 2500;
      max_power = 100;
      }
   else if (argc == 4) {
      sscanf(argv[3],"%d",&power);
      speed = 100;
      focus = 1;
      rate = 2500;
      max_power = 100;
      }
   else if (argc == 5) {
      sscanf(argv[3],"%d",&power);
      sscanf(argv[4],"%d",&speed);
      focus = 1;
      rate = 2500;
      max_power = 100;
      }
   else if ((argc == 6) || (argc == 8)) {
      sscanf(argv[3],"%d",&power);
      sscanf(argv[4],"%d",&speed);
      sscanf(argv[5],"%d",&focus);
      rate = 2500;
      max_power = 100;
      }
   else if (argc == 9) {
      sscanf(argv[3],"%d",&power);
      sscanf(argv[4],"%d",&speed);
      sscanf(argv[5],"%d",&focus);
      sscanf(argv[8],"%d",&rate);
      max_power = 100;
      }
   else if (argc == 10) {
      sscanf(argv[3],"%d",&power);
      sscanf(argv[4],"%d",&speed);
      sscanf(argv[5],"%d",&focus);
      sscanf(argv[8],"%d",&rate);
      sscanf(argv[9],"%d",&max_power);
      }
   //
   // read path
   //
   fab_read_path(&v,argv[1]);
   //
   // origin
   //
   if ((argc == 8) || (argc == 9) || (argc == 10)) {
      sscanf(argv[6],"%lf",&v.xmin);
      sscanf(argv[7],"%lf",&v.ymin);
      }
   //
   // write .epi
   //
   fab_write_epi(&v,argv[2],power,max_power,speed,focus,rate);
   }
Ejemplo n.º 3
0
main(int argc, char **argv) {
   //
   // local vars
   //
   struct fab_vars v;
   init_vars(&v);
   struct fab_vars vnew;
   init_vars(&vnew);
   char view;
   int x,y,z,nz,dz;
   float scale;
   //
   // command line args
   //
   if (!((argc == 3) || (argc == 4))) {
      printf("command line: path_ps in.path out.ps [view]\n");
      printf("   in.path = input path file\n");
      printf("   out.ps= output PostScript file\n");
      printf("   view = view projection(s) (optional, z|3, default z)\n");
      exit(-1);
      }
   view = 'z';
   if (argc == 4)
      view = argv[3][0];
   //
   // read path
   //
   fab_read_path(&v,argv[1]);
   //
   // check view
   //
   if (view == 'z') {
      //
      // write ps
      //
      fab_write_ps(&v,argv[2]);
      }
   else if (view == '3') {
      if (v.path->dof < 3) {
         printf("path_ps: oops -- path not 3D\n");
         exit(-1);
         }
      nz = v.nx * v.dz / v.dx;
      scale = ((float) nz) / v.nz;
      vnew.nx = v.nx + nz;
      vnew.ny = v.ny + nz;
      vnew.nz = v.nz;
      vnew.dx = v.dx + v.dz;
      vnew.dy = v.dy + v.dz;
      vnew.dz = v.dz;
      vnew.xmin = v.xmin;
      vnew.ymin = v.ymin;
      vnew.zmin = v.zmin;
      fab_path_start(&vnew,v.path->dof);
      //
      // follow path
      //
      v.path->segment = v.path->first;
      while (1) {
         //
         // follow segments
         //
         v.path->segment->point = v.path->segment->first;
         fab_path_segment(&vnew);
         while (1) {
            //
            // follow points
            //
            fab_path_point(&vnew);
            z = v.path->segment->point->first->next->next->value;
            dz = nz - scale*z;
            y = dz + v.path->segment->point->first->next->value;
            x = dz + v.path->segment->point->first->value;
            fab_path_axis(&vnew,x);
            fab_path_axis(&vnew,y);
            fab_path_axis(&vnew,z);
            if (v.path->segment->point->next == 0)
               break;
            v.path->segment->point = v.path->segment->point->next;
            }
         if (v.path->segment->next == 0)
            break;
         v.path->segment = v.path->segment->next;
         }
      //
      // write ps
      //
      fab_write_ps(&vnew,argv[2]);
      }
   }