1.概述MarkEzd.dll是北京金橙子科技有限公司提供给用户用于ezcad2和lmc1控制卡二次开发的动态连接库。MarkEzdDll.h是MarkEzd.dll中输出的函数的头文件。用户可以使用VC6.0来进行开发。MarkEzd.dll动态链接库函数的调用方法为显示调用,显式调用方法需要调用WindowsAPI函数加载和释放动态链接库。显式调用方法如下:1.调用WindowsAPI函数LoadLibrary()动态加载DLL;2.调用WindowsAPI函数GetProcAddress()取得将要调用的DLL中函数的指针;用函数指针调用DLL中函数完成相应功能;3.在程序结束时或不再使用DLL中函数时,调用WindowsAPI函数FreeLibrary()释放动态链接库。注意:调用MarkEzd.dll的程序必须放在ezcad2.exe同一个目录下,否则MarkEzd.dll将无法正常工作;而且ezcad2.exe在运行的时候MarkEzd.dll将无法正常使用,所以在使用MarkEzd.dll时必须关闭ezcad2.exe。2.函数说明在MarkEzd.dll中所有函数(个别函数除外)返回值均为一个整形的通用错误码通用错误码定义如下:#defineLMC1_ERR_SUCCESS0//成功#defineLMC1_ERR_EZCADRUN1//发现EZCAD在运行#defineLMC1_ERR_NOFINDCFGFILE2//找不到EZCAD.CFG#defineLMC1_ERR_FAILEDOPEN3//打开LMC1失败#defineLMC1_ERR_NODEVICE4//没有有效的lmc1设备#defineLMC1_ERR_HARDVER5//lmc1版本错误#defineLMC1_ERR_DEVCFG6//找不到设备配置文件#defineLMC1_ERR_STOPSIGNAL7//报警信号#defineLMC1_ERR_USERSTOP8//用户停止#defineLMC1_ERR_UNKNOW9//不明错误#defineLMC1_ERR_OUTTIME10//超时#defineLMC1_ERR_NOINITIAL11//未初始化#defineLMC1_ERR_READFILE12//读文件错误#defineLMC1_ERR_OWENWNDNULL13//窗口为空#defineLMC1_ERR_NOFINDFONT14//找不到指定名称的字体#defineLMC1_ERR_PENNO15//错误的笔号#defineLMC1_ERR_NOTTEXT16//指定名称的对象不是文本对象#defineLMC1_ERR_SAVEFILE17//保存文件失败#defineLMC1_ERR_NOFINDENT18//找不到指定对象#defineLMC1_ERR_STATUE19//当前状态下不能执行此操作注意:MarkEzd.dll中所有函的TCHAR对象都必须是UNICODE字符。关于如何把项目设置为UNICODE版请参考附录一。函数名:lmc1_Initial目的:初始化lmc1控制卡。语法:intlmc1_Initial(TCHAR*strEzCadPath,BOOLbTestMode,HWNDhOwenWnd);strEzCadPath是ezcad2.exe所处的目录的全路径名称;bTestMode指是否是测试模式hOwenWnd指拥有用户输入焦点的窗口,用于检测用户暂停消息。描述:在程序中必须首先调用lmc1_Initial,其它函数才能工作。返回值:通用错误码函数名:lmc1_Close目的:关闭lmc1控制卡。语法:intlmc1_Close();描述:在程序中退出时必须调用lmc1_Close来关闭lmc1控制卡。返回值:通用错误码函数名:lmc1_LoadEzdFile目的:打开指定的ezd文件,并清除当前数据库中的所有对象。语法:intlmc1_LoadEzdFile(TCHAR*strFileName);描述:在程序中一般用此函数来打开一个用户建立ezd模板文件,这样用户就不需要在程序中设置加工参数,因为模板中的加工参数会自动导入。返回值:通用错误码函数名:lmc1_Mark目的:标刻当前数据库里的所有数据。语法:intlmc1_Mark(BOOLbFlyMark);bFlyMark=TRUE使能飞动打标描述:在使用lmc1_LoadEzdFile载入ezd文件后即可以使用此函数开始打标加工,此函数一直等待设备加工完毕后才返回。返回值:通用错误码函数名:lmc1_ChangeTextByName目的:更改指定名称的文本对象的文本内容。语法:intlmc1_ChangeTextByName(TCHAR*strTextName,TCHAR*strTextNew);strTextName要更改内容的文本对象的名称strTextNew新的文本内容描述:在使用lmc1_LoadEzdFile载入ezd文件后,在每次加工前即可以使用此函数更改指定对象的内容。返回值:通用错误码函数名:lmc1_MarkEntity目的:标刻当前数据库里的指定名称的对象。语法:intlmc1_MarkEntity(TCHAR*strEntName);描述:在使用lmc1_LoadEzdFile载入ezd文件后即可以使用此函数开始加工指定名称的对象,此函数一直等待设备加工完毕后才返回。返回值:通用错误码函数名:lmc1_ReadPort目的:读lmc1的输入端口。语法:intlmc1_ReadPort(WORD&data);data输入端口的数据描述:在程序中调用lmc1_ReadPort来读入当前输入端口的数据。返回值:通用错误码函数名:lmc1_WritePort目的:写lmc1的输出端口。语法:intlmc1_WritePort(WORDdata);data输出端口的数据描述:在程序中调用lmc1_WritePort来输出数据到当前输出端口。返回值:通用错误码函数名:lmc1_GetPrevBitmap目的:得到当前数据库里的所有对象的预览图像。语法:Cbitmap*lmc1_GetPrevBitmap(HWNDhwnd,intnBMPWIDTH,intnBMPHEIGHT);hwnd需要显示当前图像的窗口句柄nBMPWIDTH需要生成的图像的像素宽度nBMPHEIGHT需要生成的图像的像素高度描述:在程序中调用lmc1_GetPrevBitmap得到当前数据库里的所有对象的预览图像,可以用于更新界面显示。返回值:如果成功会返回图像,返回值为空表示失败函数名:lmc1_SetDevCfg目的:设置设备参数语法:intlmc1_SetDevCfg();描述:调用lmc1_SetDevCfg会自动弹出设备参数设置对话框,用户可以设置设备参数。返回值:通用错误码函数名:lmc1_SetHatchParam目的:设置当前填充参数。语法:intlmc1_SetHatchParam(BOOLbEnableContour,//使能轮廓本身intbEnableHatch1,//使能填充1intnPenNo1,//填充笔intnHatchAttrib1,//填充属性doubledHatchEdgeDist1,//填充线边距doubledHatchLineDist1,//填充线间距doubledHatchStartOffset1,//填充线起始偏移距离doubledHatchEndOffset1,//填充线结束偏移距离doubledHatchAngle1,//填充线角度(弧度值)intbEnableHatch2,//使能填充1intnPenNo2,//填充笔intnHatchAttrib2,//填充属性doubledHatchEdgeDist2,//填充线边距doubledHatchLineDist2,//填充线间距doubledHatchStartOffset2,//填充线起始偏移距离doubledHatchEndOffset2,//填充线结束偏移距离doubledHatchAngle2);//填充线角度(弧度值));bEnableContour是否使能轮廓bEnableHatch1使能填充nPenNo1填充笔号nHatchAttrib1填充属性,填充属性由下面几个属性相或组合constintHATCHATTRIB_ALLCALC=0x01;//全部对象作为整体一起计算constintHATCHATTRIB_BIDIR=0x08;//双向填充constintHATCHATTRIB_EDGE=0x02;//走一次边constintHATCHATTRIB_LOOP=0x10;//环形填充dHatchEdgeDist1填充线边距dHatchLineDist1填充线间距dHatchStartOffset1填充线起始偏移距离dHatchEndOffset1填充线结束偏移距离dHatchAngle1填充线角度(弧度值)填充2参数意义同填充1参数一样。描述:在程序中调用lmc1_SetHatchParam来设置当前填充参数,当下次向数据库添加对象使能填充时,即使用此填充参数。返回值:通用错误码函数名:lmc1_SetFontParam目的:设置当前默认的字体参数。语法:intlmc1_SetFontParam(TCHAR*strFontNamedoubledCharHeight,doubledCharWidth,doubledCharAngle,doubledCharSpace,doubledLineSpace,BOOLbEqualCharWidth);StrFontName字体名称dCharHeight字符高度dCharWidth字符宽度dCharAngle字符倾角dCharSpace字符间距dLineSpace行间距bEqualCharWidth等字符宽度模式描述:在程序中调用lmc1_SetFontParam来设置当前字体参数,当下次向数据库添加文本对象时即使用此字体参数来生成文本对象。返回值:通用错误码函数名:lmc1_GetPenParam目的:得到对应笔号的参数。语法:intlmc1_GetPenParam(intnPenNo,//要设置的笔号(0-255)int&nMarkLoop,//加工次数double&dMarkSpeed,//标刻次数mm/sdouble&dPowerRatio,//功率百分比(0-100%)double&dCurrent,//电流Aint&nFreq,//频率HZint&nQPulseWidth,//Q脉冲宽度usint&nStartTC,//开始延时usint&nLaserOffTC,//激光关闭延时usint&nEndTC,//结束延时usint&nPolyTC,//拐角延时us//double&dJumpSpeed,//跳转速度mm/sint&nJumpPosTC,//跳转位置延时usint&nJumpDistTC,//跳转距离延时usdouble&dEndComp,//末点补偿mmdouble&dAccDist,//加速距离mmdouble&dPointTime,//打点延时msBOOL&bPulsePointMode,//脉冲点模式int&nPulseNum,//脉冲点数目double&dFlySpeed);//流水线速度描述:在程序中调用lmc1_GetPenParam来读出数据库中对应笔号的参数。返回值:通用错误码函数名:lmc1_SetPenParam目的:设置设备参数语法:intlmc1_SetPenParam(intnPenNo,//要设置的笔号(0-255)intnMarkLoop,//加工次数doubledMarkSpeed,//标刻次数mm/sdoubledPowerRatio,//功率百分比(0-100%)doubledCurrent,//电流AintnFreq,//频率HZint