#ifndef MARKEZDDLL_H
#define MARKEZDDLL_H
//所有函数都返回一个整形值
#define LMC1_ERR_SUCCESS 0 //成功
#define LMC1_ERR_EZCADRUN 1 //发现EZCAD在运行
#define LMC1_ERR_NOFINDCFGFILE 2 //找不到EZCAD.CFG
#define LMC1_ERR_FAILEDOPEN 3 //打开LMC1失败
#define LMC1_ERR_NODEVICE 4 //没有有效的lmc1设备
#define LMC1_ERR_HARDVER 5 //lmc1版本错误
#define LMC1_ERR_DEVCFG 6 //找不到设备配置文件
#define LMC1_ERR_STOPSIGNAL 7 //报警信号
#define LMC1_ERR_USERSTOP 8 //用户停止
#define LMC1_ERR_UNKNOW 9 //不明错误
#define LMC1_ERR_OUTTIME 10 //超时
#define LMC1_ERR_NOINITIAL 11 //未初始化
#define LMC1_ERR_READFILE 12 //读文件错误
#define LMC1_ERR_OWENWNDNULL 13 //窗口为空
#define LMC1_ERR_NOFINDFONT 14 //找不到指定名称的字体
#define LMC1_ERR_PENNO 15 //错误的笔号
#define LMC1_ERR_NOTTEXT 16 //指定名称的对象不是文本对象
#define LMC1_ERR_SAVEFILE 17 //保存文件失败
#define LMC1_ERR_NOFINDENT 18 //找不到指定对象
#define LMC1_ERR_STATUE 19 //当前状态下不能执行此操作
//初始化lmc1控制卡
//输入参数: strEzCadPath EzCad软件的执行路径
// bTestMode = TRUE 表示测试模式 bTestMode = FALSE 表示正常模式
// pOwenWnd 表示父窗口对象,如果需要实现停止打标,则系统会从此窗口截取消息
typedef int (*LMC1_INITIAL)(TCHAR* strEzCadPath,//ezcad的工作目录
BOOL bTestMode,//是否是测试模式
HWND hOwenWnd);//父窗口
//关闭lmc1控制卡
typedef int (*LMC1_CLOSE)();
//载入ezd文件,并清除数据库所有对象
//输入参数: strFileName EzCad文件名称
typedef int (*LMC1_LOADEZDFILE)(TCHAR* strFileName);
//标刻当前数据库里的所有数据
//输入参数: bFlyMark = TRUE 使能飞动打标 bFlyMark = FALSE 使能飞动打标
typedef int (*LMC1_MARK)(BOOL bFlyMark);
//标刻当前数据库里的指定对象
//输入参数: strEntName 要加工的指定对象的名称
typedef int (*LMC1_MARKENTITY)(TCHAR* strEntName);
//飞动标刻当前数据库里的指定对象
//输入参数: strEntName 飞动打标指定对象的名称
typedef int (*LMC1_MARKENTITYFLY)(TCHAR* strEntName);
// 读lmc1的输入端口
//输入参数: 读入的输入端口的数据
typedef int (*LMC1_READPORT)(WORD& data);
// 写lmc1的输出端口
//输入参数: 要写到的输出端口的数据
typedef int (*LMC1_WRITEPORT)(WORD data);
//得到当前数据库里的所有数据的预览图像
//输入参数: pWnd 预览图像显示到哪个窗口
// nBMPWIDTH 预览图像的宽度
// nBMPHEIGHT 预览图像的高度
typedef CBitmap* (*LMC1_GETPREVBITMAP)(HWND hwnd,int nBMPWIDTH,int nBMPHEIGHT);
//调用设置设备参数的对话框
typedef int (*LMC1_SETDEVCFG)();
const int HATCHATTRIB_ALLCALC = 0x01;//全部对象作为整体一起计算
const int HATCHATTRIB_BIDIR = 0x08;//双向填充
const int HATCHATTRIB_EDGE = 0x02;//走一次边
const int HATCHATTRIB_LOOP = 0x10;//环形填充
//设置当前的填充参数,如果要向数据库里添加新对象时使能填充时,会使用此参数填充
typedef int (*LMC1_SETHATCHPARAM)(BOOL bEnableContour,//使能轮廓本身
int bEnableHatch1,//使能填充1
int nPenNo1,//填充笔
int nHatchAttrib1,//填充属性
double dHatchEdgeDist1,//填充线边距
double dHatchLineDist1,//填充线间距
double dHatchStartOffset1,//填充线起始偏移距离
double dHatchEndOffset1,//填充线结束偏移距离
double dHatchAngle1,//填充线角度 (弧度值)
int bEnableHatch2,//使能填充1
int nPenNo2,//填充笔
int nHatchAttrib2,//填充属性
double dHatchEdgeDist2,//填充线边距
double dHatchLineDist2,//填充线间距
double dHatchStartOffset2,//填充线起始偏移距离
double dHatchEndOffset2,//填充线结束偏移距离
double dHatchAngle2);//填充线角度 (弧度值)
//设置当前的字体参数,如果要向数据库里添加新文本对象时会使用此字体参数
typedef int (*LMC1_SETFONTPARAM)(TCHAR* strFontName,//字体名称
double dCharHeight,//字符高度
double dCharWidth,//字符宽度
double dCharAngle,//字符倾角
double dCharSpace,//字符间距
double dLineSpace,//行间距
BOOL bEqualCharWidth);//等字符宽度模式
//得到指定笔号对应的加工参数
typedef int (*LMC1_GETPENPARAM)(int nPenNo,//要设置的笔号(0-255)
int& nMarkLoop,//加工次数
double& dMarkSpeed,//标刻次数mm/s
double& dPowerRatio,//功率百分比(0-100%)
double& dCurrent,//电流A
int& nFreq,//频率HZ
int& nQPulseWidth,//Q脉冲宽度us
int& nStartTC,//开始延时us
int& nLaserOffTC,//激光关闭延时us
int& nEndTC,//结束延时us
int& nPolyTC,//拐角延时us //
double& dJumpSpeed, //跳转速度mm/s
int& nJumpPosTC, //跳转位置延时us
int& nJumpDistTC,//跳转距离延时us
double& dEndComp,//末点补偿mm
double& dAccDist,//加速距离mm
double& dPointTime,//打点延时 ms
BOOL& bPulsePointMode,//脉冲点模式
int& nPulseNum,//脉冲点数目
double& dFlySpeed);
//设置指定笔号对应的加工参数
typedef int (*LMC1_SETPENPARAM)(int nPenNo,//要设置的笔号(0-255)
int nMarkLoop,//加工次数
double dMarkSpeed,//标刻次数mm/s
double dPowerRatio,//功率百分比(0-100%)
double dCurrent,//电流A
int nFreq,//频率HZ
int nQPulseWidth,//Q脉冲宽度us
int nStartTC,//开始延时us
int nLaserOffTC,//激光关闭延时us
int nEndTC,//结束延时us
int nPolyTC,//拐角延时us //
double dJumpSpeed, //跳转速度mm/s
int nJumpPosTC, //跳转位置延时us
int nJumpDistTC,//跳转距离延时us
double dEndComp,//末点补偿mm
double dAccDist,//加速距离mm
double dPointTime,//打点延时 ms
BOOL bPulsePointMode,//脉冲点模式
int nPulseNum,
double dFlySpeed);//脉冲点数目
//清除对象库里所有数据
typedef int (*LMC1_CLEARENTLIB)();
//对齐方式时数字代表的意义
// 6 --- 5 --- 4
// | |
// | |
// 7 8 3
// | |
// | |
// 0 --- 1 --- 2
//加入新文本到数据库中
typedef int (*LMC1_ADDTEXTTOLIB)(TCHAR* pStr,//要添加的字符串
TCHAR* pEntName,//字符串对象名称
double dPosX,//字符串的左下角基点的x坐标
double dPosY,//字符串的左下角基点的y坐标
double dPosZ,//字符串对象的z坐标
int nAlign,//对齐方式0-8
double dTextRotateAngle,//字符串绕基点旋转的角度值(弧度值)
int nPenNo,//对象使用的加工参数
BOOL bHatchText);//是否填充文本对象
//加入指定文件到数据库中
//支持的文件有ezd,dxf,dst,plt,ai,bmp,jpg,tga,png,gif,tiff等
typedef int (*LMC1_ADDFILETOLIB)(TCHAR* pFileName, //文件名称
TCHAR* pEntName,//字符串对象名称
double dPosX, //文件左下角基点x坐标
double dPosY, //文件左下角基点y坐标
double dPosZ, //文件z坐标
int nAlign,//对齐方式0-8
double dRatio,//文件缩放比例
int nPenNo,//对象使用的加工参数
BOOL bHatchFile);//是否填充文件对象 如果是ezd文件或位图文件此参数无效
//加入曲线到数据库中
typedef int (*LMC1_ADDCURVETOLIB)(double ptBuf[][2],//曲线顶点数组
int ptNum,//曲线顶点数
TCHAR* pEntName,//曲线对象名称
int nPenNo,//曲线对象使用的笔号
int bHatch);//曲线是否填充
#define BARCODETYPE_39 0
#define BARCODETYPE_93 1
#define BARCODETYPE_128A 2
#define BARCODETYPE_128B 3
#define BARCODETYPE_128C 4
#define BARCODETYPE_128OPT 5
#define BARCODETYPE_EAN128A 6
#define BARCODETYPE_EAN128B 7
#define BARCODETYPE_EAN128C 8
#define BARCODETYPE_EAN13 9
#define BARCODETYPE_EAN8 10
#define BARCODETYPE_UPCA 11
#define BARCODETYPE_UPCE 12
#define BARCODETYPE_25 13
#define BARCODETYPE_INTER25 14
#define BARCODETYPE_CODABAR 15
#define BARCODETYPE_PDF417 16
#define BARCODETYPE_DATAMTX 17
#define BARCODETYPE_USERDEF 18
#define BARCODEATTRIB_REVERSE 0x0008 //条码反转
#define BARCODEATT
评论5