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

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

?? specycle.cc

?? 數控系統中的解釋器源代碼
?? CC
?? 第 1 頁 / 共 2 頁
字號:
#include "rs274ngc.hh"
#include "agl.hh"
#include "profdata.hh"
#include "canon.hh"
#include "rs274ngc_return.hh"
#define WORD unsigned short

int     ZBackDir[2][4] = {
			{1,1,1,1},
			{ 1,1, 1,-1}
			};


int     XBackDir[2][4] = {
			{ 1,1, 1,1},
			{-1,1,-1,-1}
			};

int  read_sequence_number(setup_pointer settings, Special_Cycle        *pSpeCycle)
{
   PointVar pos;
	 if (pSpeCycle->ParaAxisFlag == 1)
	{
	        pos.PosY=pSpeCycle->OrdValue  -pSpeCycle->CutStep;
	
	}
    else
	{
	       pos.PosX=pSpeCycle->AbsValue  -pSpeCycle->CutStep;
	
	
	//pMove->MoveAxis[0].EndPos = pSpeCycle->AbsValue;
	}
	while( 1 )
	{
	
	
	if (CNC_CheckPointInSegment(pSpeCycle,&pos) )
	    {
	     break;
	    }
	else
	{
	     if (pSpeCycle->BlockNum<=1)
		 	return NCE_PROF_POINT_INVIALD;
	    pSpeCycle->BlockNum --;
	    continue;
	}
	}
	return RS274NGC_OK;
}




/********************************************************************
 * Function:
 *  	This function checks if the relation between the tool
 *  	position and the profile's is reasonable.
 *  	and it return 1 if reasonable and 0 for illegal.
 *
 ********************************************************************/


BYTE  PToolPositionValid(Special_Cycle          *pSpeCycle,
				    float                  minvalue)
{
BYTE            ret = 1, block1;
// return(ret);
//    printf("direction is %d, Flag is %d\n",pSpeCycle->ProfDirection,pSpeCycle->ParaAxisFlag);
    block1 = pSpeCycle->BlockNum;
    block1 --;
    if (pSpeCycle->ParaAxisFlag == 1)
	switch(pSpeCycle->ProfDirection)
	    {
	    case 1:
		if ((pSpeCycle->AbsStartValue + minvalue)
			  > pSpeCycle->Block[0].Point.PosX ||
		    (pSpeCycle->OrdStartValue - minvalue)
			 < pSpeCycle->Block[block1].Point.PosY)
		    ret = 0;
		break;
	    case 2:
		if ((pSpeCycle->AbsStartValue - minvalue)
			 < pSpeCycle->Block[0].Point.PosX ||
		    (pSpeCycle->OrdStartValue - minvalue)
			 < pSpeCycle->Block[block1].Point.PosY)
		    ret = 0;
		break;
	    case 3:
		if ((pSpeCycle->AbsStartValue - minvalue)
			 < pSpeCycle->Block[0].Point.PosX ||
		    (pSpeCycle->OrdStartValue + minvalue)
			 > pSpeCycle->Block[block1].Point.PosY)
		    ret = 0;
		break;
	    case 4:
		 if ((pSpeCycle->AbsStartValue + minvalue)
			 > pSpeCycle->Block[0].Point.PosX ||
		     (pSpeCycle->OrdStartValue + minvalue)
			 > pSpeCycle->Block[block1].Point.PosY)
		    ret = 0;
		 break;
	}
    else
	switch(pSpeCycle->ProfDirection)
	    {
	    case 1:
		if ((pSpeCycle->AbsStartValue - minvalue)
			 < pSpeCycle->Block[block1].Point.PosX ||
		    (pSpeCycle->OrdStartValue + minvalue)
			 > pSpeCycle->Block[0].Point.PosY)
		    ret = 0;
		break;
	    case 2:
		if ((pSpeCycle->AbsStartValue + minvalue)
			 > pSpeCycle->Block[block1].Point.PosX ||
		    (pSpeCycle->OrdStartValue + minvalue)
			 > pSpeCycle->Block[0].Point.PosY)
		    ret = 0;
		break;
	    case 3:
		if ((pSpeCycle->AbsStartValue + minvalue)
			 > pSpeCycle->Block[block1].Point.PosX ||
		    (pSpeCycle->OrdStartValue - minvalue)
			 < pSpeCycle->Block[0].Point.PosY)
		    ret = 0;
		break;
	    case 4:
		 if ((pSpeCycle->AbsStartValue - minvalue)
			 < pSpeCycle->Block[block1].Point.PosX ||
		     (pSpeCycle->OrdStartValue - minvalue)
			 < pSpeCycle->Block[0].Point.PosY)
		    ret = 0;
		 break;
	}
	//DEBUG_PRINT("PToolPositionValid return %d\n",ret);
    return(ret);
}


/********************************************************************
 * Function:
 *	Add profile information and
 *	Check whether parameters is reasonable.
 *
 ********************************************************************/
WORD   PStep0 (setup_pointer settings,Special_Cycle        *pSpeCycle)
{
//Special_Cycle        *pSpeCycle;
//Axis_Inf             *pAxisArg;
//char                 *ptr;
WORD                    ret = 0, block1, block2, block3;
double			x0,xn,y0;

   
	 
    block1=pSpeCycle->BlockNum-1;
	xn = pSpeCycle->Block[block1].Point.PosX;
	x0 = pSpeCycle->Block[0].Point.PosX;
	y0 =pSpeCycle->Block[0].Point.PosY;

	if (pSpeCycle->ParaAxisFlag == 1)
	    {
	    xn = pSpeCycle->Block[block1].Point.PosY;
	    x0 = pSpeCycle->Block[0].Point.PosY;
		y0 =pSpeCycle->Block[0].Point.PosX;
	    }
	pSpeCycle->CutNum=pSpeCycle->CutStepNum=(int)( (xn - x0) /pSpeCycle->CutStep+0.5);
		if (pSpeCycle->ParaAxisFlag == 1)
	    {
			pSpeCycle->OrdStartValue=x0+pSpeCycle->CutStepNum*pSpeCycle->CutStep;
			pSpeCycle->AbsStartValue=y0;
			}
		else
			{
				pSpeCycle->AbsStartValue=x0+pSpeCycle->CutStepNum*pSpeCycle->CutStep;
			   pSpeCycle->OrdStartValue=y0;
			}
	   
	
  //DEBUG_PRINT("8888step 0 STRAIGHT_TRAVERSE  X %f ,z %f \n", pSpeCycle->OrdStartValue,pSpeCycle->AbsStartValue);     
	 
	
    if ( PToolPositionValid(pSpeCycle,0) )
	{
	//block1 = (pSpeCycle->BlockNum)++;
	//block2 = block1-1;
	//block3 = block2-1;
	if (pSpeCycle->ParaAxisFlag ==0)
	    {
	  /*  if (pSpeCycle->CaviceExistFlag == 1)
		pSpeCycle->Block[block2].Point.PosY
		    = pSpeCycle->Block[block3].Point.PosY;*/
	    pSpeCycle->Pos.Element[0] = -1.0;
	    pSpeCycle->Pos.Element[1] = 0.0;
	    //pSpeCycle->Pos.Element[2] = pSpeCycle->AbsMachineValue2;
	   
		
	   
	    }
	else
	    {
	    /*if (pSpeCycle->CaviceExistFlag == 1)
		pSpeCycle->Block[block2].Point.PosX
		    = pSpeCycle->Block[block3].Point.PosX;*/
	    pSpeCycle->Pos.Element[0] = 0.0;
	    pSpeCycle->Pos.Element[1] = -1.0;
	    //pSpeCycle->Pos.Element[2] = pSpeCycle->OrdMachineValue2;
	   
	    }
	  
       STRAIGHT_TRAVERSE(pSpeCycle->OrdStartValue, settings->current_y, pSpeCycle->AbsStartValue
	#ifdef AA
	,settings->AA_current
#else#ifdef ALL_AXES, 0
#endif#endif#ifdef BB,  settings->BB_current
#else#ifdef ALL_AXES, 0#endif#endif#ifdef CC,  settings->CC_current
#else#ifdef ALL_AXES, 0#endif#endif);      settings->current_x SET_TO pSpeCycle->OrdStartValue;
      settings->current_z SET_TO pSpeCycle->AbsStartValue;
 //DEBUG_PRINT("step 0 STRAIGHT_TRAVERSE  X %f ,z %f \n", pSpeCycle->OrdStartValue,pSpeCycle->AbsStartValue); 
       //pSpeCycle->Block[block1].sequence_number=_setup.sequence_number;
	   /*
	pProc->pProg_Inf->ContinuedFlag = 0x0A;

	ptr =
	 (char *) (&((pAxisArg = pProc->pAxis_Arg)->IntAxis[pSpeCycle->AbsAxisNo-1]));
	((AxisInf *)ptr)->MachineValueReserved = pSpeCycle->AbsMachineValue2;
	((AxisInf *)ptr)->MachineValue         = pSpeCycle->AbsMachineValue2;
	((AxisInf *)ptr)->UserValueReserved    = pSpeCycle->AbsUserValue2;
	((AxisInf *)ptr)->UserValue            = pSpeCycle->AbsUserValue2;
	ptr = (char *) (&pAxisArg->IntAxis[pSpeCycle->OrdAxisNo-1]);
	((AxisInf *)ptr)->MachineValueReserved = pSpeCycle->OrdMachineValue2;
	((AxisInf *)ptr)->MachineValue         = pSpeCycle->OrdMachineValue2;
	((AxisInf *)ptr)->UserValueReserved    = pSpeCycle->OrdUserValue2;
	((AxisInf *)ptr)->UserValue            = pSpeCycle->OrdUserValue2;
       */
	pSpeCycle->WorkStep = 1;
	ret = 0;
	}
    else
    	{
	ret = NCE_PROF_TOOL_POS_INVIALD;
	
    	}
    return(ret);
}


/********************************************************************
 * Procedure:
 *	Rapid to locate before parallel axis machining.
 *
 ********************************************************************/
int  PStep1(setup_pointer settings,Special_Cycle        *pSpeCycle)
{
double end_x,end_z;
//IntMsgStruc          *pMove;

   // (pMove = &(pResult->Move))->AxisCount = 1;
   /* 
   if ((pSpeCycle->ParaAxisFlag == 1)
	pMove->MoveAxis[0].AxisNo = pSpeCycle->OrdAxisNo - 1;
    else
	pMove->MoveAxis[0].AxisNo = pSpeCycle->AbsAxisNo - 1;
  */
    if (pSpeCycle->CutStepNum == pSpeCycle->CutNum)
	{
	pSpeCycle->AbsValue = pSpeCycle->AbsStartValue;
	pSpeCycle->OrdValue = pSpeCycle->OrdStartValue;
	}
   /*  if (pSpeCycle->ParaAxisFlag == 1)
	          pSpeCycle->Pos.Element[2] = pSpeCycle->OrdValue;
	     else
		   pSpeCycle->Pos.Element[2] = pSpeCycle->AbsValue;*/
    if (pSpeCycle->ParaAxisFlag == 1)
	{
	pSpeCycle->OrdValue          -= pSpeCycle->CutStep;
	//pMove->MoveAxis[0].EndPos = pSpeCycle->OrdValue;
	end_z=settings->current_z;
	end_x= pSpeCycle->OrdValue;
	 pSpeCycle->Pos.Element[2] = pSpeCycle->OrdValue+pSpeCycle->retDistance;
	}
    else
	{
	pSpeCycle->AbsValue          -= pSpeCycle->CutStep;
	end_x=settings->current_x;
	end_z= pSpeCycle->AbsValue;
	pSpeCycle->Pos.Element[2] = pSpeCycle->AbsValue+pSpeCycle->retDistance;
	
	//pMove->MoveAxis[0].EndPos = pSpeCycle->AbsValue;
	}
	STRAIGHT_TRAVERSE(end_x, settings->current_y, end_z
	#ifdef AA
	,settings->AA_current
#else#ifdef ALL_AXES, 0
#endif#endif#ifdef BB,  settings->BB_current
#else#ifdef ALL_AXES, 0#endif#endif#ifdef CC,  settings->CC_current
#else#ifdef ALL_AXES, 0#endif#endif);      settings->current_x SET_TO end_x;
      settings->current_z SET_TO end_z;
//DEBUG_PRINT("step 1 STRAIGHT_TRAVERSE  X %f ,z %f \n", end_x,end_z);
 
    /*
    if (!psGlobal->GCode.DyModeSub)
	CNC_SetG29Flag(psGlobal);
    else
	CNC_SetG27Flag(psGlobal);
    CNC_SetG01Flag(psGlobal);
    pMove->ProgramF = 1.0;
    */
    pSpeCycle->WorkStep = 2;
    return RS274NGC_OK;
}


/********************************************************************
 * Procedure:
 *	Parallel axis machining.
 *
 ********************************************************************/
int  PStep2(setup_pointer settings,Special_Cycle        *pSpeCycle)
{
//Special_Cycle        *pSpeCycle;
ProfBlockStruc       *pAGL;
ProfBlockStruc		Gtl;
int                  circleDirection,exception = 0;
int			returnCode;
double end_x,end_z;
 //   DEBUG_PRINT("pSpeCycle->BlockNum IS %d  1\n", pSpeCycle->BlockNum);
   //pSpeCycle->BlockNum ++;
    while( 1 )
	{
	
	
	if (CNC_CheckPointInSegment(pSpeCycle,
				    (PointVar *)&pSpeCycle->AbsValue) )
	    {
	    //DEBUG_PRINT("pSpeCycle->BlockNum IS %d  2\n", pSpeCycle->BlockNum);
	    if (pSpeCycle->ParaAxisFlag == 1)
		Gtl.Point.PosY = pSpeCycle->OrdValue;
	    else
		Gtl.Point.PosX = pSpeCycle->AbsValue;
          
	    CNC_GetLineOfParallelAxis(&Gtl,
				      pSpeCycle->ParaAxisFlag,
				      pSpeCycle->ProfDirection/*2*/);
	    pAGL = &pSpeCycle->Block[pSpeCycle->BlockNum-1];
	    if (pAGL->MoveType == 1 ||pAGL->MoveType == 0)
		CNC_AGLPointOf2Line((LineVar  *)&Gtl.CurveExpression,
				    (LineVar  *)&pAGL->CurveExpression,
				    (PointVar  *)&pSpeCycle->AbsValue,
				    TINY,
				    &exception);
	    else
		{
		circleDirection = pAGL->MoveType -3;
		CNC_AGLPointOfLineArc((LineVar  *)&Gtl.CurveExpression,
				      (CircleVar  *)&pAGL->CurveExpression,
				      &circleDirection,
				      (PointVar  *)&pSpeCycle->AbsValue,
				      TINY,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99国产精品久| 亚洲一二三区视频在线观看| 久久se精品一区精品二区| 日韩免费在线观看| 美腿丝袜亚洲三区| 欧美精品一区二区三区在线| 国产原创一区二区三区| 国产婷婷精品av在线| 欧美一区二区日韩| 国产精品中文字幕日韩精品| 欧美韩日一区二区三区四区| 97aⅴ精品视频一二三区| 亚洲精品国产第一综合99久久| 色94色欧美sute亚洲13| 日韩av一区二区在线影视| 2023国产精品自拍| 99久久久久免费精品国产 | 日韩欧美黄色影院| 国内精品不卡在线| 国产精品无码永久免费888| 99精品偷自拍| 秋霞国产午夜精品免费视频| 久久久午夜电影| 在线精品国精品国产尤物884a| 日韩精品久久理论片| 欧美—级在线免费片| 6080午夜不卡| 成人亚洲一区二区一| 亚洲大片精品永久免费| 久久久久久久久久电影| 欧美亚洲国产一卡| 国产九九视频一区二区三区| 亚洲卡通欧美制服中文| 精品国产乱码久久久久久夜甘婷婷 | 色欲综合视频天天天| 免费久久精品视频| 亚洲桃色在线一区| 精品成a人在线观看| 欧美色图12p| 精品第一国产综合精品aⅴ| av影院午夜一区| 久久精品国产澳门| 亚洲一区二区三区在线看| 国产日韩精品一区二区三区| 91精品国产综合久久精品图片| 成人av在线网| 免费欧美高清视频| 亚洲午夜国产一区99re久久| 国产精品伦理在线| 欧美sm美女调教| 欧美日韩和欧美的一区二区| 波多野结衣在线一区| 韩国视频一区二区| 日韩国产一二三区| 亚洲一区av在线| 亚洲欧洲三级电影| 欧美激情在线观看视频免费| 日韩欧美国产一区二区在线播放| 欧美亚一区二区| 91麻豆6部合集magnet| 粉嫩av一区二区三区| 久色婷婷小香蕉久久| 奇米色777欧美一区二区| 亚洲午夜激情av| 亚洲最新视频在线观看| 亚洲欧洲综合另类| 中文字幕一区视频| 久久精品视频网| 久久久久高清精品| 久久免费视频色| 欧美精品一区二区三区视频| 日韩精品最新网址| 欧美一级在线视频| 日韩欧美一区中文| 日韩欧美精品在线| 日韩久久久精品| 精品粉嫩aⅴ一区二区三区四区| 日韩视频一区二区三区在线播放| 91精品在线观看入口| 欧美另类久久久品| 欧美日韩成人综合天天影院 | 91麻豆精品国产| 69久久99精品久久久久婷婷| 欧美日韩午夜影院| 欧美日韩高清影院| 51精品久久久久久久蜜臀| 欧美精品电影在线播放| 日韩视频在线观看一区二区| 精品日韩av一区二区| 国产亚洲欧美一区在线观看| 国产欧美精品在线观看| 国产精品久久久久久一区二区三区 | 久久精品久久99精品久久| 日韩午夜小视频| 欧美日韩电影在线播放| 欧美成人猛片aaaaaaa| 色婷婷狠狠综合| a4yy欧美一区二区三区| 福利一区二区在线| 国产精一品亚洲二区在线视频| 日韩国产精品大片| 蜜臀久久99精品久久久久久9| 蜜臀精品久久久久久蜜臀 | 日韩欧美国产一区二区在线播放| 91麻豆精品国产91久久久使用方法| 91精品欧美福利在线观看| 精品国产一区二区三区不卡| 国产婷婷色一区二区三区| 国产精品国产精品国产专区不蜜| 亚洲一级二级在线| 久久精品国产亚洲aⅴ| 成人黄色777网| 91精品国产综合久久精品| 久久久久久久综合狠狠综合| 国产精品乱码久久久久久| 亚洲不卡在线观看| 国产成人自拍高清视频在线免费播放| 一本色道久久综合亚洲91| 日韩欧美国产系列| 亚洲乱码日产精品bd| 免费成人美女在线观看.| aaa欧美色吧激情视频| 日韩午夜在线观看视频| 国产精品成人免费精品自在线观看| 亚洲6080在线| 成人激情免费电影网址| 欧美肥妇毛茸茸| 日本一区二区动态图| 日韩av中文字幕一区二区| 99久久99久久精品免费看蜜桃| 日韩美女一区二区三区| 亚洲精品国产a| 欧美一区二区视频在线观看2022| 久久精品日韩一区二区三区| 五月天激情综合| 成人sese在线| 精品久久五月天| 五月天亚洲精品| 91同城在线观看| 国产无一区二区| 久久9热精品视频| 678五月天丁香亚洲综合网| 亚洲美女屁股眼交3| 国产一区不卡在线| 欧美成人女星排名| 日韩一区精品字幕| 日本道免费精品一区二区三区| 国产日韩欧美不卡| 经典三级视频一区| 日韩一区二区在线播放| 亚洲成av人在线观看| 欧美亚洲高清一区| 一区二区三区久久久| 99久久免费视频.com| 国产精品乱人伦| 国产精品一区二区无线| 精品剧情在线观看| 精品一区二区三区在线观看国产| 这里只有精品免费| 日韩中文字幕麻豆| 欧美日韩免费一区二区三区 | 国产精品久久夜| 国产成人精品综合在线观看| 精品人伦一区二区色婷婷| 日韩不卡在线观看日韩不卡视频| 欧美日本一道本| 午夜久久久久久| 欧美日韩国产一级片| 亚洲图片一区二区| 欧美日韩亚洲丝袜制服| 成人教育av在线| 中文字幕视频一区| 91影院在线观看| 一区二区三区在线视频观看58| 一本到三区不卡视频| 亚洲一区自拍偷拍| 欧美日韩国产一级| 婷婷中文字幕一区三区| 91精品国产高清一区二区三区 | 五月婷婷久久丁香| 欧美高清你懂得| 精品一区二区av| 国产精品免费视频一区| 99视频精品免费视频| 亚洲最新视频在线播放| 欧美精品 国产精品| 激情国产一区二区| 国产精品无码永久免费888| 色婷婷精品久久二区二区蜜臂av| 亚洲一区二区三区四区中文字幕| 91精品国产91热久久久做人人| 麻豆国产91在线播放| 国产欧美日韩在线看| 一本大道久久a久久综合婷婷| 亚洲综合丁香婷婷六月香| 91精品国产91久久久久久最新毛片| 麻豆精品久久精品色综合| 亚洲国产成人一区二区三区| 色婷婷综合久久久久中文一区二区 | 中文字幕制服丝袜一区二区三区|