ApolloStudio高手之路(4):用Python以最轻便的方式进行金橙子激光打标板卡二次开发(以EzCad2为载体二次开发)
激光打標是以高密度、高能量的激光束對各種材質媒介(塑料,布匹,金屬,陶瓷等等)進行表面局部照射加工,使表層材料汽化或發生顏色變化的化學反應,從而留下永久性標記的一種清潔環保的表面加工方法。激光打標可以打出各種文字、符號和圖案等,字符大小可以從毫米到微米量級,這對產品的防偽有特殊的意義。正是因為其普適性優良,使其在制造業對產品質量要求越來越嚴苛的今天發揮其越來越寬廣的應用。
在ApolloStudio中硬件支持倉庫中也對市面上使用范圍最廣、影響力最大的由北京金橙子科技股份有限公司所開發的激光打標機控制板卡進行了深度支持(以EzCad2為載體)。EzCad2是專為平面標刻、精細零部件切割所專門設計的版本。EzCad2基本操作我們在此篇不再贅述,本篇著重點在于對其進行二次開發,我們先在腳本工具集中來大致預覽下ApolloStudio所提供哪些精細功能:
ApolloStudio所支持的功能完全來自官方授權最新版的SDK,集成度高達90%,適度刪減了部分二次開發中冷門的用法。
開發準備
在開發之前我們需要了解下二次開發的流程原理,ApolloStudio通過SDK直接接管了激光打標板卡,因此無需再開啟EzCad2軟件(強行開啟也會報錯,反之亦然,同一時間只能由一款軟件對板卡進行接管,ApolloStudio如果不點啟動按鈕進行初始化操作則不會對板卡進行接管,EzCad2開啟會默認啟用初始化操作),在ApolloStudio中對二次開發流程進行了大幅優化后可以簡單分為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为载体二次开发)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python访问注册表_读取注册表的Py
- 下一篇: 前端if else_应该记录的一些项目代