激光打标是以高密度、高能量的激光束对各种材质媒介(塑料,布匹,金属,陶瓷等等)进行表面局部照射加工,使表层材料汽化或发生颜色变化的化学反应,从而留下永久性标记的一种清洁环保的表面加工方法。激光打标可以打出各种文字、符号和图案等,字符大小可以从毫米到微米量级,这对产品的防伪有特殊的意义。正是因为其普适性优良,使其在制造业对产品质量要求越来越严苛的今天发挥其越来越宽广的应用。

在ApolloStudio中硬件支持仓库中也对市面上使用范围最广、影响力最大的由北京金橙子科技股份有限公司所开发的激光打标机控制板卡进行了深度支持(以EzCad2为载体)。EzCad2是专为平面标刻、精细零部件切割所专门设计的版本。EzCad2基本操作我们在此篇不再赘述,本篇着重点在于对其进行二次开发,我们先在脚本工具集中来大致预览下ApolloStudio所提供哪些精细功能:

ApolloStudio所支持的功能完全来自官方授权最新版的SDK,集成度高达90%,适度删减了部分二次开发中冷门的用法。

开发准备

在开发之前我们需要了解下二次开发的流程原理,ApolloStudio通过SDK直接接管了激光打标板卡,因此无需再开启EzCad2软件(强行开启也会报错,反之亦然,同一时间只能由一款软件对板卡进行接管,ApolloStudio如果不点启动按钮进行初始化操作则不会对板卡进行接管,EzCad2开启会默认启用初始化操作),在ApolloStudio中对二次开发流程进行了大幅优化后可以简单分为3个步骤:

  1. 加载模板文件(必需项)
  2. 替换模板内容(该步骤可根据需求省略,不执行替换操作会默认调用模板内置编码规则进行标刻,替换操作会令内置规则失效)
  3. 执行标刻(必需项)

ApolloStudio内部本身不带SDK,故开发之前需将SDK完整的复制到ApolloStudio,本篇中以官方最新发布的支持二次开发的2.14.9开发版EzCad2为例(官网下载的版本不包含SDK,拥有SDK的版本需得到官方分发或网上获取,2.14.9版本软件内置了SDK,不同硬件可能需要不同版本的软件进行支持,本文以官方V4板卡配2.14.9软件为例),开发之前需将该版本EzCad2软件目录内所有文件(包括文件夹)完整复制到ApolloStudio程序根目录中,切记。

开始使用

编辑模板

EzCad2软件二次开发是通过标记对象的对象名来找到对应对象的,所以我们事先在需要替换对象内容之前对对象名称进行命名:

我们这里在模板内放置一个文本数据,然后对其进行命名为“1”,保存模板,并命名模板文件名为1.ezd。(设置为二维码也可以,我们这里为了直观简洁直接使用文本数据,图片目前不支持替换,主要原因是不同尺寸格式来源的图片在EzCad2里面需要对图像的工艺参数进行定制才可达到令人满意的效果,尚不具备批量自动处理的能力(官方证实),有替代方案是可以通过创建多个模板,对不同图案进行个性定制后,通过模板文件名进行调用(模板内文本属性的内容还是可以替换的))

ApolloStudio配置

在ApolloStudio V3之后的版本中,JCZ板卡已作为扩展插件接入,故无需配置UI端,直接使用脚本即可调用。

界面与脚本

在本案例中,我们想要实现可以通过界面按钮或者板卡输入引脚(板卡默认自带8进8出共16个自定义IO点)进行触发标刻,并且界面同步显示标刻的内容。

UI设计

我们设置一个命名为pic1的图像框,然后配置一个按钮,值得注意的是需要设置按钮的“控件自定义事件”,如上图所示:点选按钮后,点击控件自定义事件,在弹框中选择“绑定按钮标志位”,这里我们设置数值序号为0,然后添加事件,确定保存事件即可,保存该UI布局文件。

脚本设计

#-*- coding: UTF-8 -*-
#加载内嵌模块
import clr,sys,time,lmjcz#创建金橙子连接对象
myjcz = lmjcz.AS_LM_JCZ_Obj(AS)
#板卡初始化连接
if not myjcz.Init():AS.Func_SysInfoAdd("板卡初始化连接失败,请确认配置后再试!")sys.exit(0)
AS.Func_SysInfoAdd("板卡初始化链接成功...")#执行循环扫描
while True:#根据按钮0的触发标志位或者板卡硬件输入0的触发来激活操作流程if AS.Func_UI_Button_GetValue(0) or myjcz.GetInPort(0):AS.Func_SysInfoAdd("开始加载模板...")myjcz.LoadFile("D:\\Download\\金橙子激光打标卡(EzCAD2)\\01.ezd")#加载EzCad2模板文件myjcz.ChangeContent("1", "hello myworld!")#替换对象内容AS.Func_UI_PictureBox_SetImage("pic1", myjcz.GetPreviewImg(640, 480))#界面显示预览图像AS.Func_SysInfoAdd("打刻过程开始...")if myjcz.Mark(False):#开始标刻,带True表示飞行标刻模式AS.Func_SysInfoAdd("打刻结束!")else:AS.Func_SysInfoAdd("打刻异常!")AS.Func_UI_Button_SetValue(0, False)#复位按钮触发标志位time.sleep(0.5)#系统扫描周期,减少CPU占用率

脚本中我们通过设置一个循环扫描,周期性的检测按钮和IO输入点被触发的信号来执行操作。

结果验证

ApolloStudio在启动时会尝试连接板卡,这里需要等待10秒左右(笔者也不清楚官方为何设计这么久),之后点击打标,即可看到图像显示,并且已驱动激光机对预览图像进行加工操作(由于设置了循环扫描,故该操作过程是可以重复触发的)。

***********************************************************************************************************************************************

ApolloStudio最新版下载地址(网盘有交流群号):

(点击跳转至首页文章,见文章最底部下载链接)

ApolloStudio高手之路(4):用Python以最轻便的方式进行金橙子激光打标板卡二次开发(以EzCad2为载体二次开发)相关推荐

  1. python高手之路第三版_《Python高手之路(第3版)》——1.3 版本编号-阿里云开发者社区...

    本节书摘来自异步社区<Python高手之路(第3版)>一书中的第1章,第1.3节,作者[法]Julien Danjou,王飞龙 译,更多章节内容可以访问云栖社区"异步社区&quo ...

  2. 《Python高手之路(第3版)》——1.5 Joshua Harlow访谈

    本节书摘来自异步社区<Python高手之路(第3版)>一书中的第1章,第1.5节,作者[法]Julien Danjou,王飞龙 译,更多章节内容可以访问云栖社区"异步社区&quo ...

  3. 视频教程-Web前端从初级到高手之路-其他

    Web前端从初级到高手之路 Adobe认证讲师 Adobe教育讲师委员会委员(省级) 从事Web前端设计10余年,在用户习惯与Web易用性上有深入的研究.为国内产地行业.政府机关进行展示类Web整体设 ...

  4. 视频教程-从如何应聘运营工作到运营高手之路-运营管理

    从如何应聘运营工作到运营高手之路 图像和算法等领域有多年研究和项目经验:指导发表科技核心期刊经验丰富:多次指导数学建模爱好者参赛. 宋星星 ¥12.00 立即订阅 扫码下载「CSDN程序员学院APP」 ...

  5. 前端画圆弧html弧线的像素,[js高手之路] html5 canvas系列教程 - arc绘制曲线图形(曲线,弧线,圆形)...

    arc:画弧度 cxt.arc( x, y, 半径, 开始角度,结束角度,是否逆时针 ); x, y: 为弧度的中心横坐标和纵坐标,如果这是画一个圆.那么x,y就是圆的圆心. 开始角度与结束角度都是以 ...

  6. 【Leetcode】 刷题之路1(python)

    leetcode 刷题之路1(python) 看到有大佬总结了一些相关题目,想着先刷一类. 1.两数之和 15.三数之和 16.最接近的三数之和 11.盛最多的水 18.四数之和 454.四数相加II ...

  7. [js高手之路]设计模式系列课程-发布者,订阅者重构购物车

    发布者订阅者模式,是一种很常见的模式,比如: 一.买卖房子 生活中的买房,卖房,中介就构成了一个发布订阅者模式,买房的人,一般需要的是房源,价格,使用面积等信息,他充当了订阅者的角色 中介拿到卖主的房 ...

  8. 安卓高手之路 图形系统(4 Measure的算法)

    安卓高手之路 图形系统(4 Measure的算法) - 修补C++ - ITeye技术网站 Java代码   /** * Does the hard part of measureChildren:  ...

  9. 安卓高手之路 图形系统(2)----------------基于Binder的架构思路)

    在学习安卓的时候最迷惑的就是Binder.图形框架的理解与Binder的理解分不开.前面一篇 [ 安卓高手之路之java层Binder 从代码角度分析了Java层Binder的实现原理.在C++层,这 ...

  10. 安卓高手之路之 ClassLoader

    我不喜欢那些泛泛而谈的去讲那些形而上学的道理,更不喜欢记那些既定的东西.靠记忆去弥补思考的人,容易陷入人云亦云的境地,最后必定被记忆所围困,而最终消亡的是创造力.希望这个高手之路系列能够记录我学习安卓 ...

最新文章

  1. 实现一个简单的编译器
  2. sql中的text字段如何导入oracle
  3. centos7服务器搭建elasticsearch7.6.0集群
  4. trouble identification check tree
  5. Redis 常用操作命令
  6. mini2440使用jlink烧写superboot到norflash
  7. linux 离线安装中文字库,centos7 离线安装字体fontconfig
  8. 11dayC语言指针-指针变量
  9. goahead上传文件【原创】
  10. collectd 5.7.2 发布,系统监控和统计工具
  11. 联想 M7400 两种清零方法
  12. Conficker.AE病毒局域网扫描工具
  13. android工程角度相机,anglecam角度相机软件下载
  14. php条形码宽度,PHP条形码生成封装类
  15. tomcat目录webapps介绍
  16. jpg格式图片怎么压缩?jpg图片如何压缩到最小?
  17. ios开发面试常见问题及答案
  18. 启发式搜索A*算法【引入及思想】
  19. 在c语言中while与do-while,C语言中while /do while语句用法
  20. 人脸检测-ROI与泛洪填充(5)

热门文章

  1. 第一次在CSND做记录,关于linux修改文件的最后访问时间。
  2. 日常软件使用系列收集
  3. AGV机器人RFID传感器CK-G06A与西门子1200PLC应用手册
  4. egret白鹭引擎开发的两个H5小游戏源码分享
  5. IOS AVPlayer视频播放器 AVPlayerViewController视频播放控制器
  6. 将城市按照拼音首字母进行分类
  7. ichart添加click事件
  8. CCF推荐-计算机网络领域顶级期刊会议,CCF推荐学术期刊及其会议计算机网络.pdf...
  9. 苹果手机计算机怎么放桌面,iOS13系统的苹果手机中如何重新布局桌面应用
  10. 如何卸载2345soft文件夹