⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 operator.bak

📁 This is a CNCPro source file. It is include the G-Code interpreter source.
💻 BAK
📖 第 1 页 / 共 2 页
字号:
         if (curnt > min(99-(16*page),17)) {if(page==0) curnt=1; else curnt=0;}
        }
      if(ch==27) break;
     }
}

void offsets(struct gcode_setup *gcode)
{
   int i, curnt=0, ch;
   static char item[7][35]={"Machine Coordinates (G53)","Coordinate Offset 2 (G54)",
                            "Coordinate Offset 3 (G55)","Coordinate Offset 4 (G56)",
                            "Coordinate Offset 5 (G57)","Coordinate Offset 6 (G58)",
                            "Coordinate Offset 7 (G59)"};
   while(1)
     {window(21,1,60,25);
      textbackground(LIGHTGRAY);
      clrscr();
      box(21,1,60,11, LIGHTGRAY,BLACK,WHITE,BLUE);
      window(21,1,60,25);
      gotoxy(15,1); cprintf("<Esc> To Exit");
      for(i=0;i<7;i++) {gotoxy(4,i+3); cprintf("%s",item[i]);}
      while (1)
        {gotoxy(4,curnt+3); textbackground(BROWN);
         cprintf("%s",item[curnt]); ch=getch();
         gotoxy(4,curnt+3); textbackground(LIGHTGRAY);
         cprintf("%s",item[curnt]);
         if (ch == 13 || ch == 32)
           {gotoxy(4,curnt+3); textbackground(GREEN); cprintf("%s",item[curnt]); break;}
         if (ch == 27) return;
         if (ch > 0) continue;
         ch = getch();
         switch (ch)
           {case 72 : --curnt; break;  //up arrow
            case 80 : ++curnt; break;  //down arrow
            case 59 : help(54); break;  //f1
           }
         if (curnt < 0) curnt=6;
         if (curnt > 6) curnt=0;
        }
      box(22,16,59,24, RED,BLACK,WHITE,WHITE);
      gotoxy(2,1); cprintf("            <Esc> To Exit");
      if(curnt==0) 
        {gotoxy(4,3); cprintf("Machine Coordinates");
         gotoxy(4,4); cprintf("X = %s", prn_val_all((*gcode).x_coord[curnt]));
         gotoxy(21,4); cprintf("Y = %s", prn_val_all((*gcode).y_coord[curnt]));
         gotoxy(4,5); cprintf("Z = %s", prn_val_all((*gcode).z_coord[curnt]));
         gotoxy(21,5); cprintf("W = %s", prn_val_all((*gcode).a_coord[curnt]));
        }
      else 
        {gotoxy(4,3); cprintf("Coordinate Offset %d",curnt+1);
         gotoxy(4,4); cprintf("<X> -> %s", prn_val_all((*gcode).x_coord[curnt]));
         gotoxy(21,4); cprintf("<Y> -> %s", prn_val_all((*gcode).y_coord[curnt]));
         gotoxy(4,5); cprintf("<Z> -> %s", prn_val_all((*gcode).z_coord[curnt]));
         gotoxy(21,5); cprintf("<W> -> %s", prn_val_all((*gcode).a_coord[curnt]));
        }
      gotoxy(4,6); cprintf("<R> Z Release Plane %s", prn_val_all((*gcode).rp[curnt]));
      gotoxy(4,7); cprintf("<P> W Release Plane %s", prn_val_all((*gcode).a_rp[curnt]));
      while((i=getch())!=27)
        {if(i>96 && i<123) i=i-32;
         if((curnt>0 && (i=='X' || i=='Y' || i=='Z' || i=='W')) || i=='R' || i=='P')
           {_setcursortype(_NORMALCURSOR);
            gotoxy(6,9);
            if(i=='R') {cprintf("Z Release Plane Value:"); gotoxy(29,9);}
            else if(i=='P') {cprintf("W Release Plane Value:"); gotoxy(29,9);}
            else {cprintf("Enter New '%c' Value:",i); gotoxy(27,9);}
            if(i=='X') {get_value_all(&(*gcode).x_coord[curnt]); 
                        gotoxy(4,4); cprintf("<X> -> %s", prn_val_all((*gcode).x_coord[curnt]));}
            if(i=='Y') {get_value_all(&(*gcode).y_coord[curnt]);
                        gotoxy(21,4); cprintf("<Y> -> %s", prn_val_all((*gcode).y_coord[curnt]));} 
            if(i=='Z') {get_value_all(&(*gcode).z_coord[curnt]); 
                        gotoxy(4,5); cprintf("<Z> -> %s", prn_val_all((*gcode).z_coord[curnt]));}
            if(i=='W') {get_value_all(&(*gcode).a_coord[curnt]);
                        gotoxy(21,5); cprintf("<W> -> %s", prn_val_all((*gcode).a_coord[curnt]));}
            if(i=='R') {get_value_all(&(*gcode).rp[curnt]);
                        gotoxy(4,6); cprintf("<R> Z Release Plane %s", prn_val_all((*gcode).rp[curnt]));}
            if(i=='P') {get_value_all(&(*gcode).a_rp[curnt]);
                        gotoxy(4,7); cprintf("<P> W Release Plane %s", prn_val_all((*gcode).a_rp[curnt]));}
            gotoxy(6,9); cprintf("                                "); _setcursortype(_NOCURSOR);
           }
        }
     }
}

void change_gcode_units(struct soft_setup *software, struct gcode_setup *gcode, int units, int a_units)
{
   int i;

   if((*software).units==IN && units==MM)
     {for(i=0;i<7;i++)
        {(*gcode).x_coord[i]=(*gcode).x_coord[i]*25.4;
         (*gcode).y_coord[i]=(*gcode).y_coord[i]*25.4;
         (*gcode).z_coord[i]=(*gcode).z_coord[i]*25.4;
         (*gcode).rp[i]=(*gcode).rp[i]*25.4;
        }
      for(i=0;i<=(*gcode).tnum_max;i++)
        {(*gcode).tool_len[i]=(*gcode).tool_len[i]*25.4;
         (*gcode).tool_dia[i]=(*gcode).tool_dia[i]*25.4;
        }
      (*gcode).tool_ch_x=(*gcode).tool_ch_x*25.4;
      (*gcode).tool_ch_y=(*gcode).tool_ch_y*25.4;
      (*gcode).tool_ch_z=(*gcode).tool_ch_z*25.4;
     }
   else if((*software).units==MM && units==IN)
     {for(i=0;i<7;i++)
        {(*gcode).x_coord[i]=(*gcode).x_coord[i]/25.4;
         (*gcode).y_coord[i]=(*gcode).y_coord[i]/25.4;
         (*gcode).z_coord[i]=(*gcode).z_coord[i]/25.4;
         (*gcode).rp[i]=(*gcode).rp[i]/25.4;
        }
      for(i=0;i<=(*gcode).tnum_max;i++)
        {(*gcode).tool_len[i]=(*gcode).tool_len[i]/25.4;
         (*gcode).tool_dia[i]=(*gcode).tool_dia[i]/25.4;
        }
      (*gcode).tool_ch_x=(*gcode).tool_ch_x/25.4;
      (*gcode).tool_ch_y=(*gcode).tool_ch_y/25.4;
      (*gcode).tool_ch_z=(*gcode).tool_ch_z/25.4;
     }
   if((*software).a_units==IN && a_units==MM)
     {for(i=0;i<7;i++)
        {(*gcode).a_coord[i]=(*gcode).a_coord[i]*25.4;
         (*gcode).a_rp[i]=(*gcode).a_rp[i]*25.4;
        }
      (*gcode).tool_ch_a=(*gcode).tool_ch_a*25.4;
     }
   else if((*software).a_units==MM && a_units==IN)
     {for(i=0;i<7;i++)
        {(*gcode).a_coord[i]=(*gcode).a_coord[i]/25.4;
         (*gcode).a_rp[i]=(*gcode).a_rp[i]/25.4;
        }
      (*gcode).tool_ch_a=(*gcode).tool_ch_a/25.4;
     }
   if((*software).a_units==DEG && a_units==RAD)
     {for(i=0;i<7;i++)
        {(*gcode).a_coord[i]=(*gcode).a_coord[i]/57.29578;
         (*gcode).a_rp[i]=(*gcode).a_rp[i]/57.29578;
        }
      (*gcode).tool_ch_a=(*gcode).tool_ch_a/57.29578;
     }
   else if((*software).a_units==RAD && a_units==DEG)
     {for(i=0;i<7;i++)
        {(*gcode).a_coord[i]=(*gcode).a_coord[i]*57.29578;
         (*gcode).a_rp[i]=(*gcode).a_rp[i]*57.29578;
        }
      (*gcode).tool_ch_a=(*gcode).tool_ch_a*57.29578;
     }
}

void load_gcode_setup(struct gcode_setup *gcode)
{
   int cancel=OFF, version=0, i;
   static struct gcode_setup temp_gcode;
   FILE *ifp;

   if(NULL==(ifp = fopen ("GCODE.INI","rb"))) cancel=ON;
   if(cancel==OFF) fscanf(ifp, "%d", &version);
   if(version==1)
     {if(NULL==fscanf(ifp, "%f",&temp_gcode.tool_ch_x)) cancel=ON;
      if(NULL==fscanf(ifp, "%f",&temp_gcode.tool_ch_y)) cancel=ON;
      if(NULL==fscanf(ifp, "%f",&temp_gcode.tool_ch_z)) cancel=ON;
      if(NULL==fscanf(ifp, "%f",&temp_gcode.tool_ch_a)) cancel=ON;
      if(NULL==fscanf(ifp, "%d",&temp_gcode.safer)) cancel=ON;
      if(NULL==fscanf(ifp, "%d",&temp_gcode.relarc)) cancel=ON;
      if(NULL==fscanf(ifp, "%d",&temp_gcode.tnum)) cancel=ON;
      if(NULL==fscanf(ifp, "%d",&temp_gcode.tnum_max)) cancel=ON;
      temp_gcode.tnum_max=99;
      for(i=0;i<7;i++)
        {if(NULL==fscanf(ifp, "%f",&temp_gcode.x_coord[i])) cancel=ON;
         if(NULL==fscanf(ifp, "%f",&temp_gcode.y_coord[i])) cancel=ON;
         if(NULL==fscanf(ifp, "%f",&temp_gcode.z_coord[i])) cancel=ON;
         if(NULL==fscanf(ifp, "%f",&temp_gcode.a_coord[i])) cancel=ON;
         if(NULL==fscanf(ifp, "%f",&temp_gcode.rp[i])) cancel=ON;
         if(NULL==fscanf(ifp, "%f",&temp_gcode.a_rp[i])) cancel=ON;
        }
      for(i=1;i<100;i++)
        {if(NULL==fscanf(ifp, "%s",&temp_gcode.tool_dis[i])) cancel=ON;
         if(NULL==fscanf(ifp, "%f",&temp_gcode.tool_dia[i])) cancel=ON;
         if(NULL==fscanf(ifp, "%f",&temp_gcode.tool_len[i])) cancel=ON;
        }
     }
   if(cancel==OFF) *gcode=temp_gcode;
   else (*gcode).relarc=ON;
   sprintf((*gcode).tool_dis[0],"NO TOOL");
   fclose(ifp);
}

void save_gcode_setup(struct gcode_setup *gcode)
{
   int i;
   FILE *ofp;
   
   ofp = fopen ("GCODE.INI","wb");
   fprintf(ofp, "1\n");   //version 1
   fprintf(ofp, "%f\n",(*gcode).tool_ch_x);
   fprintf(ofp, "%f\n",(*gcode).tool_ch_y);
   fprintf(ofp, "%f\n",(*gcode).tool_ch_z);
   fprintf(ofp, "%f\n",(*gcode).tool_ch_a);
   fprintf(ofp, "%d\n",(*gcode).safer);
   fprintf(ofp, "%d\n",(*gcode).relarc);
   fprintf(ofp, "%d\n",(*gcode).tnum);
   fprintf(ofp, "%d\n",(*gcode).tnum_max);
   for(i=0;i<7;i++)
     {fprintf(ofp, "%f\n",(*gcode).x_coord[i]);
      fprintf(ofp, "%f\n",(*gcode).y_coord[i]);
      fprintf(ofp, "%f\n",(*gcode).z_coord[i]);
      fprintf(ofp, "%f\n",(*gcode).a_coord[i]);
      fprintf(ofp, "%f\n",(*gcode).rp[i]);
      fprintf(ofp, "%f\n",(*gcode).a_rp[i]);
     }
   for(i=1;i<100;i++)
     {fprintf(ofp, "%s\n",(*gcode).tool_dis[i]);
      fprintf(ofp, "%f\n",(*gcode).tool_dia[i]);
      fprintf(ofp, "%f\n",(*gcode).tool_len[i]);
     }
   fclose(ofp);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -