📄 operator.bak
字号:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include "definitions.h"
#include "utilities.h"
#include "setup.h"
#include "help.h"
#include "operator.h"
void operator_setup(struct hard_setup *hardware, struct soft_setup *software, struct gcode_setup *gcode)
{
float value;
int ch, curnt=0, i;
static char item[9][35], screen[2000];
gettext(21,1,60,25,screen);
while(1)
{window(21,1,60,25);
textbackground(LIGHTGRAY);
clrscr();
box(21,1,60,13, LIGHTGRAY,BLACK,WHITE,BLUE);
window(21,1,60,25);
gotoxy(15,1); cprintf("<Esc> To Exit");
sprintf(item[0],"Coordinate Offsets");
sprintf(item[1],"Tool Table ");
if((*software).units==IN)
{sprintf(item[2],"<X> Tool Change Pos. (IN) %s",prn_val_all((*gcode).tool_ch_x));
sprintf(item[3],"<Y> Tool Change Pos. (IN) %s",prn_val_all((*gcode).tool_ch_y));
sprintf(item[4],"<Z> Tool Change Pos. (IN) %s",prn_val_all((*gcode).tool_ch_z));
sprintf(item[8],"Units IN");
}
else
{sprintf(item[2],"<X> Tool Change Pos. (MM) %s",prn_val_all((*gcode).tool_ch_x));
sprintf(item[3],"<Y> Tool Change Pos. (MM) %s",prn_val_all((*gcode).tool_ch_y));
sprintf(item[4],"<Z> Tool Change Pos. (MM) %s",prn_val_all((*gcode).tool_ch_z));
sprintf(item[8],"Units MM");
}
if((*software).a_units==IN) sprintf(item[5],"<Aux> Tool Ch. Pos. (IN) %s",prn_val_all((*gcode).tool_ch_a));
if((*software).a_units==MM) sprintf(item[5],"<Aux> Tool Ch. Pos. (MM) %s",prn_val_all((*gcode).tool_ch_a));
if((*software).a_units==DEG) sprintf(item[5],"<Aux> Tool Ch. Pos. (DEG) %s",prn_val_all((*gcode).tool_ch_a));
if((*software).a_units==RAD) sprintf(item[5],"<Aux> Tool Ch. Pos. (RAD) %s",prn_val_all((*gcode).tool_ch_a));
if((*gcode).safer==ON) sprintf(item[6],"G0 Movement LINEAR (SAFER)");
else sprintf(item[6],"G0 Movement NON-LINEAR (FASTER)");
if((*gcode).relarc==ON) sprintf(item[7],"I And J Always Relative ON");
else sprintf(item[7],"I And J Always Relative OFF");
for(i=0;i<9;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]); textbackground(LIGHTGRAY);
break;
}
if (ch == 27) {puttext(21,1,60,25,screen); return;}
if (ch > 0) continue;
ch = getch();
switch (ch)
{case 72 : --curnt; break; //up arrow
case 80 : ++curnt; break; //down arrow
case 59 : //f1
switch(curnt)
{case 0: help(43); break;
case 1: help(44); break;
case 2: case 3: case 4: case 5: help(45); break;
case 6: help(46); break;
case 7: help(48); break;
case 8: help(47); break;
}
break;
}
if (curnt < 0) curnt=8;
if (curnt > 8) curnt=0;
}
switch(curnt)
{case 0: offsets(gcode); break;
case 1: tools(gcode); break;
case 2:
case 3:
case 4:
case 5:
double_box(30,15,50,20, RED,WHITE,BLUE);
gotoxy(4,3); cprintf("Enter New Value");
_setcursortype(_NORMALCURSOR);
gotoxy(8,4);
if((i=get_value_all(&value))==ESC || i==NULL)
{_setcursortype(_NOCURSOR);
clrscr();
window(21,1,60,25);
break;
}
_setcursortype(_NOCURSOR);
clrscr();
window(21,1,60,25);
if(curnt==2) (*gcode).tool_ch_x=value;
if(curnt==3) (*gcode).tool_ch_y=value;
if(curnt==4) (*gcode).tool_ch_z=value;
if(curnt==5) (*gcode).tool_ch_a=value;
break;
case 6:
if((*gcode).safer==ON) (*gcode).safer=OFF;
else (*gcode).safer=ON;
break;
case 7:
if((*gcode).relarc==ON) (*gcode).relarc=OFF;
else (*gcode).relarc=ON;
break;
case 8:
if((*software).units==MM)
{change_gcode_units(software, gcode, IN, IN);
change_units(hardware, software, IN, IN);
}
else
{change_gcode_units(software, gcode, MM, MM);
change_units(hardware, software, MM, MM);
}
break;
}
}
}
void tools(struct gcode_setup *gcode)
{
int curnt=1, page=0, i;
float temp_dia, temp_len;
char temp_dis[10], ch, temp_val[10];
window(21,1,60,25); textbackground(LIGHTGRAY); clrscr();
gotoxy(4,1); textcolor(BLUE); cprintf("<Enter> To Edit Or <Esc> To Exit");
box(21,3,60,25, LIGHTGRAY,BLACK,WHITE,BLUE);
while (1)
{box(21,3,60,25, LIGHTGRAY,BLACK,WHITE,LIGHTGRAY); textbackground(BLUE);
gotoxy(3,3); cprintf("Tool# Disc. Diameter Length ");
textcolor(BLUE); textbackground(LIGHTGRAY);
gotoxy(4,1); cprintf("Current Tool: %2d",(*gcode).tnum);
if(curnt==17) {page++; curnt=0;}
else if(curnt==0 && page>0) {page--; curnt=17;}
if(page==0)
{for(i=0;i<17;i++)
{gotoxy(4,i+4);
sprintf(temp_val,"%s",prn_val((*gcode).tool_len[i]));
cprintf("%2d %8s %s %s",i,(*gcode).tool_dis[i],
prn_val((*gcode).tool_dia[i]),temp_val);
}
if(100>(page+1)*16+1) {gotoxy(4,i+4); cprintf("More Tools...");}
}
else
{gotoxy(4,4); cprintf("Previous Tools...");
for(i=0;i<min(99-page*16,16);i++)
{gotoxy(4,i+5);
sprintf(temp_val,"%s",prn_val((*gcode).tool_len[page*16+1+i]));
cprintf("%2d %8s %s %s",page*16+1+i,(*gcode).tool_dis[page*16+1+i],
prn_val((*gcode).tool_dia[page*16+1+i]),temp_val);
}
if(100>(page+1)*16+1) {gotoxy(4,i+5); cprintf("More Tools...");}
}
while (1)
{gotoxy(4,curnt+4); textbackground(BROWN);
if(curnt==17) cprintf("More Tools...");
else if(curnt==0 && page!=0) cprintf("Previous Tools...");
else
{sprintf(temp_val,"%s",prn_val((*gcode).tool_len[page*16+curnt]));
cprintf("%2d %8s %s %s",page*16+curnt,(*gcode).tool_dis[page*16+curnt],
prn_val((*gcode).tool_dia[page*16+curnt]),temp_val);
}
ch=getch();
gotoxy(4,curnt+4); textbackground(LIGHTGRAY);
if(curnt==17) cprintf("More Tools...");
else if(curnt==0 && page!=0) cprintf("Previous Tools...");
else
{sprintf(temp_val,"%s",prn_val((*gcode).tool_len[page*16+curnt]));
cprintf("%2d %8s %s %s",page*16+curnt,(*gcode).tool_dis[page*16+curnt],
prn_val((*gcode).tool_dia[page*16+curnt]),temp_val);}
if ((ch==13 || ch==32) && curnt!=0 && curnt!=17)
{if(page*17+curnt==(*gcode).tnum)
{box(22,19,59,24, RED,BLACK,WHITE,WHITE);
gotoxy(4,3); cprintf(" Can't Edit Current Tool");
gotoxy(4,4); cprintf(" <Any Key>");
getch();
break;
}
gotoxy(4,curnt+4); textbackground(GREEN);
sprintf(temp_val,"%s",prn_val((*gcode).tool_len[page*16+curnt]));
cprintf("%2d %8s %s %s",page*16+curnt,(*gcode).tool_dis[page*16+curnt],
prn_val((*gcode).tool_dia[page*16+curnt]),temp_val);
box(22,19,59,24, RED,BLACK,WHITE,WHITE);
gotoxy(2,1); cprintf(" <Esc> To Abort");
gotoxy(4,3); cprintf("Tool#: %2d Discription:",page*16+curnt);
gotoxy(4,4); cprintf("Dia.:");
gotoxy(20,4); cprintf("Length:");
_setcursortype(_NORMALCURSOR); temp_dia=temp_len=0; sprintf(temp_dis,"NONE");
gotoxy(28,3); if(ESC==get_string_all(temp_dis)) {_setcursortype(_NOCURSOR); break;}
gotoxy(10,4); if(ESC==get_value(&temp_dia)) {_setcursortype(_NOCURSOR); break;}
gotoxy(28,4); if(ESC==get_value(&temp_len)) {_setcursortype(_NOCURSOR); break;}
_setcursortype(_NOCURSOR);
sprintf((*gcode).tool_dis[page*16+curnt],"%s",temp_dis);
(*gcode).tool_dia[page*16+curnt]=temp_dia;
(*gcode).tool_len[page*16+curnt]=temp_len;
(*gcode).tnum_max=(*gcode).tnum_max+1;
break;
}
if (ch==27 || ch==13 || ch==32) break;
if (ch > 0) continue;
ch = getch();
switch (ch)
{case 72 : --curnt; break; //up arrow
case 80 : ++curnt; break; //down arrow
case 59 : help(53); break;
}
if (ch==27) {ch=0; break;}
if (curnt < 0 || (page==0 && curnt<1)) curnt=min(99-(16*page),17);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -