金橙子打标卡二次开发应用

您所在的位置:网站首页 dig发音音标 金橙子打标卡二次开发应用

金橙子打标卡二次开发应用

2024-01-27 07:48| 来源: 网络整理| 查看: 265

对金橙子卡进行二次开发,主要是利用MarkEzd.dll 。这个版本有对应关系,我目前只有2.5(2.5.3) 和2.7 (2.7.6)版本的开发包。但开发的软件只要函数定义没变,就是可以通用的。

开发可以vc6,vc2010下进行,官方说明是在vc6下进行,但我是在2010 下开发的。

我开发了一个演示软件,确认可以控制金橙子卡打标,内雕。要注意的是所有开发的字符串是unicode 的。

演示程序可以在www.liwensoft.com下载: www.liwensoft.com/downloads/lasersoftEzcad2.7.6.zip 

百度链接:https://pan.baidu.com/s/1q5PSlfYc3cL4731fzPOi7w  提取码:cb3c   

3d雕刻的视频(291mb)是在 www.liwensoft.com/downloads/engrave3D.mp4 

百度链接:https://pan.baidu.com/s/1PGwYFTFlOzAUur_Lz2hbAw  提取码:wjnh 

这个应用用金橙子控制振镜雕刻,点云雕刻,平台移动. 355nm紫光5W,频率设置40k , 打点74万,3分多种,打点时间设置为0.2 ms,点才比较白,如果这个时间设置为0.1 就快多了,但比较淡。   

本文主要内容是,概述,函数说明,开发步骤,来自金橙子的开发包。

1. 概述

MarkEzd.dll 是北京金橙子科技有限公司提供给用户用于ezcad2和lmc1控制卡二 次开发的动态连接库。 MarkEzdDll.h是MarkEzd.dll中输出的函数的头文件。 用户可以使用VC6.0来进行开发。 MarkEzd.dll动态链接库函数的调用方法为显示调用,显式调用方法需要调用 Windows API函数加载和释放动态链接库。 显式调用方法如下: 1.调用Windows API函数LoadLibrary()动态加载DLL; 2.调用Windows API函数GetProcAddress()取得将要调用的DLL中函数的指 针;用函数指针调用DLL中函数完成相应功能; 3.在程序结束时或不再使用DLL中函数时,调用Windows API函数 FreeLibrary()释放动态链接库。 注意:调用MarkEzd.dll的程序必须放在ezcad2.exe同一个目录下,否则 MarkEzd.dll将无法正常工作;而且ezcad2.exe在运行的时候MarkEzd.dll将无法 正常使用,所以在使用MarkEzd.dll时必须关闭ezcad2.exe。

2.函数说明

在MarkEzd.dll中所有函数(个别函数除外)返回值均为一个整形的通用错误码 通用错误码定义如下: #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 //当前状态下不能执行此操作 #define LMC1_ERR_PARAM1 20//错误的执行参数 #define LMC1_ERR_PARAM2 21//错误的硬件参数 注意: MarkEzd.dll 中所有函的 TCHAR 对象都必须是 UNICODE 字符。关于 如何把项目设置为 UNICODE 版请参考附录一。 设备 函 数 名: lmc1_Initial 目 的:初始化 lmc1 控制卡。 语 法: int lmc1_Initial(TCHAR* strEzCadPath,BOOL bTestMode,HWND hOwenWnd); strEzCadPath 是 ezcad2.exe 所处的目录的全路径名称; bTestMode 指是否是测试模式,(测试模式控制卡相关函数无法工 作) hOwenWnd 指拥有用户输入焦点的窗口,用于检测用户暂停消息。 描 述:在程序中必须首先调用 lmc1_Initial,其它函数才能工作。 返 回 值: 通用错误码 函 数 名: lmc1_Initial2 目 的:初始化 lmc1 控制卡。 语 法: int lmc1_Initial2(TCHAR* strEzCadPath,BOOL bTestMode); strEzCadPath 是 ezcad2.exe 所处的目录的全路径名称; bTestMode 指是否是测试模式(测试模式控制卡相关函数无法工作) 描 述:在程序中必须首先调用 lmc1_Initial2,其它函数才能工作。 返 回 值: 通用错误码 函 数 名: lmc1_Close 目 的:关闭 lmc1 控制卡。 语 法: int lmc1_Close(); 描 述:在程序中退出时必须调用 lmc1_Close 来关闭 lmc1 控制卡。 返 回 值: 通用错误码 函 数 名: lmc1_SetDevCfg 目 的: 设置设备参数 语 法: int lmc1_SetDevCfg(); 描 述:调用 lmc1_SetDevCfg 会自动弹出设备参数设置对话框,用户可以设 置设备参数。 返 回 值: 通用错误码 函 数 名: lmc1_SetDevCfg2 目 的: 设置设备参数 语 法: int lmc1_SetDevCfg2(BOOL bAxisShow0, BOOL bAxisShow1); bAxisShow0 扩展轴 0 的界面是否显示 bAxisShow1 扩展轴 1 的界面是否显示 描 述:调用 lmc1_SetDevCfg2 会自动弹出设备参数设置对话框,可设置扩展 轴界面是否显示,用户可以设置设备参数。 返 回 值: 通用错误码 函 数 名: lmc1_SetRotateMoveParam 目 的: 设置旋转变换参数。 语 法 : void lmc1_SetRotateMoveParam (double dMoveX, double dMoveY,double dCenterX,double dCenterY,double dRotateAng); dMoveX X 方向移动距离 dMoveY Y 方向移动距离 dCenterX 旋转中心 x 坐标 dCenterY 旋转中心 y 坐标 dRotateAng 旋转角度(弧度值) 描 述:在程序中调用 lmc1_ SetRotateMoveParam 来设置旋转变换参数,使数 据库中所有对象在加工时绕指定中心旋转,然后移动指定距离。 不影响 数据的显示,只是加工时才对对象进行旋转。 返 回 值: 无 标刻 函 数 名: lmc1_Mark 目 的: 标刻当前数据库里的所有数据。 语 法: int lmc1_Mark(BOOL bFlyMark); bFlyMark= TRUE 使能飞动打标 描 述:在使用 lmc1_LoadEzdFile 载入 ezd 文件后即可以使用此函数开始打标 加工,此函数一直等待设备加工完毕后,或者用户停止才返回。 即函 数结束表示加工结束。 返 回 值: 通用错误码 函 数 名: lmc1_MarkEntity 目 的: 标刻当前数据库里的指定名称的对象。 语 法: int lmc1_MarkEntity(TCHAR* strEntName); 描 述:在使用 lmc1_LoadEzdFile 载入 ezd 文件后即可以使用此函数开始加工 指定名称的对象,此函数一直等待设备加工完毕后才返回。 返 回 值: 通用错误码 函 数 名: lmc1_MarkFlyByStartSignal 目 的: 飞行标刻当前数据库里的所有数据。 语 法: int lmc1_ MarkFlyByStartSignal(); 描 述:在使用此函数后,软件开始等待飞行硬件信号(IN8/IN9,在飞行界面 中设置的),有信号后开始加工。 返 回 值: 通用错误码 函 数 名: lmc1_MarkEntityFly 目 的:飞行标刻当前数据库里的指定名称的对象。 语 法: int lmc1_ MarkEntityFly(TCHAR* strEntName); 描 述:在使用 lmc1_LoadEzdFile 载入 ezd 文件后即可以使用此函数开始飞行 加工指定名称的对象,此函数一直等待设备加工完毕后才返回。 返 回 值: 通用错误码 函 数 名: lmc1_MarkLine 目 的: 标刻指定线段。 语 法: int lmc1_MarkLine(double x1, double y1 double x2, double y2, int pen) ; x1,y1 起点坐标 x2y2 终点坐标 pen 使用的笔号 返 回 值: 通用错误码 函 数 名: lmc1_MarkPoint 目 的: 标刻指定点。 语 法: int lmc1_ MarkPoint(double x, double y, double delay, int pen) ; x,y 点坐标 delay 打标时间 pen 使用的笔号 返 回 值: 通用错误码 函 数 名: lmc1_ MarkPointBuf2 目 的: 标刻指定的多个点。 语 法: int lmc1_ MarkPointBuf2(double ptBuf[][2],double dJumpSpeed, double dLaserOnTimeMs) ; ptBuf 点坐标组; ptBuf[n][0]表示第 n 个点的 x 坐标, ptBuf[n][1]表示 第 n 个点的 y 坐标 dJumpSpeed 在点之间的跳转速度 dLaserOnTimeMs 点的打标时间,单位 ms 返 回 值: 通用错误码 函 数 名: lmc1_IsMarking 目 的: 判断卡正在处于工作状态 语 法 : bool lmc1_IsMarking (); 描 述: 使用 lmc1_IsMarking 判断板卡正在处于工作状态 返 回 值: bool 值, true 标刻工作状态 函 数 名: lmc1_StopMark 目 的: 强制停止加工或红光。 语 法: int lmc1_StopMark(); 描 述: 在程序中调用 lmc1_StopMark 来强制停止加工或红光。 函 数 名: lmc1_RedLightMark 目 的: 标刻一次红光显示框。 语 法: int lmc1_RedLightMark() ; 描 述: 预览一次全部对象的打标范围。 返 回 值: 通用错误码 函 数 名: lmc1_ RedLightMarkContour 目 的: 红光预览当前数据库里面所有数据轮廓一次。 语 法: int lmc1_ RedLightMarkContour() ; 描 述:预览轨迹与打标轨迹一致。如果预览圆,轨迹就是一个圆。 返 回 值: 通用错误码 函 数 名: lmc1_ RedLightMarkByEnt 目 的:红光预览当前数据库里面指定对象。 语 法 : int lmc1_ RedLightMarkByEnt (TCHAR* strEntName , BOOL bContour); strEntName 对象名称 bContour 显示的是否是轮廓, true 显示轮廓, false 显示范围 描 述:预览打标位置。 返 回 值: 通用错误码 函 数 名: lmc1_ GetFlySpeed 目 的: 获取当前的飞行速度。 语 法: int lmc1_ GetFlySpeed(double& FlySpeed); FlySpeed 流水线当前速度 描 述: 在设备空闲时可查询流水线速度,即加工或红光过程中不可使用。 返 回 值: 通用错误码 文件 函 数 名: lmc1_LoadEzdFile 目 的:打开指定的 ezd 文件,并清除当前数据库中的所有对象。 语 法: int lmc1_LoadEzdFile(TCHAR* strFileName); 描 述:在程序中一般用此函数来打开一个用户建立 ezd 模板文件,这样用户 就不需要在程序中设置加工参数,因为模板中的加工参数会自动导入。 返 回 值: 通用错误码 函 数 名: lmc1_GetPrevBitmap 目 的: 得到当前数据库里的所有对象的预览图像。 语 法: Cbitmap* lmc1_GetPrevBitmap(HWND hwnd,int nBMPWIDTH,int nBMPHEIGHT); hwnd 需要显示当前图像的窗口句柄 nBMPWIDTH 需要生成的图像的像素宽度 nBMPHEIGHT 需要生成的图像的像素高度 描 述:在程序中调用 lmc1_GetPrevBitmap 得到当前数据库里的所有对象的 预览图像的指针,可以用于更新界面显示。 返 回 值: 如果成功会返回图像句柄,返回值为空表示失败 函 数 名: lmc1_GetPrevBitmap2 目 的: 得到当前数据库里的所有对象的预览图像。 语 法: Cbitmap* lmc1_GetPrevBitmap2(int nBMPWIDTH,int nBMPHEIGHT); nBMPWIDTH 需要生成的图像的像素宽度 nBMPHEIGHT 需要生成的图像的像素高度 描 述:在程序中调用 lmc1_GetPrevBitmap2 得到当前数据库里的所有对象的 预览图像的指针,可以用于更新界面显示。 返 回 值: 如果成功会返回图像,返回值为空表示失败 函 数 名: lmc1_GetPrevBitmapByName2 目 的: 得到当前数据库里的所有对象的预览图像。 语 法: Cbitmap* lmc1_ lmc1_GetPrevBitmapByName2(TCHAR* strEntName , int nBMPWIDTH,int nBMPHEIGHT); strEntName 对象名称 nBMPWIDTH 需要生成的图像的像素宽度 nBMPHEIGHT 需要生成的图像的像素高度 描 述:在程序中调用 lmc1_ GetPrevBitmapByName2 得到当前数据库里指定 对象的预览图像指针,可以用于更新界面显示。 返 回 值: 如果成功会返回图像,返回值为空表示失败 函 数 名: lmc1_SaveEntLibToFile 目 的: 保存当前数据库里所有对象到指定 ezd 文件里。 语 法: int lmc1_SaveEntLibToFile(TCHAR* strFileName) ; strFileName ezd 文件名称,最好是包括完全路径 描 述: 保存当前数据库里所有对象到指定 ezd 文件里。 返 回 值: 通用错误码 对象 函 数 名: lmc1_GetEntSize 目 的: 得到指定对象的最大最小坐标。 语 法: int lmc1_GetEntSize(TCHAR* pEntName, double& dMinx, double& dMiny, double& dMaxx, double& dMaxy , double& dZ) ; pEntName 对象名称 dMinx 最小 x 坐标 dMiny 最小 y 坐标 dMaxx 最大 x 坐标 dMaxy 最大 y 坐标 dZ 对象的 Z 坐标 描 述: 得到指定对象的最大最小坐标。 返 回 值: 通用错误码 函 数 名: lmc1_MoveEnt 目 的: 指定对象移动相对位置。 语 法: int lmc1_MoveEnt(TCHAR* pEntName, double dMovex, double dMovey) ; pEntName 对象名称 dMovex 对象移动 x 距离 dMovey 对象移动 y 距离 描 述: 指定对象移动相对位置。 返 回 值: 通用错误码 函 数 名: lmc1_ScaleEnt 目 的: 指定对象进行缩放。 语 法: int lmc1_ScaleEnt(TCHAR* pEntName, double dCenx, double dCeny, double dScalex, double dScaley) ; pEntName 对象名称 dCenx 缩放的 X 中心 dCeny 缩放的 Y 中心 dScalex 缩放的 X 比例 dScaley 缩放的 Y 比例 描 述: 指定对象按设置中心进行一定比例的缩放。 返 回 值: 通用错误码 函 数 名: lmc1_MirrorEnt 目 的: 指定对象进行镜像。 语 法: int lmc1_MirrorEnt(TCHAR* pEntName, double dCenx, double dCeny, BOOL bMirrorX, BOOL bMirrorY) ; pEntName 对象名称 dCenx 镜像的 X 中心 dCeny 镜像的 Y 中心 bMi



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3