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); }
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); }
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]); } }