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

📄 simug.bak

📁 激光加工控制系统 可以读入plt文件
💻 BAK
字号:
#include <stdio.h>
#include <graphics.h>
#include <math.h>

char buf[100];
char filename[200];
int down_flag= 0;
long x_c,y_c;

main()
{
  FILE *fpe;
  int gdriver = DETECT, gmode=18, errorcode;
  int ret,i,x1,y1,x2,y2;
  long minx,miny,maxx,maxy;
  long curx,cury,x,y,oldx,oldy;
  int x_flag,y_flag;

//  printf("Please Input Your File Name To Simu:\n");
//  scanf("%s",filename);
  x_c = y_c = 0;
  strcpy(filename,"c:\\jgs\\s1.g");
  fpe = fopen(filename,"rb");
  ret = get_a_line(fpe);
  minx = miny = maxx = maxy = curx = cury = 0;
  oldx = oldy = 0;
  while (ret != -1){
    i = 0;
    x_flag = y_flag = 0;
    while ((buf[i] != 'X')&&(buf[i]!=0))
      i ++;
    if (buf[i] == 'X'){
      x = atoi(&(buf[i+1]));
      x_flag = 1;
    }
    i = 0;
    while ((buf[i] != 'Y')&&(buf[i]!=0))
      i ++;
    if (buf[i] == 'Y'){
      y = atoi(&(buf[i+1]));
      y_flag = 1;
    }
    if (x_flag == 0)
      x = oldx;
//    else
//      x = oldx;
    if (y_flag == 0)
      y = oldy;
//    else
//      y = oldy;
    if (minx > x)
	minx = x;
    if (maxx < x)
	maxx = x;
    if (miny > y)
	miny = y;
    if (maxy < y)
	maxy = y;
    ret = get_a_line(fpe);
    oldx = x;
    oldy = y;
  }
  fclose(fpe);
  fpe = fopen(filename,"rb");
  ret = get_a_line(fpe);
  oldx = oldy = 0;
  initgraph(&gdriver, &gmode, "c:\\jgs");
  setcolor(WHITE);
  oldx = oldy = 0;
  while (ret != -1){
    i = 0;
    x_flag = y_flag = 0;
    while ((buf[i] != 'X')&&(buf[i]!=0))
      i ++;
    if (buf[i] == 'X'){
      x = atoi(&(buf[i+1]));
      x_flag = 1;
    }
    i = 0;
    while ((buf[i] != 'Y')&&(buf[i]!=0))
      i ++;
    if (buf[i] == 'Y'){
      y = atoi(&(buf[i+1]));
      y_flag = 1;
    }
    if (x_flag == 0)
      x = oldx;
//    else
//      x = oldx;
    if (y_flag == 0)
      y = oldy;
//    else
//      y = oldy;
    x_c = x;
    y_c = y;
    curx = x;
    cury = y;
    if (fabs(maxx-minx) > fabs(maxy-miny)){
	x1 = 480.0*(oldx-(maxx+minx)/2.0)/(maxx-minx) + 240;
	y1 = 240 - 480.0*(oldy-(maxy+miny)/2.0)/(maxx-minx);
	x2 = 480.0*(curx-(maxx+minx)/2.0)/(maxx-minx) + 240;
	y2 = 240 - 480.0*(cury-(maxy+miny)/2.0)/(maxx-minx);
    }
    else{
	x1 = 480.0*(oldx-(maxx+minx)/2.0)/(maxy-miny) + 240;
	y1 = 240 - 480.0*(oldy-(maxy+miny)/2.0)/(maxy-miny);
	x2 = 480.0*(curx-(maxx+minx)/2.0)/(maxy-miny) + 240;
	y2 = 240 - 480.0*(cury-(maxy+miny)/2.0)/(maxy-miny);
    }
    line(x1,y1,x2,y2);
    oldx = x;
    oldy = y;
    ret = get_a_line(fpe);
  }
  fclose(fpe);
  printf("%ld    %ld\n",x_c,y_c);
  getch();
  closegraph();
}

get_a_line(FILE *fpe)
{
  int i,ch;

  ch = fgetc(fpe);
  if (ch == EOF)
    return -1;
  i = 0;
  while ((ch != 13)&&(ch != 10)&&(ch != EOF)){
    buf[i++] = ch;
    ch = fgetc(fpe);
  }
  buf[i] = 0;
  if (ch == EOF)
    return -1;
  fgetc(fpe);

  return 0;
}

⌨️ 快捷键说明

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