📄 agl.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 + -