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

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

?? mastercontroldlg.cpp

?? Source code for cnc controlling three dimentioal machine
?? CPP
?? 第 1 頁 / 共 5 頁
字號:

void CMasterControlDlg::BuildStringArray()
{
  LPSTR lpNext = TextBuffer;
  LPSTR lpEnd =  TextBuffer + FileLength - 2;
  *lpEnd = '\n';
 for( cGLines = 0; lpNext < lpEnd; cGLines++, lpNext++)
 {
  lpNext = strchr(lpNext, '\n');
  if( lpNext == NULL) break;
  if( *lpNext == '\n' || *lpNext == '\r') lpNext+= sizeof(char);
  
 }
 GLines.SetSize(cGLines);
 STRING string;
 lpNext = TextBuffer;
 for( int iLine = 0; iLine < cGLines; iLine++)
 {
   string.ccLen = 0;
   string.pText = lpNext;
   while(( *lpNext != '\n') && ( *lpNext != '\r'))
   {
     lpNext++; string.ccLen++;
     
   }
   GLines[iLine] = string;
   *lpNext = 0;
   lpNext +=( 2* sizeof(char));
   while( *lpNext == '\n' || *lpNext == '\r') lpNext+= sizeof(char);
 }

 curline = 0; lastline = cGLines;
  

}

void CMasterControlDlg::QuantifyVectors()
{

	double OldX=0,OldY=0,OldZ=0;
	double diffX, diffY, diffZ;
	static double oldangle = 0;
	static double oldradius;
    double newangle;
	double newradius;
	Line data;
	

    maxX = 0; maxY = 0; maxZ = 0;   //set mins and max's
	minX = 0; minY = 0; minZ = 0;

	data = DecodeLine( 0 );
	if(data.xloc < 9999) maxX = data.xloc; else maxX = 0;
    if(data.yloc < 9999) maxY = data.yloc; else maxY = 0;  // for maximums
    if(data.zloc < 9999) maxZ = data.zloc; else maxZ = 0;

	if( data.xloc < 9999) OldX = data.xloc;
	if( data.yloc < 9999) OldY = data.yloc;
	if( data.zloc < 9999) OldZ = data.zloc;
	int cCount = 0;
    double distance = 0;
	for( int x = 1; x < cGLines; x++)
	{
	 cCount++;
	 data = DecodeLine( x );
	 if( data.xloc < 9999 ) 
	 {  diffX =  OldX - data.xloc; 
	    OldX = data.xloc;
		if( OldX < minX ) minX = OldX;
		if( OldX > maxX ) maxX = OldX;
	 } 
	   else diffX = 0;
	 if( data.yloc < 9999 ) 
	 {  diffY =  OldY - data.yloc; 
	    OldY = data.yloc;
		if( OldY < minY ) minY = OldY;
		if( OldY > maxY ) maxY = OldY;
	 }
	   else diffY = 0;
	 if( data.zloc < 9999 ) 
	 { diffZ =  OldZ - data.zloc;
	   OldZ = data.zloc;
	   if( OldZ < minZ ) minZ = OldZ;
	   if( OldZ > maxZ ) maxZ = OldZ;
	 } 
	   else diffZ = 0;

      
     CalcAngle( newradius, newangle, diffX, diffY);  // calculate angle and radius
     m_LinearMM += (int)newradius;                   // linear mm's of cut tabulation
	 
	 distance += newradius;
     double change = fabs( newangle - oldangle);     // calculate change of direction ( x/y only )
      
	 
       
	 if( newradius == 0) { vector[x] = 1; steps[x] = 0; }
	  else
		  if( ((change < 1)  ||  (change > 5.28)) && distance < MinDist) vector[x] = 1;
		     else 
			 {
				 vector[x] = 0;
                 steps[x] = (int) (distance / XRes);
				 distance = 0;
			 }


	 oldangle = newangle;
	 oldradius = newradius;

	}
    
	m_Linear = m_LinearMM;
	m_LinearEd.UpdateData(false);
	
	 
	m_XMax = maxX;
	m_YMax = maxY;
	m_ZMax = maxZ;
	m_XMin = minX;
	m_YMin = minY;
	m_ZMin = minZ;
	curline = 0;
	m_CurLineInt = curline;

    double maxX1 = maxX; double maxY1 = maxY;
	if( maxX1 < 100 ) maxX1 = 100;
    if( maxY1 < 100 ) maxY1 = 100;
	UpdateData(FALSE);
    bitmapX = 180/((maxX - minX)+1);
	bitmapY = 180/((maxY - minY)+1);
	bitmapZ = 128/((0 - minZ)+.001);
	if( bitmapZ < 0) bitmapZ = -bitmapZ;
	GMode = 0;
	Axis = 1;

}


Line CMasterControlDlg::DecodeLine(int current)
{
 Line data;
 char *lp;
 
 data.xloc = 9999;
 data.yloc = 9999;
 data.zloc = 9999;
 data.rval = 9999;
 data.ival = 9999;
 data.jval = 9999;
 data.kval = 9999;
 data.gmode = 9999;
 data.tool = 9999;
 data.mval = 9999;

  

  lp = GLines[current].pText;
	int cc = 0;
	while( lp[cc] != 0 )
	{
	  switch ( lp[cc] )
	  {
	   case 'X' : data.xloc = atof( &lp[cc+1] );
		          break;
	   case 'Y' : data.yloc = atof( &lp[cc+1] );
		          break;
	   case 'Z' : data.zloc = atof( &lp[cc+1] );
		  		  break;
	   case 'R' : data.rval = atof( &lp[cc+1] );
		          break;
       case 'K' : data.kval = atof( &lp[cc+1] );
		          break;
	   case 'I' : data.ival = atof( &lp[cc+1] );
		          break;
	   case 'J' : data.jval = atof( &lp[cc+1] ); 
				  break;
	   case 'G' : data.gmode = atoi( &lp[cc+1] );
		          if( data.gmode <= 3) GMode = data.gmode;
				  if( data.gmode == 20) Inches = true;
				  if( data.gmode == 21) Inches = false;
				  if( data.gmode == 4) Sleep( Dwell );
				  if( data.gmode == 17) Axis = 1;
				  if( data.gmode == 18) Axis = 2;
				  if( data.gmode == 19) Axis = 3;
                  if( Inches ) XRes = XResIn; else XRes = XResmm;
                  if( Inches ) YRes = YResIn; else YRes = YResmm;
                  if( Inches ) ZRes = ZResIn; else ZRes = ZResmm;
                  MaxRes = __min( XRes, YRes);
                  MaxRes = __min( MaxRes , ZRes );
		          break;
	   case 'T' : data.tool =  atoi( &lp[cc+1]);
		          break;
       case 'M' : if( !RUN ) break;
		          data.mval =  atoi( &lp[cc+1]);
		          if ( data.mval == 6 && !Simulate) data.tool = 0;   // or should there be a bit?
				  if ( data.mval == 3 && !Simulate) RouterOn();
				  if ( data.mval == 4 && !Simulate) RouterOn();
				  if ( data.mval == 5) RouterOff();
				   
		          
	  }
	  cc++;
	}

 return data;
}

void CMasterControlDlg::CalcAngle(double &radius, double &theta, double x, double y)
{
    if( x == 0 && y == 0) { radius = 0; theta = 0; return; }
    radius = sqrt(x * x + y * y);  
    if (radius == 0)     
	{
		theta = 0;
		return; 
    }     
	if (y > 0)     
	{
		theta = acos(x / radius);
	}     
	else     
	{         
		// acos(0) == pi / 2         // I'm using the trig functions instead of a constant
		                             // to ensure that the conversion functions use the    
		                             // same values when going in both directions. 
	 theta = 4.0 * acos((float)0) - acos(x / radius);     } 
}


void CMasterControlDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CMasterControlDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CMasterControlDlg::OnPrefs() 
{
 
	CPropertySheet *Prefs = new CPropertySheet(	"Configuration");
	CPropertyPage *pinsheet = new pinouts( );
    CPropertyPage *propaux = new PropAux( );
	CPropertyPage *pulsesheet = new pulses( );
	CPropertyPage *speedsheet = new speeds( );
	CPropertyPage *homesheet = new homeconf( );
    CPropertyPage *translations = new Translation( );
	CPropertyPage *feeds = new Feeds();

	Prefs->AddPage(pinsheet);
	Prefs->AddPage(propaux);
	Prefs->AddPage(pulsesheet);
	Prefs->AddPage(speedsheet);
	Prefs->AddPage(homesheet);
	Prefs->AddPage(translations );
	Prefs->AddPage(feeds);
	Prefs->DoModal();
	SetupVars();
	delete Prefs;
	delete pinsheet;
	delete propaux;
	delete pulsesheet;
	delete homesheet;
	delete translations;


}

void CMasterControlDlg::OnAbout() 
{
	CAboutDlg *about = new CAboutDlg();
	about->DoModal();
	delete about;
	
	
}

bool CMasterControlDlg::SetupVars()
{

  bool Success = FALSE;
  int x = 2;
  CString pin;
  int pos;
  CString buffer;
   
   while( x < 10)
   {
     pin.Format( "Pin%d",x );
     pos = AfxGetApp( )->GetProfileInt("Preferences", (LPCTSTR)pin , -99 );
   	 if( pos == -99 )
	 {
		 CallPage( 1 );       // call property page #1 to replenish vars
		 return false;                // then repeat
	 }
	 switch (pos) 
	 {
	 case 1:  XDirMask = 1 << ( x-2 );
		      break;
	 case 2:  XStepMask = 1 << ( x-2 );
		      break;
	 case 3:  YDirMask  = 1 << ( x-2 );
              break;
	 case 4:  YStepMask = 1 << ( x-2 );
              break; 
	 case 5:  ZDirMask  = 1 << ( x-2 );
              break; 
	 case 6:  ZStepMask = 1 << ( x-2 );
              break; 
	 case 7:  SpindleMask = 1 << ( x-2 );
              break; 
	 case 8:  EmergMask = 0;
              break; 
	 }
	x++; 
   }

   while( x < 14)
   {
     pin.Format( "Pin%d",x );
     pos = AfxGetApp( )->GetProfileInt("Preferences", (LPCTSTR)pin , -99 );
   	 if( pos == -99 )
	 {
		 CallPage( 5 );       // call property page #1 to replenish vars
		 return false;                // then repeat
	 }
	 switch (pos) 
	 {
	 case 1:  EStopMask = 1 << ( x-10 );
		      break;
	 case 2:  LimitXMask= 1 << ( x-10 );
		      break;
	 case 3:  LimitYMask  = 1 << ( x-10 );
              break;
	 case 4:  LimitZMask = 1 << ( x-10 );
              break; 
	 }
	x++; 
   }
   x = 1;
   pin.Format( "Pin%d",x );
     pos = AfxGetApp( )->GetProfileInt("Preferences", (LPCTSTR)pin , -99 );
   	 if( pos == -99 )
	 {
		 CallPage( 5 );       // call property page #1 to replenish vars
		 return false;                // then repeat
	 }
	 switch (pos) 
	 {
	 case 1:  Aux1Mask = 1 ;
		      break;
	 case 2:  Aux2Mask = 1 ;
		      break;
	 case 3:  Aux3Mask = 1 ;
              break;
	 case 4:  EnableMask = 1;
              break; 
	 }
   x = 15;
   pin.Format( "Pin%d",x );
     pos = AfxGetApp( )->GetProfileInt("Preferences", (LPCTSTR)pin , -99 );
   	 if( pos == -99 )
	 {
		 CallPage( 5 );       // call property page #1 to replenish vars
		 return false;                // then repeat
	 }
	 switch (pos) 
	 {
	 case 1:  EStopMask = 1 << 4;
		      break;
	 case 2:  LimitXMask= 1 << 4;
		      break;
	 case 3:  LimitYMask  = 1 << 4;
              break;
	 case 4:  LimitZMask = 1 << 4;
              break; 
	 }
   x = 14;
   pin.Format( "Pin%d",x );
     pos = AfxGetApp( )->GetProfileInt("Preferences", (LPCTSTR)pin , -99 );
   	 if( pos == -99 )
	 {
		 CallPage( 5 );       // call property page #1 to replenish vars
		 return false;                // then repeat
	 }
	 switch (pos) 
	 {
	 case 1:  Aux1Mask = 2;
		      break;
	 case 2:  Aux2Mask= 2;
		      break;
	 case 3:  Aux3Mask  = 2;
              break;
	 case 4:  EnableMask = 2;
              break; 
	 }
     x = 16;
   pin.Format( "Pin%d",x );
     pos = AfxGetApp( )->GetProfileInt("Preferences", (LPCTSTR)pin , -99 );
   	 if( pos == -99 )
	 {
		 CallPage( 5 );       // call property page #1 to replenish vars
		 return false;                // then repeat
	 }
	 switch (pos) 
	 {
	 case 1:  Aux1Mask = 4;
		      break;
	 case 2:  Aux2Mask= 4;
		      break;
	 case 3:  Aux3Mask  = 4;
              break;
	 case 4:  EnableMask = 4;
              break; 
	 }
    x = 17;
   pin.Format( "Pin%d",x );
     pos = AfxGetApp( )->GetProfileInt("Preferences", (LPCTSTR)pin , -99 );
   	 if( pos == -99 )
	 {
		 CallPage( 5 );       // call property page #5 to replenish vars
		 return false;                // then repeat
	 }
	 switch (pos) 
	 {
	 case 1:  Aux1Mask = 8;
		      break;
	 case 2:  Aux2Mask= 8;
		      break;
	 case 3:  Aux3Mask  = 8;
              break;
	 case 4:  EnableMask = 8;
              break; 
	 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区免费在线观看| 91蝌蚪porny| 99精品久久只有精品| 欧美狂野另类xxxxoooo| 国产欧美日韩精品在线| 日韩精品久久久久久| av在线综合网| 久久综合网色—综合色88| 亚洲乱码日产精品bd| 韩日欧美一区二区三区| 欧美午夜电影在线播放| 国产亚洲成年网址在线观看| 亚洲成av人片| 91在线高清观看| 久久久久久久久蜜桃| 日韩国产高清在线| 91久久免费观看| 久久精品人人做人人综合| 五月天亚洲精品| 91蝌蚪国产九色| 国产精品初高中害羞小美女文| 捆绑紧缚一区二区三区视频| 欧美影视一区二区三区| 18欧美亚洲精品| 粉嫩13p一区二区三区| 欧美不卡123| 久久国产精品99久久人人澡| 欧美日本乱大交xxxxx| 亚洲少妇30p| 99在线热播精品免费| 日本一区二区电影| 国产成人在线电影| 久久久久久麻豆| 久久99精品久久只有精品| 欧美一级艳片视频免费观看| 日韩精品每日更新| 91精品国产91热久久久做人人| 视频一区欧美精品| 欧美综合天天夜夜久久| 一区二区三区欧美| 欧美影院午夜播放| 丝袜亚洲精品中文字幕一区| 欧美日韩三级一区| 日韩高清电影一区| 精品蜜桃在线看| 黑人精品欧美一区二区蜜桃| 久久九九久久九九| 成人av网址在线| 亚洲手机成人高清视频| 色婷婷狠狠综合| 亚洲综合激情网| 欧美日本韩国一区| 久久国产人妖系列| 国产区在线观看成人精品| 成人性生交大片免费看在线播放| 中文字幕在线不卡一区二区三区| av亚洲产国偷v产偷v自拍| 亚洲欧美日韩在线播放| 欧美午夜宅男影院| 久久精品国产成人一区二区三区| 精品国免费一区二区三区| 国产精品一级片| 亚洲免费av在线| 这里只有精品电影| 风间由美中文字幕在线看视频国产欧美| 国产女主播在线一区二区| 91亚洲精品一区二区乱码| 午夜视频久久久久久| 久久久久久久久99精品| 91丨九色丨尤物| 麻豆精品视频在线观看视频| 国产欧美日产一区| 欧美日韩精品免费观看视频| 国内精品国产三级国产a久久| 日日噜噜夜夜狠狠视频欧美人| 欧美另类久久久品| 国产成人aaa| 天天综合天天综合色| 久久久久国产成人精品亚洲午夜| 一本大道久久精品懂色aⅴ| 秋霞电影网一区二区| 国产精品久久久久一区 | av激情综合网| 五月天激情综合网| 国产精品毛片a∨一区二区三区| 欧美日韩中文字幕精品| 成人手机在线视频| 日本特黄久久久高潮| 亚洲婷婷综合色高清在线| 精品va天堂亚洲国产| 欧美视频日韩视频| 成人av在线电影| 美女视频免费一区| 亚洲国产成人av| 国产精品第13页| 久久精品亚洲麻豆av一区二区| 欧美揉bbbbb揉bbbbb| 99国产欧美另类久久久精品| 极品美女销魂一区二区三区免费| 亚洲国产一区二区视频| 日韩美女视频一区| 国产精品三级电影| 久久久久99精品一区| 欧美岛国在线观看| 欧美日韩国产在线观看| 91在线码无精品| 成人av资源在线| 99久久99久久免费精品蜜臀| 国产精品一区一区| 激情五月婷婷综合| 男男视频亚洲欧美| 日本女人一区二区三区| 亚洲丰满少妇videoshd| 亚洲三级免费观看| 日韩理论片中文av| 日韩美女久久久| 《视频一区视频二区| 中文字幕一区免费在线观看 | 婷婷久久综合九色综合绿巨人| 国产欧美一区二区精品秋霞影院 | 亚洲精品中文字幕在线观看| 日本一区二区免费在线| 久久久国产午夜精品| 久久综合久久99| 久久亚洲二区三区| 久久精品视频免费| 国产精品美女久久久久av爽李琼| 国产日产欧美一区二区视频| 久久久美女艺术照精彩视频福利播放| 精品嫩草影院久久| 国产亚洲精品精华液| 中文字幕va一区二区三区| 国产精品福利在线播放| 亚洲欧美日韩在线播放| 亚洲第一精品在线| 麻豆精品久久久| 国产一区二区三区观看| 国产成人精品免费视频网站| 成人免费视频一区| 91久久一区二区| 欧美一区二区三区在线视频| 337p日本欧洲亚洲大胆色噜噜| 国产人成一区二区三区影院| 专区另类欧美日韩| 日韩电影免费一区| 国产精品一卡二卡| 色综合久久中文综合久久牛| 欧美日韩电影一区| 久久久久久毛片| 亚洲精品美腿丝袜| 青草av.久久免费一区| 国产成人欧美日韩在线电影| 91免费观看视频| 日韩午夜在线观看视频| 中文字幕 久热精品 视频在线| 亚洲精品国产精华液| 蜜臂av日日欢夜夜爽一区| 国产福利一区在线观看| 色狠狠一区二区| 日韩精品一区二区在线| ●精品国产综合乱码久久久久| 日韩激情一二三区| 成人三级伦理片| 日韩亚洲欧美综合| 专区另类欧美日韩| 久久国产夜色精品鲁鲁99| 9i看片成人免费高清| 欧美变态tickle挠乳网站| 亚洲丝袜自拍清纯另类| 狠狠色丁香久久婷婷综合丁香| 色综合久久久久综合体| 欧美精品一区二区三区一线天视频| 中文字幕亚洲一区二区av在线| 日本美女一区二区三区| 91小视频在线| 久久这里只有精品6| 性久久久久久久久久久久| 成人av在线播放网站| 日韩精品专区在线| 亚洲线精品一区二区三区| 床上的激情91.| 精品国产乱码久久久久久蜜臀| 亚洲一区二区免费视频| 丁香婷婷综合网| 2024国产精品| 免费成人av在线| 欧美视频一区在线| 亚洲丝袜自拍清纯另类| 丁香网亚洲国际| 国产亚洲一本大道中文在线| 三级成人在线视频| 欧美日韩亚洲综合| 有码一区二区三区| 91色|porny| 成人欧美一区二区三区1314| 成人在线一区二区三区| 久久午夜电影网| 国产一区二区电影| 久久久久久久久久久黄色| 久久精品99国产精品|