<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
        首頁 新聞 工控搜 論壇 廠商論壇 產(chǎn)品 方案 廠商 人才 文摘 下載 展覽
        中華工控網(wǎng)首頁
          P L C | 變頻器與傳動 | 傳感器 | 現(xiàn)場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
          D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場總線 | 顯示調(diào)節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測控 | 工業(yè)安全
          電 源 | 嵌入式系統(tǒng) | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
        開放式激光振鏡運動控制器在Ubuntu+Qt下的文本標刻
        深圳市正運動技術(shù)有限公司
        收藏本文     查看收藏

        上節(jié)課程我們講述了如何通過Ubuntu+Qt進行振鏡校正(詳情點擊→開放式激光振鏡運動控制器在Ubuntu+Qt下的激光振鏡校正),本節(jié)文本標刻是在振鏡校正的前提下實現(xiàn)的。

        在正式學習之前,我們先了解一下正運動技術(shù)的ZMC408SCAN-V22運動控制器,ZMC408SCAN-V22支持在Linux環(huán)境進行開發(fā)使用。

        01 ZMC408SCAN-V22硬件介紹

        ZMC408SCAN-V22是正運動技術(shù)推出的高性能雙振鏡運動控制器,集成了2個百兆以太網(wǎng)口,支持EtherCAT、EtherNET、CAN、RS232、RS485、24路通用數(shù)字輸入、20路通用數(shù)字輸出、2路通用模擬量輸出、2路通用模擬量輸入、4個本地差分脈沖軸接口、1個MPG手輪編碼器接口、2個帶反饋振鏡接口、1個LASER激光專用接口、1個FIBER激光器接口。開放式系統(tǒng)框圖如下所示:

        ZMC408SCAN-V22總線控制器支持EtherCAT總線連接,支持最快500μs的刷新周期,支持最多達16軸運動控制,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸設(shè)置等;采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實現(xiàn)實時的運動控制。

        ZMC408SCAN-V22支持ETHERNET、EtherCAT、USB、CAN、RS485、RS232等通訊接口,通過CAN、EtherCAT總線可以連接各個擴展模塊,從而擴展數(shù)字量、模擬量或運動軸。可以在windows,linux,Mac,Android,wince各種操作系統(tǒng)下開發(fā),提供vc,c#,vb.net,labview等各種環(huán)境的dll庫,如下圖。上位機軟件編程參考《ZMotion PC函數(shù)庫編程手冊》。

        02 Ubuntu+Qt進行文本標刻項目的開發(fā)

        (一)新建Qt項目并添加函數(shù)庫

        1.在Qt Creator菜單選擇“文件”→“新建文件或項目...”,打開創(chuàng)建項目向?qū)А_x擇Application項目集,創(chuàng)建Qt Widgets Application項目,設(shè)置項目名稱和保存位置。

        2.導入廠家提供的相關(guān)函數(shù)庫及頭文件。

        (1)將zmotion.h和zmcaux.h、zmcaux.cpp以及l(fā)ibzmotion.so庫復制到新建的項目文件夾中。

        (2)在Qt Creator選擇新建的Qt項目右擊選擇“添加庫...”→“外部庫”點擊下一步,將剛才復制到項目文件夾上的libzmotion.so庫文件導入到項目中。

        (3)在Qt Creator下右擊新建的Qt項目,選擇“添加現(xiàn)有文件...”,將之前復制到項目文件下的libzmotion.so、zmotion.h、zmcaux.cpp以及zmcaux.h添加到項目中。

        (4)函數(shù)庫添加成功后,打開pro文件可以看到相關(guān)的函數(shù)庫和頭文件信息。此時已經(jīng)將例程需要用到的函數(shù)庫和頭文件都加入到項目中了,接下來開始實現(xiàn)例程。

        (二)安裝Linux下字體引擎庫

        1.FreeType字體引擎庫的安裝

        字體引擎庫有很多,在例程中我們選擇使用FreeType字體引擎庫來進行字符輪廓解析。首先我們需要在Ubuntu環(huán)境中下載FreeType庫,在終端命令行中輸入sudo apt-get update和sudo apt-get install libfreetype6 libfreetype6-dev命令在線安裝FreeType庫,如下圖所示:

        安裝完成后只需要在使用時引入#include <ft2build.h>頭文件即可。實現(xiàn)文本標刻的例程必須安裝字體引擎庫來解析字符,否則無法得到字符的關(guān)鍵點坐標,就無法完成標刻和繪制。

        2.設(shè)置字體文件

        FreeType庫沒有掃描系統(tǒng)字體庫文件的功能,在進行輪廓解析時,需要將字體文件傳入。所以在正式開始例程前,需要把提前下載好的字體文件放在項目文件下,方便解析字體時直接使用。在當前項目下新建一個字體文件夾,將提前下載好的字體復制到文件夾中,如下圖所示:

        03 文本標刻流程以及相關(guān)函數(shù)介紹

        (一)文本繪制流程

        文本的處理首先是需要將文本輪廓進行解析,對輪廓信息進行分解,輪廓信息中包含輪廓的類型,文本輪廓分為線段、二次貝塞爾曲線、三次貝塞爾曲線,對于貝塞爾曲線類型需要將曲線分解為小線段進行處理,可以控制分解的精度,將所有的輪廓線處理完即代表已經(jīng)完成當前字符的繪制。

        (二)相關(guān)函數(shù)接口介紹

        1.加載和初始化字體文件

        2.計算貝塞爾曲線的二次項系數(shù)

        貝塞爾曲線是通過控制點來定義的一種曲線形狀,貝塞爾曲線的一個關(guān)鍵性質(zhì)是它是由一組控制點和二項式基函數(shù)組合而成的。二項式系數(shù)確定了每個控制點在貝塞爾曲線中的權(quán)重。在計算貝塞爾曲線上的點時,每個控制點的貢獻由其對應(yīng)的二項式系數(shù)乘以相應(yīng)的基函數(shù)得出。貝塞爾曲線通過調(diào)整控制點的位置和二項式系數(shù)來實現(xiàn)各種復雜的曲線形狀。

        3.獲取貝塞爾曲線的點坐標

        4.三次文件初始化

        5.生成空移字符串

        6.生成開光字符串

        7.生成關(guān)光字符串

        8.生成標刻點字符串

        9.下載三次文件

        10.通用命令執(zhí)行接口

        04 文本標刻的實現(xiàn)例程

        文本標刻例程首先需要獲取到文本數(shù)據(jù),獲取到外部輸入文本后,將文本進行單個解析,生成字符輪廓數(shù)據(jù),接下來的處理就是對輪廓數(shù)據(jù)進行轉(zhuǎn)換,將貝塞爾曲線數(shù)據(jù)全部轉(zhuǎn)換為小線段來處理,最后將小線段相連接,生成三次文件字符串,下載到控制器中,執(zhí)行標刻命令即可完成文本的標刻。

        (1)將文本解析為輪廓數(shù)據(jù),F(xiàn)reeType庫解析文本時需要對字符進行單個處理,將每個字符都進行解析輪廓。

        //初始化輪廓數(shù)據(jù)
        FT_Init_FreeType(&library);
        const char* fontFilePath = gainFontFilePath(text_data.type);
        FT_New_Face(library, fontFilePath, 0, &face);
        // 獲取字符的索引
        FT_UInt glyphIndex = FT_Get_Char_Index(face, charCode);
        // 加載字符的輪廓信息
        FT_Int32 loadFlags = FT_LOAD_DEFAULT | FT_LOAD_NO_BITMAP;
        FT_Load_Glyph(face, glyphIndex, loadFlags);
        // 獲取字形槽
        FT_GlyphSlot glyphSlot = face->glyph;
        // 獲取字形的輪廓信息
        FT_Outline* outline = &glyphSlot->outline;

        (2)將輪廓數(shù)據(jù)轉(zhuǎn)換為小線段生成三次文件字符串,對于線段數(shù)據(jù)可以直接通過坐標位置生成三次文件字符串,對于貝塞爾曲線數(shù)據(jù),需要循環(huán)遍歷,將所有曲線數(shù)據(jù)轉(zhuǎn)換為小線段數(shù)據(jù),最后生成三次文件字符串。

        //將所有輪廓數(shù)據(jù)遍歷,對不同類型的數(shù)據(jù)進行不同的處理

        for(int n=0;n < outline->n_contours;n++)

        {    

            LaserScan_z3p_EmptyMove(strFile3,startX,startY,markPara.JumpSpeed,corrJumpDelay);//空移到起點    

            LaserScan_z3p_OpenLight(strFile3,markPara.Io_value.emit_io,markPara.OpenDelay,markPara.MarkSpeed);//開光

            tag = FT_CURVE_TAG(tags[0]); //判斷當前輪廓數(shù)據(jù)的類型

            switch(tag)

            {

                case FT_CURVE_TAG_ON: //線段

                {           

                    LaserScan_z3p_Mark(strFile3,markPara.CorDelay,line,2);

                }

                case FT_CURVE_TAG_CONIC: //兩次貝塞爾曲線        

                {        

                    ZPointF *pointData = new ZPointF[myVector.size()];          

                    for (unsigned long i = 0; i <= myVector.size() - 1; ++i)

                    {

                        pointData[i] = myVector[i];

                    }         

                    LaserScan_z3p_Mark(strFile3,markPara.CorDelay,pointData,myVector.size());//標刻

                }

                default: //三次貝塞爾曲線

                {

                    ZPointF *pointData = new ZPointF[myVector.size()];

                    for (unsigned long i = 0; i <= myVector.size() - 1; ++i)          

                    {

                        pointData[i] = myVector[i];            

                    }         

                    LaserScan_z3p_Mark(strFile3,markPara.CorDelay,pointData,myVector.size());//標刻        

                }    

            }    

            LaserScan_z3p_CloseLight(strFile3,markPara.Io_value.emit_io,markPara.CloseDelay,corrJumpDelay);//關(guān)光

        }

        (3)使用Free Type庫解析生成的輪廓坐標點,是按照內(nèi)部矩陣的像素位置決定,暫時沒有相關(guān)的函數(shù)來調(diào)整起始點坐標位置,但是在使用文本標刻時,必須要確定標刻的起點位置,所以在例程中的實現(xiàn)方法是將解析出的的坐標位置進行比較,得到最小的X和Y坐標,將所有的輪廓坐標偏移最小坐標位置,保證起始點是在原點位置開始,后續(xù)可以通過更改起點位置來確定相對位置。

        (4)三次文件字符串追加完成后,將三次文件下載到控制器中,進行文本標刻。

        //初始化三次文件字符串

        LaserScan_z3p_Init();

        //生成文本標刻字符串

        Z3p_process();

        //回原點,打開急停信號,關(guān)閉激光器使能

        LaserScan_z3p_EmptyMove(strFile3,0,0,markPara.JumpSpeed,corrJumpDelay);//空移到原點

        //將三次文件字符串下載到控制器中

        ZMC_DownMem3File(g_handle,strFile3.toLatin1().data(),strFile3.length(),"Zmc_text.z3p");

        QString filePath = "Zmc_text.z3p";

        QFile file(filePath);

        //在當前項目下生成三次文件

        if (file.open(QIODevice::WriteOnly | QIODevice::Text))

        {

        QTextStream stream(&file);

            stream << strFile3;    

            file.close();

        QMessageBox::warning(this,"提示","3次文件生成成功!");

        }

        05 文本標刻的實現(xiàn)效果

        1.建立控制器連接,設(shè)置激光器參數(shù)和工藝參數(shù)。

        2.輸入需要標刻的文本,可以根據(jù)需要設(shè)置相關(guān)的文字屬性,下面是輸入文字通過QPaint繪制的文本。

        3.可以更改字體,文本開始位置以及設(shè)置傾斜屬性,下面是設(shè)置后的效果。

        4.點擊生成三次文件,選擇標刻圖形,下圖是通過示波器抓取的標刻數(shù)據(jù)。


         

        狀 態(tài): 離線

        公司簡介
        產(chǎn)品目錄

        公司名稱: 深圳市正運動技術(shù)有限公司
        聯(lián) 系 人: 戴德弟
        電  話: 0755-32976042
        傳  真: 0755-2606 6955
        地  址: 深圳市寶安區(qū)西鄉(xiāng)洲石路陽光工業(yè)園A1棟5樓
        郵  編: 518100
        主  頁:
         
        該廠商相關(guān)技術(shù)文摘:
        強實時運動控制內(nèi)核MotionRT750(十):運動控制中的微調(diào)軌跡動態(tài)補償
        機器視覺運動控制一體機在大功率共模電感多面AI外觀缺陷檢測應(yīng)用
        MotionRT750 SoftMotion:XPCIE1032H超高速運動控制卡在AOI檢測設(shè)備上的應(yīng)用
        強實時運動控制內(nèi)核MotionRT750(九):內(nèi)置C語言的自定義機械手模型實現(xiàn)
        NEPCON ASIA 2025:解鎖行業(yè)新機遇,我們在深圳等您
        開放式激光振鏡運動控制器在旋轉(zhuǎn)飛行打標中的應(yīng)用
        強實時運動控制內(nèi)核MotionRT750(八):us級高速交互之LabVIEW,為智能裝備提速
        液態(tài)點膠密封解決方案,柔性升級,密封更可靠!
        柔性機械手視覺供料解決方案,提升無序分揀效率!
        【2025上海工博會】正運動展位智造未來(二)
        【2025上海工博會】正運動展位智造未來(一)
        【2025上海工博會】機器視覺運動控制一體機應(yīng)用預(yù)覽(三)
        更多文摘...
        立即發(fā)送詢問信息在線聯(lián)系該技術(shù)文摘廠商:
        用戶名: 密碼: 免費注冊為中華工控網(wǎng)會員
        請留下您的有效聯(lián)系方式,以方便我們及時與您聯(lián)絡(luò)

        關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報
        工控網(wǎng)客服熱線:0755-86369299
        版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved

        主站蜘蛛池模板: 亚洲成人资源在线观看| 亚洲欧美自偷自拍视频图片| 亚洲精品自拍在线视频| 美女一区二区三区在线观看视频| 亚洲高清乱码午夜电影网| 欧美精品一区二区精品久久| 乌克兰丰满女人a级毛片右手影院 人妻中文字幕不卡精品 | 东京一本一道一二三区| 国产成人亚洲无码淙合青草 | 免费无码又爽又刺激网站直播| 一区二区欧美日韩高清免费| 久久综合给合久久97色| 久久精品国产亚洲av高清蜜臀| 国产免费播放一区二区三区| 一区二区三区国产不卡| 成人免费无码视频在线网站| 亚洲午夜理论无码电影| 国内自拍偷拍福利视频看看| 最新偷拍一区二区三区| 国产香蕉尹人在线视频你懂的 | 久久精品国产99久久六动漫| 丰满人妻一区二区三区无码AV| 久热这里有精品免费视频| 999精品视频在线| 国产精品人妻在线观看| 国产美女深夜福利在线一| 亚洲中文字幕无码一区日日添 | 国产精品成人自产拍在线| 国产精品成人99一区无码| 中文字幕免费视频| 秋霞电影院午夜无码免费视频| 狠狠亚洲超碰狼人久久| 国产另类ts人妖一区二区| 欧美精品视频一区二区三区| 亚洲国产综合一区二区精品| 樱桃熟了a级毛片| 国产11一12周岁女毛片| 强开少妇嫩苞又嫩又紧九色| 久久久久久久极品内射| 日韩中文字幕人妻精品| 色吊丝av中文字幕|