亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mshowdoc.cpp

?? 數控譯碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
				if (GSim[CodeNum].sflag == 1)
				{
					sprintf(bf,"Line %d S error",CodeLine+1);
					return 1;
				}
				GSim[CodeNum].sflag = 1;
				GCodeNow.sflag = 1;
				
				if ((GSen[i+1]<'0') || (GSen[i+1] >'9') )
				{
					sprintf(bf,"Line %d S error",CodeLine+1);
					return 1;
				}
				fd = atoi(&GSen[i+1]);

				if (fd>S_MAX)
				{
					sprintf(bf,"Line %d S error",CodeLine+1);
					return 1;
				}
				GSim[CodeNum].s = fd;
				GCodeNow.s = fd;
				break;

			case 'f':
			case 'F':  
				if (GSim[CodeNum].fflag == 1)
				{
					sprintf(bf,"Line %d F error",CodeLine+1);
					return 1;
				}

				GSim[CodeNum].fflag = 1;
				GCodeNow.fflag = 1;
				if ((GSen[i+1]<'0') || (GSen[i+1] >'9') )
				{
					sprintf(bf,"Line %d F error",CodeLine+1);
					return 1;
				}
				fd = atoi(&GSen[i+1]);
				
				if (fd>F_MAX)
				{
					sprintf(bf,"Line %d F error",CodeLine+1);
					return 1;
				}

				GSim[CodeNum].f = fd;
				GCodeNow.f = fd;
				break;

			case 'm':
	   	    case 'M': 
				if (fd<0||fd>99)
				{
					sprintf(bf,"Line %d M error",CodeLine+1);
					return 1;
				}
				GSim[CodeNum].mflag = 1;
				GCodeNow.mflag = 1;
				fd = atoi(&GSen[i+1]);
				GSim[CodeNum].m = fd;
				GCodeNow.m = fd;
				break;

			case ' ':   /*Space*/
				break;	
				
			
			case '\n':

				
				break;
				
			
			case EOF:
				break;   /*End Of File*/	
			
			default:
			   break;
		}
		
	}


	return 0;


}

int CMshowDoc::CheckSen(char * GSen)
{
	
	if ( ( nflag == 1)&& (NNow <= NOld) )		// Check N number inc
		return 1;
		 
	
	if ((G92flag == 0)&& (xflag || yflag || zflag)&& (GSim[CodeNum].gflag == 0) )
		if (G00Sign == 0xff)
			return 1;
		else
		{
			GSim[CodeNum].g = G00Sign;
			GSim[CodeNum].gflag = 1;	
			
			GCodeNow.g = G00Sign;
			GCodeNow.gflag = 1;
		}

	if ((tflag == 1) && (G40Sign == 2) )
	{
		Tr = - Tr;
		tflag = 0;
	}

	NOld = NNow;

	CodeLine++;
	nflag = xflag = yflag = zflag = iflag = jflag = kflag = 0;
	G92flag = 0;
	

	return 0;
}


int CMshowDoc::CompTypeGet()
{

	int i;

	i = VectYNow * VectXOld - VectYOld * VectXNow;
	/*
	if ( ((G40Sign == 1)&&(GCodeNow.y * GCodeOld.x - GCodeNow.x * GCodeOld.y > 0) )
			||((G40Sign == 2)&&(GCodeNow.y * GCodeOld.x - GCodeNow.x * GCodeOld.y < 0))
			)*/

	if ((G40Sign == 1)  || (G40Sign == 3) || (G40Sign == 5) )

		return i;
	else
		return (-i);

}

void CMshowDoc::VectGet()
{
	if ((GCodeOld.g == 0) || (GCodeOld.g == 1) )   //直線
	{
		VectXOld = GCodeOld.x;
		VectYOld = GCodeOld.y;
	}
	else if (GCodeOld.g == 2)						//順圓
	{
		VectXOld = GCodeOld.y - GCodeOld.j;
		VectYOld = GCodeOld.i - GCodeOld.x;
	}
	else if (GCodeOld.g == 3)						//逆圓
	{
		VectXOld = -(GCodeOld.y - GCodeOld.j);
		VectYOld = -(GCodeOld.i - GCodeOld.x);
	}
	
	if ((GCodeNow.g == 0) || (GCodeNow.g == 1) )
	{
		VectXNow = GCodeNow.x;
		VectYNow = GCodeNow.y;
	}
	else if (GCodeNow.g == 2)
	{
		VectXNow = -GCodeNow.j;
		VectYNow = GCodeNow.i;
//		CenXNow = xOld + GCodeNow.i;				//圓弧絕對坐標
//		CenYNow = yOld + GCodeNow.j;
	}
	else if (GCodeNow.g == 3)
	{
		VectXNow = GCodeNow.j;
		VectYNow = -GCodeNow.i;
	}

	DistOld = (double)sqrt((double)(VectXOld * VectXOld + VectYOld * VectYOld));
	DistNow = (double)sqrt((double)(VectXNow * VectXNow + VectYNow * VectYNow));
		

	
}

void CMshowDoc::CutCompCalcu()
{
	if (CutCompType > 0 )
	{	
		xs =xOld - (int) (Tr * (VectYOld * DistNow + VectYNow * DistOld ) / ( DistOld * DistNow + VectXOld * VectXNow + VectYOld * VectYNow)); 
		ys =yOld + (int) (Tr * (VectXOld * DistNow + VectXNow * DistOld ) / ( DistOld * DistNow + VectXOld * VectXNow + VectYOld * VectYNow)); 
	
	
		if ((GCodeOld.g == 2) || (GCodeOld.g == 3) )  //前段為圓弧時,修正圓心
		{
			GCodeOld.i += xOld - GCodeOld.x - xLast;
			GCodeOld.j += yOld - GCodeOld.y - yLast;
		}
		
	
	}
	else if (CutCompType < 0)
	{
		xs = xOld - (int)(Tr * VectYOld / DistOld);
		ys = yOld + (int)(Tr * VectXOld / DistOld);

		if ((GCodeOld.g == 2) || (GCodeOld.g == 3) )  //前段為圓弧時,修正圓心
		{
			GCodeOld.i += xOld - GCodeOld.x - xLast;
			GCodeOld.j += yOld - GCodeOld.y - yLast;
		}
		
		GCodeOld.x = xs - xLast;
		GCodeOld.y = ys - yLast;
		
		xLast = xs;
		yLast = ys;
		
		memcpy(&GCode[GCodeNum],&GCodeOld,sizeof(GCODE));
		GCodeNum++;
		
		xs = xOld - (int)(Tr * VectYNow / DistNow);
		ys = yOld + (int)(Tr * VectXNow / DistNow);
		
		GCodeOld.x = xs - xLast;
		GCodeOld.y = ys - yLast;
		
		GCodeOld.i = xOld - xLast;  //圓弧過渡
		GCodeOld.j = yOld - yLast;
		
		if (G40Sign == 3)
			GCodeOld.g = 2;
		else
			GCodeOld.g = 3;
	}
	else
	{
		xs = xOld - (int)(Tr * VectYOld / DistOld);		
		ys = yOld + (int)(Tr * VectXOld / DistOld);	
		
		if ((GCodeOld.g == 2) || (GCodeOld.g == 3) )	//前段為圓弧時,修正圓心
		{
			GCodeOld.i += xOld - GCodeOld.x - xLast;
			GCodeOld.j += yOld - GCodeOld.y - yLast;
		}		
	}

	GCodeOld.x = xs - xLast;
	GCodeOld.y = ys - yLast;				
	xLast = xs;
	yLast = ys;
	memcpy(&GCode[GCodeNum],&GCodeOld,sizeof(GCODE));
	memcpy(&GCodeOld,&GCodeNow,sizeof(GCODE));
	memset(&GCodeNow,0,sizeof(GCODE));
	xOld = xNow;
	yOld = yNow;				
	GCodeNum++;
	
	


	
}

int CMshowDoc::CutComp()
{

	if (G40Sign == 0 )
	{
		memcpy(&GCode[GCodeNum],&GCodeNow,sizeof(GCODE));
		memset(&GCodeNow,0,sizeof(GCODE));
		GCodeNum++;
	}
	else if ( (G40Sign == 1)|| (G40Sign == 2) )
	{
		if(G40Beg == 0)
		{
			if (GCodeNow.gflag != 1)
			{
				sprintf(bf,"Line %d  Cut Com Build  error",CodeLine+1);
				return 1;

			}

			if ((GCodeNow.g == 0) || (GCodeNow.g == 1))
			{
				memcpy(&GCodeOld,&GCodeNow,sizeof(GCODE));
				xOld = xNow;
				yOld = yNow;
				memset(&GCodeNow,0,sizeof(GCODE));
				G40Beg = 1;
			}
			else
			{
				sprintf(bf,"刀補建立必須在直線段上");
				return 1;
				
			}
		}
		else
		{
	
			if ((GCodeNow.gflag == 0) && (GCodeNow.mflag == 0) && (GCodeNow.sflag == 0) && (GCodeNow.fflag == 0) )
				return 0;
						
			VectGet();
			CutCompType = CompTypeGet();

			if((GCodeNow.g == 0)||(GCodeNow.g == 1))
				if ((GCodeNow.x == 0) && (GCodeNow.y == 0) )  //沒有進給
				{
					sprintf(bf,"Line %d    error",CodeLine+1);
					return 1;					
				}
			else
			{   //缺少判誤 判斷接圓弧
										
			}

			if ( CutCompType > 0 )    //縮短型 直線接直線(或圓弧) 刀補建立
			{
				xs = xOld - (int)(Tr * VectYNow / DistNow) ;
				ys = yOld + (int)(Tr * VectXNow / DistNow);
				GCodeOld.x = xs - DUIDAOX;
				GCodeOld.y = ys - DUIDAOY;

				xLast = xs;
				yLast = ys;
				memcpy(&GCode[GCodeNum],&GCodeOld,sizeof(GCODE));
				memcpy(&GCodeOld,&GCodeNow,sizeof(GCODE));
				memset(&GCodeNow,0,sizeof(GCODE));
				xOld = xNow;
				yOld = yNow;
				
				GCodeNum++;
			}
			else
			{
				sprintf(bf,"刀補建立不是縮短型");
				return 1;					
			}								
		
			G40Beg = 0;

			if (G40Sign == 1)
				G40Sign = 3;
			else
				G40Sign = 4;
		}
	}
	else if ((G40Sign == 3)|| (G40Sign == 4) )  //刀補進行
	{
		if ((GCodeNow.gflag == 0) && (GCodeNow.mflag == 0) && (GCodeNow.sflag == 0) && (GCodeNow.fflag == 0) )
			return 0;

		VectGet();
		CutCompType = CompTypeGet();
		CutCompCalcu();
	}
	else  //刀補撤銷
	{
				
			VectGet();
			CutCompType = CompTypeGet();
			
			if((GCodeNow.g == 0)||(GCodeNow.g ==1))
				if ((GCodeNow.x == 0) && (GCodeNow.y == 0) )  //沒有進給
				{
					sprintf(bf,"Line %d    error",CodeLine+1);
					return 1;					
				}
				else
				{   //缺少判誤 判斷接圓弧
					
				}
				
				if ( CutCompType > 0 )    //縮短型 直線(或圓弧)接直線 刀補撤銷
				{
					xs = xOld - (int)(Tr * VectYOld / DistOld);
					ys = yOld + (int)(Tr * VectXOld / DistOld);
				

					if ((GCodeOld.g == 2) || (GCodeOld.g == 3))
					{
						GCodeOld.i += xOld - GCodeOld.x;
						GCodeOld.j += yOld - GCodeOld.y;

					}

					GCodeOld.x = xs - xLast;
					GCodeOld.y = ys - yLast;

					
					memcpy(&GCode[GCodeNum],&GCodeOld,sizeof(GCODE));
					GCodeNum++;

					GCodeOld.x = xNow - xs;
					GCodeOld.y = yNow - ys;
					xLast = xNow;
					yLast = yNow;
					memcpy(&GCode[GCodeNum],&GCodeOld,sizeof(GCODE));
					memset(&GCodeNow,0,sizeof(GCODE));
					GCodeNum++;
				}
				else
				{
					sprintf(bf,"刀補撤銷不是縮短型");
					return 1;					
				}
		
//				G40End = 1;
				G40Sign = 0;			

//		}
		/*
		else
				{
					memcpy(&GCode[GCodeNum],&GCodeOld,sizeof(GCODE));
					GCodeNum++;
		
					if ((GCodeNow.gflag == 0) && (GCodeNow.mflag == 0) && (GCodeNow.sflag == 0) && (GCodeNow.fflag == 0) )
						return 0;
					else
					{
						memcpy(&GCode[GCodeNum],&GCodeNow,sizeof(GCODE));
						GCodeNum++;
					}
		
					G40Sign = 0;
					G40End = 0;
		
				}*/
		
		
	

	}


	
	return 0;

	
}


void CMshowDoc::Init()
{
	for (int i=0;i<50;i++)
	{
		memset(&GSim[i],0,sizeof(GCODE));
		memset(&GCode[i],0,sizeof(GCODE));
	}

	
	memset(&GCodeNow,0,sizeof(GCODE));
	memset(&GCodeOld,0,sizeof(GCODE));

	GCodeNum = 0;

	G91Sign = 0;
	G92flag = 0;
	
	nflag = xflag = yflag = zflag = iflag = jflag = kflag = tflag = 0;
	CodeLine = 0;



	NOld = -1;
	NNow = 0;

	G00Sign = 0xff;

	G40Sign = 0; //默認 無刀補
//	memset( &GDataOld, 0, sizeof(GDATA));
//	memset( &GDataNew, 0, sizeof(GDATA));
	G40Beg = 0;
//	G40End = 0;
	


	datumx = DUIDAOX;datumy = DUIDAOY;  datumz = DUIDAOZ;
	tx = ty = tz = 0;
	mchx = datumx + tx;
	mchy = datumy + ty;
	mchz = datumz + tz;

	G31x = G31y =G31z = 0;

	G53x = 400;
	G53y = 0;
	G53z = 0;


	xNow = mchx;
	yNow = mchy;
	zNow = mchz;

	xOld = xNow;
	yOld = yNow;
	xLast = xNow;
	yLast = yNow;
}

void CMshowDoc::List()
{
    CStdioFile myinputfile;
	BOOL isend=TRUE;
	myinputfile.Open(FileName,CFile::modeRead| CFile::typeText );
	CString mystring[100];
	int number=0;
	while (isend)
	{
			isend = myinputfile.ReadString(mystring[number]);
			if (isend) 
			{
				number++;
			}
			else
				number--;
	}
	myinputfile.Close();

    CMshowView *pMshowview = (CMshowView*)((CMainFrame*)AfxGetMainWnd())->GetActiveView();
    
	((CListBox *)(((CMainFrame*)AfxGetMainWnd())->m_wndDialogBar.GetDlgItem(IDC_LIST)))->ResetContent();
	for(int i=0;i<=number;i++)
	{
		((CListBox *)(((CMainFrame*)AfxGetMainWnd())->m_wndDialogBar.GetDlgItem(IDC_LIST)))->InsertString(i,mystring[i]);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美探花视频资源| 成人爽a毛片一区二区免费| 精品成a人在线观看| 91一区二区三区在线播放| 麻豆91在线观看| 亚洲一区视频在线观看视频| 精品99一区二区三区| 欧美日韩小视频| 91在线一区二区| 欧美一区二区三区性视频| 91在线观看成人| 国产69精品一区二区亚洲孕妇| 天天综合网 天天综合色| 亚洲视频在线一区二区| 国产日韩欧美不卡| 精品久久国产字幕高潮| 91精品国产福利| 欧美日韩久久久一区| 91福利精品第一导航| www.欧美精品一二区| 国产精品一区二区黑丝| 久久激情五月婷婷| 欧美aaaaa成人免费观看视频| 亚洲日本一区二区三区| 国产精品看片你懂得 | 久久麻豆一区二区| 日韩一级大片在线| 欧美一区二区三区公司| 欧美巨大另类极品videosbest | 日韩美女啊v在线免费观看| 久久久久9999亚洲精品| 精品久久国产字幕高潮| 精品卡一卡二卡三卡四在线| 91精品在线麻豆| 91麻豆精品国产91久久久久久久久| 欧洲精品在线观看| 91久久精品一区二区三区| 色欧美片视频在线观看| 色婷婷亚洲婷婷| 日本高清免费不卡视频| 欧美日韩一级视频| 8x8x8国产精品| 欧美一区二区日韩| 日韩精品综合一本久道在线视频| 日韩三级.com| 久久99在线观看| 韩国av一区二区三区四区| 久久国产麻豆精品| 国产一区二区精品久久99| 国产成人免费av在线| 波多野结衣精品在线| 色综合天天综合| 欧美午夜理伦三级在线观看| 欧美乱妇23p| 精品99999| 国产精品网友自拍| 亚洲一区av在线| 免费成人深夜小野草| 国产精品18久久久久| 成人精品视频网站| 91一区二区三区在线播放| 欧美人与禽zozo性伦| 26uuuu精品一区二区| 日韩一区在线看| 午夜精品免费在线| 国产一区二区电影| 色综合久久天天综合网| 欧美久久婷婷综合色| 久久这里只有精品6| 中文字幕国产精品一区二区| 亚洲一区二区中文在线| 免费的成人av| 91视频在线看| 欧美一区二区三区视频在线观看| 国产日韩精品一区二区浪潮av| 亚洲欧美日韩电影| 久久福利资源站| 91毛片在线观看| 日韩精品中午字幕| 亚洲精选免费视频| 黄色小说综合网站| 91精品91久久久中77777| 日韩精品一区二区在线| 亚洲视频狠狠干| 久久国产成人午夜av影院| 日本精品一区二区三区高清| 久久先锋影音av鲁色资源网| 亚洲一区国产视频| 国产河南妇女毛片精品久久久| 欧美日韩免费观看一区二区三区 | 久久国产视频网| 色婷婷国产精品| 久久综合成人精品亚洲另类欧美 | 久久草av在线| 欧美视频精品在线| 国产精品网站在线观看| 久久99精品久久久久久 | 欧美激情在线一区二区| 日本不卡视频一二三区| 91色视频在线| 国产亚洲欧美激情| 久久爱www久久做| 欧美日韩另类一区| 亚洲精品免费在线| 成人高清免费观看| 精品国产精品网麻豆系列| 亚洲成人一二三| 色吊一区二区三区| 国产精品午夜春色av| 精品一区二区在线视频| 欧美精品色一区二区三区| 亚洲精品国产视频| 不卡区在线中文字幕| 久久只精品国产| 久久99最新地址| 日韩一区二区免费在线电影| 亚洲高清在线精品| 97se亚洲国产综合在线| 国产精品福利在线播放| 粉嫩在线一区二区三区视频| 麻豆一区二区在线| 7777精品伊人久久久大香线蕉| 一区二区在线观看免费| a亚洲天堂av| 自拍av一区二区三区| 成人精品视频.| 中文字幕在线观看一区| 成人免费精品视频| 国产精品第13页| 国产99久久久精品| 亚洲国产成人自拍| 国产·精品毛片| 欧美国产一区在线| 成人性视频网站| 国产精品久久久久久久浪潮网站| 成人黄色一级视频| 亚洲人成在线播放网站岛国| 91免费版在线| 亚洲五码中文字幕| 欧美伦理影视网| 奇米一区二区三区| 欧美成人在线直播| 国产高清亚洲一区| 亚洲欧美在线视频| 在线观看免费一区| 亚洲不卡在线观看| 日韩一级大片在线观看| 狠狠狠色丁香婷婷综合久久五月| 久久婷婷成人综合色| 成人动漫视频在线| 一区二区三区四区国产精品| 欧美午夜一区二区三区 | 91国产成人在线| 五月天激情综合| 久久综合狠狠综合久久综合88| 粉嫩一区二区三区性色av| 综合久久综合久久| 欧美日韩国产美| 国产一区二区三区免费播放| 亚洲欧洲色图综合| 一区二区三区免费看视频| 337p亚洲精品色噜噜狠狠| 国产一区二区三区久久久| 国产精品成人免费精品自在线观看| 在线视频一区二区三| 久久精品国产亚洲5555| 日本一区二区三区国色天香 | av中文字幕不卡| 亚洲一区二区三区中文字幕| 欧美一区二区三区在线电影| 成人网男人的天堂| 亚洲国产综合在线| 久久久99久久精品欧美| 91捆绑美女网站| 日本女优在线视频一区二区| 国产精品视频一二| 欧美二区在线观看| gogo大胆日本视频一区| 日本强好片久久久久久aaa| 国产精品欧美一区二区三区| 欧美日韩激情一区| 国产99久久久国产精品免费看| 亚洲成av人**亚洲成av**| 国产欧美精品区一区二区三区 | 欧美日韩二区三区| 成人午夜视频网站| 日韩激情视频网站| 中文字幕日韩一区| 欧美不卡一区二区| 欧美性受xxxx| 国产aⅴ综合色| 日本成人在线网站| 一区二区三区免费| 中文字幕乱码久久午夜不卡| 日韩一区二区三区精品视频| 97se亚洲国产综合在线| 国产盗摄一区二区三区| 蜜臀av一区二区三区| 一级特黄大欧美久久久| 欧美国产日韩亚洲一区|