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

对金橙子卡进行二次开发,主要是利用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 中心
bMirrorX 是否 X 方向镜像, true 表示镜像
bMirrorY 是否 Y 方向镜像
描 述: 指定对象按设置中心进行镜像。
返 回 值: 通用错误码
函 数 名: lmc1_RotateEnt
目 的: 指定对象进行旋转。
语 法: int lmc1_RotateEnt(TCHAR* pEntName,
double dCenx,
double dCeny,
double dAngle) ;
pEntName 对象名称
dCenx 旋转的 X 中心
dCeny 旋转的 Y 中心
dAngle 旋转的角度,单位是角度值
描 述: 指定对象按设置中心进行一点比例的旋转。
返 回 值: 通用错误码
函 数 名: lmc1_CopyEnt
目 的:复制对象。
语 法: int lmc1_CopyEnt(TCHAR* pEntName,
TCHAR* pNewEntName) ;
PEntName 要复制的对象
pNewEntName 复制后的对象名称
描 述: 使用 lmc1_CopyEnt 复制粘贴指定对象,并对新对象命名
返 回 值: 通用错误码
函 数 名: lmc1_GetEntityCount
目 的: 得到当前数据库中的对象总数。
语 法: int lmc1_GetEntityCount() ;
描 述: 得到当前数据库中的对象总数
返 回 值: 数据库内对象总数
函 数 名: lmc1_GetEntityName
目 的: 得到指定序号的对象名称。
语 法: int lmc1_GetEntityName(int nEntityIndex,
TCHAR szEntName[256]) ;
nEntityIndex 指定序号,范围值为 0-对象总数(对象总数由函数
lmc1_GetEntityCount 得到)
szEntName 得到的对象名称
描 述: 得到指定序号的对象名称
返 回 值: 通用错误码
函 数 名: lmc1_SetEntityName
目 的:设置指定序号的对象名称。
语 法: int lmc1_SetEntityName(int nEntityIndex,
TCHAR* pEntName) ;
nEntityIndex 指定序号,范围值为 0-对象总数(对象总数由函数
lmc1_GetEntityCount 得到)
pEntName 设置的对象名称
描 述:设置指定序号的对象名称
返 回 值: 通用错误码
函 数 名: lmc1_ChangeEntName
目 的:修改对象名称。
语 法: int lmc1_ChangeEntName(TCHAR* pEntName,
TCHAR* pNewEntName) ;
PEntName 要修改的对象名称
pNewEntName 修改后的对象名称
描 述:将原来的对象名称设为新的。多个对象名称相同,会全部改变。
返 回 值: 通用错误码
函 数 名: lmc1_GroupEnt
目 的:群组
语 法: int lmc1_GroupEnt(TCHAR* pEntName1,
TCHAR* pEntName2,
TCHAR* pEntNameNew,
int pen) ;
pEntName1 群组对象 1 名称
pEntName2 群组对象 2 名称
pEntNameNew 群组后新对象名称
pen 新对象使用的笔号
描 述: 群组 2 个对象,并设置群组新的对象名称,以及笔号
返 回 值: 通用错误码
函 数 名: lmc1_UnGroupEnt
目 的:解散群组
语 法: int lmc1_UnGroupEnt(TCHAR* pGroupEntName) ;
pGroupEntName 群组对象名称
描 述: 解散群组
返 回 值: 通用错误码
函 数 名: lmc1_ GetBitmapEntParam
目 的:获取指定位图的参数。
语 法: int lmc1_ GetBitmapEntParam(TCHAR* strEntName
TCHAR BmpPath [256],
int& nBmpAttrib,
int& nScanAttrib,
double& dBrightness,
double& dContrast,
double& dPointTime,
int& nImportDpi);
strEntName 位图对象名称
BmpPath 位图对象路径
nBmpAttrib 位图参数
nScanAttrib 扫描参数
dBrightness 亮度设置[-1,1]
dContrast 对比度设置[-1,1]
dPointTime 打点时间设置
nImportDpi DPI
const int BMPSCAN_INVERT = 0x0001;//图像反转
const int BMPSCAN_GRAY = 0x0002;//图像灰度
const int BMPSCAN_LIGHT = 0x0004;//图像亮度
const int BMPSCAN_DITHER = 0x0010;//网点处理
const int BMPSCAN_BIDIR = 0x1000;//双向扫描
const int BMPSCAN_YDIR = 0x2000;//Y 向扫描
const int BMPSCAN_DRILL = 0x4000;//打点模式
const int BMPSCAN_POWER = 0x8000;//调整功率
const int BMPATTRIB_DYNFILE = 0x1000;//动态文件
const int BMPATTRIB_IMPORTFIXED_WIDTH = 0x2000;//固定文件
输入宽
const int BMPATTRIB_IMPORTFIXED_HEIGHT = 0x4000;//固定文
件输入高
const int BMPATTRIB_IMPORTFIXED_DPI = 0x8000;//固定 DPI
描 述:获取指定位图的参数
返 回 值: 通用错误码
函 数 名: lmc1_ SetBitmapEntParam2
目 的:设置指定位图的参数。
语 法: int lmc1_ SetBitmapEntParam2(TCHAR* strEntName
TCHAR* strBmpPath,
int nBmpAttrib,
int nScanAttrib,
double dBrightness,
double dContrast,
double dPointTime,
int nImportDpi);
strEntName 位图对象名称
strBmpPath 位图对象路径
nBmpAttrib 位图参数
nScanAttrib 扫描参数
dBrightness 亮度设置[-1,1]
dContrast 对比度设置[-1,1]
dPointTime 打点时间设置
nImportDpi DPI
描 述:设置指定位图的参数
返 回 值: 通用错误码
函 数 名: lmc1_ MoveEntityBefore
目 的:向前移动对象
语 法: int lmc1_ MoveEntityBefore(int nMoveEnt , int nGoalEnt) ;
nMoveEnt 要移动的对象在对象列表中的位置
nGoalEnt 对象要在对象列表中移动到的位置
描 述:在对象列表中向前移动对象,改变打标顺序。
返 回 值: 通用错误码
函 数 名: lmc1_ MoveEntityAfter
目 的:向后移动对象
语 法: int lmc1_ MoveEntityAfter(int nMoveEnt , int nGoalEnt) ;
nMoveEnt 要移动的对象在对象列表中的位置
nGoalEnt 对象要在对象列表中移动到的位置
描 述:在对象列表中向后移动对象,改变打标顺序。
返 回 值: 通用错误码
函 数 名: lmc1_ ReverseAllEntOrder
目 的:颠倒所有对象在对象列表中的顺序
语 法: int lmc1_ ReverseAllEntOrder() ;
描 述:颠倒所有对象在对象列表中的顺序,改变打标顺序。
返 回 值: 通用错误码
端口
函 数 名: lmc1_ReadPort
目 的: 读 lmc1 的输入端口。
语 法: int lmc1_ReadPort(WORD& data);
data 输入端口的数据
描 述:在程序中调用lmc1_ReadPort来读入当前输入端口的数据。 Bit0是In0
的状态,Bit0=1表示In0为高电平,Bit0=0表示In0为低电平; Bit1是In1的状态,Bit1=1
表示In1为高电平,Bit1=0表示In1为低电平;依次类推。如果获取值为5,表示
IN0,IN2是高电平,其他端口都是低电平。
返 回 值: 通用错误码
函 数 名: lmc1_WritePort
目 的: 写 lmc1 的输出端口。
语 法: int lmc1_WritePort(WORD data);
data 输出端口的数据
描 述:在程序中调用 lmc1_WritePort 来输出数据到当前输出端口。Bit0 是 In0
的状态,Bit0=1 表示 In0 为高电平,Bit0=0 表示 In0 为低电平;Bit1 是 In1
的状态,Bit1=1 表示 In1 为高电平,Bit1=0 表示 In1 为低电平;依次类推。
如果设置值为 2,表示 OUT1 是高电平,其他端口都是低电平。
返 回 值: 通用错误码
函 数 名: lmc1_GetOutPort
目 的: 读 lmc1 的输出端口。
语 法: int lmc1_GetOutPort(WORD& data);
data 当前输出端口的数据
描 述:在程序中调用lmc1_ GetOutPort来读入当前输出端口的数据。Bit0是In0
的状态,Bit0=1表示In0为高电平,Bit0=0表示In0为低电平; Bit1是In1的状态,Bit1=1
表示In1为高电平,Bit1=0表示In1为低电平;依次类推。如果获取值为5,表示
OUT0,OUT2是高电平,其他端口都是低电平。
返 回 值: 通用错误码
函 数 名: lmc1_LaserOn
目 的:直接控制激光输出,谨慎使用
语 法: int lmc1_LaserOn(BOOL Open);
Open 控制激光开关
描 述:在程序中调用lmc1_ LaserOn控制激光输出
返 回 值: 通用错误码
文本
函 数 名: lmc1_ChangeTextByName
目 的:更改指定名称的文本对象的文本内容。

法 : int lmc1_ChangeTextByName(TCHAR* strTextName, TCHAR*
strTextNew);
strTextName
要更改内容的文本对象的名称
strTextNew 新的文本内容


描 述:在使用 lmc1_LoadEzdFile 载入 ezd 文件后,在每次加工前即可以使用
此函数更改指定对象的内容。
返 回 值: 通用错误码
函 数 名: lmc1_GetTextByName
目 的:获取指定名称的文本对象的文本内容。

法 : int lmc1_GetTextByName(TCHAR* strTextName, TCHAR
szEntText[256]);
strTextName
要获取内容的文本对象的名称
szEntText 文本内容
述:获取指定名称的文本对象的文本内容。
回 值: 通用错误码


函 数 名: lmc1_TextResetSn
目 的:重置序列号
语 法: int lmc1_TextResetSn(TCHAR* pTextName) ;
PTextName 文本对象名称
描 述:序列号复位为开始序号
返 回 值: 通用错误码
函 数 名: lmc1_ GetFontRecordCount
目 的: 得到当前系统支持的所有字体数量。
语 法: int lmc1_ GetFontRecordCount(int& nFontNum);
nFontNum 字体数量
描 述:获取软件已经载入的所有字体数量
返 回 值: 通用错误码
函 数 名: lmc1_ GetFontRecord
目 的: 得到当前系统支持的所有字体参数。
语 法 : int lmc1_ GetFontRecord ( int& nFontIndex,TCHAR
szFontName[256],DWORD& dwFontAttrib)
nFontIndex 字体序号
szFontName 字体名称
dwFontAttrib 字体类型参数
描 述:获取指定序号的字体的名称以及类型参数
返 回 值: 通用错误码
函 数 名: lmc1_GetAllFontRecord
目 的: 得到当前系统支持的所有字体参数。
语 法: lmc1_FontRecord* lmc1_GetAllFontRecord(int& nFontNum);

nFontNum 字体数目
//字体类型属性定义
#define FONTATB_JSF 0x0001
//JczSingle 字型
#define FONTATB_TTF 0x0002 //TrueType 字型
#define FONTATB_DMF 0x0004 //DotMatrix 字型
#define FONTATB_BCF 0x0008 //BarCode 字型
#define FONTATB_SHX 0x0010 //SHX 字型
//字型记录
struct lmc1_FontRecord
{
TCHAR szFontName[256];
//字体名字
DWORD dwFontAttrib; //字体属性
};
述: 得到当前系统支持的所有字体参数。
回 值: 字型记录数组指针


函 数 名: lmc1_SetFontParam
目 的: 设置当前默认的字体参数。
语 法: int lmc1_SetFontParam(TCHAR* strFontName
double dCharHeight,
double dCharWidth,
double dCharAngle,
double dCharSpace,
double dLineSpace,
BOOL bEqualCharWidth);
StrFontName 字体名称
dCharHeight 字符高度
dCharWidth 字符宽度
dCharAngle 字符倾角(弧度值)
dCharSpace 字符间距
dLineSpace 行间距
bEqualCharWidth 等字符宽度模式
描 述:在程序中调用 lmc1_ SetFontParam 来设置当前字体参数,当下次向数
据库添加文本对象时即使用此字体参数来生成文本对象。
返 回 值: 通用错误码
函 数 名: lmc1_SetTextEntParam
目 的: 设置指定文本的字体参数。
语 法: int lmc1_SetTextEntParam(TCHAR* strTextName,
double dCharHeight,
double dCharWidth,
double dCharAngle,
double dCharSpace,
double dLineSpace,
BOOL bEqualCharWidth);
StrTextName 文本名称
dCharHeight 字符高度
dCharWidth 字符宽度
dCharAngle 字符倾角(弧度值)
dCharSpace 字符间距
dLineSpace 行间距
bEqualCharWidth 等字符宽度模式
描 述: 设置指定文本的字体参数。
返 回 值: 通用错误码
函 数 名: lmc1_SetTextEntParam2
目 的: 设置指定文本的字体参数。
语 法: int lmc1_SetTextEntParam2(TCHAR* strTextName,
TCHAR* strFontName,
double dCharHeight,
double dCharWidth,
double dCharAngle,
double dCharSpace,
double dLineSpace,
double dSpaceWidth,
BOOL bEqualCharWidth);
StrTextName 文本名称
StrFontName 字体名称
dCharHeight 字符高度
dCharWidth 字符宽度
dCharAngle 字符倾角(弧度值)
dCharSpace 字符间距
dLineSpace 行间距
dSpaceWidth 空字符宽带
bEqualCharWidth 等字符宽度模式
描 述: 设置指定文本的字体参数。
返 回 值: 通用错误码
函 数 名: lmc1_GetTextEntParam
目 的:获取指定文本的字体参数。
语 法: int lmc1_GetTextEntParam(TCHAR* strTextName
TCHAR sFontName [256]
double& dCharHeight,
double& dCharWidth,
double& dCharAngle,
double& dCharSpace,
double& dLineSpace,
BOOL& bEqualCharWidth);
StrTextName 文本名称
sFontName 字体名称
dCharHeight 字符高度
dCharWidth 字符宽度
dCharAngle 字符倾角(弧度值)
dCharSpace 字符间距
dLineSpace 行间距
bEqualCharWidth 等字符宽度模式
描 述:获取指定文本的字体参数。
返 回 值: 通用错误码
函 数 名: lmc1_GetTextEntParam2
目 的:获取指定文本的字体参数。
语 法: int lmc1_GetTextEntParam2(TCHAR* strTextName
TCHAR sFontName [256]
double& dCharHeight,
double& dCharWidth,
double& dCharAngle,
double& dCharSpace,
double& dLineSpace,
double& dSpaceWidth,
BOOL& bEqualCharWidth);
StrTextName 文本名称
sFontName 字体名称
dCharHeight 字符高度
dCharWidth 字符宽度
dCharAngle 字符倾角(弧度值)
dCharSpace 字符间距
dLineSpace 行间距

dSpaceWidth 空字符宽带
bEqualCharWidth 等字符宽度模式
述:获取指定文本的字体参数。


返 回 值: 通用错误码
笔号
函 数 名: lmc1_GetPenParam
目 的: 得到对应笔号的参数。
语 法: int lmc1_GetPenParam(int nPenNo,//要设置的笔号(0-255)
int& nMarkLoop,//加工次数
double& dMarkSpeed,//标刻次数 mm/s
double& dPowerRatio,//功率百分比(0-100%)
double& dCurrent,//电流 A
int& nFreq,//频率 HZ

double& dQPulseWidth,//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); //流水线速度


描 述:在程序中调用 lmc1_GetPenParam 来读出数据库中对应笔号的参数。
返 回 值: 通用错误码
函 数 名: lmc1_GetPenParam2
目 的: 得到对应笔号的参数。
语 法: int lmc1_GetPenParam2(int nPenNo,//要设置的笔号(0-255)
int& nMarkLoop,//加工次数
double& dMarkSpeed,//标刻次数 mm/s
double& dPowerRatio,//功率百分比(0-100%)
double& dCurrent,//电流 A
int& nFreq,//频率 HZ

double& dQPulseWidth,//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& dPointTime,// 打点时间 ms
int& nSpiWave,// SPI 波形选择
BOOL& bWobbleMode,//抖动模式
double & bWobbleDiameter,//抖动直径
double& bWobbleDist); //抖动间距


描 述:在程序中调用 lmc1_GetPenParam2 来读出数据库中对应笔号的参数。
返 回 值: 通用错误码
函 数 名: lmc1_GetPenParam4
目 的: 得到对应笔号的参数。
语 法: int lmc1_GetPenParam4(
int nPenNo,//要设置的笔号(0-255)

TCHAR sPenName [256],// 笔名字,默认 default
int& clr,//笔颜色
BOOL& bDisableMark,//是否使能笔号, true 关闭笔号


不标刻

BOOL& bUseDefParam,//是否使用默认值
int& nMarkLoop,//加工次数
double& dMarkSpeed,//标刻次数 mm/s
double& dPowerRatio,//功率百分比(0-100%)
double& dCurrent,//电流 A
int& nFreq,//频率 HZ
double& dQPulseWidth,//Q 脉冲宽度 us
int& nStartTC,//开始延时 us
int& nLaserOffTC,//激光关闭延时 us
int& nEndTC,//结束延时 us
int& nPolyTC,//拐角延时 us //



double& dJumpSpeed, //跳转速度 mm/s
int& nMinJumpDelayTCUs, //最小跳转延时 us
int& nMaxJumpDelayTCUs,//最大跳转延时 us
double& dJumpLengthLimit,//跳转长的极限
double& dPointTime,//打点时间 ms
BOOL& nSpiSpiContinueMode,//SPI 连续模式
int& nSpiWave,// SPI 波形选择
int& nYagMarkMode,// YAG 优化填充模式
BOOL& bPulsePointMode,//脉冲点模式
int& nPulseNum,// 脉冲点数
BOOL& bEnableACCMode,//使能加速模式
double & dEndComp,//末点补偿
double& dAccDist, //加速距离
double& dBreakAngle, //中断角度,角度值
BOOL& bWobbleMode,//抖动模式
double & bWobbleDiameter,//抖动直径
double& bWobbleDist); //抖动间距
描 述:在程序中调用 lmc1_GetPenParam4 来读出数据库中对应笔号的参数。
返 回 值: 通用错误码
函 数 名: lmc1_SetPenParam
目 的: 设置对应笔号参数
语 法: int lmc1_SetPenParam(int nPenNo,//要设置的笔号(0-255)
int nMarkLoop,//加工次数
double dMarkSpeed,//标刻次数 mm/s
double dPowerRatio,//功率百分比(0-100%)
double dCurrent,//电流 A
int nFreq,//频率 HZ

double dQPulseWidth,//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); //流水线速度 s


描 述:在程序中调用 lmc1_SetPenParam 来设置数据库中对应笔号的参数。
返 回 值: 通用错误码
函 数 名: lmc1_SetPenParam2
目 的: 设置对应笔号参数
语 法: int lmc1_SetPenParam2(int nPenNo,//要设置的笔号(0-255)
int nMarkLoop,//加工次数
double dMarkSpeed,//标刻次数 mm/s
double dPowerRatio,//功率百分比(0-100%)
double dCurrent,//电流 A
int nFreq,//频率 HZ

double dQPulseWidth,//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 dPointTime,//打点时间 ms
int nSpiWave,// SPI 波形选择
BOOL bWobbleMode,//抖动模式
double bWobbleDiameter,//抖动直径
double bWobbleDist); //抖动间距


描 述:在程序中调用 lmc1_SetPenParam2 来设置数据库中对应笔号的参数。
返 回 值: 通用错误码
函 数 名: lmc1_SetPenParam4
目 的:设置对应笔号的参数。
语 法: int lmc1_SetPenParam4(
int nPenNo,//要设置的笔号(0-255)
TCHAR* sPenName,// 笔名字,默认 default
int clr,//笔颜色

BOOL bDisableMark,//是否使能笔号, true 关闭不标刻
BOOL bUseDefParam,//是否使用默认值


int nMarkLoop,//加工次数
double dMarkSpeed,//标刻次数 mm/s
double dPowerRatio,//功率百分比(0-100%)
double dCurrent,//电流 A
int nFreq,//频率 HZ
double dQPulseWidth,//Q 脉冲宽度 us
int nStartTC,//开始延时 us
int nLaserOffTC,//激光关闭延时 us
int nEndTC,//结束延时 us
int nPolyTC,//拐角延时 us //
double dJumpSpeed, //跳转速度 mm/s
int& nMinJumpDelayTCUs, //最小跳转延时 us
int nMaxJumpDelayTCUs,//最大跳转延时 us
double dJumpLengthLimit,//跳转长的极限
double dPointTime,//打点时间 ms
BOOL nSpiSpiContinueMode,//SPI 连续模式
int nSpiWave,// SPI 波形选择

int nYagMarkMode,// YAG 优化填充模式
BOOL bPulsePointMode,//脉冲点模式
int& nPulseNum,// 脉冲点数
BOOL bEnableACCMode,//使能加速模式
double dEndComp,//末点补偿


double dAccDist, //加速距离
double dBreakAngle, //中断角度
BOOL bWobbleMode,//抖动模式
double bWobbleDiameter,//抖动直径
double bWobbleDist); //抖动间距
描 述:在程序中调用 lmc1_SetPenParam4 来设置
数据库中对应笔号的参数。
返 回 值: 通用错误码
函 数 名: lmc1_ SetPenDisableState
目 的:设置笔号的使能。
语 法: int lmc1_ SetPenDisableState(int nPenNo,//要设置的笔号(0-255)
BOOL bDisableMark,//是否使能笔号, true 关闭不出光);
描 述:在程序中调用 lmc1_ SetPenDisableState 来关闭打开笔号,使笔号是否
出光。
返 回 值: 通用错误码
函 数 名: lmc1_ GetPenDisableState
目 的: 获取笔号的使能。
语 法: int lmc1_ GetPenDisableState(int nPenNo,//要设置的笔号(0-255)
BOOL& bDisableMark,//是否使能笔号, true 关闭不出光);
描 述:在程序中调用 lmc1_ GetPenDisableState 来获取笔号是否能出光
返 回 值: 通用错误码
函 数 名: lmc1_ GetPenNumberFromName
目 的:从笔名称来获取笔号。
语 法: int lmc1_ GetPenNumberFromName(TCHAR* sPenName); //笔名称
描 述:在程序中调用 lmc1_ GetPenNumberFromName 来获取指定名称的笔号
值。
返 回 值: 笔号(0-255)
函 数 名: lmc1_ GetPenNumberFromEnt
目 的:获取指定对象的笔号。
语 法: int lmc1_ GetPenNumberFromEnt(TCHAR* sEntName); //对象名称
描 述:获取指定对象的笔号。
返 回 值: 笔号(0-255)
函 数 名: lmc1_ SetEntAllChildPen
目 的:获取指定对象的笔号。
语 法: int lmc1_ SetEntAllChildPen(TCHAR* sEntName, //对象名称
int nPenNo,//要设置的笔号(0-255));
描 述:获取指定对象的笔号。
返 回 值: 通用错误码
填充
函 数 名: lmc1_SetHatchParam
目 的: 设置当前填充参数。
语 法: int lmc1_SetHatchParam(BOOL bEnableContour,//使能轮廓本身
int bEnableHatch1,//使能填充 1
int nPenNo1,//填充笔
int nHatchAttrib1,//填充属性
double dHatchEdgeDist1,//填充线边距
double dHatchLineDist1,//填充线间距
double dHatchStartOffset1,//填充线起始偏移距离
double dHatchEndOffset1,//填充线结束偏移距离
double dHatchAngle1,//填充线角度 (角度值)
int bEnableHatch2,//使能填充 2
int nPenNo2,//填充笔
int nHatchAttrib2,//填充属性
double dHatchEdgeDist2,//填充线边距
double dHatchLineDist2,//填充线间距
double dHatchStartOffset2,//填充线起始偏移距离
double dHatchEndOffset2,//填充线结束偏移距离
double dHatchAngle2);//填充线角度 (角度值)
);
bEnableContour 是否使能轮廓

bEnableHatch1 使能填充
nPenNo1 填充笔号
nHatchAttrib1 填充属性,填充属性由下面几个属性相或组合


const int HATCHATTRIB_ALLCALC = 0x01;//全部对象作为整体一起计算
const int HATCHATTRIB_BIDIR = 0x08;//双向填充
const int HATCHATTRIB_EDGE = 0x02;//走一次边
const int HATCHATTRIB_LOOP = 0x10;//环形填充
dHatchEdgeDist1 填充线边距
dHatchLineDist1 填充线间距
dHatchStartOffset1 填充线起始偏移距离
dHatchEndOffset1 填充线结束偏移距离
dHatchAngle1 填充线角度 (角度值)
填充 2 参数意义同填充 1 参数一样。
描 述:在程序中调用 lmc1_SetHatchParam 来设置当前填充参数,当下次向
数据库添加对象使能填充时,即使用此填充参数。(动态库初始化之后,
会在内存里面保留 3 组默认填充参数,在添加新的对象时, 若需要被
创建的对象被填充,可以使用这个默认参数填充。)
返 回 值: 通用错误码
函 数 名: lmc1_SetHatchParam2
目 的: 设置当前填充参数。
语 法: int lmc1_SetHatchParam2(
BOOL bEnableContour,//使能轮廓本身
int nParamIndex,//填充参数序号值为 1,2,3
int bEnableHatch,//使能填充
int nPenNo,//填充参数笔号
int nHatchType,//填充类型 0 单向 1 双向 2 回形 3 弓形 4 弓形不反向
BOOL bHatchAllCalc,//是否全部对象作为整体一起计算
BOOL bHatchEdge,//绕边一次
BOOL bHatchAverageLine,//自动平均分布线
double dHatchAngle,//填充线角度(角度值)
double dHatchLineDist,//填充线间距
double dHatchEdgeDist,//填充线边距
double dHatchStartOffset,//填充线起始偏移距离
double dHatchEndOffset,//填充线结束偏移距离
double dHatchLineReduction,//直线缩进
double dHatchLoopDist,//环间距
int nEdgeLoop,//环数
BOOL nHatchLoopRev,//环形反转
BOOL bHatchAutoRotate,//是否自动旋转角度
double dHatchRotateAngle//自动旋转角度(角度值) );
描 述:在程序中调用 lmc1_SetHatchParam2 来设置当前填充参数,当下次向
数据库添加对象使能填充时,即使用此填充参数。(动态库初始化之后,会在内
存里面保留 3 组默认填充参数,在添加新的对象时,若需要被创建的对象被填充,
可以使用这个默认参数填充。)
返 回 值: 通用错误码
函 数 名: lmc1_ SetHatchEntParam
目 的: 设置填充对象的参数。
语 法: int lmc1_SetHatchEntParam(
TCHAR* pHatchName,//填充对象名称
BOOL bEnableContour,//使能轮廓本身
int nParamIndex,//填充参数序号值为 1,2,3
int bEnableHatch,//使能填充
int nPenNo,//填充参数笔号
int nHatchType,//填充类型 0 单向 1 双向 2 回形 3 弓形 4 弓形不反

BOOL bHatchAllCalc,//是否全部对象作为整体一起计算
BOOL bHatchEdge,//绕边一次
BOOL bHatchAverageLine,//自动平均分布线
double dHatchAngle,//填充线角度(角度值)
double dHatchLineDist,//填充线间距
double dHatchEdgeDist,//填充线边距
double dHatchStartOffset,//填充线起始偏移距离
double dHatchEndOffset,//填充线结束偏移距离
double dHatchLineReduction,//直线缩进
double dHatchLoopDist,//环间距
int nEdgeLoop,//环数
BOOL nHatchLoopRev,//环形反转
BOOL bHatchAutoRotate,//是否自动旋转角度
double dHatchRotateAngle//自动旋转角度(角度值)) ;
描 述: 修改填充对象的填充参数(如果指定对象已被填充,这个对象本身包
含 3 组填充参数,可以使用此接口去针对性的修改)
返 回 值: 通用错误码
函 数 名: lmc1_ SetHatchEntParam2
目 的: 设置填充对象的参数。
语 法: int lmc1_SetHatchEntParam2(
TCHAR* pHatchName,//填充对象名称
BOOL bEnableContour,//使能轮廓本身
int nParamIndex,//填充参数序号值为 1,2,3
int bEnableHatch,//使能填充
BOOL bContourFirst,//轮廓优先标刻
int nPenNo,//填充参数笔号
int nHatchType,//填充类型 0单向 1双向 2回形 3弓形 4弓形不
反向
BOOL bHatchAllCalc,//是否全部对象作为整体一起计算
BOOL bHatchEdge,//绕边一次
BOOL bHatchAverageLine,//自动平均分布线
double dHatchAngle,//填充线角度(角度值)
double dHatchLineDist,//填充线间距
double dHatchEdgeDist,//填充线边距
double dHatchStartOffset,//填充线起始偏移距离
double dHatchEndOffset,//填充线结束偏移距离
double dHatchLineReduction,//直线缩进
double dHatchLoopDist,//环间距
int nEdgeLoop,//环数
BOOL nHatchLoopRev,//环形反转
BOOL bHatchAutoRotate,//是否自动旋转角度
double dHatchRotateAngle,//自动旋转角度(角度值)
BOOL bHatchCrossMode,// 交叉填充
int dCycCount//数目);
描 述:修改填充对象的填充参数(如果指定对象已被填充,这个对象本身包
含 3 组填充参数,可以使用此接口去针对性的修改)
返 回 值: 通用错误码
函 数 名: lmc1_ GetHatchEntParam
目 的:获取填充对象的参数。
语 法: int lmc1_GetHatchEntParam(
TCHAR* pHatchName,//填充对象名称
BOOL& bEnableContour,//使能轮廓本身
int nParamIndex,//填充参数序号值为 1,2,3
int& bEnableHatch,//使能填充
int& nPenNo,//填充参数笔号
int& nHatchType,//填充类型 0 单向 1 双向 2 回形 3 弓形 4 弓形不
反向
BOOL& bHatchAllCalc,//是否全部对象作为整体一起计算
BOOL& bHatchEdge,//绕边一次
BOOL& bHatchAverageLine,//自动平均分布线
double& dHatchAngle,//填充线角度(角度值)
double& dHatchLineDist,//填充线间距
double& dHatchEdgeDist,//填充线边距
double & dHatchStartOffset,//填充线起始偏移距离
double& dHatchEndOffset,//填充线结束偏移距离
double& dHatchLineReduction,//直线缩进
double& dHatchLoopDist,//环间距
int & nEdgeLoop,//环数
BOOL& nHatchLoopRev,//环形反转
BOOL& bHatchAutoRotate,//是否自动旋转角度
double& dHatchRotateAngle//自动旋转角度 (角度值)
描 述: 获取填充对象的填充参数
返 回 值: 通用错误码
函 数 名: lmc1_ GetHatchEntParam2
目 的:获取填充对象的参数。
语 法: int lmc1_GetHatchEntParam2(
TCHAR* pHatchName,//填充对象名称
BOOL& bEnableContour,//使能轮廓本身
Int nParamIndex,//填充参数序号值为 1,2,3
int& bEnableHatch,//使能填充
BOOL& bContourFirst,//轮廓优先标刻
int& nPenNo,//填充参数笔号
int& nHatchType,//填充类型 0 单向 1 双向 2 回形 3 弓形 4 弓形
不反向
BOOL& bHatchAllCalc,//是否全部对象作为整体一起计算
BOOL& bHatchEdge,//绕边一次
BOOL& bHatchAverageLine,//自动平均分布线
double& dHatchAngle,//填充线角度 (角度值)
double& dHatchLineDist,//填充线间距
double& dHatchEdgeDist,//填充线边距
double & dHatchStartOffset,//填充线起始偏移距离
double& dHatchEndOffset,//填充线结束偏移距离
double& dHatchLineReduction,//直线缩进
double& dHatchLoopDist,//环间距
int & nEdgeLoop,//环数
BOOL& nHatchLoopRev,//环形反转
BOOL& bHatchAutoRotate,//是否自动旋转角度
double& dHatchRotateAngle,//自动旋转角度(角度值)
BOOL& bHatchCrossMode,// 交叉填充
int& dCycCount//数目);
描 述:获取填充对象的填充参数
返 回 值: 通用错误码
函 数 名: lmc1_HatchEnt
目 的:填充对象
语 法: int lmc1_ HatchEnt(TCHAR* pEntName,
TCHAR* pEntNameNew) ;
pEntName 被填充对象名称
pEntNameNew 填充后对象名称
描 述: 填充指定对象
返 回 值: 通用错误码
函 数 名: lmc1_UnHatchEnt
目 的:删除对象填充
语 法: int lmc1_UnHatchEnt(TCHAR* pHatchEntName) ;
pHatchEntName 被填充对象名称
描 述: 删除对象填充
返 回 值: 通用错误码
添加删除对象
函 数 名: lmc1_ClearEntLib
目 的: 清除对象库里所有对象。
语 法: int lmc1_ClearEntLib();
描 述:在程序中调用 lmc1_ ClearEntLib 来清除对象库里所有对象。
返 回 值: 通用错误码
函 数 名: lmc1_DeleteEntLib
目 的:删除对象库里指定对象。
语 法: int lmc1_DeleteEnt(TCHAR* pEntName); //要删除的对象名称
描 述:删除对象库里指定对象。
返 回 值: 通用错误码
函 数 名: lmc1_AddTextToLib
目 的: 加入新文本到数据库中。
语 法: int lmc1_AddTextToLib(TCHAR* pStr,
TCHAR* pEntName,
double dPosX,
double dPosY,
double dPosZ,
int nAlign
double dTextRotateAngle,
int nPenNo,
BOOL bHatchText);//是否填充文本对象
pStr 要添加的字符串
pEntName 字符串对象名称
dPosX 字符串的左下角基点的 x 坐标
dPosY 字符串的左下角基点的 y 坐标
dPosZ 字符串对象的 z 坐标
nAlign 对齐方式 0-8
//对齐方式时数字代表的意义
// 6 --- 5 --- 4
// | |
// | |
// 7 8 3
// | |
// | |
// 0 ----- 1 --- -- 2

dTextRotateAngle 字符串绕基点旋转的角度值(弧度值)
nPenNo 文本对象使用的笔号
bHatchText 是否填充文本对象
述:在程序中调用 lmc1_AddTextToLib 加入新文本对象到数据库中。
回 值: 通用错误码
#define CIRTEXTFLAG_REVERSE 0x0001 //反转
#define CIRTEXTFLAG_UPDOWN 0x0002 //上下反转


函 数 名: lmc1_AddCircleTextToLib
目 的: 加入新圆弧文本到数据库中。
语 法: int lmc1_AddCircleTextToLib ( TCHAR *pStr,
TCHAR* pEntName,
double dCenX,
double dCenY,
double dCenZ,
int nPenNo,
int bHatchText,
double dCirDiameter,
double dCirBaseAngle,
BOOL bCirEnableAngleLimit,
double dCirAngleLimit,
int nCirTextFlag);
pStr //字符串
pEntName //字符串对象名称
dCenX //字符左下角基点 x 坐标
dCenY //字符左下角基点 y 坐标
dCenZ //字符 z 坐标
nPenNo //文本对象使用的笔号
bHatchText //是否填充文本
dCirDiameter //基准圆直径
dCirBaseAngle //文字基准角度
bCirEnableAngleLimit //是否使能角度限制
dCirAngleLimit //限制的角度
inCirTextFlag //文本在圆上的方向
返回值:通用的错误代码
函 数 名: lmc1_GetCircleTextParam
目 的: 获得指定圆弧文本对象的参数。
语 法: int lmc1_GetCircleTextParam ( TCHAR* pEntName,
double& dCenX,
double& dCenY,
double &dCenZ,
double& dCirDiameter,
double& dCirBaseAngle,
BOOL& bCirEnableAngleLimit,
Double& dCirAngleLimit,
int& nCirTextFlag);
pEntName //字符串对象名称
dCenX //字符左下角基点 x 坐标
dCenY //字符左下角基点 y 坐标
dCenZ //字符 z 坐标
dCirDiameter //基准圆直径
dCirBaseAngle //文字基准角度
bCirEnableAngleLimit //是否使能角度限制
dCirAngleLimit //限制的角度
nCirTextFlag //文本在圆上的方向
返回值:通用的错误代码
函 数 名: lmc1_SetCircleTextParam
目 的: 设置指定圆弧文本对象的参数。
语 法: int lmc1_SetCircleTextParam ( TCHAR* pEntName,
double dCenX,
double dCenY,
double dCenZ,
double dCirDiameter,
double dCirBaseAngle,
BOOL bCirEnableAngleLimit,
double dCirAngleLimit,
int nCirTextFlag);
pEntName //字符串对象名称
dCenX //字符左下角基点 x 坐标
dCenY //字符左下角基点 y 坐标
dCenZ //字符 z 坐标
dCirDiameter //基准圆直径
dCirBaseAngle //文字基准角度
bCirEnableAngleLimit //是否使能角度限制
dCirAngleLimit //限制的角度
nCirTextFlag //文本在圆上的方向
返回值:通用的错误代码
函 数 名: lmc1_AddCurveToLib
目 的: 加入曲线到数据库中。
语 法: int lmc1_AddCurveToLib(double ptBuf[][2],//曲线顶点数组
int ptNum,//曲线顶点数
TCHAR* pEntName,//曲线对象名称
int nPenNo,//曲线对象使用的笔号
int bHatch);//曲线是否填充
描 述:在程序中调用 lmc1_AddCurveToLib 加入曲线对象到数据库中。
返 回 值: 通用错误码
函 数 名: lmc1_AddPointToLib
目 的: 加入一组点到数据库中。
语 法: int lmc1_AddPointToLib(double ptBuf[][2],//点位置数组
int ptNum,//点的个数
TCHAR* pEntName,//点对象名称
int nPenNo);//点对象使用的笔号
描 述:在程序中调用 lmc1_AddPointToLib 加入一组点对象到数据库中。
返 回 值: 通用错误码
函 数 名: lmc1_AddDelayToLib
目 的: 加入延时到数据库中。
语 法: int lmc1_AddDelayToLib(double dDelayMs);//延时时长,单位 ms
描 述:在程序中调用 lmc1_ AddDelayToLib 加入一个延时到数据库中。
返 回 值: 通用错误码
函 数 名: lmc1_AddWritePortToLib
目 的: 加入输出口到数据库中。
语 法: int lmc1_AddWritePortToLib(int nOutPutBit,//输出口的值, 0 到 15
BOOL bHigh, //是否是高电平
BOOL bPluse, //是否是脉冲
double dPulseTimeMs);//脉冲长的,单位 ms
描 述: 加入一个输出口到数据库中。
返 回 值: 通用错误码
函 数 名: lmc1_AddFileToLib
目 的: 加入指定文件到数据库中。
语 法: 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)
pFileName 要添加的文件名称, 支持的文件格式有 ezd,dxf,dst,
plt,ai,bmp,jpg,tga,png,gif,tiff 等
pEntName 文件对象名称
dPosX 文件的左下角基点的 x 坐标
dPosY 文件的左下角基点的 y 坐标
dPosZ 文件对象的 z 坐标
nAlign 对齐方式 0-8
dRatio 文件缩放比例
nPenNo 文件对象使用的笔号
bHatchFile 是否填充文件对象
描 述:在程序中调用 lmc1_AddFileToLib 加入新文件对象到数据库中。
返 回 值: 通用错误码
函 数 名: lmc1_AddBarCodeToLib
目 的: 增加条码对象到数据库里。
语 法: int lmc1_AddBarCodeToLib((TCHAR* pStr,
TCHAR* pEntName,
double dPosX,
double dPosY,
double dPosZ,
int nAlign,
int nPenNo,
int bHatchText,
int nBarcodeType,
WORD wBarCodeAttrib,
double dHeight,
double dNarrowWidth,
double dBarWidthScale[4],
double dSpaceWidthScale[4],
double dMidCharSpaceScale,
double dQuietLeftScale,
double dQuietMidScale,
double dQuietRightScale,
double dQuietTopScale,
double dQuietBottomScale,
int nRow,
int nCol,
int nCheckLevel,
int nSizeMode,
double dTextHeight,
double dTextWidth,
double dTextOffsetX,
double dTextOffsetY,
double dTextSpace,
double dDiameter,
TCHAR* pTextFontName);
pStr 条码表示的字符串
pEntName 条码对象名称
dPosX, 条码左下角基点 x 坐标
dPosY 条码左下角基点 y 坐标
dPosZ 条码 z 坐标
nAlign, 对齐方式 0-8
nPenNo 使用的笔号
bHatchText 是否填充条码
nBarcodeType 条码类型
#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 BARCODETYPE_QRCODE = 19,
#define BARCODETYPE_MICROQRCODE = 20
wBarCodeAttrib 条码属性
//const WORD BARCODE_ATT_CHECKNUM = 0x0004;//自校验
//const WORD BARCODE_ATT_REVERSE = 0x0008;//反转
//const WORD BARCODE_ATT_SHORTMODE = 0x0040;//二维码缩短模式
//const WORD BARCODE_ATT_DOTMODE = 0x0080;//二维码为点模式
//const WORD BARCODE_ATT_CIRCLEMODE = 0x0100;//二维码为圆模式
//const WORD BARCODE_ATT_ENABLETILDE = 0x0200;//DataMatrix 使能~
//const WORD BARCODE_ATT_RECTMODE = 0x0400;//二维码为矩形模式
//const WORD BARCODE_ATT_SHOWCHECKNUM = 0x0800;//显示校验码文字
//const WORD BARCODE_ATT_HUMANREAD = 0x1000;//显示人识别字符
//const WORD BARCODE_ATT_NOHATCHTEXT = 0x2000;//不填充字符
//const WORD BARCODE_ATT_BWREVERSE = 0x4000;//黑白反转
//const WORD BARCODE_ATT_2DBIDIR = 0x8000;//2 维码双向排列

dHeight 整个条码的高
dNarrowWidth 最窄模块宽


dBarWidthScale 条宽比例(与最窄模块宽相比)
dSpaceWidthScale 空宽比例(与最窄模块宽相比)
dMidCharSpaceScale 字符间隔比例(与最窄模块宽相比)
dQuietLeftScale 条码左空白宽度比例(与最窄模块宽相比)
dQuietMidScale 条码中空白宽度比例(与最窄模块宽相比)
dQuietRightScale 条码右空白宽度比例(与最窄模块宽相比)
dQuietTopScale 条码上空白宽度比例(与最窄模块宽相比)
dQuietBottomScale 条码下空白宽度比例(与最窄模块宽相比)
nRow 二维码行数
nCol 二维码列数
nCheckLevel,//pdf417 错误纠正级别 0-8
nSizeMode, //QRCODE 尺寸模式 0-40
//DataMatrix 尺寸模式 0-30
#define QRCODE_SIZEMODE_SMALLEST 0
#define QRCODE _SIZEMODE_VERSION1 1
#define QRCODE _SIZEMODE_VERSION2 2
#define QRCODE _SIZEMODE_VERSION3 3
#define QRCODE _SIZEMODE_VERSION4 4
#define QRCODE _SIZEMODE_VERSION5 5
#define QRCODE _SIZEMODE_VERSION6 6
#define QRCODE _SIZEMODE_VERSION7 7
#define QRCODE _SIZEMODE_VERSION8 8
#define QRCODE _SIZEMODE_VERSION9 9
#define QRCODE _SIZEMODE_VERSION10 10
#define QRCODE _SIZEMODE_VERSION11 11
#define QRCODE _SIZEMODE_VERSION12 12
#define QRCODE _SIZEMODE_VERSION13 13
#define QRCODE _SIZEMODE_VERSION14 14
#define QRCODE _SIZEMODE_VERSION15 15
#define QRCODE _SIZEMODE_VERSION16 16
#define QRCODE _SIZEMODE_VERSION17 17
#define QRCODE _SIZEMODE_VERSION18 18
#define QRCODE _SIZEMODE_VERSION19 19
#define QRCODE _SIZEMODE_VERSION20 20
#define QRCODE _SIZEMODE_VERSION21 21
#define QRCODE _SIZEMODE_VERSION22 22
#define QRCODE _SIZEMODE_VERSION23 23
#define QRCODE _SIZEMODE_VERSION24 24
#define QRCODE _SIZEMODE_VERSION25 25
#define QRCODE _SIZEMODE_VERSION26 26
#define QRCODE _SIZEMODE_VERSION27 27
#define QRCODE _SIZEMODE_VERSION28 28
#define QRCODE _SIZEMODE_VERSION29 29
#define QRCODE _SIZEMODE_VERSION30 30
#define QRCODE _SIZEMODE_VERSION31 31
#define QRCODE _SIZEMODE_VERSION32 32
#define QRCODE _SIZEMODE_VERSION33 33
#define QRCODE _SIZEMODE_VERSION34 34
#define QRCODE _SIZEMODE_VERSION35 35
#define QRCODE _SIZEMODE_VERSION36 36
#define QRCODE _SIZEMODE_VERSION37 37
#define QRCODE _SIZEMODE_VERSION38 38
#define QRCODE _SIZEMODE_VERSION39 39
#define QRCODE _SIZEMODE_VERSION40 40
#define DATAMTX_SIZEMODE_SMALLEST 0
#define DATAMTX_SIZEMODE_10X10 1
#define DATAMTX_SIZEMODE_12X12 2
#define DATAMTX_SIZEMODE_14X14 3
#define DATAMTX_SIZEMODE_16X16 4
#define DATAMTX_SIZEMODE_18X18 5
#define DATAMTX_SIZEMODE_20X20 6
#define DATAMTX_SIZEMODE_22X22 7
#define DATAMTX_SIZEMODE_24X24 8
#define DATAMTX_SIZEMODE_26X26 9
#define DATAMTX_SIZEMODE_32X32 10
#define DATAMTX_SIZEMODE_36X36 11
#define DATAMTX_SIZEMODE_40X40 12
#define DATAMTX_SIZEMODE_44X44 13
#define DATAMTX_SIZEMODE_48X48 14
#define DATAMTX_SIZEMODE_52X52 15
#define DATAMTX_SIZEMODE_64X64 16
#define DATAMTX_SIZEMODE_72X72 17
#define DATAMTX_SIZEMODE_80X80 18
#define DATAMTX_SIZEMODE_88X88 19
#define DATAMTX_SIZEMODE_96X96 20
#define DATAMTX_SIZEMODE_104X104 21
#define DATAMTX_SIZEMODE_120X120 22
#define DATAMTX_SIZEMODE_132X132 23
#define DATAMTX_SIZEMODE_144X144 24
#define DATAMTX_SIZEMODE_8X18 25
#define DATAMTX_SIZEMODE_8X32 26
#define DATAMTX_SIZEMODE_12X26 27
#define DATAMTX_SIZEMODE_12X36 28
#define DATAMTX_SIZEMODE_16X36 29
#define DATAMTX_SIZEMODE_16X48 30
dTextHeight 人识别字符字体高度
dTextWidth 人识别字符字体宽度
dTextOffsetX 人识别字符 X 方向偏移
dTextOffsetY 人识别字符 Y 方向偏移
dTextSpace 人识别字符间距
dDiameter 圆模式直径(矩形模式单元模块高)
pTextFontName 文本字体名称
描 述:在程序中调用 lmc1_ AddBarCodeToLib 增加条码对象到数据库里。
返 回 值: 通用错误码
函 数 名: lmc1_GetBarcodeParam
目 的: 获取条码参数
语 法: int lmc1_GetBarcodeParam(TCHAR* pEntName,
WORD&wBarCodeAttrib,
int& nSizeMode,
int& nCheckLevel,
int& nLangPage,
double& dDiameter,
int&nPointTimesN,
double& dBiDirOffset);
pEntName 对象名称

wBarCodeAttrib 条码属性
nSizeMode 尺寸模式
nCheckLevel 错误纠正级别
nLangPage 语言编码页
nPointTimesN 点倍数
dBiDirOffset 双向扫描补偿
述: 获取指定条码对象属性参数,具体属性值可参考添加条码函数
回 值: 通用错误码


函 数 名: lmc1_SetBarcodeParam
目 的: 设置条码参数
语 法: int lmc1_SetBarcodeParam(TCHAR* pEntName,
WORD wBarCodeAttrib,
int nSizeMode,
int nCheckLevel,
int nLangPage,
double dDiameter,
int nPointTimesN,

double dBiDirOffset);
pEntName 对象名称
wBarCodeAttrib 条码属性
nSizeMode 尺寸模式
nCheckLevel 错误纠正级别
nLangPage 语言编码页
nPointTimesN 点倍数
dBiDirOffset 双向扫描补偿
语言编码 int
Default 0
ANSI(7Bit 1252) 437
Latin-1(ISO 8859-1) 850
Japanese(SHIFT-JIS,932) 932
Korea(Hangul,949) 949
Simple Chinses(GB2312,936) 936
Trad chinese(BIG5,950) 950
UNICODE(UTF8) 65001
述:设置指定条码对象属性参数,具体属性值可参考添加条码函数
回 值: 通用错误码



扩展轴
函 数 名: lmc1_Reset
目 的: 复位扩展轴坐标。
语 法: int lmc1_Reset(BOOL bEnAxis0 , BOOL bEnAxis1);
bEnAxis0 是否使能扩展轴号 0
bEnAxis1 是否使能扩展轴号 1
描 述:在程序中调用扩展轴相关的函数,必须先调用 lmc1_Reset 来设置使
能对应的轴,当扩展轴运动到极限位置时,可以用此函数复位扩展轴
坐标。
返 回 值: 通用错误码
函 数 名: lmc1_AxisCorrectOrigin
目 的: 扩展轴校正原点。
语 法: int lmc1_AxisCorrectOrigin(int axis);
axis 指定要校正原点的扩展轴号 0 = 轴 0 1 = 轴 1
描 述:在程序中调用 lmc1_ AxisCorrectOrigin 可以使扩展轴自动校正原点。
返 回 值: 通用错误码
函 数 名: lmc1_AxisMoveTo
目 的: 扩展轴移动到指定坐标位置。
语 法: int lmc1_AxisMoveTo(int axis,double GoalPos);
axis 指定要运动的扩展轴号 0 = 轴 0 1 = 轴 1
GoalPos 坐标绝对位置
描 述:在程序中调用 lmc1_ AxisMoveTo 可以使扩展轴移动到指定坐标位置,
扩展轴的运动速度使用设备参数里定义的最大速度。
返 回 值: 通用错误码
函 数 名: lmc1_ AxisMoveToPulse
目 的: 扩展轴移动到指定脉冲位置。
语 法: int lmc1_AxisMoveToPulse(int axis, int GoalPos);
axis 指定要运动的扩展轴号 0 = 轴 0 1 = 轴 1
GoalPos 坐标绝对脉冲位置
描 述:在程序中调用 lmc1_ AxisMoveToPulse 可以使扩展轴移动到指定脉冲
位置,扩展轴的运动速度使用设备参数里定义的最大速度。
返 回 值: 通用错误码
函 数 名: lmc1_GetAxisCoor
目 的: 得到扩展轴的当前坐标。
语 法: double lmc1_GetAxisCoor(int axis);
axis 指定的扩展轴号 0 = 轴 0 1 = 轴 1
描 述:在程序中调用 lmc1_ GetAxisCoor 得到扩展轴的当前坐标。
返 回 值: 扩展轴的当前坐标
函 数 名: lmc1_GetAxisCoorPulse
目 的: 得到扩展轴的当前脉冲。
语 法: int lmc1_GetAxisCoorPulse(int axis);
axis 指定的扩展轴号 0 = 轴 0 1 = 轴 1
描 述:在程序中调用 lmc1_ GetAxisCoorPulse 得到扩展轴的当前脉冲。
返 回 值: 扩展轴的当前脉冲值

3.开发步骤

下面我们结合一个实例来讲解如何进行二次开发。
客户要求在一个矩形工件中心加工一行文本(如下图所示),每个工件要加
工的文本都必须从网络服务器上去在线查询获得。
用户要进行二次开发一般的步骤如下:
1. 先用 ezcad2 建立一个模板文件 test.ezd,然后新建一个文本对象,把文本对象
命名为”name”。然后调节文本大小,位置和加工参数使加工效果达到客户要
求,此时保存文件并退出 ezcad2。
2. 编写专用软件调用 MarkEzd.dll 动态链接库
第一步: .动态加载MarkEzd.dll
HINSTANCE hEzdDLL = LoadLibrary(_T("MarkEzd.dll"));
第二步: .取得将要调用的DLL中函数的指针
lmc1_Initial=(LMC1_INITIAL)GetProcAddress(hEzdDLL,
_T("lmc1_Initial"));
lmc1_Close=(LMC1_CLOSE)GetProcAddress(hEzdDLL,
_T("lmc1_Close"));
lmc1_LoadEzdFile=(LMC1_LOADEZDFILE)GetProcAddress(hEzdDLL,_
T("lmc1_LoadEzdFile"));
lmc1_Mark=(LMC1_MARK)GetProcAddress(hEzdDLL,_T("lmc1_Mark"));
lmc1_ChangeTextByName=(LMC1_CHANGETEXTBYNAME)GetProcAd
dress(hEzdDLL,_T("lmc1_ChangeTextByName"));
第三步:用函数指针调用DLL中函数完成相应功能
1)初始化lmc1控制卡 lmc1_Initial()
2)打开 test.ezd lmc1_LoadEzdFile(_T(“test.ezd”))。
3)从网络服务器上去在线查询获得要加工的文本 (需要用户自己编写这段
程序)
4)更新更改指定名称的文本对象的文本内容
假设上一步取得的文本是“1234567”
lmc1_ChangeTextByName(_T(“name” ), _T(“1234567” ) );
5)调用lmc1_Mark加工
6)如果还要加工则返回第3步继续。
7)关闭lmc1控制卡 lmc1_Close();
第四步:
调用Windows API函数释放动态链接库。
FreeLibrary(hEzdDLL)

发布了131 篇原创文章 · 获赞 112 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/leon_zeng0/article/details/99709298