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

📄 agl.hh

📁 数控系统中的解释器源代码
💻 HH
字号:
#ifndef AGL_HH#define AGL_HHtypedef struct	{	double          PosX;                    	double          PosY;   	double 	     PosZ;  	}	PointVar; typedef struct	{	double          MinusSin;                         double          PlusCos;                  	double          Distance;                         }	LineVar;typedef struct	{        double          HeartX;                           double          HeartY;                           double          Radius;                           }	CircleVar;typedef struct	{	double          PosX;                     	double          Sin;                      	double          Cos;                      	double          PosY;                     	double          Angle;                    	}	OriginVar; typedef struct	{	double		I;	double		J;	double		R;	double		BaseAngle;	double		StartAngle;	double		EndAngle;	}	InvoluteVar;typedef struct	{	double          d;            /* [00] */	double          a;            /* [08] */	double          r;            /* [10] */	}	AuxInf;typedef union	{	PointVar       Point;	LineVar        Line;	CircleVar      Circle;	InvoluteVar    Inv;	}	Primitive;      /* -----0x30 BYTEs ----- */typedef struct	{		/*ElementType			0:	PointVar       Point;			1:	LineVar        Line;			2:	CircleVar      Circle;			3:	InvoluteVar    Inv;		*/		int  		ElementType;             /* [00] */	Primitive       Prim;                    /* [01] */	int   		InterSectionNo;          /* [31] */	}Queue;       /* -----0x32 BYTEs ----- */typedef struct{	int 		MoveType;	Primitive 	Prim;	Queue		ProgramQueueElement[2];	Queue 		QueueElement[2];	int    		FirstQueueNo;                       int     	SecondQueueNo;                      int     	ThirdQueueNo;                        int     	NextInQueueNo;                      int     	UsedQueueNum;	int 		CurrentQueueNum;	int 		LastQueueNum;	int 		isInitialized;	int 		isLast;	int 		sequence_number[2];	int 		display_sequence_number[2];	double 		speed[2];	double 		third_axis_pos[2];}GTLBuffer;typedef struct {        //added by ganxm to realize c compensation on 2005-06-30   double cutter_comp_radius_temp;   double arc_center_horizontal_pos;   double arc_center_vertical_pos;   double arc_center_z;   double last_arc_center_horizontal_pos;   double last_arc_center_vertical_pos;   double last_arc_center_z;   double last_arc_radius;   double last_program_arc_radius;   int last_arc_turn;   int  arc_turn;   double arc_radius;   double program_arc_radius;   //in order to realize c compensation on plan xy,yz,zx, add these variables   double horizontal_axis_pos;   double vertical_axis_pos;   double last_horizontal_axis_pos;   double last_vertical_axis_pos;   double program_horizontal_axis_pos;   double program_vertical_axis_pos;   double last_program_horizontal_axis_pos;   double last_program_vertical_axis_pos;   double third_axis_pos;      //20050729 in order to compute the intersection angle   double temp_cutter_end_point_horizontal;   double temp_cutter_end_point_vertical;   double temp_cutter_end_point_last_horizontal;   double temp_cutter_end_point_last_vertical;   //end   int isFirstArc;   double speed;   //20051220   int isBeginCom;   PointVar startPoint;   PointVar endPoint;   char isSameCircle;}compensation;	void  CNC_AGLSetNewOrigin(PointVar        *p0,				    AuxInf          *aux,				    OriginVar       *origin);void  CNC_AGLpTransformation(PointVar        *p0,				       OriginVar       *origin,				       PointVar        *p,				       int             *Ex);/*void  CNC_AGLPolarToCartesian(PolarInf           *ang,					PointVar           *p);*/void  CNC_AGLPointOf2Line(LineVar            *l0,				    LineVar            *l1,				    PointVar           *p,				    float              MinValue,				    int                *Ex);void  CNC_AGLPointOfLineArc(LineVar            *l0,				      CircleVar          *c0,				      int                *s,				      PointVar           *p,				      float              MinValue,				      int                *Ret,				      int                *Ex);void  CNC_AGLPointOf2Arc(CircleVar            *c0,				   CircleVar            *c1,				   int                  *s,				   PointVar             *p,				   float                MinValue,				   int                  *Ret,				   int                  *Ex);void  CNC_AGLTLineOfArcArg(CircleVar        *c0,				     AuxInf           *aux,				     LineVar          *l);void  CNC_AGLLineOf2Point(PointVar           *p0,				    PointVar           *p1,				    LineVar            *l,				    float              MinValue,				    int                *Ex);void  CNC_AGLTLineOf2Arc(CircleVar            *c0,				   CircleVar            *c1,				   LineVar              *l,				   float                MinValue,				   int                  *Ex);void  CNC_AGLTArcOf2LineR(LineVar            *l0,				    LineVar            *l1,				    AuxInf             *aux,				    CircleVar          *c,				    float              MinValue,				    int                *Ex);void  CNC_AGLTArcOfArcLineR(CircleVar            *c0,				      LineVar              *l0,				      AuxInf               *aux,				      CircleVar            *c,				      float                MinValue,				      int                  *Ex);				void  CNC_AGLTArcOfLineArcR(LineVar          *l0,				      CircleVar        *c0,				      AuxInf           *aux,				      CircleVar        *c,				      float            MinValue,				      int              *Ex);void  CNC_AGLTArcOf2Arc(CircleVar            *c0,				  CircleVar            *c1,				  AuxInf               *aux,				  CircleVar            *c,				  float                MinValue,				  int                  *Ex);void  CNC_AGLArcOf3Point(PointVar             *p0,				   PointVar             *p1,				   PointVar             *p2,				   CircleVar            *c,				   float                MinValue,				   float                *MinDegree,				   int                  *Ex);void  CNC_AGLTArcOfHeartLine(PointVar             *p0,				       LineVar              *l0,				       CircleVar            *c);void  CNC_AGLTArcOfHeartArc(PointVar             *p0,				      CircleVar            *c0,				      int                  *s,				      CircleVar            *c);void  CNC_AGLTLineOf2TArc(CircleVar            *c0,				    CircleVar            *c1,				    LineVar              *l,				    float                MinValue,				    int                  *Ex);#endif /* ifndef AGL_HH */

⌨️ 快捷键说明

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