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

EzCad_Dev_Dome 二次开发运行界面


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

软件源代码地址:https://github.com/ospanic/EzCad_Dev_Dome

开发所需材料


  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]);
}

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

EzCad 二次开发 金橙子激光雕刻机c# 能显示预览图相关推荐

  1. NX二次开发-NXOPEN C# Part.GetPreviewImage读取prt文件预览图

    NXOpen C#有专门读取Prt文件预览图的方法 我刚才又找了一下,NXOpen C++也有 西门子GTAC官方上的一个.net例子(我没有webkey账号,代码是从上面大神博客转载的) NX AP ...

  2. iOS开发,利用PanoramaGL生成360度全景预览图,附选择本地全景图片并生成全景预览...

    前言 初做全景项目,涉及到了360度全景展示(也可以是720度的旋转),查找了很多资料,很多都是用PanoramaGL这个库实现的,本人也踩了一下坑,下面我简单的总结一下. 初识PanoramaGL ...

  3. BarTender破解版 标签打印二次开发二维码C#预览图

    很多生产环节都需要条码打印的功能,这篇文章就介绍下如何使用C#实现条码打印的功能,希望对大家能有所帮助! 条码设计软件采用的是BarTender 10.1,在此基础上进行的二次开发. 运行成功的预览图 ...

  4. JAVA微信公众号开发第8篇JSSDK图片上传预览

    简介 博主微信JSSDK&图片上传预览基于微信分享做拓展,所以一些配置操作请点击查阅JAVA微信公众号开发第7篇JSSDK&微信分享博文 页面 <html><head ...

  5. Solid Edge 二次开发插件 工程图环境下根据装配视图批量生成图纸页

    特点: 可预先配置模板参数.如:是否同时生成零件明细表.零件明细表模板.是否自动符号标注.生成特定视图等. 根据装配.零件.钣金零件类型,可分别匹配不同的图纸页模板及配置参数(如:不同的图纸图幅.不同 ...

  6. 微信小程序开发聊天室——实时聊天,支持图片预览

    第一次写小程序,老板就让我用websoket写个聊天对话,群聊这种.第一次写聊天功能,第一次用websoket,第一次用小程序,这是在考验我吗?不过我还是研究了一下,终于实现了. 首先看一下界面,界面 ...

  7. 手动选择显示_QGIS 二次开发笔记(2)——显示图层

    本文使用 Zhihu On VSCode 创作并发布 基于 QGIS 二次开发,最首要的功能就是显示图层.这是个看似非常简单的功能,但是在 QGIS 中写了非常复杂的代码,以支持各种数据源. 但是我们 ...

  8. autocad 二次开发 拆分图纸_AutoCAD二次开发技术在工程图纸绘制中的应用

    本文通过作者在最近几年的计算机辅助设计和绘图工作中应用 A utoCAD 进行二次开发的一些经 验 , 分别利用几个实例程序来说明 A utoCAD 二次开发技术在工程图纸绘制中的应用 . [ 中图分 ...

  9. wordpress二次开发技巧-functions.php篇

    前言 最近又写了个网站,也是基于wordpress,LEE周刊官网:www.leeweekly.com.这个网站和轩枫阁的部分功能有所不同,部分功能困扰了挺久,通过Google搜索到了各种解决方案,记 ...

  10. Rational AppScan 标准版可扩展性和二次开发能力简介

    下载:IBM® Rational® AppScan 标准版  |   Web 应用安全与 IBM Rational AppScan 工具包 获取免费的 Rational 软件工具包系列,下载更多的 R ...

最新文章

  1. @程序员:Python 3.8正式发布,重要新功能都在这里
  2. MySQL数据库中的索引
  3. c# websocketServer传图片
  4. java算法之冒泡排序法
  5. LeetCode215:数组中第K个最大元素
  6. boost::kruskal_minimum_spanning_tree用法的测试程序
  7. 为什么借钱要上央行征信?
  8. spring-boot注解详解(七)
  9. 【翻译】无需安装Python,就可以在.NET里调用Python库
  10. 条件独立的理解及举例
  11. 精讲了33道二叉树经典题目之后,我总结了这些,帮你一举搞定二叉树
  12. “空天地”一体化的遥感农业保险简介
  13. 什么是黑盒测试,白盒测试,灰盒测试?
  14. 洛谷—— P1419 寻找段落
  15. 江民科技董事长王江民因病在北京逝世 享年59岁
  16. 安装MySQL绿色版本,不用装软件、不用装软件、不用装软件
  17. 电脑上的记事本便签纸怎么用
  18. Datadog:APM和分布式跟踪的新Java支持
  19. 2010考研数学二第(15)题——导数应用:单调区间与极值
  20. 理解滑动平均(exponential moving average)

热门文章

  1. 调用地图JS/API只显示一个省
  2. Delphi 2007安装问题
  3. linux通过usb链接网络,Nokia N9 通过USB连接使用PC(Linux)主机的网络
  4. 小编详解网络蜘蛛的安全隐患及预防方法
  5. 大学计算机操作Windows7实验报告,实验报告 计算机操作系统-Windows 7
  6. 服务器定时关机 修改时间,服务器调定时关机
  7. 安装maya过程记录
  8. Python基础教程,Python入门教程(非常详细)
  9. 拉普拉斯变换学习笔记
  10. 集体智慧编程源代码(免费)