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

📄 parastruct.h

📁 运动控制卡的详细开发资料
💻 H
字号:
# ifndef	___PARAMETER_STRUCT_H___
# define	___PARAMETER_STRUCT_H___

# define MAX_AXIS 4

class ParaStruct
{
	public:
		ParaStruct()
		{
			InitPara();
		}
		
		void InitPara()
		{			
			for (int i=0; i<MAX_AXIS; i++)
			{
				AxisNo[i]=TRUE;
				SpeedTimes[i]=1;
				WormDistance[i]=10;
				Pulse[i]=1600;
				BackDir[i]=1;
				RunDir[i]=0;
				BackStartV[i]=5;
				RunStartV[i]=5;
				HandStartV[i]=5;
				EmptyStartV[i]=5;
				BackSpeed[i]=5;
				RunSpeed[i]=5;
				HandSpeed[i]=5;
				EmptySpeed[i]=5;
				BackAddTime[i]=0;
				RunAddTime[i]=0;
				HandAddTime[i]=0;
				EmptyAddTime[i]=0;
				RunMode[i]=TRUE;
				OriginMode[i]=TRUE;		
				CoderZ[i]=FALSE;
				IfSoftLmt[i]=FALSE;
				SoftDistance1[i]=1000;
				SoftDistance2[i]=0;			
				m_fStep[i]=0.5;
			}
				m_fPltUnitX =40.0;
				m_fPltUnitY = 40.0;
				m_fDxfUnit	= 1.0;
				m_bAutoSort=FALSE;
		}
		
		BOOL SaveToFile(char *ptr)
		{
			FILE *fp;		
			if ( ptr!=NULL)
			{
				TRY
				{
					fp = fopen(ptr,"wb");			
					fwrite(this,sizeof(ParaStruct),1,fp);
					fclose(fp);
					return TRUE;
				}
				CATCH(CFileException, pe)
				{		
					AfxMessageBox("保存参数失败!",MB_OK);
					return FALSE;
				}
				END_CATCH
			}
			AfxMessageBox("保存参数失败!",MB_OK);
			return FALSE;
		}

		BOOL LoadFromFile(char *ptr)
		{
			FILE *fp;
			
			if ( ptr!=NULL)
			{
				fp = fopen(ptr,"rb");
				if ( fp == NULL ) 
				{
					return FALSE;
				}
				TRY
				{					
					fread(this,sizeof(ParaStruct),1,fp);
					fclose(fp);
					return TRUE;
				}
				CATCH(CFileException, pe)
				{						
					return FALSE;
				}
				END_CATCH
			}
			return FALSE;
		}

		BOOL	AxisNo[MAX_AXIS];  //应用轴数
		int		SpeedTimes[MAX_AXIS];//倍率
		float	WormDistance[MAX_AXIS];//螺距
		long	Pulse[MAX_AXIS]; //每转脉冲
		
		int     BackDir[MAX_AXIS];
		int     RunDir[MAX_AXIS];
		
		float  BackStartV[MAX_AXIS];//回零起速
		float  RunStartV[MAX_AXIS];//加工起速
		float  HandStartV[MAX_AXIS];//手动起速
		float  EmptyStartV[MAX_AXIS];//空移起速
		
		float  BackSpeed[MAX_AXIS];
		float  RunSpeed[MAX_AXIS];
		float  HandSpeed[MAX_AXIS];
		float  EmptySpeed[MAX_AXIS];
		
		float  BackAddTime[MAX_AXIS];
		float  RunAddTime[MAX_AXIS];
		float  HandAddTime[MAX_AXIS];
		float  EmptyAddTime[MAX_AXIS];

		BOOL   RunMode[MAX_AXIS]; //是否为直线
		BOOL   OriginMode[MAX_AXIS];//是否为原点信号	
		BOOL   CoderZ[MAX_AXIS];
		BOOL   IfSoftLmt[MAX_AXIS];
		float  SoftDistance1[MAX_AXIS];
		float  SoftDistance2[MAX_AXIS]; 

		//代码解析参数
		float		m_fPltUnitX;	//用CORLdraw作图为(4,5)
		float		m_fPltUnitY;
		float		m_fDxfUnit;//DXF分析精度
		BOOL		m_bAutoSort;//自动优
		float       m_fStep[MAX_AXIS];    //手动步距
};

/*
class CDataPoint
{
public:
	CDataPoint()
	{
		number	= 0;
		x=y=z	= 0.0f;
		color	= RGB(255,255,255);
		SP = 0;//默认为0	
		m_bSel=0;//默认均为未选中。
		speed	= 10.0f;
	}
	int			number;
	double		x,y,z;	//位置
	COLORREF	color;	//COLOR is 强度
	int			SP;		//获取的SP值	
	int			m_bSel;
	float		speed;		
};

class CMarkArray:public CObject
{
	DECLARE_SERIAL(CMarkArray)

public:
	int GetEnd(double &x,double &y);
	int GetHome(double &x,double &y);
	virtual void Serialize(CArchive &ar);

	void RateArray(double anglex,double angley);

	CArray<CDataPoint,CDataPoint&>m_DataArray;
	CArray<CDataPoint,CDataPoint&>m_CopyArray;

	CMarkArray();

	int	SetStart(CLine &pline);
	~CMarkArray();
	void	OnDraw( CDC *pDC,CPoint start=CPoint(0,0));					//传入画布,重绘所有属性点
	// 注意旋转角及比例的影响
	//	double	m_bCenterX,m_bCenterY;				//中心点位置

	Position     m_posStart ;
	BOOL		 m_bIsStart ;

	BOOL	m_bIsSortData;
	BOOL	WorkDir;
	int		WorkSort;
	int		m_nCommand ;
	BOOL	m_bSelected;
};
*/
# endif

⌨️ 快捷键说明

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