2025年EzCad 二次开发 金橙子激光雕刻机c 能显示预览图

EzCad 二次开发 金橙子激光雕刻机c 能显示预览图工厂生产需要 搞过一段时间的激光雕刻金橙子 EzCad 二次开发 网上关于这方面的资料比较少且比较零碎 最近闲下来写篇文章总结一下开发流程 希望对大家能有所帮助 EzCad Dev Dome 二次开发运行界面 先在这里放个图片 证明我搞成功了 软件源代码地址

大家好,我是讯享网,很高兴认识大家。

工厂生产需要,搞过一段时间的激光雕刻金橙子EzCad二次开发,网上关于这方面的资料比较少且比较零碎,最近闲下来写篇文章总结一下开发流程,希望对大家能有所帮助!

EzCad_Dev_Dome 二次开发运行界面


先在这里放个图片,证明我搞成功了!

软件源代码地址:GitHub - ospanic/EzCad_Dev_Dome: A EzCad laser mark develop dome whit EzCad 2.7.0

image
讯享网

开发所需材料


  1. 要求你的计算机能够正常使用雕刻软件EzCad 2.7.0 或更高版本。
  2. 需要有对应的 MarkEzd.dll 二次开发动态链接库
  3. 我编写的用于c#显示预览图的动态链接库 MyMarkEzd.dll 或 MyMarkEzd_xp.dll

说明:

首先你的电脑需要能够运行正常的激光雕刻软件进行常规雕刻作业,然后检查一下你的激光雕刻软件里面是否有 MarkEzd.dll 这个文件,如果有那么恭喜你,搞成功的概率不较大。如果没有,那可能就要使用我提供的 MarkEzd.dll,我提供的这个MarkEzd.dll 文件是2.7.0版本,可能在某些雕刻机上需要加密狗才能运行。最后还需要我编写的动态链接库 MyMarkEzd.dll 或 MyMarkEzd_xp.dll 用于显示预览图。

上述材料均可可从我在上文提供的源码下载地址下载。

开发步骤


首先从上文中的下载地址下载我提供的开发示例源代码,编译运行下试试,如果能正常运行显示预览图和雕刻,那么恭喜你,一次点亮!

如果可以运行,提示 “没有找到加密狗”,那么在某宝购买个USB加密狗插上去试试,或许就行了!

如果可以运行且可以显示预览图,雕刻的时候提示错误,可能是EzCad软件没有配置好,打开二次开发目录下的EzCad软件,按照你的可以正常工作的EzCad软件配置一遍试试。

如果我的示例程序不能运行,或者说你不愿意购买加密狗,可以按照如下步骤折腾一下:

1. 将你原来的能运行的Ezcad软件复制一份;

2. 将我示例代码中的 MyMarkEzd.dll ,MyMarkEzd_xp.dll ,MarkEzd.dll,这三个文件及我们二次开发编译exe可执行文件,复制到你原来的EzCad文件加内。

3.如果我们编译的exe文件能在此文件夹下正常运行,恭喜你成功了。如果不能运行,根据错误提示,从我提供的EzCad软件中替换相关的dll文件到你的EzCad软件中。每替换一次,运行一次,不保证最后可以成功。

代码介绍


首先要从dll文件中导入如下函数,供c#语言调用:

[DllImport(@"MarkEzd.dll", EntryPoint = "lmc1_Close", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] public static extern Int32 lmc1_Close(); [DllImport("MarkEzd.dll", EntryPoint = "lmc1_Initial", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] public static extern int lmc1_Initial(string strEzCadPath, int bTestMode, IntPtr hOwenWnd); [DllImport("MarkEzd.dll", EntryPoint = "lmc1_LoadEzdFile", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] public static extern int lmc1_LoadEzdFile(string strFileName); [DllImport("MarkEzd.dll", EntryPoint = "lmc1_ChangeTextByName", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] public static extern int lmc1_ChangeTextByName(string strTextName, string strTextNew); [DllImport("MarkEzd.dll", EntryPoint = "lmc1_DeleteEnt", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] public static extern int lmc1_DeleteEnt(string strEntName); [DllImport("MarkEzd.dll", EntryPoint = "lmc1_Mark", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] public static extern int lmc1_Mark(int bFlyMark); [DllImport("MarkEzd.dll", EntryPoint = "lmc1_RedLightMark", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)] public static extern Int32 lmc1_RedLightMark(); //显示一次红光对标 [DllImport("MyMarkEzd.dll", EntryPoint = "CsGetHBitmap", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] public static extern IntPtr CsGetHBitmap(IntPtr hOwenWnd, int width, int height); [DllImport("MyMarkEzd_xp.dll", EntryPoint = "CsGetHBitmap", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] public static extern IntPtr CsGetHBitmap_XP(IntPtr hOwenWnd, int width, int height);

讯享网

激光雕刻机驱动流程如下:

讯享网int c = lmc1_Initial(Application.StartupPath, 0, Handle); //初始化激光雕刻机 if (c != 0) { MessageBox.Show("初始化Lmc失败\r\n错误代码:" + c + "\r\n错误原因:" + EzCad_Error_Code.ErrorMessage[c]); //lmc1_Close(); return; } if (lmc1_LoadEzdFile(Application.StartupPath + "/test.ezd") == 0) //加载模板丝印文件 { lmc1_Close(); MessageBox.Show("加载模板文件出错\r\n错误代码:" + c + "\r\n错误原因:" + EzCad_Error_Code.ErrorMessage[c]); return; } lmc1_ChangeTextByName("test_qr", textBox.Text); //修改二维码 lmc1_ChangeTextByName("test_str", textBox.Text); //修改文本 Bitmap m = null; try { if (Environment.OSVersion.Version.Major > 5) //主版本号大于五为Vasta以上系统 { m = Image.FromHbitmap(CsGetHBitmap(Handle, 560, 320)); //获取预览图片,win7及以上 } else { m = Image.FromHbitmap(CsGetHBitmap_XP(Handle, 560, 320));//获取预览图片,XP系统 } } catch (Exception ex) { MessageBox.Show("获取预览图时发生错误:" + ex.Message); return; } if (m == null) { MessageBox.Show("无法获取预览图!!!"); lmc1_Close(); return; } else { pictureBox.Image = m; //将预览图显示到页面上 } lmc1_RedLightMark(); //执行一次红光对标 Thread.Sleep(10); //间隔时间可调 lmc1_RedLightMark(); //执行一次红光对标 Thread.Sleep(10); //间隔时间可调 lmc1_RedLightMark(); //执行一次红光对标 Thread.Sleep(10); //间隔时间可调 c = lmc1_Mark(0); //执行镭雕 if (c == 0) { MessageBox.Show("雕刻完成!!!"); else { MessageBox.Show("雕刻时出错\r\n错误代码:" + c + "\r\n错误原因:" + EzCad_Error_Code.ErrorMessage[c]); } 

如果有疑问可直接在文章下面留言!

小讯
上一篇 2025-03-27 13:34
下一篇 2025-03-19 12:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/75350.html