金橙子打标卡说明书_橙子考勤

(46) 2024-09-11 12:01:03

对金橙子卡进行二次开发,主要是利用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

THE END

发表回复