liuwentao1992 / parse-gcode

:art:新手C++入门项目: 解析G代码/三维轨迹仿真/机器人仿真/代码行1W+/面向对象风格/涵盖所有C++基础知识/欢迎交流!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

前前言

前言

建立本仓的目的之初是为了提供给新手C++快速入门学习, 尤其是从面向过程到面向对象设计**的转变, 本人当年也是走过了不少弯路, 通过大量阅读大佬的源码可以获得"胜读十年书"的提升. 本仓库最初只是一个3000+代码行的小程序, 后来经过不断的版本迭代, 代码量逐渐庞大, 功能的丰富存在了实际的使用价值 但是代码任然是全部开源的, 你可以拿去继续添加你需要的功能, 甚至作为你自己的个人项目.

项目简介

  1. 基于Qt框架,Qt本身可以被称作是一种C++的延伸,Qt本身已经继承了C++的快速、简易、面向对象等许多的优点.
  2. 本项目模块可分为三大块:
    • 解析G代码
    • 轨迹数据可视化
    • 机器人三维仿真
  3. 项目技术栈: 基本涵盖了所有C++基础,例如数据结构与算法,设计模式,STL库等
  4. 面向对象编程风格: <Effective C++> <More Effective C++>
  5. 大部分代码都配有注释降低上手难度
  6. 项目代码行1W+, 本人QQ: 626373788 外观

模块介绍

解析G代码

  • 本功能是通过解析数控程序G/M代码指令,获取二维的轨迹数据进行绘制
  • 增加了刀补算法: 可根据刀具宽度和计算轨迹调整实际切割轨迹
  • 增加了手势操作: 鼠标滚轮放大以及拖拽 输入图片说明 输入图片说明

轨迹数据可视化

  • 可以将TXT文件的轨迹数据导入,实现轨迹数据的显示
  • 除此以外还提供了求交面设置,可以捕捉到轨迹和任意平面的相交的点坐标
    界面 求交面设置

机器人三维仿真

  • 本功能可以实现三维机器人stl文件的导入, 通过载入关节来装配机器人
  • 设置机器人的关键参数: DH参数, 运动范围, 起始角度
  • 增加了加载工件功能: 工件提供坐标轴和环, 可以与鼠标交互实现移动和旋转
  • 增加机器人示教功能: 通过示教功能实现机器人的运动
  • 增加了轨迹运动起始姿态幻影: 每次开始运动时记录原始姿态 仿真界面

附件图片

参数设置 工件 幻影 直线 圆弧

三维场景节点组织图

  • 渲染引擎使用OSG, OSG使用的是树数据结构来管理场景内部的各个节点, 大致组织结构如下 ss

About

:art:新手C++入门项目: 解析G代码/三维轨迹仿真/机器人仿真/代码行1W+/面向对象风格/涵盖所有C++基础知识/欢迎交流!


Languages

Language:C++ 98.6%Language:QMake 1.4%