原创 开放式激光振镜运动控制器在Ubuntu+Qt下CAD图形标刻
创始人
2024-09-18 16:58:13
0

前面课程我们讲述了如何通过Ubuntu+Qt进行振镜校正(详情点击→开放式激光振镜运动控制器在Ubuntu+Qt下的激光振镜校正),本节CAD图形标刻是在振镜校正的前提下实现的。

在正式学习之前,我们先了解一下正运动ZMC408SCAN-V22运动控制器,ZMC408SCAN-V22控制器支持在Linux环境下进行开发使用。

01 ZMC408SCAN-V22硬件介绍

ZMC408SCAN-V22是正运动技术推出的高性能双振镜运动控制器,集成了2个百兆以太网口,支持EtherCAT、EtherNET、CAN、RS232、RS485、24路通用数字输入、20路通用数字输出、2路通用模拟量输出、2路通用模拟量输入、4个本地差分脉冲轴接口、1个MPG手轮编码器接口、2个带反馈振镜接口、1个LASER激光专用接口、1个FIBER激光器接口。开放式系统框图如下所示:

ZMC408SCAN-V22总线控制器支持EtherCAT总线连接,支持最快500μs的刷新周期,支持最多达16轴运动控制,支持直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随、虚拟轴设置等;采用优化的网络通讯协议可以实现实时的运动控制。

ZMC408SCAN-V22通过CAN、EtherCAT总线可以连接各个扩展模块,从而扩展数字量、模拟量或运动轴。可以在Windows,Linux,Mac,Android,Wince各种操作系统下开发,提供vc,c#,vb.net,labview等各种环境的dll库。上位机软件编程参考《ZMotion PC函数库编程手册》。

02 Ubuntu+Qt进行CAD图形标刻项目的开发

1. 在Qt Creator菜单选择“文件”→“新建文件或项目...”,打开创建项目向导。 选择Application项目集,创建Qt Widgets Application项目,设置项目名称和保存位置。

2.导入厂家提供的相关函数库及头文件。

(1)将zmotion.h和zmcaux.h、zmcaux.cpp、ZmotionCad3.h以及libzmotion.so和libZmotionCAD3.so库复制到新建的项目文件夹中。

(2)在Qt Creator选择新建的Qt项目右击选择“添加库...”→“外部库”点击下一步,将刚才复制到项目文件夹上的libzmotion.so和libZmotionCAD3.so库文件导入到项目中。

(3)在Qt Creator下右击新建的Qt项目,选择“添加现有文件...”,将之前复制到项目文件下的头文件zmotion.h和ZScancorrect.h以及zmcaux.cpp和zmcaux.h添加到项目中。

(4)函数库添加成功后,打开pro文件可以看到相关的函数库和头文件信息。此时已经将例程需要用到的函数库和头文件都加入到项目中了,接下来开始实现例程。

03 CAD图形标刻流程以及相关函数介绍

1.CAD图形标刻流程图

2.相关函数介绍

(1)连接控制器。

(2)导入CAD图形。

(3)取消CAD图形导入,释放整个图层链表。

(4)获取CAD图形的范围。

(5)CAD图形解析后的链表结构,CAD库通过双向循环链表来存放具体的图形数据以及解析后的坐标数据。

typedef struct Struct_ZCad_VectGroup

{

int m_itemtype; //类型

struct Struct_ZCad_VectGroup *m_prev;

struct Struct_ZCad_VectGroup *m_pnext;

int m_GroupNum; //组号

uint32 m_ColorPen; //颜色 DWORD

Struct_ZCad_Vect *m_pVect; //曲线列表

}Struct_ZCad_VectGroup;

(6)下载三次文件。

(7)通用命令执行接口。

(8)获取输出口的状态。

04 CAD图形标刻的实现例程

CAD图形标刻例程主要是使用CAD库对CAD图形进行解析,将图形数据解析为链表结构,通过对链表的遍历,获取图形的坐标数据,将所有坐标点数据生成三次文件字符串,下载到控制器中,即可实现CAD图形的标刻。

1.导入CAD图形。

void MainWindow::on_import_2_clicked()

{

data_Load(); //获取界面的设置参数

strFile3.clear();

LaserScan_z3p_Init(); //三次文件字符串初始化

QString qstr = ui->file_route->text(); //获取CAD图形的路径和文件名

QByteArray byteArray = qstr.toUtf8();

const char* cstr = byteArray.constData();

m_pGraph = ZMotionCad3_ImportVectGraph(cstr,1016,0,0.001,0); // 导入图形生成轨迹

update(); //更新界面图形

}

2.遍历链表,生成三次文件字符串,首先获取CAD图形 数据,开始遍历链表,通过内部实现的空移、开光、标刻、关光函数接口生成三次文件字符串。以下是部分实现代码。

if (m_pGraph !=NULL)

{

Struct_ZCad_VectGroup *ps = m_pGraph;

do

{

Struct_ZCad_Vect * pVect = ps->m_pVect;

do

{

Struct_ZCad_Seg * pSeg = pVect->m_pLine;

//空移到起点

LaserScan_z3p_EmptyMove(strFile3,pSeg->x1,pSeg->y1,markPara.JumpSpeed,markPara.JumpDelay);

//开光

LaserScan_z3p_OpenLight(strFile3,io_value.emit_io,markPara.OpenDelay,markPara.MarkSpeed);

int i = 0;

do

{

if(!pSeg->m_Param1)

{

// 运动

strFile3 += QString("MOVESCANABS(%1,%2)\n").arg(pSeg->x2).arg(pSeg->y2);

}

i++;

pSeg = pSeg->m_pnext;

}while(pSeg != pVect->m_pLine);

//关光

LaserScan_z3p_CloseLight(strFile3,io_value.emit_io,markPara.CloseDelay,markPara.JumpDelay);

pVect = pVect->m_pnext;

}while(pVect != ps->m_pVect);

ps = ps->m_pnext;

}while(ps != m_pGraph);

}

3.取消图形导入,清空图形链表,调用接口函数,清空链表,同时更新界面即可。

void MainWindow::on_cancel_clicked()

{

ZMotionCad3_DeleteChain((Struct_ZCad_Item *)m_pGraph);

m_pGraph = NULL;

update();

}

4.将三次文件字符串下载到控制器中。

void MainWindow::on_create_File3_clicked()

{

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

QString filePath = "Zmc_CAD.z3p";

QFile file(filePath);

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

{

QTextStream stream(&file);

stream << strFile3;

file.close();

qDebug() << "File saved successfully:" << filePath;

}

else

{

qDebug() << "Failed to open file for writing:" << filePath;

}

}

5.使用在线命令执行三次文件,标刻CAD图形。

void MainWindow::on_but_Mark_clicked()

{

if( 0 == g_handle)

{

QMessageBox::warning(this,"提示","控制器未连接!");

return;

}

char Response[1024];

ZMC_Execute(g_handle,"FILE3_RUN \"Zmc_CAD.z3p\",7 ",500,Response,1024);

}

05 CAD图形标刻的实现效果

1.连接控制器,设置激光器以及工艺参数。

2.选择CAD图形导入,绘制图形。

3.生成三次文件,标刻CAD图形。

4.使用示波器抓取标刻的CAD图形。

5.CAD图形标刻效果演示。

完整代码获取地址

本次,正运动技术开放式激光振镜运动控制器在Ubuntu+Qt下CAD图形标刻,就分享到这里。

更多精彩内容请关注“ 正运动小助手 ”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。

本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

相关内容

马斯克再提美国建新政党:一...
在美国总统特朗普7月4日将“大而美”法案签署成法的几个小时前,特朗...
2025-07-05 22:42:14
画到哪,动到哪!字节跳动发...
Angtian Wang 是字节跳动的研究员,研究方向包括视频生成...
2025-07-03 13:13:17
澳官员那个酸:大家只记得中...
【文/观察者网 刘程辉】屡屡对中国与太平洋岛国合作不满的澳大利亚官...
2025-06-30 13:13:02
英媒:对华AI竞赛电力吃紧...
【文/观察者网 陈思佳】美国总统特朗普正寻求在人工智能(AI)领域...
2025-06-28 22:42:31
出门问问发布软硬件结合产品...
近日,出门问问发布自主式AI软硬件结合产品TicNote,这台设备...
2025-06-28 12:42:47
百门精品课助力人人学“AI...
中国教育报讯(记者 黄星)日前,福建省教育厅发布推进“人工智能+教...
2025-06-26 19:15:49

热门资讯

原创 2... #春日生活好物种草季#近年来,笔记本电脑市场迎来技术爆发期,尤其在手机厂商跨界入局后,轻薄本在性能、...
AMD锐龙AI 9 HX 37... 2024年6月3日,AMD正式发布全新的锐龙AI 300系列处理器。该系列处理器一经发布就引发大家的...
骁龙本这么猛?联想YOGA A... 在人人都是自媒体的时代,一部手机可以解决出镜拍摄问题,而商务出差、大量码字、图像处理等需求用笔记本则...
5个AI模特生成软件推荐 当前AI模特生成软件市场提供了多样化的解决方案,以下是几款备受推崇的工具: 触站AI:强烈推荐!...
2023年CentOS与Ubu... CentOS与Ubuntu的市场格局与技术特性探讨 在服务器操作系统领域,CentOS与Ubuntu...
苹果macOS 15.1:允许... 苹果公司在其最新的macOS 15.1版本中,推出了一项引人注目的新功能——允许用户将Mac App...
原创 苹... 前言 IQUNIX在做好看的桌面产品上,一直都给我留下非常深刻的印象。而且早期和苹果产品的设计风格...
原创 华... 想在竞争残酷的市场中发力,必须要带来一些激进的卖点,但是随着功能特性的提升,硬件也必须要进行给力才可...
原创 华... 在2024年这个被誉为"AI元年"的关键时刻,随着生成式AI的流行,各家手机厂商都在积极备战AI手机...